Creating -libre packages (Galego)
Este artigo describe o proceso de creación de paquetes libres, isto quere decir, como substituir os paquetes de Archlinux que conteñen dependencias ou códigos non libres.
Contents
1 Prerequisitos
- É necesario o coñecemento básico de como un pacote Arch é construído (PKGBUILDs, makepkg + seus flags, etc.). Unha boa experiencia, é se anteriormente vostede practicou co AUR.
- Estar sempre no #parabola e asignar os paquetes na nosa [lista de discusión http://lists.parabolagnulinux.org/mailman/listinfo].
- Seguir as instrucións na nosa Guia de Mantedor de Paquetes
- Actualizar o makepkg.conf de makepkg.conf.pacnew se vostede non tivera algún feito por vostede.
- Configurar ~/.makepkg.conf especialmente a sesión PACKAGE OUTPUT, que está preto do fin do ficheiro.
2 Creando un paquete "-libre"
Nós referimonos a un paquete-libre, como un paquete que substitue un paquete non-libre dos repositorios oficiais do Arch Linux. Por exemplo, no caso dokernel26 cambiariase akernel26-libre. Às vezes, hai paquetes que non comparten o mesmo nome, como no caso do firefox que a súa versión libre é o Icecat.
O pacote -libre é creado nos seguintes casos:
- O paquete non é libre, pero unha substitución libre está disponíble.
- O paquete ten algunhas partes non libres, pero é funcional sen eles.
- O paquete depende doutros paquetes non libres, pero é funcional sen eles.
- O paquete recomenda software non-libre.
3 Como editar o PKGBUILD
3.1 A opción máis fácil
Para facer un paquete -libre, o PKGBUILD precisa ser cambiado.
- Un paquete -libre precisa substituir o paquete non libre, así que vostede debe engadir:
provides=("nonlibrepackage=$pkgver") replaces=('nonlibrepackage') conflicts=('nonlibrepackage')
- As dependencias non libres deben ser eliminadas, para identificalos hai un script chamadoPKGBUILD-check-nonfree para verificar se un PKGBUILD ten dependencias non-libres. Eliminalos do
depends=()
- Se un patch é necesario, engadaos no
sources=()
- Se as pezas que eliminamos foran os únicos que tiñan unha licenza personalizada, elimine "custom" no
license=()
- Engada unha indicación de que o paquete é libre
pkgdesc='description.'
- Finalmente, engada un sufixo "-libre" en
pkgname=nonlibrepackage
3.2 A opción dificil
3.2.1 A función mksource
Non só o proceso de construción debe crear binarios libres para a distribución; As fontes tamén teñen que estar disponbles. Para iso, utilice a función por defecto chamado "mksource" para a creación de fontes tarballs:
- Declarar a función mksource () antes de construir () (a orde non importa, é para facilitar a lectura do PKGBUILD)
- Coloque todos os pasos necesarios para facer a descarga (download) da fonte orixinal e crear un libre, iso inclúe descargar, descomprimir, aplicar correccións, eliminar ficheiros e directorios e reempaquetar de novo.
- Coloque este tarball libre nun servidor Web público. O noso é este daqui.
- Cambiar a matriz de orixe no PKGBUILD para apuntar para el, en vez do orixinal.
- No caso de que tivera algunha dúbida, verifique outro PKGBUILD no nosos repositórios.
Finalmente, executar isto:
$ source PKGBUILD; mksource
3.2.2 A función de construir
Encontrar calquera opción sobre a función construir contén as etapas da construción do software. Faga todas as modificacións necesarias para construir as fontes libres.
3.2.3 A función do paquete
Se o PKGBUILD contén unha función do paquete, tome as medidas necesarias para evitar a instalação de coisas não-libre. Asegurese tamén se as licenzas correspondentes están correctamente instaladas no /usr/share/licenses/$pkgname, caso non foran licenzas comínns.
4 Construción
A mellor forma de facer paquetes é utilizando un chroot limpo se vostede seguiu a Guia do Mantedor de Paquetes:
# libremakepkg -cu [makepkg flags] [-M --long-opt1] [-M --long-opt2]
Se todo ficou ben, probeo.
Agora, se vostede xa é un Parabola Package Monkey (cunha crachá e aceso ao servidor) ten que facer as etapas do paquete e subilos.
$ librestage $repo $ librerelease
Após a próxima execución do db-update
, estes paquetes serão incluídos no repositório de banco de dados.
$ makepkg --sourceenvie o *.src.tar.gz para a revisión e depois é só esperar polos aplausos da xente :-).
5 Engadir detalles do paquete no artigo de libre-packages
Depois de crear o paquete-libre, por favor, engadindo detalles na páxina de Libre-packages na wiki de Parabola.
6 Adopción e manutención
Se vostede quixera manter un paquete (por favor!) peda outro empaquetador para facer os permisos necesarios.