Creating -libre packages (Español)

From ParabolaWiki
Jump to: navigation, search

Este articulo describe el proceso de creación de paquetes -libre (libres), ésto es, cómo reemplazar paquetes de Archlinux los cuales contienen código y dependencias no-libres.

1 Pre requisitos

  • Conocimientos básicos de como un paquete de Arch es construido son necesarios (PKGBUILD (Español), makepkg + sus flags, etc). Haber practicado con el espectacular AUR sirve para acumular experiencia.
  • Visitar de vez en cuando nuestro canal de IRC #parabola en freenode.net y/o suscribirse a packages en nuestra lista de correo.
  • Seguir las instrucciones de nuestro Package maintainer guide (Español).
  • Actualizar makepkg.conf desde makepkg.conf.pacnew si aun no lo has hecho.
  • Configurar ~/.makepkg.conf especialmente la sección PACKAGE OUTPUT. Eso esta cerca de el final del archivo.

2 Creando un paquete -libre

cuando hablamos de un paquete -libre, nos referimos a un paquete que reemplazara uno de los paquetes no-libres que residen en el repositorio oficial de Archlinux. Por ejemplo, kernel26 se convierte en kernel26-libre. Algunas veces los paquetes no comparten el mismo nombre, como firefox que se convierte en icecat.

Un paquete -libre es creado en alguno de los siguientes casos:

  • El paquete es no-libre pero un reemplazo libre esta disponible.
  • El paquete contiene algunas partes no-libres, pero es totalmente funcional sin ellas.
  • El paquete depende de otras paquetes no-libres, pero es totalmente funcional sin ellas.
  • El paquete recomienda software no-libre.
Note: En ultimo caso puede que no sea necesario recopilar, así que en ese caso usamos un rePKGBUILD.

3 Como editar el archivo PKGBUILD

3.1 La parte fácil

Para hacer un paquete -libre, el archivo PKGBUILD debe ser modificado.

  • Un paquete -libre necesita reemplazar su versión no-libre, así que debes agregar
File: PKGBUILD
provides=("nonlibrepackage=$pkgver")
replaces=('nonlibrepackage')
conflicts=('nonlibrepackage')
  • Las dependencias que no sean libres deben ser eliminadas, para identificarlas existe un script llamado pkgbuild-check-nonfree para revisar si un archivo PKGBUILD posee dependencias no-libres. Elimínelas
File: PKGBUILD
depends=()
  • Si un parche es requerido agréguelo
File: PKGBUILD
source=()
  • Si las partes que hemos eliminados eran las únicas que tenían una licencia personalizada o custom, elimínela
File: PKGBUILD
license=()
  • Añada una indicación de que el paquete es libre
File: PKGBUILD
pkgdesc='description.'
  • Finalmente añada el sufijo -libre al nombre del paquete
File: PKGBUILD
pkgname=nonlibrepackage

3.2 La parte difícil

3.2.1 La función mksource

SRCBUILD (Español)

3.2.2 La función build

Busque cualquier opción en la función build que contenga los pasos para la compilación del software. Haga todas las modificaciones necesarias para compilar solo software libre.

3.2.3 La función package

Si el PKGBUILD contenía la función package, realice los cambios necesarios para evitar la instalación de software privativo. Ademas asegúrese que las licencias correspondientes están correctamente instaladas en /usr/share/licenses/$pkgname en caso de que ellas no sean licencias comunes.

4 Compilación

La mejor manera de empaquetar es usando un chroot limpio Si ha seguido las indicaciones de Package maintainer guide (Español):

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

Si todo ha ido bien, ¡prueba el paquete!.

Ahora, si ya eres un Mono empaquetador para Parabola (con una tarjeta de identificación y acceso al servidor) tendrás que preparar el paquete para subirlo.

$ librestage $repo
$ gpg-agent
$ librerelease

Luego que el siguiente db-update sea ejecutado, su paquete sera incluido en la base de datos del repositorio. librerelease ejecuta db-update, entonces el paquete será incluído en el repositorio inmediatamente.

Si tu no eres un Mono empaquetador, ejecuta
$ makepkg --source
, y envía el tarball *.src.tar.gz para revisión y espera por algunos aplausos :-D.

5 Agregue PKGBUILD a abslibre

Clone el repositorio de git que contiene ABSLibre:

* git clone gparabola:abslibre.git
    

Ingrese al directorio repo

* cd abslibre/$repo
    

Cree un directorio con el mismo nombre que el nombre de su paquete

* mkdir yourpackage
    

Copie PKGBUILD and compile los archivos relacionados (parches) con este directorio. Agregue los archivos copiados a git

* git add yourpackage/yourfiles
    

(Asegúrese que ~/.gitconfig contiene los campos 'name' y 'email'.)

DEspués de una compilación exitosa, haga un commit

* git commit -m"Adding yourpackage\n\nSome more information"
    

Sincronice el repositorio

* git push

6 Añadir los detalles sobre el paquete al articulo libre-packages

Luego de crear el paquete-libre, por favor añada los detalles en la pagina Libre-packages en esta wiki.

7 Adopción y mantenimiento

Si deseas mantener un paquete (¡por favor, hazlo!) pide a otro empaquetador por los permisos necesarios para el paquete dado.

8 Reconocimiento

Este artículo está basado de ArchWiki. Es posible que hayamos eliminado pedazos con contenido "no-FSDG" en ella.