Ubuntu logo

Packaging Guide

7. Corrección de paquetes que no compilan a partir del código fuente (FTBFS)

Antes de que un paquete se pueda usar en Ubuntu, tiene que compilarse a partir del código fuente. Si esto falla, probablemente espere en -proposed (propuesto) y no estará disponible en los repositorios de Ubuntu. Puede encontrar una lista completa de los paquetes para los que falla la compilación desde el código fuente en http://qa.ubuntuwire.org/ftbfs/. Se muestran cinco categorías principales en esta página:

  • Paquetes que fallan la compilación (F): algo falló en el proceso de compilación.

  • Compilaciones canceladas (X): la compilación se ha cancelado por algún motivo. Estas probablemente deberían evitarse para empezar.

  • El paquete está esperando a otro paquete (M): este paquete está esperando a que otro paquete se compile, se actualice o (si el paquete está en «main») una de sus dependencias está en la parte equivocada del repositorio.

  • Fallo en el «chroot» (C): la parte del «chroot» ha fallado, lo que muy probablemente se arregle mediante una recompilación. Pida a un desarrollador que recompile el paquete y esto debería solucionarlo.

  • Falló al subirlo (U) el paquete no se pudo subir. Generalmente es simplemente un caso en el que pedir una recompilación, pero compruebe antes el registro de la compilación.

7.1. Primeros pasos

Lo primero que querrá hacer es ver si puede reproducir el problema de compilación por usted mismo. Obtenga el código ejecutando bzr branch lp:ubuntu/PAQUETE y después obteniendo el tarball o ejecute dget PAQUETE_DSC` sobre el archivo .dsc de la página de launchpad. Una vez lo tenga, compílelo en un «schroot».

Debería ser capaz de reproducir el error de compilación. Si no es así, compruebe si la compilación está descargando una dependencia faltante, lo que quiere decir que simplemente necesita convertirla en una dependencia de compilación en debian/control. Compilar el paquete en local también puede ayudar a saber si el problema está causado por una dependencia que falta, no listada (se compila localmente, pero falla en un «schroot»).

7.2. Comprobando Debian

Una vez que haya reproducido la incidencia, será el momento de buscar una solución. Si el paquete está también en Debian, puede comprobar si compila allí yendo a http://packages.qa.debian.org/PAQUETE. Si Debian cuenta con una versión más moderna, debería fusionarla. Si no es así, compruebe los registros de compilación y los errores enlazados desde esa página para conseguir información adicional sobre los problemas de compilación o parches. Debian también mantiene una lista de órdenes que fallaron al compilar y cómo corregirlas, la cual se puede encontrar en https://wiki.debian.org/qa.debian.org/FTBFS, donde podrá buscar soluciones.

7.3. Otras causas para para que un paquete falle para compilarse desde el código fuente (FTBFS).

Si un paquete está en «main» y le falta una dependencia que no está en «main», tendrá que rellenar un error de MIR. En https://wiki.ubuntu.com/MainInclusionProcess se explica el procedimiento para hacerlo.

7.4. Corregir la incidencia

Una vez que haya encontrado una solución al problema, siga el mismo proceso para cualquier otro error. Cree un parche, añádalo a una rama bzr o a un error, suscríbase a ubuntu-sponsors y luego intente que lo incluyan agua arriba o en Debian.