Creating -libre packages (Português)

i18n


Dansk – Deutsch – English – Esperanto – Español – Euskera – Français – Galego – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Polski – Português – Română – Slovenský – Suomi – Svenska – Türkçe – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

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.