Creating -libre packages (Galego)

From ParabolaWiki
Jump to: navigation, search

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.

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.
Nota: No último caso, pode haber necesidade de recompilar, entón utilizamos o rePKGBUILD

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:
File: PKGBUILD
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
File: PKGBUILD
depends=()
  • Se un patch é necesario, engadaos no
File: PKGBUILD
sources=()
  • Se as pezas que eliminamos foran os únicos que tiñan unha licenza personalizada, elimine "custom" no
File: PKGBUILD
license=()
  • Engada unha indicación de que o paquete é libre
File: PKGBUILD
pkgdesc='description.'
  • Finalmente, engada un sufixo "-libre" en
File: PKGBUILD
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.

Se vostede non é un package monkey, execute
$ makepkg --source
envie 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.