Creating -libre packages (Galego) - ParabolaWiki

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

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

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

## Como editar o PKGBUILD

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

### A opción dificil

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

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

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

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

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

## Adopción e manutención

Se vostede quixera manter un paquete (por favor!) peda outro empaquetador para facer os permisos necesarios.

Categories:

- Packaging
- Hacking
- Libre
- Oldwiki