#use wml::debian::template title="Debian GNU/Hurd --- Desarrollo" NOHEADER="yes" #use wml::debian::translation-check translation="1.34" #include "$(ENGLISHDIR)/ports/hurd/menu.inc"
<h1> Debian GNU/Hurd</h1> <h2> Desarrollo de la distribución</h2> <h3> Discos de arranque</h3> <p> En estos momentos no trabajamos en discos de arranque nativos. Sin embargo, contamos con los fundamentos necesarios para hacerlos, y a veces adaptamos paquetes individuales que son necesarios para dicha tarea. Si desea ayudarnos, trabaje en el proyecto debian-installer y asegúrese de que sus componentes se ejecutan en Hurd. <h3> Adaptar paquetes de Debian</h3> <p> Si quiere ayudar con la arquitectura Debian GNU/Hurd, debería familirizarse con el sistema de empaquetado de Debian. Una vez que lo haya hecho, leyendo la documentación disponible y visitando el <a href="$(HOME)/devel/"> Rincón de los Desarrolladores</a> debería saber como extraer los paquetes fuentes de Debian y construir un paquete Debian. He aquí un curso acelerado para los muy perezosos:</p> <h3> Obtener el código fuente y construir paquetes</h3> <p> Extraer un paquete fuente de Debian requiere del fichero <code>package_version.dsc</code> y los ficheros listados en él. Puede construir el directorio de compilación de Debian con la orden <code>dpkg-source -x package_version.dsc</code></p> <p> La construcción de un paquete se lleva a cabo en el nuevo directorio de construcción Debian <code>package-version</code> con la orden <code>dpkg-buildpackage -B -rsudo "-mMiNombre <MiCorreo>"</code>. En lugar de <code>-B</code> puede usar <code>-b</code> si quiere construir también las partes del paquete que son independientes de la arquitectura. Puede utilizar <code>-rfakeroot</code> en lugar de <code>-rsudo</code>, si utiliza el paquete fakeroot. Si está construyendo como usuario root, puede hacerlo sin <code>-r</code>. Puede añadir <code>-uc</code> para evitar firmar el paquete con su clave pgp.</p> <h3> Escoja uno</h3> <p> ¿En que paquetes se necesita trabajar? Bien, cualquiera que no esté adaptado aún, pero se necesita adaptar. Esto cambia de forma constante, de manera que escoja al azar uno que no lo esté, o compruebe la información sobre el proceso de autocompilación en la lista de correos debian-hurd. <h4> Paquetes que no serán adaptados </h4> <p> Algunos de estos paquetes, o partes de ellos, podrían adaptarse más adelante, pero por el momento se consideran no adaptables.</p> <ul> <li> <code>base/update</code>, porque el Hurd no necesita un demonio update (los sistemas de archivos se sincronizan ellos mismos). Para cambiar el intervalo de sincronización, puede utilizar <code>fsysopts</code> para ajustar la opción <code>--sync</code>. ¡Usted puede establecer diferentes intervalos de sincronización para cada sistema de archivos! Para hacerlo manualmente, utilice la utilidad <a href="hurd-doc-utils#syncfs"><code>syncfs</code></a>.</li> <li> <code>base/makedev</code>, porque el Hurd viene con su propia versión de este guión. El paquete de fuentes de Debian sólo contiene una versión específica para Linux.</li> <li> <code>base/ld.so</code>, porque el Hurd no utiliza el enlazador que se distribuye con la biblioteca de C de GNU.</li> <li> <code>base/modconf</code> y <code>base/modutils</code>, porque el concepto de módulo es específico de Linux.</li> <li> <code>base/netbase</code>, porque el resto de cosas que hay en él es muy específico del núcleo Linux. El Hurd, en su lugar, utiliza <code>inetutils</code>.</li> <li> <code>base/pcmcia-cs</code>, porque el Hurd no da soporte para PCMCIA (e incluso si lo tuviese, este paquete es probablemente específico para Linux).</li> <li> <code>base/procps</code>, porque este código es específico para el sistema de ficheros proc de Linux.</li> <li> <code>base/ppp</code> y <code>base/pppconfig</code>, porque el Hurd no da ningún soporte para PPP (e incluso si lo tuviese, este paquete es probablemente muy específico para Linux).</li> <li> <code>base/setserial</code>, porque es específico para el núcleo de Linux. Sin embargo, con la adaptación de los gestores de dispositivos de caracteres al Mach de GNU, quizá podamos utilizarlo.</li> </ul> <h3 name="porting_issues"> Cuestiones generales de la adaptación </h3> <p> <a href="http://www.gnu.org/software/hurd/hurd/porting/guidelines.html">Una lista de cuestiones comunes</a> está disponible en el sitio web original. Las siguientes cuestiones comunes son específicas de Debian.</p> <ul> <li> <code>Dependencia de libc6 rota</code> <p> Algunos paquetes usan una dependencia erronea al <code>libc6-dev</code>. Esto es un error porque <code>libc6</code> es específica para algunas arquitecturas de GNU/Linux. El paquete correspondiente para GNU es <code>libc0.3-dev</code> pero otros sistemas operativos tendrán diferentes bibliotecas. Usted puede localizar el problema en el fichero <code>debian/control</code> del árbol de fuentes. La solución típica incluye la detección del sistema operativo, use <code>dpkg-architecture</code> y codificar el nombre el sistema operativo, o mejor, usar un "o" lógico, por ejemplo: <code>libc6-dev | libc6.1-dev | libc0.3-dev | libc0.1-dev | libc-dev</code>. El paquete virtual <code>libc-dev</code> funciona con algunos nombres de sistemas operativos pero tiene que usarlo sólo como última opción.</p></li> </ul>