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.
Contents
1 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.
2 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.
3 Como editar o PKGBUILD
3.1 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:
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
depends=()
- Se um patch é necessário, adicione ele no
sources=()
- Se as peças que nós removemos foram os únicos que tinham uma licença personalizada, remova "custom" no
license=()
- Adicione uma indicação de que o pacote é libre
pkgdesc='description.'
- Finalmente, adicione um sufixo "-libre" em
pkgname=nonlibrepackage
3.2 A opção difícil
3.2.1 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
3.2.2 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.
3.2.3 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.
4 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.
$ makepkg --sourceenvie o *.src.tar.gz para a revisão e depois é só esperar pelos aplausos da galera :-).
5 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.
6 Adoção e manutenção
Se você quiser manter um pacote (por favor!) pedir a outro empaquetador para fazer as permissões necessárias.