Siguiente: , Anterior: , Subir: Contribuir   [Índice general][Índice]


16.4 Pautas de empaquetamiento

La distribución GNU es reciente y puede no disponer de alguno de sus paquetes favoritos. Esta sección describe cómo puede ayudar a hacer crecer la distribución.

Los paquetes de software libre habitualmente se distribuyen en forma de archivadores de código fuente—típicamente archivos tar.gz que contienen todos los archivos fuente. Añadir un paquete a la distribución significa esencialmente dos cosas: añadir una receta que describe cómo construir el paquete, la que incluye una lista de otros paquetes necesarios para la construcción, y añadir metadatos del paquete junto a dicha receta, como la descripción y la información de licencias.

En Guix toda esta información está contenida en definiciones de paquete. Las definiciones de paquete proporcionan una vista de alto nivel del paquete. Son escritas usando la sintaxis del lenguaje de programación Scheme; de hecho, definimos una variable por cada paquete enlazada a su definición y exportamos esa variable desde un módulo (véase Módulos de paquetes). No obstante, un conocimiento profundo de Scheme no es un pre-requisito para la creación de paquetes. Para más información obre las definiciones de paquetes, véase Definición de paquetes.

Una vez que una definición de paquete está en su lugar, almacenada en un archivo del árbol de fuentes de Guix, puede probarse usando la orden guix build (véase Invocación de guix build). Por ejemplo, asumiendo que el nuevo paquete se llama gnuevo, puede ejecutar esta orden desde el árbol de construcción de Guix (véase Ejecución de Guix antes de estar instalado):

./pre-inst-env guix build gnuevo --keep-failed

El uso de --keep-failed facilita la depuración de errores de construcción ya que proporciona acceso al árbol de la construcción fallida. Otra opción útil de línea de órdenes para la depuración es --log-file, para acceder al log de construcción.

Si el paquete resulta desconocido para la orden guix, puede ser que el archivo fuente contenga un error de sintaxis, o no tenga una cláusula define-public para exportar la variable del paquete. Para encontrar el problema puede cargar el módulo desde Guile para obtener más información sobre el error real:

./pre-inst-env guile -c '(use-modules (gnu packages gnuevo))'

Una vez que se construya correctamente su paquete, por favor, envíenos un parche (véase Envío de parches). En cualquier caso, si necesita ayuda también estaremos felices de ayudarle. Una vez el parche se haya incorporado al repositorio de Guix, el nuevo paquete se construye automáticamente en las plataformas disponibles por nuestro sistema de integración continua.

Las usuarias pueden obtener la nueva definición de paquete ejecutando simplemente guix pull (véase Invocación de guix pull). Cuando ci.guix.gnu.org ha terminado de construir el paquete, la instalación del paquete descarga automáticamente los binarios desde allí (véase Sustituciones). El único lugar donde la intervención humana es necesaria es en la revisión y aplicación del parche.


Siguiente: , Anterior: , Subir: Contribuir   [Índice general][Índice]