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


22.8 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))'

Assim que seu pacote for compilado corretamente, envie-nos um patch (veja Enviando patches). Bem, se precisar de ajuda, ficaremos felizes em ajudá-lo também. Depois que o patch é confirmado no repositório Guix, o novo pacote é compilado automaticamente nas plataformas suportadas por nosso sistema de integração contínua.

Os usuários podem obter a nova definição de pacote simplesmente executando guix pull (veja Invocando guix pull). Quando bordeaux.guix.gnu.org termina de construir o pacote, a instalação do pacote baixa automaticamente os binários de lá (veja Substitutos). O único lugar onde a intervenção humana é necessária é para revisar e aplicar o patch.


Próximo: Estilo de código, Anterior: Estrutura da árvore de origem, Acima: Contribuindo   [Conteúdo][Índice]