GNOME package guidelines (Português)

From ArchWiki
Jump to: navigation, search
Package creation guidelines

CLRCrossEclipseFree PascalGNOMEGoHaskellJavaKDEKernelLispMinGWNode.jsNonfreeOCamlPerlPHPPythonRubyVCSWebWine

Os pacotes do GNOME no Arch Linux segue, um certo esquema.

URL fonte

Esse tópico contém as URLs fonte mais comumente usadas pelos pacotes GNOME nos repositórios oficiais e no AUR. Para exemplos, pesquise por pacotes GNOME nos repositórios oficiais[1] e no AUR[2]

Usando tarball de lançamento

Ao baixar um tarball de lançamento, você pode obtê-lo de https://download.gnome.org usando o seguinte vetor fonte:

source=(https://download.gnome.org/sources/$pkgname/${pkgver%.*}/$pkgname-$pkgver.tar.xz)

sendo que ${pkgver%.*} retorna a versão de pacote maior.menor, removendo o sufixo do pkgver (que é a versão de pacote micro). Por exemplo, se pkgver=3.28.0, então ${pkgver%.*} retornaria 3.28.

Usando um commit do repositório Git

Uma outra prática comum é usar como fonte um commit específico de um repositório git de código fonte do software GNOME. Isso não se classifica como pacote VCS porque o recurso do Pacman de definir um commit específico[3] faz o PKGBUILD não seguir os últimos commits de desenvolvimento nem atualizar o campo pkgver, em vez disso, usando o fonte do hash de commit especificado.

Veja um modelo abaixo:

PKGBUILD
makedepends=(git)
commit=hash_de_um_commit 
source=("git+https://git.gnome.org/browse/$pkgname#commit=$_commit")
md5sums=('SKIP')

pkgver() {
  cd $pkgname
  git describe --tags | sed 's/-/+/g'
}

Substitua hash_de_um_commit com a hash do commit Git desejado.

Note que já que o fonte é baixado com git, então git deve estar no makedepends e somas de verificação devem ser definidas para SKIP, assim como ocorreria com qualquer outro pacote VCS. O uso da função pkgver() é altamente recomendado, de forma que defina o pkgver adequadamente para o hash de commit fornecido.

Note: GNOME está migrando do https://git.gnome.org para https://gitlab.gnome.org. Um redirecionamento automático entre o antigo e o novo servidor Git evita ter um Erro 404 (erro de página não encontrada), mas, se você quiser, altere a URL fonte para gitlab.gnome.org para corrigir a URL fonte.

GConf schemas

Alguns pacotes do GNOME instalam schemas do GConf, apesar de muitos outros já terem migrados para GSettings. Aqueles pacotes devem depender de gconf.

Schemas do Gconf são instalados na base de dados GConf do sistema, que deve ser evitado. Alguns pacotes fornecem uma opção --disable-schemas-install para o ./configure, que dificilmente funciona. Porém, gconftool-2 tem uma variável chamada GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL a qual você pode definir para dizer ao gconftool-2 para não atualizar qualquer base de dados.

Ao criar pacotes que instalam arquivos schemas de GConf, use

make GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1 DESTDIR=${pkgdir} install

para a etapa de instalação do pacote no PKGBUILD.

Não chame gconfpkg no arquivo .install, pois schemas do GConf são automaticamente instalados/removidos (na instalação/remoção de um pacote GNOME) via hooks do pacman desde o gconf=3.2.6-4

GSettings schemas

Os schemas de Gconf foram migrados para schemas do GSettings, então muitos aplicativos pode ser encontrados usando esse novo arquivo de schema. GSettings usa o dconf como backend, então todos os pacotes que contêm schemas de GSettings exigem dconf como dependência. Quando um novo schema de GSettings é instalado no sistema, a base de dados do GSettings tem que ser recompilada, mas não durante o empacotamento.

Para evitar recompilação da base de dados do GSettings no empacotamento, use a opção --disable-schemas-compile para o ./configure.

Não chame glib-compile-schemas no arquivo .install, pois as bases de dados de schemas do GSettings são recompilados automaticamente via hooks do pacman desde glib2=2.48.0-2.

Documentação do Scrollkeeper

A partir do GNOME 2.20, não há mais necessidade de lidar com scrollkeeper, pois rarian lê seus arquivos OMF diretamente. Scrollkeeper-update é um link dos dias atuais. A única coisa que é necessário agora é acrescentar gnome-doc-utils>=0.11.2 ao vetor makedepends.

Ele pode ser desabilitado usando a opção --disable-scrollkeeper no ./configure.

Cache de ícones do GTK

Alguns ícones de instalação de pacotes no tema do ícone do hicolor. Esses pacotes devem depender de gtk-update-icon-cache.

Não chame gtk-update-icon-cache no arquivo .install, pois o cache de ícone é atualizado via hooks do pacman desde gtk-update-icon-cache=3.20.3-2.

Arquivos .desktop

Muitos pacotes instalam arquivos .desktop compatíveis com Freedesktop.org e registram entradas tipo MIME neles. Eles devem depender de desktop-file-utils.

Não chame update-desktop-database no arquivo .install, pois a base de dados é atualizada automaticamente via hooks do pacman desde desktop-file-utils=0.22-2.

Arquivos .install

Anteriormente, a maioria dos pacotes GNOME tinham um arquivo .install chamando comandos como glib-compile-schemas, gtk-update-icon-cache e update-desktop-database para instalar/atualizar cache local ou base de dados. Isso está obsoleto desde o pacman 5.0, que trouxe a implementação de hooks que chamam aqueles comandos automaticamente ao instalar o pacote.

Para evitar ser chamado duas vezes, os comandos supramencionados devem ser removidos do arquivo .install.