#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 &lt;MiCorreo&gt;"</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>

Responder a