Adaptaciones ] [ Debian GNU/Hurd ] [ Noticias ] [ Configuración ] [ CD de Hurd ] [ Documentación ] [ Desarrollo ] [ Contactos ]

Debian GNU/Hurd

Desarrollo de la distribución

Empaquetado de software Hurd

Los paquetes específicos de Hurd se mantienen en https://salsa.debian.org/hurd-team/.

Adaptar paquetes de Debian

Si quiere ayudar con la arquitectura GNU/Hurd, debería familiarizarse con el sistema de empaquetado de Debian. Una vez que lo haya hecho, leyendo la documentación disponible y visitando el Rincón de los Desarrolladores debería saber cómo extraer los fuentes de los paquetes de Debian y compilar un paquete Debian. He aquí un curso acelerado para los muy perezosos:

Obtener el código fuente y construir paquetes

Se puede obtener el código fuente simplemente ejecutando apt source package, que también extraerá los fuentes.

Para extraer el contenido de un paquete de fuentes de Debian se necesita el fichero package_version.dsc y los ficheros listados en él. El directorio de compilación de Debian se construye con la orden dpkg-source -x package_version.dsc

La construcción de un paquete se lleva a cabo en el nuevo directorio de construcción de Debian package-version con la orden dpkg-buildpackage -B -rsudo "-mMiNombre <MiCorreo>". En lugar de -B se puede usar -b si también quiere construir las partes del paquete que son independientes de la arquitectura (aunque esto normalmente resulta inútil puesto que ya están disponibles en el archivo y construirlas puede requerir dependencias adicionales). Puede utilizar -uc para evitar firmar el paquete con su clave pgp.

La construcción puede necesitar que se instalen paquetes adicionales. La manera más sencilla es ejecutar apt build-dep package, que instalará todos los paquetes necesarios.

Puede ser conveniente usar pbuilder. Se puede construir con sudo pbuilder create --mirror http://deb.debian.org/debian-ports/ --debootstrapopts --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --debootstrapopts --extra-suites=unreleased --extrapackages debian-ports-archive-keyring y entonces se puede usar pdebuild -- --binary-arch que gestionará la descarga de las dependencias, etc. y colocará el resultado en /var/cache/pbuilder/result

Escoja uno

¿En qué paquetes se necesita trabajar? Bien, cualquiera que aún no haya sido adaptado, y lo necesite. Esto cambia de forma constante, de manera que es preferible concentrarse primero en paquetes que tengan muchas dependencias inversas, lo que puede verse en el gráfico de dependencias de paquetes https://people.debian.org/~sthibault/graph-radial.pdf que se actualiza cada día, o en la lista de más solicitados https://people.debian.org/~sthibault/graph-total-top.txt (ésta es la de más solicitados a largo plazo, la de más solicitados a corto plazo es https://people.debian.org/~sthibault/graph-top.txt). También suele ser buena idea escoger de la lista de desactualizados https://people.debian.org/~sthibault/out_of_date2.txt y https://people.debian.org/~sthibault/out_of_date.txt, ya que esos solían funcionar, y ahora están rotos probablemente solo por un par de razones. Puede simplemente escoger uno de los paquetes que faltan de manera aleatoria, o mirar los registros de autoconstrucción en la lista de correo debian-hurd-build-logs, o usar la lista wanna-build de https://people.debian.org/~sthibault/failed_packages.txt . Algunos problemas de construcción son más fáciles de corregir que otros. Típicamente, "undefined reference to foo", donde foo es algo como pthread_create, dlopen, cos, ... (que obviamente están disponibles en hurd-i386), que solamente muestra que el paso de configuración del paquete olvidó incluir -lpthread, -ldl, -lm, etc. en el Hurd también. Tenga en cuenta sin embargo que las funciones ALSA MIDI no está disponible.

También, compruebe si ya se ha realizado trabajo en https://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse, https://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse, y el BTS (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd), y https://wiki.debian.org/Debian_GNU/Hurd, y el estado de los paquetes en vivo en buildd.debian.org, p.ej. https://buildd.debian.org/util-linux.

Paquetes que no van a ser adaptados

Algunos de estos paquetes, o partes de ellos, podrían ser adaptables más adelante, pero, al menos actualmente, se consideran inadaptables. Normalmente se marcan como NotForUs en la base de datos de buildd.

Generalidades de la adaptación

Se puede encontrarUna lista de asuntos comunes en el sitio web del proyecto original. Los siguientes asuntos comunes son específicos de Debian.

Antes de arreglar algo, compruebe si la adaptación kfreebsd* quizá ya tiene un arreglo, y simplemente se debe extender a hurd-i386.

Modificación del instalador de Debian

Para generar una imagen ISO, lo más sencillo es partir de una imagen preexistente de las incluidas en la página de imágenes de CD de Hurd. A continuación, puede montarla y copiarla:

 
mount debian-sid-hurd-i386-NETINST-1.iso /mnt
cp -a /mnt /tmp/myimage
umount /mnt
chmod -R +w /tmp/myimage

Puede montar el disco RAM inicial, y, por ejemplo, reemplazar un traductor por una versión preparada por usted:

 
gunzip /tmp/myimage/initrd.gz
mount /tmp/myimage/initrd /mnt
cp ~/hurd/rumpdisk/rumpdisk /mnt/hurd/
umount /mnt
gzip /tmp/myimage/initrd

Ahora puede generar la nueva imagen ISO con grub-mkrescue:

 
rm -fr /tmp/myimage/boot/grub/i386-pc
grub-mkrescue -o /tmp/myimage.iso /tmp/myimage