Paquetes de ayuda

Hay un conjunto de scripts utilizados para construir los paquetes de Trisquel. Se encuentra en https://devel.trisquel.info/trisquel/package-helpers y los llamamos "ayudantes". Los usamos para modificar y compilar los paquetes que vienen desde Ubuntu aguas arriba y que lo necesitan. Puede ser debido a que contienen cosas no libres, a referencias a Ubuntu que se deben cambiar, o porque queremos que el paquete trabaje a nuestra manera.

Estos ayudantes son similares a algunos en el generador de gNewSense; tomamos algunas ideas e incluso algunas líneas de ellas. Si usted planea construir un derivado de Ubuntu por su cuenta, sugerimos que utilice builder en lugar del generador de estos ayudantes.

Todos los paquetes en esta lista están en la lista negra en el repositorio de actualización, por lo que nunca entrar en la repo de aguas arriba y necesitan ser compilados con estos ayudantes y empujados a reprepro.

Estos ayudantes también necesita ser ejecutado por la mano (y los resultados de la prueba) en cualquier momento de la repo de vigilancia advierte acerca de las actualizaciones pendientes de aguas arriba.

Para agregar un paquete a la lista, sólo tienes que copiar uno (https://devel.trisquel.info/trisquel/package-helpers/blob/belenos/helpers/make-apache2/make-apache2 es una buena plantilla) y cambiarle el nombre a hacer-sourcePackageName.

Algunas recomendaciones:

  • Tenga cuidado de usar el derecho sourcePackageName, muchos de los paquetes fuente de producir varios paquetes binarios. "apt-cache showsrc binario-paquete" puede ayudar.
  • Si es posible, usar sed para reemplazar cadenas en el código fuente original sin la necesidad de archivos externos o parches. Si usted realmente necesita para incluir un archivo, en el directorio sourcePackageName
  • No sustituir a *todas* las referencias a Ubuntu en el paquete, sólo aquellos que realmente se muestra al usuario. Para evitar la sustitución de declaraciones de derechos de autor!
  • Trate de escribir sus reemplazos en una forma en que podría funcionar en versiones futuras de la parte de arriba del paquete. Bien escrito regex y sed va a ayudar con eso.

Escribir nuevo ayudantes

Usted necesitará una copia del paquete de origen como base para codificar y probar su sed/awk comando para los cambios. Utilizando el Trisquel de origen del paquete es lo suficientemente bueno para casi todos los casos. En un directorio independiente (digamos $HOME/src ):

apt-get source package-name

Si ahora cd en el "nombre-de-paquete de liberación de la guía" usted está en el mismo lugar correspondiente paquete de ayudante de sed scripts se ejecutan.

Lista de variables disponibles dentro de los scripts de ayudante

NOMBRE=belenos
El nombre en clave de la actual Trisquel liberación
La REVISIÓN=7.0
Número de la versión actual de Trisquel liberación
Aguas ARRIBA=confianza
Ascendente nombre en clave para la liberación
ESPEJO=http://archive.ubuntu.com/ubuntu
Aguas arriba del espejo desde el que conseguir las fuentes
DEVELMIRROR=http://devel.trisquel.info/trisquel
El desarrollo espejo
Útil cuando un paquete depende de otro que necesita ser trisquelized primera
LOCALMIRROR=http://archive.trisquel.info/trisquel # La réplica oficial
EXTERNO="deb-src http://sample.repo.foo/ corriente principal"
Hace que las fuentes en que repositorio disponible para la compilación
Sólo se utilizará si Ubuntu no proporciona el paquete o su versión es inferior
$DATA/
Directorio que contiene los archivos para el ayudante
Poner los archivos en los ayudantes/DATOS/$PAQUETE
Ejemplo de uso: cp $DATA/file.txt debian/patches
VERSION=1
Trisquel versión append (como en 2.4-1ubuntu4+7.0trisquel1)
Añadimos "+7.0trisquel1", que es de +${REVISIÓN}trisquel${VERSION}
Aumentar cada vez que el ayudante se actualiza
COMPONENTE=principal
Indica que el sistema de generación que viene el paquete de principal, por lo que las traducciones deberían ser eliminados
Utilizar sólo cuando el cambio de nombre no afecta a los locales!
FAKEROOT=true
Indica el sistema de construcción a utilizar un fakeroot y compilar el usuario "nadie"
PARALELO=true
Compilar con -j$NUM_PROCESSORS.

Más información

All packages in this list are in the appropriate blacklist in the repository updater, so they never enter into the repo from upstream and need to be compiled with these helpers and pushed into reprepro.

These helpers also need to be run by hand (and the results tested) any time the repo watchdog warns about pending updates from upstream.

To add a package to the list, just copy one (make-apache2 is a good template) and rename it to make-sourcePackageName.

Some recommendations:

  • Take care to use the right sourcePackageName, many source packages produce several binary packages. "apt-cache showsrc binary-package" can help you.
  • If possible, use sed to replace chains in the upstream source without the need of external files or patches. If you really need to include a file, place it at the DATA/sourcePackageName directory
  • Do not replace *all* references to Ubuntu in the package, just those that would actually be shown to the user. Avoid replacing copyright statements!
  • Try to write your replacements in a way they might work in future versions of the upstream package. Well written regexps and sed will help with that.

Writing new helpers

You'll need a copy of the package source as a basis to code and test your sed/awk command for the changes. Using the Trisquel package source is good enough for nearly all cases. In a separate directory (say $HOME/src ) do:

apt-get source package-name
If you now cd into the package-name-release directory you're in the same relative place package helper sed scripts are run.

List of available variables inside the helper scripts

CODENAME=belenos
The codename of the current Trisquel release
REVISION=7.0
The version number for the current Trisquel release
UPSTREAM=trusty
The upstream codename for the release
MIRROR=http://archive.ubuntu.com/ubuntu
The upstream mirror from where to get the sources
DEVELMIRROR=http://devel.trisquel.info/trisquel
The development mirror
Useful when a package depends on other that needs to be trisquelized first
LOCALMIRROR=http://archive.trisquel.info/trisquel # The official mirror
EXTERNAL="deb-src http://sample.repo.foo/ current main"
Makes the sources in that repository available for compilation
It will only be used if Ubuntu doesn't provide the package or its version is lower
$DATA/
Directory containing files for the helper
Put the files in helpers/DATA/$PACKAGE
Usage example: cp $DATA/file.txt debian/patches
VERSION=1
Trisquel version to append (as in 2.4-1ubuntu4+7.0trisquel1)
We append "+7.0trisquel1", which is +${REVISION}trisquel${VERSION}
Increase every time the helper is updated
COMPONENT=main
Tells the build system that the package comes from main, so the translations should be stripped
Use only when the rebranding doesn't affect the locales!
FAKEROOT=true
Tells the build system to use a fakeroot and compile as user "nobody"
PARALLEL=true
Compile with -j$NUM_PROCESSORS.

More information

Revisiones

08/04/2016 - 07:49
alejandro_blue