Creating -libre packages (Português) - ParabolaWiki

# Creating -libre packages (Português)

Este artigo descreve o processo de criação de pacotes livres, isto é, como substituir os pacotes de Archlinux que contém dependências ou códigos não livres.

## Pré-requisitos

- É necessário conhecimento básico de como um pacote Arch é construído (PKGBUILDs, makepkg + seus flags, etc.). Uma boa experiência, é se anteriormente você praticou com o AUR.
- Estar sempre no #parabola e/ou assinar os pacotes na nossa [lista de discussão http://lists.parabolagnulinux.org/mailman/listinfo].
- Seguir as instruções em nossa Guia de Mantenedor de Pacotes
- Atualizar makepkg.conf de makepkg.conf.pacnew se você não tiver algum feito por você.
- Configurar ~/.makepkg.conf especialmente a sessão PACKAGE OUTPUT, que está perto do fim do arquivo.

## Criando um pacote "-libre"

Nós nos referimos a um pacote-libre, como um pacote que substitui um pacote não-libre dos repositórios oficiais do Arch Linux. Por exemplo, no caso dokernel26 se tornaria emkernel26-libre. Às vezes, há pacotes que não compartilham o mesmo nome, como no caso do firefox que sua versão livre é o Icecat.

O pacote -libre é criado nos seguintes casos:

- O pacote não é livre, mas uma substituição livre está disponível.
- O pacote tem algumas partes não livres, mas é funcional sem eles.
- O pacote depende de outros pacotes não livres, mas é funcional sem eles.
- O pacote recomenda software não-livre.

Nota: No último caso, pode haver necessidade de recompilar, então usamos um rePKGBUILD

## Como editar o PKGBUILD

### A opção mais fácil

Para fazer um pacote -libre, o PKGBUILD precisa ser mudado.

- Um pacote -libre precisa substituir o pacote não livre, assim que você deve adicionar:

File: `PKGBUILD`

    provides=("nonlibrepackage=$pkgver")
    replaces=('nonlibrepackage')
    conflicts=('nonlibrepackage')

- As dependências não livres devem ser removidas, para identificá-los há um script chamadoPKGBUILD-check-nonfree para verificar se um PKGBUILD tem dependências não-livres. Removê-los do

File: `PKGBUILD`

    depends=()

- Se um patch é necessário, adicione ele no

File: `PKGBUILD`

    sources=()

- Se as peças que nós removemos foram os únicos que tinham uma licença personalizada, remova "custom" no

File: `PKGBUILD`

    license=()

- Adicione uma indicação de que o pacote é libre

File: `PKGBUILD`

    pkgdesc='description.'

- Finalmente, adicione um sufixo "-libre" em

File: `PKGBUILD`

    pkgname=nonlibrepackage

### A opção difícil

#### A função mksource

Não só o processo de construção deve criar binários livres para a distribuição; as fontes também têm que estar disponíveis. Para isso, use a função padrão chamado "mksource" para a criação de fontes tarballs:

- Declarar a função mksource () antes de construir () (a ordem não importa, é apenas para facilitar a leitura do PKGBUILD)
- Coloque todos os passos necessários para fazer o download da fonte original e criar um livre, isso inclui descarregar, descompactar, aplicar correções, remover arquivos e/ou diretórios e rempaquetar de novo.
- Coloque este tarball livre em um servidor Web público. O nosso é este daqui.
- Mudar a matriz de origem no PKGBUILD para apontar para ele, em vez do original.
- Em caso de dúvida, verifique outro PKGBUILD em nossos repositórios.

Finalmente, executar isto:

    $ source PKGBUILD; mksource

#### A função de construir

Encontrar se qualquer opção sobre a função construir contém as etapas de construção do software. Faça todas as modificações necessárias para apenas construir as fontes livres.

#### A função de pacote

Se o PKGBUILD contém uma função de pacote, tome as medidas necessárias para evitar a instalação de coisas não-libre. Certifique-se também se as licenças correspondentes estão corretamente instaladas no /usr/share/licenses/$pkgname, caso se não forem as licenças comuns.

## Construção

A melhor forma de fazer pacotes é usando um chroot limpo se você seguiu a Guia de Mantenedor de Pacotes:

    # libremakepkg -cu [makepkg flags] [-M --long-opt1] [-M --long-opt2]

Se tudo correu bem, teste ele.

Agora, se você já é um Parabola Package Monkey (com um crachá e acesso ao servidor) tem que fazer as etapas do pacote e subir-los.

    $ librestage $repo
    $ librerelease

Após a próxima execução do `db-update`, estes pacotes serão incluídos no repositório de banco de dados.

Se você não é um package monkey, execute

    $ makepkg --source

envie o *.src.tar.gz para a revisão e depois é só esperar pelos aplausos da galera :-).

## Adicionar detalhes do pacote no artigo de libre-packages

Depois de criar o pacote-libre, por favor, adicione detalhes na página de Libre-packages na wiki de Parabola.

## Adoção e manutenção

Se você quiser manter um pacote (por favor!) pedir a outro empaquetador para fazer as permissões necessárias.

Categories:

- Packaging
- Hacking
- Libre
- Oldwiki