aboutsummaryrefslogtreecommitdiff
path: root/es_ES.ISO8859-1/articles
diff options
context:
space:
mode:
authorJ. Vicente Carrasco <carvay@FreeBSD.org>2005-01-12 19:40:40 +0000
committerJ. Vicente Carrasco <carvay@FreeBSD.org>2005-01-12 19:40:40 +0000
commit996780c87fb72c419a5922ad7a09c4f8588f720c (patch)
treee09ec3db72b7c808b7ccba821486e9663f191321 /es_ES.ISO8859-1/articles
parentbb563abcf70bab40636697f7f5befdccffff1383 (diff)
downloaddoc-996780c87fb72c419a5922ad7a09c4f8588f720c.tar.gz
doc-996780c87fb72c419a5922ad7a09c4f8588f720c.zip
New translation added.
Submitted by: Juan F. Rodriguez jrh at it.uc3m.es Approved by: jesusr (mentor)
Notes
Notes: svn path=/head/; revision=23531
Diffstat (limited to 'es_ES.ISO8859-1/articles')
-rw-r--r--es_ES.ISO8859-1/articles/releng/article.sgml1149
1 files changed, 1149 insertions, 0 deletions
diff --git a/es_ES.ISO8859-1/articles/releng/article.sgml b/es_ES.ISO8859-1/articles/releng/article.sgml
new file mode 100644
index 0000000000..c437fe506c
--- /dev/null
+++ b/es_ES.ISO8859-1/articles/releng/article.sgml
@@ -0,0 +1,1149 @@
+<!--
+ The FreeBSD Documentation Project
+ $FreeBSD$
+-->
+
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
+<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
+%man;
+<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous
+FreeBSD Entities//EN"> %freebsd;
+<!ENTITY % newsgroups PUBLIC "-//FreeBSD//ENTITIES DocBook Newsgroup Entities//ES"> %newsgroups;
+<!ENTITY % authors PUBLIC "-//FreeBSD//ENTITIES DocBook Author Entities//EN">
+%authors;
+<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//ES">
+%mailing-lists;
+<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
+%translators;
+<!ENTITY % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN">
+%trademarks;
+<!ENTITY % teams PUBLIC "-//FreeBSD//ENTITIES DocBook Team Entities//EN">
+%teams;
+<!ENTITY % not.published "IGNORE">
+]>
+
+
+<article>
+ <title>Proceso de generaci&oacute;n de releases en FreeBSD</title>
+ <articleinfo>
+
+ <!-- Este art&iacute;culo se present&oacute; en la BSDConferece Europea celebrada en Brighton, UK
+ el 11 de Noviembre de 2001 -->
+ <confgroup>
+ <confdates>November 2001</confdates>
+ <conftitle>BSDCon Europe</conftitle>
+ </confgroup>
+
+ <authorgroup>
+ <author>
+ <firstname>Murray</firstname>
+ <surname>Stokely</surname>
+ <authorblurb>
+ <para> He estado colaborando con el desarrollo de
+ productos basados en FreeBSD desde 1997 en Walnut Creek
+ CDROM, BSDi, y actualmente en Wind River Systems. FreeBSD
+ 4.4 ha sido la primera release en la que he tenido el
+ placer de participar.</para>
+ </authorblurb> <affiliation>
+ <address><email>murray@FreeBSD.org</email> <otheraddr><ulink
+ url="http://www.FreeBSD.org/~murray/"></ulink></otheraddr>
+ </address> </affiliation> </author> </authorgroup>
+
+ <pubdate>$FreeBSD$</pubdate>
+
+ <legalnotice id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.cvsup;
+ &tm-attrib.intel;
+ &tm-attrib.xfree86;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <abstract>
+ <para>Este art&iacute;culo describe la aproximaci&oacute;n utilizada por el
+ equipo de ingenier&iacute;a de productos de FreeBSD para generar
+ releases de calidad y listas para utilizar en entornos de
+ producci&oacute;n. Se detalla la metodolog&iacute;a utilizada para generar
+ la release oficial de FreeBSD y se describen las herramientas
+ disponibles para aquellas personas interesadas en generar sus
+ propias releases a medida de sus necesidades, en particular
+ para demostraciones de empresa o para comercializar el
+ producto.</para>
+ &trans.es.jrh;
+ </abstract>
+ </articleinfo>
+
+<!-- Introduction -->
+<sect1 id="introduction">
+ <title>Introducci&oacute;n</title>
+
+ <para>El desarrollo de &os; es un proceso realmente abierto al
+ p&uacute;blico. FreeBSD se alimenta de contribuciones de miles de
+ personas del mundo entero. El Proyecto &os; proporciona
+ acceso p&uacute;blico a trav&eacute;s de <acronym>CVS</acronym>[1] de tal
+ forma que cualquiera puede acceder a los mensajes de log y a los
+ archivos de diferencias (tambi&eacute;n conocidos como <quote>diffs</quote> o parches)
+ aplicados a distintas ramas de desarrollo, junto con el resto de
+ funcionalidad que el gestor de c&oacute;digo fuente pone a nuestra
+ disposici&oacute;n. Este hecho, aunque muchas veces pasa inadvertido,
+ ha constituido uno de los m&aacute;s importantes recursos de la
+ comunidad y ha servido para captar y motivar a muchos
+ desarrolladores con talento. No obstante, y creo que todo el
+ mundo est&aacute; de acuerdo con lo que voy a decir, ser&iacute;a un
+ completo caos proporcionar acceso de escritura a todo el que pueda
+ conectarse a Internet. Es por esto que existe s&oacute;lo un
+ <quote>selecto</quote> grupo de en torno a 300 personas que
+ poseen dicho acceso de escritura
+ en el repositorio de <acronym>CVS</acronym>. Estos
+ <emphasis>committers[6]</emphasis> se responsabilizan del
+ desarrollo del coraz&oacute;n de &os;. Un
+ <emphasis>core-team[7]</emphasis> compuesto por desarrolladores muy
+ experimentados proporciona ciertas directrices a la
+ direcci&oacute;n que va a tomar el proyecto.</para>
+
+
+ <para>El r&aacute;pido ritmo de desarrollo de <systemitem
+ class="osname">FreeBSD</systemitem> deja poco tiempo para pulir el
+ sistema y proporcionar una release de calidad equivalente a las
+ releases de sistemas comerciales. Para resolver este problema, se
+ contin&uacute;a el desarrollo en dos caminos paralelos. La rama de
+ desarrollo principal se denomina <emphasis>HEAD</emphasis> o
+ <emphasis>trunk</emphasis> (tronco) y constituye el punto de
+ desarrollo m&aacute;s avanzado del &aacute;rbol CVS. Esta rama consituye lo que
+ llamamos <quote>FreeBSD-CURRENT</quote> o simplemente
+ <quote>-CURRENT</quote> para abreviar.</para>
+
+ <para>Tambi&eacute;n se mantiene una rama m&aacute;s estable, conocida como
+ <quote>FreeBSD-STABLE</quote> o <quote>-STABLE</quote>.
+ Ambas ramas conviven en el repositorio maestro de CVS localizado
+ en California y dicho repositorio se replica v&iacute;a
+ <application class="software">CVSup</application>[2] creandose
+ una serie de r&eacute;plicas (tambi&eacute;n llamadas espejos o mirrors)
+ por todo el mundo.
+ FreeBSD-CURRENT[8] consituye el l&iacute;mite tecnol&oacute;gico (o
+ <quote>bleeding-edge</quote> en ingl&eacute;s) del desarrollo del sistema
+ &os; y es donde se aplican en primer lugar cualquier cambio
+ realizado al sistema. FreeBSD-STABLE constituye la rama de
+ desarrollo de la cual se generan las releases principales.
+ Los cambios en el sistema se producen a un ritmo variable
+ asumiendose que dichos cambios generalmente se aplican primero a la
+ rama -CURRENT, quedando a disposici&oacute;n de la comunidad de usuarios
+ para que comprueben el correcto funcionamiento global del
+ sistema de una forma exhaustiva antes de aplicarlos a -STABLE, en
+ caso de que fuera necesaria su aplicaci&oacute;n.
+
+ <para>En el periodo entre releases, se construyen copias del sistema
+ tomadas a determinadas horas de la noche y se ponen a disposici&oacute;n
+ del p&uacute;blico en <systemitem class="resource">ftp://stable.FreeBSD.org/</systemitem>.
+ La amplia disponibilidad de releases de copias binarias
+ actualizadas del sistema (<quote>snapshosts</quote>) y la tendencia de nuestra
+ comunidad de usuarios a mantenerse a la &uacute;ltima del desarrollo en
+ la rama -STABLE mediante la utilizaci&oacute;n de CVSup y <quote><command>make</command>
+ <maketarget>world</maketarget></quote>[8] ayuda a mantener la rama
+ FreeBSD-STABLE en unas condiciones de fiabilidad excelentes
+ que incluso llegan a ralentizar las peticiones de nuevas releases
+ basadas en actividades de depuraci&oacute;n de la calidad del
+ software.</para>
+
+ <para>Los informes de problemas y las solicitudes de nuevas
+ caracter&iacute;sticas no paran de producirse durante el ciclo de vida de
+ una release. Los informes de problemas se almacenan en la base de
+ datos <application class="software">GNATS</application>[9]
+ utilizando el correo eletr&oacute;nico, la aplicaci&oacute;n &man.send-pr.1; o
+ v&iacute;a la interfaz web proporcionada en <ulink
+ url="http://www.FreeBSD.org/send-pr.html"></ulink>. Adem&aacute;s de la
+ multitud de listas de correo de car&aacute;cter t&eacute;cnico que &os; pone
+ a nuestra disposici&oacute;n, el &a.qa; proporciona un foro de
+ discusi&oacute;n sobre aspectos <quote>a pulir</quote> del sistema
+ antes de su salida.</para>
+
+ <para>Para dar servicio a nuestro usuarios m&aacute;s conservadores, con la
+ aparici&oacute;n de FreeBSDD 4.3 se introdujeron ramas individuales
+ dentro del &aacute;rbol CVS. Estas ramas de releases se crean poco
+ tiempo despu&eacute;s de la generaci&oacute;n de una release final. Una vez
+ generada la &uacute;ltima release (la m&aacute;s actual o m&aacute;s reciente),
+ s&oacute;lo se aplican a esta release las modificaciones m&aacute;s
+ cr&iacute;ticas o necesarias, normalmente aquellas que provienen de fallos de
+ seguridad. Adem&aacute;s de las actualizaciones del c&oacute;digo fuente a
+ trav&eacute;s de CVS, existen paquetes de parches binarios para mantener
+ las releases
+ <emphasis>RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></emphasis>
+ actualizadas.</para>
+
+ <para>La <xref linkend="release-proc"> describe las distintas fases del
+ proceso de ingenier&iacute;a de releases que se utiliza para construir el
+ sistema real mientras que <xref linkend="release-build"> describe
+ el proceso de contrucci&oacute;n en s&iacute; mismo. <xref
+ linkend="extensibility"> describe c&oacute;mo la release base puede ser
+ ampliada por terceras partes y <xref linkend="lessons-learned">
+ detalla algunas de las lecciones aprendidas durante la generaci&oacute;n
+ de la release FreeBSD 4.4. Por &uacute;ltimo, <xref linkend="future">
+ presenta caminos futuros de desarrollo.</para> </sect1>
+
+<!-- Release Process -->
+<sect1 id="release-proc">
+ <title>Proceso de ingenier&iacute;a de releases</title>
+
+ <para>Las nuevas release de FreeBSD se generan a partir de la rama
+ -STABLE en intervalos de aproximadamente cuatro meses. El proceso
+ comienza a ejecutarse 45 d&iacute;as antes de la fecha de salida, cuando
+ el ingeniero de releases env&iacute;a un correo eletr&oacute;nico a las listas
+ de desarrollo de FreeBSD para recordar a los desarrolladores que
+ disponen de tan solo 15 d&iacute;as para integrar nuevos cambios antes de
+ la fase de congelaci&oacute;n de c&oacute;digo fuente. Durante este periodo de
+ tiempo, muchos desarrolladores realizan lo que se ha dado en llamar
+ <quote>barrido MFC</quote>. <acronym>MFC</acronym>
+ significa en ingl&eacute;s <quote>Merge From CURRENT</quote> (Integraci&oacute;n
+ desde CURRENT) y describe el proceso de unificaci&oacute;n de
+ los cambios aplicados en la rama de desarrollo -CURRENT a nuestra
+ rama -STABLE.</para>
+
+ <sect2>
+ <title>Revisi&oacute;n de C&oacute;digo</title>
+
+ <para>Treinta d&iacute;as antes del lanzamiento de una release dada
+ el repositorio de c&oacute;digo fuente entra en una fase de <quote>code
+ slush</quote> (<quote>c&oacute;digo aguanieve</quote>, en el sentido de no
+ estar a&uacute;n congelado y ser por tanto ligeramente moldeable).
+ Durante este per&iacute;odo todos los commits de la rama -STABLE deben
+ ser aprobados por el &a.re;. Los cambios permitidos
+ en esta fase de 15 d&iacute;as de duraci&oacute;n son los siguientes:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Arreglo de bugs o errores.</para>
+ </listitem>
+
+ <listitem>
+ <para>Actualizaciones de la documentaci&oacute;n.</para>
+ </listitem>
+
+ <listitem>
+ <para>Parches relacionados con cualquier tipo de fallo en la
+ seguridad.</para>
+ </listitem>
+
+ <listitem>
+ <para>Cambios peque&ntilde;os en controladores de dispositivos, tales
+ como la adici&oacute;n de identificadores de dispositivo.</para>
+ </listitem>
+
+ <listitem>
+ <para>Cualquier cambio adicional que el equipo de ingenier&iacute;a
+ de releases considere justificado, teniendo siempre en
+ cuenta el riesgo potencial que puede conllevar.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Despu&eacute;s de los primeros 15 d&iacute;as de c&oacute;digo
+ <quote>slush</quote>, se genera una <emphasis>release
+ candidate</emphasis> (candidata a release) o <quote>RC</quote>
+ para su testeo exhaustivo
+ por parte de la comunidad de usuarios y el c&oacute;digo fuente entra
+ en la fase de <quote>code freeze</quote> o congelamiento. En
+ este punto resulta mucho m&aacute;s dif&iacute;cil aceptar cambios a menos que
+ se descubran serios fallos de seguridad o bugs importantes.
+ Durante esta fase, se genera al menos una RC cada
+ semana, hasta que la release final ve la luz. Durante el
+ periodo de tiempo comprendido desde el congelamiento del c&oacute;digo
+ hasta la generaci&oacute;n de la release final, el equipo de ingenier&iacute;a
+ de releases se comunica constantemente con el equipo del
+ <quote>security officer</quote>, los equipos encargados de
+ mantener la documentaci&oacute;n y los mantenedores de ports, para
+ asegurarse de que los distintos componentes necesarios para
+ obtener una release existosa se encuentran disponibles y listos
+ para ser construidos.</para>
+ </sect2>
+
+ <sect2>
+ <title>Lista de tareas para la release final.</title>
+
+ <para>Cuando todos los problemas encontrados en las releases
+ candidatas se han corregido, se puede comenzar con el
+ procedimiento de <quote>pulimiento o enbellecimiento</quote> de
+ la release final.</para>
+
+ <sect3>
+ <title>Creaci&oacute;n de una Rama Release</title>
+
+ <para>Como se describe en la introducci&oacute;n, la rama
+ <literal>RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></literal>
+ es una caracter&iacute;stica relativamente nueva de nuestra
+ metodolog&iacute;a de generaci&oacute;n de releases. El primer paso
+ para crear esta rama consiste en asegurar que el c&oacute;digo fuente
+ utilizado <quote>proviene</quote> de la versi&oacute;n m&aacute;s reciente de
+ <literal>RELENG_<replaceable>X</replaceable></literal>.</para>
+
+ <screen>/usr/src&prompt.root; <userinput>cvs update -rRELENG_4 -P -d</userinput></screen>
+
+ <para>El siguiente paso consiste en crear una etiqueta de rama,
+ (<emphasis>tag</emphasis>), de esta forma se pueden generar
+ diferencias entre el c&oacute;digo actual y la rama de inicio
+ f&aacute;cilmente, utilizando CVS:</para>
+
+ <screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4 RELENG_4_8_BP src</userinput></screen>
+
+ <para>Y a continuaci&oacute;n se crea la etiqueta de la rama:</para>
+
+ <screen>/usr/src&prompt.root; <userinput>cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src</userinput></screen>
+
+ <note>
+ <para><emphasis>Las etiquetas
+ <literal>RELENG_<replaceable>*</replaceable></literal>
+ s&oacute;lo pueden ser utilizadas por los CVS-meisters y los
+ ingenieros de releases.</emphasis>
+ </para>
+ </note>
+
+ <sidebar>
+ <para>Una <quote><emphasis>etiqueta o tag</emphasis></quote> es una
+ caracter&iacute;stica de CVS que sirve para identificar el c&oacute;digo
+ fuente en un determinado instante del tiempo. Mediante el etiquetado del
+ &aacute;rbol, nos aseguramos de que las futuras
+ releases puedan generar diferencias con respecto al mismo
+ c&oacute;digo fuente que se utiliz&oacute; para generar las releases
+ oficiales anteriores.</para> </sidebar>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="branches-head" align="center">
+ </imageobject>
+
+ <textobject>
+ <phrase>Rama FreeBSD Development (Rama de Desarrollo)</phrase>
+ </textobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="branches-releng3" align="center">
+ </imageobject>
+
+ <textobject>
+ <phrase>Rama FreeBSD 3.x STABLE</phrase>
+ </textobject>
+ </mediaobject>
+
+ <mediaobject>
+ <imageobject>
+ <imagedata fileref="branches-releng4" align="center">
+ </imageobject>
+
+ <textobject>
+ <phrase>Rama FreeBSD 4.x STABLE</phrase>
+ </textobject>
+ </mediaobject>
+
+ </sect3>
+
+ <sect3 id="versionbump">
+ <title>Elevaci&oacute;n del n&uacute;mero de versi&oacute;n</title>
+
+ <para>Antes de que la release final se puede etiquetar,
+ construir y antes de que vea la luz, se deben modificar los
+ siguientes ficheros de tal forma que reflejen el n&uacute;mero de
+ versi&oacute;n correcto:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.sgml
+ </filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>doc/en_US.ISO8859-1/books/porters-handbook/book.sgml
+ </filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>doc/share/sgml/freebsd.ent</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/Makefile.inc1</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/UPDATING</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/gnu/usr.bin/groff/tmac/mdoc.local</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/release/Makefile</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/release/doc/en_US.ISO8859-1/share/sgml/release.dsl</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/release/doc/share/examples/Makefile.relnotesng</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/release/doc/share/sgml/release.ent</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/share/examples/cvsup/standard-supfile</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/sys/conf/newvers.sh</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/sys/sys/param.h</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/usr.sbin/pkg_install/add/main.c</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/en/docs.sgml</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/en/cgi/ports.cgi</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>ports/Tools/scripts/release/config</filename></para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>El fichero <quote>release notes</quote> y el fichero
+ <quote>errata</quote> tambi&eacute;n deben ajustarse de acuerdo con
+ la nueva release (en la rama de la release) y deben cortarse
+ adecuadamente en las ramas stable/currrent):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml
+ </filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/release/doc/en_US.ISO8859-1/errata/article.sgml
+ </filename></para>
+ </listitem>
+ </itemizedlist>
+
+ <para><application>Sysinstall</application> debe actualizarse
+ para que proporcione el n&uacute;mero actual de ports disponibles y
+ la cantidad de espacio de disco requerida para instalar dicha
+ colecci&oacute;n de ports. Esta informaci&oacute;n se encuentra almacenada
+ actualmente en el fichero
+ <filename>src/release/sysinstall/dist.c</filename>. </para>
+
+ <para>Despu&eacute;s de construir la release se debe actualizar el
+ n&uacute;mero almacenado en los siguientes ficheros para anunciar la
+ release al resto del mundo:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>www/share/sgml/includes.release.sgml</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/share/sgml/includes.release.xsl</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/en/releases/*</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/en/releng/index.sgml</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/en/news/news.xml</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>www/en/search/web.atoz</filename></para>
+ </listitem>
+
+ <listitem>
+ <para><filename>src/share/misc/bsd-family-tree</filename></para>
+ </listitem>
+
+ </itemizedlist>
+
+ </sect3>
+
+ <sect3>
+ <title>Creaci&oacute;n de las etiquetas de release</title>
+
+ <para>Cuando la release final se encuentra preparada se utiliza
+ el siguiente comando para crear la etiqueta (a modo de
+ ejemplo) <literal>RELENG_4_8_0_RELEASE</literal>.</para>
+
+ <screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src</userinput></screen>
+
+ <para>Los gestores de los proyectos de Documentaci&oacute;n y de los
+ Ports se responsabilizan del correcto etiquetado de sus
+ respectivos &aacute;rboles utilizando
+ <literal>RELEASE_4_8_0</literal>. </para>
+
+ <para>Ocasionalmente se puede presentar un apa&ntilde;o o arreglo de
+ &uacute;ltima hora justo <emphasis>despu&eacute;s</emphasis> de la creaci&oacute;n
+ de las etiquetas finales. En la pr&aacute;ctica esto no constituye un
+ problema ya que <acronym>CVS</acronym> permite cierta
+ manipulaci&oacute;n de etiquetados mediante <command>cvs tag -d
+ <replaceable>nombredeetiqueta nombredefichero</replaceable> </command>. Es
+ muy importante que dichos cambios de &uacute;ltima hora se etiqueten
+ adecuadamente para que pasen a formar parte de la nueva
+ release. Las releases de &os; deben ser siempre
+ <quote>reproducibles</quote>. Los <quote>hacks</quote>
+ locales dentro del entorno de ingenier&iacute;a de releases no est&aacute;n
+ permitidos salvo que se efect&uacute;en mediante una correcta
+ manipulaci&oacute;n y notificaci&oacute;n.</para>
+ </sect3> </sect2> </sect1>
+
+<!-- Release Building -->
+<sect1 id="release-build">
+ <title>Construcci&oacute;n de la Release</title>
+
+ <para>Cualquier persona due&ntilde;a de una potente m&aacute;quina y con acceso de lectura
+ al repositorio de c&oacute;digo fuente puede <quote>construir</quote> las
+ <quote>releases</quote> de &os;. En la pr&aacute;ctica esto significa
+ que cualquiera puede generar el proceso de construcci&oacute;n de
+ releases, ya que, como se coment&oacute; con anterioridad, &os; ofrece
+ acceso CVS an&oacute;nimo a todo el mundo (consulte el Handbook para m&aacute;s
+ detalles). El &uacute;nico requisito imprescindible para realizar este
+ proceso es la existencia del dispositivo &man.vn.4;. (En -CURRENT,
+ este dispositivo ha sido reemplazado por el nuevo driver de discos
+ en memoria denominado &man.md.4;.) Si el dispositivo no se
+ encuentra cargado en el kernel, deber&iacute;a cargarse autom&aacute;ticamente
+ al ejecutar el comando &man.vnconfig.8; como parte de la fase de
+ creaci&oacute;n del medio de arranque. Todas las herramientas necesarias
+ para construir la release se encuentran disponibles en el
+ repositorio de CVS dentro del directorio
+ <filename>src/release</filename>. Estas herramientas proporcionan
+ una forma consistente y robusta de construir releases de &os;.
+ Una release completa se puede construir utilizando un &uacute;nico
+ comando, incluyendo la creaci&oacute;n de las im&aacute;genes
+ <acronym>ISO</acronym> necesarias para realizar copias en CDROM,
+ junto con disquetes de instalaci&oacute;n y un directorio para la
+ instalaci&oacute;n por FTP. Este comando fue adecuadamente
+ bautizado como <command>make release</command>.</para>
+
+ <sect2>
+ <title><command>make release</command></title>
+
+ <para>Para poder construir la releases de una forma exitosa
+ se debe rellenar primero el directorio
+ <filename>/usr/obj</filename> ejecutando el comando
+ <command>make world</command> o simplemente <command>make
+ buildworld</command>. El target release que utiliza el comando
+ make necesita varias variables, tal como se muestra a
+ continuaci&oacute;n:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><makevar>CHROOTDIR</makevar> - El directorio que se utiliza para
+ el entorno de chroot durante la construcci&oacute;n de la release
+ entera.</para>
+ </listitem>
+
+ <listitem>
+ <para><makevar>BUILDNAME</makevar> - El nombre de la release que se va a
+ construir.</para>
+ </listitem>
+
+ <listitem>
+ <para><makevar>CVSROOT</makevar> - La ubicaci&oacute;n del repositorio de CVS.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para><makevar>RELEASETAG</makevar> - La etiqueta CVS correspondiente con la
+ release que se quiere construir.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Si no se dispone de acceso a un repositorio de CVS local,
+ se puede realizar una copia espejo (un mirror) con
+ <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/synching.html#CVSUP">CVSup</ulink>.
+ El fichero
+ <filename>/usr/share/examples/cvsup/cvs-supfile</filename>,
+ sirve como buen punto de partida para realizar un mirror del
+ repositorio de CVS.</para>
+
+ <para>Si se omite <makevar>RELEASETAG</makevar>, la release se
+ construir&aacute; a partir de la rama <literal>HEAD</literal> (tambi&eacute;n
+ conocida como -CURRENT). Las releases que se construyen desde
+ el principio se conocen normalmente con el nombre de
+ <quote>-CURRENT snapshots</quote>.</para>
+
+ <para>Existen otras variables que se pueden editar para adaptar
+ el proceso de construcci&oacute;n de la release. La mayor&iacute;a de estas
+ variables se encuentran documentadas al comienzo de
+ <filename>src/release/Makefile</filename>. El comando exacto
+ para contruir la release oficial de FreeBSD 4.7 (x86)
+ fue:</para>
+
+ <screen><command>make <literal>release CHROOTDIR=/local3/release \
+ BUILDNAME=4.7-RELEASE \
+ CVSROOT=/host/cvs/usr/home/ncvs \
+ RELEASETAG=RELENG_4_7_0_RELEASE</literal>
+ </command>
+ </screen>
+
+ <para>El <filename>Makefile</filename> de la release se puede
+ dividir en varios pasos distintos.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Creaci&oacute;n de un entorno de sistema limpio en una
+ jerarqu&iacute;a de directorios separada utilizando
+ <quote><command>make <literal>installworld</literal></command></quote>.
+ </para>
+ </listitem>
+
+ <listitem>
+ <para>Comprobaci&oacute;n de la correcta versi&oacute;n de los ficheros fuentes
+ almacenados
+ en la jerarqu&iacute;a de directorios reci&eacute;n creada, junto con el
+ chequeo de la documentaci&oacute;n y de los ports utilizando, todo
+ ello a trav&eacute;s de CVS.</para>
+ </listitem>
+
+ <listitem>
+ <para>Relleno de los directorios <filename>/etc</filename> y
+ <filename>/dev</filename> dentro del entorno chroot.</para>
+ </listitem>
+
+ <listitem>
+ <para>Creaci&oacute;n de un <quote>chroot</quote> dentro de la jerarqu&iacute;a de
+ directorios
+ creada, para que resulte m&aacute;s dificil que el entorno de la
+ m&aacute;quina se vea contaminado por la construcci&oacute;n de la
+ release.<para>
+ </listitem>
+
+ <listitem>
+ <para><command>make world</command>
+ dentro del entorno de chroot.</para>
+ </listitem>
+
+ <listitem>
+ <para>Contrucci&oacute;n de los binarios relacionados con Kerberos.</para>
+ </listitem>
+
+ <listitem>
+ <para>Construcci&oacute;n del kernel <filename>GENERIC</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Creaci&oacute;n de un esqueleto del &aacute;rbol de directorios donde
+ se construir&aacute;n y empaquetar&aacute;n las distribuciones
+ binarias.</para>
+ </listitem>
+
+ <listitem>
+ <para>Construcci&oacute;n e instalaci&oacute;n del conjunto de herramientas de
+ documentaci&oacute;n necesarias para convertir los fuentes de la
+ documentaci&oacute;n (SGML) en los documentos HTML y de texto que pasar&aacute;n
+ a formar parte de la release.</para>
+ </listitem>
+
+ <listitem>
+ <para>Construcci&oacute;n e instalaci&oacute;n de la documentaci&oacute;n real
+ (manuales de usuario, tutoriales, release notes, listas de
+ compatibilidad de hardware, etc.)</para>
+ </listitem>
+
+ <listitem>
+ <para>Construcci&oacute;n de los <quote>decisivos</quote> binarios utilizados
+ en los disquetes de instalaci&oacute;n.</para>
+ </listitem>
+
+ <listitem>
+ <para>Colocaci&oacute;n adecuada de los de los paquetes de distribuci&oacute;n de
+ binarios y de fuentes.</para>
+ </listitem>
+
+ <listitem>
+ <para>Creaci&oacute;n del medio de arranque y del disquete <quote>fixit</quote>
+ o salvamento.</para>
+ </listitem>
+
+ <listitem>
+ <para>Creaci&oacute;n de la jerarqu&iacute;a de directorios de instalaci&oacute;n por FTP.</para>
+ </listitem>
+
+ <listitem>
+ <para><emphasis></emphasis> Creaci&oacute;n de im&aacute;genes ISO para
+ CDROM/DVD(opcional).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Para m&aacute;s informaci&oacute;n sobre la infraestructura involucrada en
+ el proceso de construcci&oacute;n de la release, el lector puede
+ consultar &man.release.7;.</para>
+
+ </sect2>
+
+ <sect2>
+ <title>Construcci&oacute;n de<application>&xfree86;</application></title>
+
+ <para><application>&xfree86;</application> es un componente importante para muchos
+ usuarios de entornos gr&aacute;ficos. Antes de la release &os; 4.6 las
+ se usaba &xfree86;3.<replaceable>X</replaceable> por defecto. La forma
+ m&aacute;s sencilla de construir estas versiones consiste en utilizar
+ el script <filename>src/release/scripts/X11/build_x.sh</filename>.
+ Este script requiere que &xfree86; y Tcl/Tk se encuentren
+ instalados previamente en la m&aacute;quina donde se realiza la
+ construcci&oacute;n. Despu&eacute;s de compilar los servidores X necesarios,
+ el script empaqueta todos los ficheros en
+ <quote>tarballs</quote> que &man.sysinstall.8; sabe c&oacute;mo
+ localizar utilizando el directorio <filename>XF86336</filename>
+ del medio de instalaci&oacute;n.</para>
+
+ <para>A partir de FreeBSD 4.6, &man.sysinstall.8; instala
+ &xfree86; 4.<replaceable>X</replaceable> por defecto, como
+ cualquier otro conjunto de paquetes. Estos paquetes se pueden
+ construir a partir del <quote>package-building cluster</quote>
+ o a partir de las etiquetas del &aacute;rbol de ports adecuadas.</para>
+
+ <note><para>Es importante borrar cualquier configuraci&oacute;n
+ particular almacenada en <filename>/etc/make.conf</filename>.
+ Por ejemplo, no ser&iacute;a una idea muy inteligente distribuir binarios que se
+ construyeron en un sistema con la variable
+ <varname>CPUTYPE</varname> asignada a un determinado
+ procesador.</para></note> </sect2>
+
+ <sect2>
+ <title>Software Contribuido (<quote>ports</quote>)</title>
+
+ <para>La colecci&oacute;n de <ulink url="http://www.FreeBSD.org/ports">FreeBSD Ports
+ </ulink> est&aacute; compuesta por m&aacute;s de &os.numports; paquetes
+ de software de terceras partes que se encuentran disponibles para
+ &os;. El &a.portmgr; se responsabiliza de mantener un &aacute;rbol
+ de ports consistente que se pueda utilizar para crear paquetes
+ binarios, los cuales se a&ntilde;aden a las releases oficiales de
+ FreeBSD.</para>
+
+ <para>Las actividades de ingenier&iacute;a de releases para nuestra
+ colecci&oacute;n de paquetes software de terceras partes se encuentra
+ m&aacute;s all&aacute; del objetivo de este documento. Otro art&iacute;culo,
+ <ulink
+ url="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng-packages/"></ulink>,
+ cubre este tema en profundidad.</para>
+
+ </sect2>
+
+ <sect2>
+ <title>ISOs de la release</title>
+
+ <para>A partir de FreeBSD 4.4, el Proyecto FreeBSD decidi&oacute; lanzar
+ gratuitamente al p&uacute;blico las cuatro im&aacute;genes ISO que
+ anteriormente se vend&iacute;an en <emphasis>BSDi/Wind River
+ Systems/FreeBSD Mall</emphasis> como distribuciones en CDROM
+ <quote>oficiales</quote>. Cada uno de los cuatro discos debe
+ contener un <filename>README.TXT</filename> que explica
+ el contenido de cada disco, un
+ <filename>CDROM.INF</filename> que proporciona metadatos para
+ que &man.sysinstall.8; pueda validar la informaci&oacute;n en &eacute;l
+ contenida y un <filename>filename.txt</filename> que
+ proporciona un <quote>manifiesto</quote>. Este
+ <emphasis>manifiesto</emphasis> se puede crear utilizando un
+ simple comando:</para>
+
+ <screen>/stage/cdrom&prompt.root; <userinput>find . -type f | sed -e 's/^\.\///' | sort > filename.txt</userinput></screen>
+
+ <para>Los requisitos concretos de cada CD se resumen a continuaci&oacute;n.</para>
+
+ <sect3>
+ <title>Disco 1</title>
+
+ <para>El primer disco se crea casi en su totalidad a partir del
+ comando <command>make release</command>. Los &uacute;nicos cambios
+ que se deben realizar dentro del directorio
+ <filename>disc1</filename> son la adici&oacute;n de un directorio
+ <filename>tools</filename>, de <application
+ class="software">&xfree86;</application> y de los paquetes de
+ terceras partes m&aacute;s populares que quepan dentro del espacio
+ remanente de dicho primer disco. El directorio
+ <filename>tools</filename> contiene el software que permite a
+ los usuarios crear disquetes de instalaci&oacute;n desde otros
+ sistemas operativos. Este disco debe crearse como
+ autoarrancable para que los usuarios de PCs modernos no
+ necesiten crear disquetes de arranque y puedan utilizar la
+ caracter&iacute;stica de autoarranque desde CD.</para>
+
+ <para>Si se proporciona una versi&oacute;n alternativa de &xfree86;,
+ &man.sysinstall.8; debe actualizarse para reflejar la nueva
+ localizaci&oacute;n y las instrucciones de instalaci&oacute;n. El c&oacute;digo
+ relevante se encuentra en
+ <filename>src/release/sysinstall</filename> en -STABLE o en
+ <filename>src/usr.sbin/sysinstall</filename> en -CURRENT.
+ Espec&iacute;ficamente, se deben actualizar
+ <filename>dist.c</filename>, <filename>menus.c</filename> y
+ <filename>config.c</filename>.</para> </sect3>
+
+ <sect3>
+ <title>Disco 2</title>
+
+ <para>El segundo disco se crea en su mayor parte a partir del
+ comando <command>make release</command>. Este disco contiene
+ un <quote>sistema de ficheros vivo</quote>, que se puede
+ utilizar a partir de &man.sysinstall.8; para resolver
+ problemas durante el proceso de instalaci&oacute;n de &os;. Este
+ disco se debe construir como autoarrancable y debe contener
+ una copia comprimida del repositorio de CVS dentro del
+ directorio <filename>CVSROOT</filename>, junto con
+ demostraciones de software comercial localizadas dentro del
+ directorio <filename>commerce</filename>.</para> </sect3>
+
+ <sect3>
+ <title>Discos 3 and 4</title>
+
+ <para>Los dos discos que quedan contienen paquetes de software
+ para &os;. Estos paquetes deben agruparse de
+ tal forma que un paquete y todas sus
+ <emphasis>dependencias</emphasis> quepan en el mismo disco.
+ Se puede obtener m&aacute;s informaci&oacute;n sobre la creaci&oacute;n de estos
+ discos en el art&iacute;culo <ulink
+ url="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/releng-packages/"</ulink>
+ .</para> </sect3> </sect2>
+ </sect1>
+
+<!-- Distribution -->
+<sect1 id="distribution">
+ <title>Distribuci&oacute;n</title>
+
+ <sect2 id="dist-ftp">
+ <title>Servidores de FTP</title>
+
+ <para>Cuando se ha probado exhaustivamente la release y se ha
+ empaquetado debidamente para proceder a su distribuci&oacute;n, se debe
+ actualizar el sitio maestro de FTP. Los sitios FTP oficiales de
+ FreeBSD son mirrors del sitio FTP maestro, tambi&eacute;n llamado
+ <hostid>ftp-master</hostid>. Cuando la release est&aacute; lista, se
+ deben modificar los siguientes ficheros en el servidor
+ <hostid>ftp-master</hostid>:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><filename>/pub/FreeBSD/releases/<replaceable>arch</replaceable>/<replaceable>X.Y</replaceable>-RELEASE/</filename></term>
+ <listitem>
+ <para>El directorio de instalaci&oacute;n dde FTP que se crea con
+ la salida del comando <command>make release</command>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/pub/FreeBSD/ports/<replaceable>arch</replaceable>/packages-<replaceable>X.Y</replaceable>-release/</filename></term>
+ <listitem><para>La construcci&oacute;n del paquete completo de la
+ release.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/pub/FreeBSD/releases/<replaceable>arch</replaceable>/<replaceable>X.Y</replaceable>-RELEASE/tools</filename></term>
+ <listitem><para>Un enlace simb&oacute;lico a
+ <filename>../../../tools</filename>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/pub/FreeBSD/releases/<replaceable>arch</replaceable>/<replaceable>X.Y</replaceable>-RELEASE/packages</filename></term>
+ <listitem><para>Un enlace simb&oacute;lico a
+ <filename>../../../ports/<replaceable>arch</replaceable>/packages-<replaceable>X.Y</replaceable>-release</filename>.</para></listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term><filename>/pub/FreeBSD/releases/<replaceable>arch</replaceable>/ISO-IMAGES/<replaceable>X.Y</replaceable>/<replaceable>X.Y</replaceable>-RELEASE-<replaceable>arch</replaceable>-*.iso</filename></term>
+ <listitem><para>Las im&aacute;genes ISO. El <quote>*</quote> se
+ sustituye por <filename>disc1</filename>, <filename>disc2</filename>, etc.
+ Solo si existe <filename>disc1</filename> junto con un CD de
+ primera instalaci&oacute;n alternativo (por ejemplo una instalaci&oacute;n
+ recortada o reducida sin sistema de ventanas) puede existir
+ tambi&eacute;n un <filename>mini</filename>.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>Para obtener m&aacute;s informaci&oacute;n sobre la arquitectura de mirrors
+ para la distribuci&oacute;n del sistema FreeBSD, se ruega al lector que
+ consulte el art&iacute;culo <ulink url="http://www.freebsd.org/doc/en_US.ISO8859-1/articles/hubs/">Mirroring
+ FreeBSD</ulink>.</para>
+
+ <para>Puede que transcurran desde varias horas hasta varios d&iacute;as
+ hasta que la mayor&iacute;a de los sitios FTP Tier-1 se actualicen con
+ respecto al <hostid>ftp-master</hostid>, esto depende de si un
+ determinado paquete se carg&oacute; o no se carg&oacute; en determinado
+ instante. Es imperativo que los ingenieros de releases se
+ coordinen con &a.mirror-announce; antes de anunciar la
+ disponibilidad general del nuevo software en los sitios FTP.
+ Para que todo fuera bien el paquete de la release se deber&iacute;a cargar al menos
+ cuatro d&iacute;as antes del d&iacute;a oficial de lanzamiento de la release.
+ Los permisos para el grupo <quote>other</quote> deben desactivarse
+ completamente para que los sitios espejos puedan descargar la
+ release pero no as&iacute; los usuarios finales, hasta que llegue el d&iacute;a
+ oficial del lanzamiento. Se debe enviar un correo a
+ &a.mirror-announce; cuando se publican la release con los permisos
+ modificados, diciendo que la release ha sido puesta en escena y
+ proporcionando la fecha a partir de la cual los mirrors deben
+ comenzar a dar permisos de acceso para el p&uacute;blico en general. Se
+ debe comprobar que se incluye informaci&oacute;n relativa a zonas
+ horarias, por ejemplo informaci&oacute;n relativa a GMT.</para> </sect2>
+
+ <sect2 id="dist-cdrom">
+ <title>Replicaci&oacute;n de CD-ROMs</title>
+
+ <para>Dentro de poco tiempo: Consejos para enviar ISOs de FreeBSD
+ a un replicador e informaci&oacute;n sobre las medidas de
+ aseguramiento de la calidad que se deben tomar.</para>
+ </sect2>
+
+</sect1>
+
+<!-- Extensibility -->
+<sect1 id="extensibility">
+ <title>Extensibilidad</title>
+
+ <para>Aunque &os; consitituye un sistema operativo
+ <quote>completo</quote>, no existe nada que nos obligue a
+ utilizarlo exactamente igual que como se ha empaquetado para crear
+ la distribuci&oacute;n. Es decir, el sistema &os; se ha dise&ntilde;ado para
+ ser tan extensible como sea posible de tal forma que se puede
+ utilizar como la base sobre la que se pueden construir productos
+ comerciales. La &uacute;nica <quote>regla</quote> sobre este tema es que
+ si se piensa distribuir &os; con una serie de cambios profundos en
+ &eacute;l , se anima a que se <emphasis>documenten
+ adecuadamente dichos mejoras</emphasis>. La comunidad &os; s&oacute;lo puede
+ ayudar a los usuarios que utilizan el software que dicha comunidad
+ distribuye. Se anima encarecidamente hacia la innovaci&oacute;n tanto en
+ el proceso de instalaci&oacute;n como en las herramientas de
+ administraci&oacute;n, pero no se puede esperar un respuesta a todas las
+ preguntas que surgan sobre dichos temas.</para>
+
+ <sect2>
+ <title>Creaci&oacute;n de disquetes de arranque a medida</title>
+
+ <para>Muchas organizaciones poseen complejos requisitos que pueden
+ consistir en m&oacute;dulos del kernel adicionales o herramientas de
+ entorno de usuario que deben a&ntilde;adirse en los discos de
+ instalaci&oacute;n. La forma <quote>r&aacute;pida y sucia</quote> de a&ntilde;adir
+ estas cosas consiste en modificar el directorio temporal que
+ contiene la estructura de un <command>make
+ release</command>:</para>
+
+
+ <itemizedlist>
+ <listitem>
+ <para>Aplicar parches o a&ntilde;adir archivos adicionales dentro del
+ directorio chroot de construcci&oacute;n de la release.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>rm
+ ${CHROOTDIR}/usr/obj/usr/src/release/release.[59]</command></para>
+ </listitem>
+
+ <listitem>
+ <para>Reconstruir &man.sysinstall.8;, el kernel o cualquier
+ otra parte del sistema que se vea afectada por los
+ cambios.</para>
+ </listitem>
+
+ <listitem>
+ <para><command>chroot ${CHROOTDIR} ./mk floppies
+ </command></para>
+ </listitem>
+
+ </itemizedlist>
+
+ <para>Los nuevos disquetes de instalaci&oacute;n estar&aacute;n en
+ <filename>${CHROOTDIR}/R/stage/floppies</filename>.</para>
+
+ <para>Tambi&eacute;n se puede llamar el objetivo de make
+ <filename>boot.flp</filename> o directamente al <quote>script</quote> de
+ creaci&oacute;n del
+ sistema de ficheros <filename>src/release/scripts/doFS.sh</filename>.</para>
+
+ <para>Los parches locales tambi&eacute;n se pueden proporcionar al
+ proceso de construcci&oacute;n de la release mediante la definici&oacute;n de
+ la variable <makevar>LOCAL_PATCH</makevar> dentro de
+ <command>make release</command>. </para> </sect2>
+
+ <sect2>
+ <title><quote>Scripts</quote> para <command>sysinstall</command></title>
+
+ <para>La instalaci&oacute;n y configuraci&oacute;n del sistema &os; a trav&eacute;s
+ de &man.sysinstall.8; se puede modificar mediante
+ <quote>scripts</quote> para que proporcione instalaciones
+ autom&aacute;ticas a grandes organizaciones. Esta funcionalidad se
+ puede utilizar conjuntamente con &intel; PXE[13] para arrancar
+ sistemas a trav&eacute;s de la red, o a trav&eacute;s de disquetes de arranque
+ a medida utilizando un <quote>script</quote> de sysinstall. Un
+ ejemplo de gui&oacute;n sysinstall se encuentra disponible en
+ <filename>src/release/sysinstall/install.cfg</filename>.
+ </para>
+ </sect2>
+</sect1>
+
+<!-- Lessons Learned -->
+<sect1 id="lessons-learned">
+ <title>Lecciones aprendidas a partir de FreeBSD 4.4</title>
+
+ <para>El proceso de ingenier&iacute;a de releases de FreeBSD 4.4 comenz&oacute;
+ formalmente el 1 de Agosto de 2001. Despu&eacute;s de esa fecha todos
+ los <quote>commits</quote> o modificaciones sobre la rama
+ <literal>RELENG_4</literal> de FreeBSD tuvieron que ser aprobados
+ expl&iacute;citamente por el &a.re;. La primera <quote>release
+ candidate</quote> para la arquitectura x86 apareci&oacute; el 16 de
+ Agosto, seguida por otras cuatro releases candidatas hasta que vi&oacute;
+ la luz la release final el 18 de Septiembre. El <quote>security
+ officer</quote> estuvo muy involucrado en la &uacute;ltima semana del
+ proceso ya que se descubrieron varios problemas de seguridad en
+ las <quote>release candidates</quote> iniciales. M&aacute;s
+ de <emphasis>500</emphasis> correos electr&oacute;nicos fueron enviados al
+ &a.re; en poco m&aacute;s de un mes.</para>
+
+ <para>Nuestra comunidad de usuarios ha dejado muy claro que la
+ seguridad y estabilidad de las releases de FreeBSD no pueden
+ sacrificarse por culpa de plazos autoimpuestos o fechas de
+ lanzamiento. El Proyecto &os; ha crecido tremendamente durante
+ su tiempo de vida y se ha visto claramente la necesidad de
+ estandarizar los procedimientos de ingenier&iacute;a de releases. Este
+ hecho ser&aacute; incluso m&aacute;s importante a medida que &os; vaya estando
+ disponible para m&aacute;s plataformas.</para>
+ </sect1>
+
+<!-- Future Directions -->
+<sect1 id="future">
+ <title>Directrices para el futuro</title>
+
+ <para>Es de vital importancia para nuestras actividades de
+ ingenier&iacute;a de releases el ser capaces de crecer al mismo ritmo que
+ nuestra base de usuarios. Junto con estas l&iacute;neas estamos
+ trabajando duramente en los procedimientos involucrados en la
+ producci&oacute;n de releases de FreeBSD.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><emphasis>Paralelismo</emphasis> - Algunas partes de la
+ construcci&oacute;n de la release son <quote>vergonzosamente
+ paralelas</quote>. La mayor&iacute;a de las tareas que se realizan
+ son intensivas en entrada-salida, de tal forma que resulta m&aacute;s
+ importante poseer varios discos duros de alta velocidad que
+ utilizar varios procesadores a la hora de acelerar el proceso
+ del comando <command>make release</command>. Si se utilizan
+ varios discos para las distintas jerarqu&iacute;as de directorios
+ dentro del entorno &man.chroot.2;, entonces el
+ <quote>checkout</quote> de los &aacute;rboles de
+ <filename>ports</filename> y de los <filename>doc</filename>
+ se puede producir al mismo tiempo que la ejecuci&oacute;n en otro
+ disco del comando <command>make world</command>. Mediante la
+ utilizaci&oacute;n de un sistema <acronym>RAID</acronym> (hardware o
+ software) se puede reducir significativamente el tiempo
+ total de construcci&oacute;n de la release.</para> </listitem>
+
+ <listitem>
+ <para><emphasis>Releases construidas para otros sistemas finales
+ (<quote>cross building</quote>)</emphasis> :
+ &iquest;Se puede construir una release
+ para IA-64 o Alpha en un hardware x86? <command>make
+ TARGET=ia64 release</command>. </para> </listitem>
+
+ <listitem>
+ <para><emphasis>Tests de Regresi&oacute;n</emphasis> - Se necesitan
+ mejores herramientas automatizadas para comprobar la
+ correcci&oacute;n del sistema &os;.</para> </listitem>
+
+ <listitem>
+ <para><emphasis>Herramientas de Instalaci&oacute;n</emphasis> - Nuestro programa
+ de instalaci&oacute;n ha sobrepasado su tiempo de vida previsto. Se
+ encuentran en desarrollo varios proyectos para proporcionar un
+ mecanismo de instalaci&oacute;n m&aacute;s avanzado. Uno de los m&aacute;s
+ prometedores es el proyecto libh[5] cuyo objetivo consiste en
+ proporcionar un entorno de paquetes nuevo e inteligente junto
+ con un programa de instalaci&oacute;n gr&aacute;fico.</para> </listitem>
+ </itemizedlist>
+
+</sect1>
+
+<!-- Acknowledgements -->
+<sect1 id="ackno">
+<title>Agradecimientos</title>
+
+ <para>Me gustar&iacute;a agradecer a Jordan Hubbard por darme la
+ oportunidad de colaborar en algunas de las responsabilidades del
+ equipo de ingenier&iacute;a de releases en FreeBSD 4.4 y tambi&eacute;n me
+ gustar&iacute;a agradecer p&uacute;blicamente su trabajo y dedicaci&oacute;n durante
+ todos estos a&ntilde;os para poder situar a &os; en el sitio de honor
+ que le corresponde hoy d&iacute;a. Por supuesto que la release 4.4 no
+ hubiera visto la luz sin el trabajo de &a.asami;, &a.steve;,
+ &a.bmah;, &a.nik;, &a.obrien;, &a.kris;, &a.jhb; y del resto de la
+ comunidad &os;. Tambi&eacute;n me gustar&iacute;a agradecer especialmente a
+ &a.rgrimes;, &a.phk; y muchos otros que trabajaron en las
+ herramientas de ingenier&iacute;a de releases en los comienzos del
+ sistema &os;. Este art&iacute;culo est&aacute; basado en documentos de
+ ingenier&iacute;a de releases del CSRG[14], el NetBSD
+ Project[11] y en las notas del proceso de ingenier&iacute;a de releases
+ propuestas por John Baldwin[12].</para> </sect1>
+
+<!-- Reference / Biblio Section -->
+<sect1 id="biblio">
+ <title>Lecturas recomendadas</title>
+ <para>[1] CVS - Concurrent Versions System
+ <ulink url="http://www.cvshome.org"></ulink></para>
+
+ <para>[2] CVSup - The CVS-Optimized General Purpose Network File Distribution
+ System <ulink url="http://www.polstra.com/projects/freeware/CVSup"></ulink>
+ </para>
+
+ <para>[3] <ulink url="http://bento.FreeBSD.org"></ulink></para>
+
+ <para>[4] FreeBSD Ports Collection
+ <ulink url="http://www.FreeBSD.org/ports"></ulink></para>
+
+ <para>[5] The libh Project
+ <ulink url="http://www.FreeBSD.org/projects/libh.html"></ulink></para>
+
+ <para>[6] FreeBSD Committers <ulink
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html"></ulink>
+ </para>
+
+ <para>[7] FreeBSD Core-Team
+ <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html"></ulink></para>
+
+ <para>[8] FreeBSD Handbook
+ <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook"></ulink>
+ </para>
+
+ <para>[9] GNATS: The GNU Bug Tracking System
+ <ulink url="http://www.gnu.org/software/gnats"></ulink>
+ </para>
+
+ <para>[10] FreeBSD PR Statistics
+ <ulink url="http://www.FreeBSD.org/prstats/index.html"></ulink></para>
+
+ <para>[11] NetBSD Developer Documentation: Release Engineering
+ <ulink url="http://www.NetBSD.org/developers/releng/index.html"></ulink>
+ </para>
+
+ <para>[12] John Baldwin's FreeBSD Release Engineering Proposal
+ <ulink url="http://people.FreeBSD.org/~jhb/docs/releng.txt"></ulink>
+ </para>
+
+ <para>[13] PXE Jumpstart Guide
+ <ulink
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/pxe/index.html"></ulink>
+ </para>
+
+ <para>[14] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic:
+ <ulink url="http://docs.FreeBSD.org/44doc/papers/releng.html">
+<emphasis>The Release Engineering of 4.3BSD</emphasis></ulink>
+ </para>
+</sect1>
+</article>