Creating -libre packages (Español) - ParabolaWiki

# Creating -libre packages (Español)

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.

## 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.

## 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.

## Como editar el archivo PKGBUILD

### 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

### La parte difícil

#### La función mksource

SRCBUILD (Español)

#### 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.

#### 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.

## Compilación

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

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

Si todo a 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
    $ librerelease

Luego del siguiente `db-update` sea ejecutado. Tu paquete sera incluido en la base de datos del repositorio.

Si tu no eres un Mono empaquetador, ejecuta

    $ makepkg --source

, envía el tarball *.src.tar.gz para revisión y espera por algunos aplausos :-D.

## 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.

## Adopción y mantenimiento

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

## Reconocimiento

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

- Hacking
- Libre