Próximo: , Anterior: , Acima: Contribuindo   [Conteúdo][Índice]


22.6 Diretrizes de empacotamento

A distribuição do GNU é incipiente e pode muito bem não ter alguns dos seus pacotes favoritos. Esta seção descreve como você pode ajudar a fazer a distribuição crescer.

Pacotes de software livre geralmente são distribuídos na forma de tarballs de código-fonte – geralmente arquivos tar.gz que contêm todos os arquivos fonte. Adicionar um pacote à distribuição significa essencialmente duas coisas: adicionar uma receita que descreve como criar o pacote, incluindo uma lista de outros pacotes necessários para compilá-lo e adicionar metadados de pacote junto com essa receita, como uma descrição e informações de licenciamento.

No Guix, todas essas informações estão incorporadas em configurações de pacote. As definições de pacote fornecem uma visão de alto nível do pacote. Elas são escritas usando a sintaxe da linguagem de programação Scheme; de fato, para cada pacote, definimos uma variável vinculada à definição do pacote e exportamos essa variável de um módulo (veja Módulos de pacote). No entanto, o conhecimento profundo de Scheme não é um pré-requisito para a criação de pacotes. Para mais informações sobre definições de pacotes, veja Definindo pacotes.

Quando uma definição de pacote está em vigor, armazenada em um arquivo na árvore de fontes do Guix, ela pode ser testada usando o comando guix build (veja Invocando guix build). Por exemplo, supondo que o novo pacote seja chamado gnew, você pode executar este comando na árvore de construção do Guix (veja Executando guix antes dele ser instalado):

./pre-inst-env guix build gnew --keep-failed

O uso de --keep-failed facilita a depuração de falhas de compilação, pois fornece acesso à árvore de compilação com falha. Outra opção útil da linha de comando ao depurar é --log-file, para acessar o log de compilação.

Se o pacote for desconhecido para o comando guix, pode ser que o arquivo fonte contenha um erro de sintaxe ou não tenha uma cláusula define-public para exportar a variável do pacote. Para descobrir isso, você pode carregar o módulo do Guile para obter mais informações sobre o erro real:

./pre-inst-env guile -c '(use-modules (gnu packages gnew))'

Once your package builds correctly, please send us a patch (veja Enviando patches). Well, if you need help, we will be happy to help you too. Once the patch is committed in the Guix repository, the new package automatically gets built on the supported platforms by our continuous integration system.

Users can obtain the new package definition simply by running guix pull (veja Invocando guix pull). When ci.guix.gnu.org is done building the package, installing the package automatically downloads binaries from there (veja Substitutos). The only place where human intervention is needed is to review and apply the patch.


Próximo: Estilo de código, Anterior: Source Tree Structure, Acima: Contribuindo   [Conteúdo][Índice]