articles/contrib
- add entry for translators - add trademarks articles/dialup-firewall - add entry for translators.ent - add translator's info articles/explaining-bsd - Cosmetic changes on Makefile - add translators.ent - add translator's info - a lot of cosmetic changes articles/fbsd-from-scratch - add entry for translators.ent - add translators' info articles/laptop - add "WITH_TOC" on Makefile - add entry for translators.ent - add translators' entry articles/problem-reports - correct several typos articles/zip-drive - add entry for translators.ent - add translators' info articles/Makefile New article added: cvs-freebsd Submitted by: Jesus R. Camou jcamou at es.FreeBSD.org Approved by: jesusr (mentor)
This commit is contained in:
parent
0cc2bb2c1a
commit
73c55f927f
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=23537
12 changed files with 948 additions and 52 deletions
|
@ -8,8 +8,11 @@ SUBDIR+= dialup-firewall
|
||||||
SUBDIR+= explaining-bsd
|
SUBDIR+= explaining-bsd
|
||||||
SUBDIR+= fbsd-from-scratch
|
SUBDIR+= fbsd-from-scratch
|
||||||
SUBDIR+= laptop
|
SUBDIR+= laptop
|
||||||
|
SUBDIR+= mailing-list-faq
|
||||||
SUBDIR+= problem-reports
|
SUBDIR+= problem-reports
|
||||||
|
SUBDIR+= releng
|
||||||
SUBDIR+= zip-drive
|
SUBDIR+= zip-drive
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../..
|
DOC_PREFIX?= ${.CURDIR}/../..
|
||||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
||||||
|
|
||||||
|
|
25
es_ES.ISO8859-1/articles/cvs-freebsd/Makefile
Normal file
25
es_ES.ISO8859-1/articles/cvs-freebsd/Makefile
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
# $FreeBSD$
|
||||||
|
# $FreeBSDes$
|
||||||
|
# Copiado de la version 1.5
|
||||||
|
#
|
||||||
|
# Article: Setting up a CVS repository - the FreeBSD way
|
||||||
|
|
||||||
|
#MAINTAINER= stijn@win.tue.nl
|
||||||
|
|
||||||
|
DOC?= article
|
||||||
|
|
||||||
|
FORMATS?= html
|
||||||
|
|
||||||
|
INSTALL_COMPRESSED?= gz
|
||||||
|
INSTALL_ONLY_COMPRESSED?=
|
||||||
|
|
||||||
|
|
||||||
|
WITH_ARTICLE_TOC?=YES
|
||||||
|
|
||||||
|
|
||||||
|
SRCS= article.sgml
|
||||||
|
|
||||||
|
URL_RELPREFIX?= ../../../..
|
||||||
|
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||||
|
|
||||||
|
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
840
es_ES.ISO8859-1/articles/cvs-freebsd/article.sgml
Normal file
840
es_ES.ISO8859-1/articles/cvs-freebsd/article.sgml
Normal file
|
@ -0,0 +1,840 @@
|
||||||
|
<!--
|
||||||
|
The FreeBSD Spanish Documentation Project
|
||||||
|
$FreeBSD$
|
||||||
|
$FreeBSDes$
|
||||||
|
-->
|
||||||
|
|
||||||
|
<!--
|
||||||
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||||
|
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
|
||||||
|
%articles.ent;
|
||||||
|
]>
|
||||||
|
-->
|
||||||
|
<!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 % trademarks PUBLIC "-//FreeBSD//ENTITIES DocBook Trademark Entities//EN">
|
||||||
|
%trademarks;
|
||||||
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
|
||||||
|
%translators;
|
||||||
|
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//ES"> %mailing-lists;
|
||||||
|
<!ENTITY % not.published "IGNORE">
|
||||||
|
]>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<article>
|
||||||
|
<articleinfo>
|
||||||
|
<title>Configurar un repositorio CVS - a la manera de FreeBSD</title>
|
||||||
|
|
||||||
|
<author>
|
||||||
|
<firstname>Stijn</firstname>
|
||||||
|
<surname>Hoop</surname>
|
||||||
|
<affiliation>
|
||||||
|
<address><email>stijn@win.tue.nl</email></address>
|
||||||
|
</affiliation>
|
||||||
|
</author>
|
||||||
|
|
||||||
|
<copyright>
|
||||||
|
<year>2001</year>
|
||||||
|
<year>2002</year>
|
||||||
|
<year>2003</year>
|
||||||
|
<holder role="mailto:stijn@win.tue.nl">Stijn Hoop</holder>
|
||||||
|
</copyright>
|
||||||
|
|
||||||
|
<releaseinfo>$FreeBSD$</releaseinfo>
|
||||||
|
|
||||||
|
<legalnotice id="trademarks" role="trademarks">
|
||||||
|
&tm-attrib.freebsd;
|
||||||
|
&tm-attrib.general;
|
||||||
|
</legalnotice>
|
||||||
|
|
||||||
|
<abstract>
|
||||||
|
<para>Este artículo describe los pasos que dí para
|
||||||
|
configurar un repositorio CVS con los mismos <quote>scripts</quote>
|
||||||
|
usados por el proyecto &os; en su configuración.
|
||||||
|
Tienen algunas ventajas frente a las demás
|
||||||
|
configuraciones de CVS, por ejemplo una gestión más
|
||||||
|
eficaz de los accesos a los árboles de código
|
||||||
|
la creación de mensajes de correo electrónico por
|
||||||
|
cada commit.</para>
|
||||||
|
&trans.es.jcamou;
|
||||||
|
</abstract>
|
||||||
|
</articleinfo>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Introducción</title>
|
||||||
|
|
||||||
|
<para>Muchos de los proyectos de software de código
|
||||||
|
abierto usan <application>CVS</application> como su sistema
|
||||||
|
de gestión de código. Aunque <application>
|
||||||
|
CVS</application> es bastante bueno para esto tiene sus
|
||||||
|
inconvenientes y sus flaquezas. Un ejemplo de esto es el compartir
|
||||||
|
un árbol de código con otros desarrolladores, lo cual
|
||||||
|
puede convertirse rápidamente en una pesadilla para la
|
||||||
|
administración del sistema, especialmente si se desea
|
||||||
|
proteger del acceso indiscriminado ciertas partes del
|
||||||
|
árbol.</para>
|
||||||
|
|
||||||
|
<para>&os; es uno de los proyectos que usan <application>
|
||||||
|
CVS</application>. También cuenta con una gran
|
||||||
|
cantidad de desarrolladores alrededor del mundo. Ellos
|
||||||
|
mismos desarrollaron algunos <quote>scripts</quote> para hacer
|
||||||
|
del manejo del repositorio una tarea más fácil.
|
||||||
|
Recientemente estos <quote>scripts</quote> fueron revisados por
|
||||||
|
&a.joe; para facilitar su uso en otros proyectos. Este
|
||||||
|
artículo muestra uno de los métodos para usar estos
|
||||||
|
nuevos <quote>scripts</quote>.</para>
|
||||||
|
|
||||||
|
<para>Si quiere sacar verdadero partido de la información que
|
||||||
|
se le brinda en este artílo debe tener familiaridad con
|
||||||
|
métodos básicos para realizar operaciones
|
||||||
|
<application>CVS</application>.</para>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1>
|
||||||
|
<title>Comienzo de la configuración</title>
|
||||||
|
|
||||||
|
<warning>
|
||||||
|
<para>Es preferible que realice estos procedimientos
|
||||||
|
en un repositorio de prueba vacío y podamos asi asegurarnos
|
||||||
|
de que entiende todas las consecuencias. Como siempre, asegúrese
|
||||||
|
de tener respaldos recientes.</para>
|
||||||
|
</warning>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Inicio del repositorio</title>
|
||||||
|
|
||||||
|
<para>Lo primero a hacer al configurar un nuevo repositorio
|
||||||
|
es decirle a <application>CVS</application> que lo inicie:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cvs -d <replaceable>ruta-al-repositorio
|
||||||
|
</replaceable> init</userinput></screen>
|
||||||
|
|
||||||
|
Esto le indica a <application>CVS</application> que cree
|
||||||
|
el directorio administrativo <filename>CVSROOT</filename>,
|
||||||
|
donde se albergarán todas las configuraciones.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>El grupo del repositorio</title>
|
||||||
|
|
||||||
|
<para>Ahora vamos a crear al grupo dueño del repositorio.
|
||||||
|
Todos los <quote>committers</quote> necesitan estar en este
|
||||||
|
grupo, para de esta manera poder escribir en el repositorio.
|
||||||
|
Asumiremos el grupo <literal>ncvs</literal> por defecto
|
||||||
|
de &os;.
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>pw groupadd <replaceable>ncvs
|
||||||
|
</replaceable></userinput></screen>
|
||||||
|
|
||||||
|
A continuación, es necesario usar &man.chown.8; en el directorio
|
||||||
|
para ajustar los permisos al grupo reción agregado:
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>chown -R :<replaceable>ncvs
|
||||||
|
</replaceable>
|
||||||
|
<replaceable>path-a-su-repositorio</replaceable></userinput></screen>
|
||||||
|
|
||||||
|
Esto asegura que nadie podrá escribir en el repositorio
|
||||||
|
sin los permisos de grupo adecuados.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Obtención del código</title>
|
||||||
|
|
||||||
|
<para>Ahora es necesario obtener el directorio <filename>
|
||||||
|
CVSROOT</filename> del repositorio de &os;. Puede hacerse muy
|
||||||
|
fácilmente desde una réplica de CVS
|
||||||
|
anónimo de &os;. Para más información
|
||||||
|
<!--
|
||||||
|
consulte <ulink
|
||||||
|
url="&url.books.handbook;/anoncvs.html">el capítulo
|
||||||
|
-->
|
||||||
|
consulte <ulink
|
||||||
|
url="http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/anoncvs.html">el
|
||||||
|
capítulo correspondiente del Handbook</ulink>.
|
||||||
|
Asumiremos que el código está en
|
||||||
|
<filename>CVSROOT-freebsd</filename> en el directorio
|
||||||
|
actual.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Copia de los <quote>scripts</quote> de &os;</title>
|
||||||
|
|
||||||
|
<para>El siguiente paso consiste en copiar el código de &os;
|
||||||
|
sito en <filename>CVSROOT</filename> a nuestro
|
||||||
|
repositorio. Si está familiarizado con <application>CVS
|
||||||
|
</application>, deberá estar pensando que esto se puede
|
||||||
|
realizar importando los <quote>scripts</quote>, lo que debería
|
||||||
|
permitirle sincronizar posteriores versiones muy fácilmente.
|
||||||
|
No es así, <application>CVS</application> tiene una
|
||||||
|
deficiencia en este aspecto: al intentar importar
|
||||||
|
código al directorio
|
||||||
|
<filename>CVSROOT</filename> no se actualizarán los
|
||||||
|
ficheros administrativos necesarios. Para hacer que esto
|
||||||
|
suceda es necesario ejecutar <quote>checkin</quote>
|
||||||
|
en cada uno de ellos después de importarlos,
|
||||||
|
perdiendo asi el valor de <literal>cvs import</literal>.
|
||||||
|
En consecuencia el método recomendado para este
|
||||||
|
cometido es sencillamente copiar los
|
||||||
|
<quote>scripts</quote>.</para>
|
||||||
|
|
||||||
|
<para>No importa en realidad si no encuentra demasiado sentido al
|
||||||
|
párrafo anterior, el resultado será el mismo.
|
||||||
|
Simplemente haga <quote>check out</quote> de su <filename>CVSROOT
|
||||||
|
</filename> y copie los ficheros de &os; sobre su copia local:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cvs -d <replaceable>
|
||||||
|
ruta-a-su-repositorio </replaceable> checkout CVSROOT</userinput>
|
||||||
|
&prompt.user; <userinput>cd CVSROOT</userinput>
|
||||||
|
&prompt.user; <userinput>cp ../CVSROOT-freebsd/* .</userinput>
|
||||||
|
&prompt.user; <userinput>cvs add *</userinput></screen>
|
||||||
|
|
||||||
|
Tenga en cuenta que probablemente recibirá advertencias
|
||||||
|
acerca de directorios no copiados; esto es normal,
|
||||||
|
porque éstos no son necesarios.</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Los <quote>scripts</quote></title>
|
||||||
|
|
||||||
|
<para>Ahora ya cuenta con una copia exacta en su directorio de
|
||||||
|
trabajo de los <quote>scripts</quote> que &os; usa en la
|
||||||
|
gestión de su repositorio.
|
||||||
|
He aquí una descripción del cometido de cada uno de
|
||||||
|
ellos.</para>
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><filename>access</filename> - este fichero
|
||||||
|
no se usa en la configuración por defecto.
|
||||||
|
Se usa en <link linkend="freebsdspecific">la
|
||||||
|
configuración del proyecto &os;</link>,
|
||||||
|
el cual controla el acceso al repositorio. Puede
|
||||||
|
borrar este fichero si no quiere usarlo en su
|
||||||
|
configuración.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>avail</filename> - este fichero
|
||||||
|
controla el acceso al repositorio. Dentro del mismo
|
||||||
|
es posible especificar grupos de personas
|
||||||
|
autorizadas para el acceso al repositorio,
|
||||||
|
asi como commits no autorizados en uno o más
|
||||||
|
directorios dados. Deberá
|
||||||
|
editarlo para que contenga los grupos
|
||||||
|
y directorios que se usarán en su
|
||||||
|
repositorio.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>cfg.pm</filename> - este fichero
|
||||||
|
se encarga de analizar su configuración
|
||||||
|
y provee la configuración por defecto.
|
||||||
|
<emphasis>No</emphasis> deberá usted
|
||||||
|
cambiar nada en este fichero. Si va a hacer cambios
|
||||||
|
su configuración deberán ir en
|
||||||
|
<filename>cfg_local.pm</filename>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>cfg_local.pm</filename> -
|
||||||
|
contiene todos los parámetros configurables del
|
||||||
|
sistema. Deberá configurar todo tipo de
|
||||||
|
cosas en este fichero, tales como el envío
|
||||||
|
por correo electrónico de los mensajes
|
||||||
|
de commit, desde qué <quote>hosts</quote> pueden
|
||||||
|
hacer commits los usuarios, etc. Más
|
||||||
|
información más adelante en el texto.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>checkoutlist</filename> - este fichero
|
||||||
|
lista todos los ficheros bajo control de <application>
|
||||||
|
CVS</application> en este directorio, aparte de aquellos
|
||||||
|
estándar creados por <literal>cvs init</literal>.
|
||||||
|
Deberá editar éste para borrar algunos
|
||||||
|
ficheros específicos del proyecto &os;.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>commit_prep.pl</filename> - este <quote>
|
||||||
|
script</quote> se encarga de realizar algunas comprobaciones
|
||||||
|
previas a cada commit según las modificaciones hechas o
|
||||||
|
o no en su versión de
|
||||||
|
<filename>cfg_local.pm</filename>.
|
||||||
|
No debería modificar este <quote>script</quote>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>commitcheck</filename> - este <quote>script</quote>
|
||||||
|
es invocado directamente por <application>CVS</application>.
|
||||||
|
En primer lugar comprueba que la <quote>committer</quote> tenga
|
||||||
|
acceso a una parte específica del árbol usando
|
||||||
|
<filename>cvs_acls.pl</filename>, para después
|
||||||
|
ejecutar <filename>commit_prep.pl</filename>, mediante el que
|
||||||
|
efectuará las comprobaciones de rigor previas a cada
|
||||||
|
commit. Si todo ha ido bien <application>CVS</application>
|
||||||
|
permitirá que el commit tenga lugar. No debería
|
||||||
|
tocar este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>commitinfo</filename> - este fichero es
|
||||||
|
usado por <application>CVS</application> para determinar
|
||||||
|
qué <quote>script</quote> se deberá ejecutar
|
||||||
|
antes de hacer el commit, en este caso
|
||||||
|
<filename>commitcheck</filename>.
|
||||||
|
Tampoco debería tener que modificar este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>config</filename> - el fichero de
|
||||||
|
configuración del repositorio. Debería
|
||||||
|
editarlo si es necesario aunque la mayoría de
|
||||||
|
los administradores lo dejan tal y como viene por defecto.
|
||||||
|
Dispone de más información sobre las opciones
|
||||||
|
que pueden declararse en él en el manual de
|
||||||
|
<application>CVS</application>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>cvs_acls.pl</filename> - este <quote>script</quote>
|
||||||
|
determina la identidad de los <quote>committers</quote>, así
|
||||||
|
como si tiene permitido acceder al árbol.
|
||||||
|
Está basado en el fichero <filename>avail</filename>.
|
||||||
|
No debería tener que modificar este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>cvsignore</filename> - este fichero especifica
|
||||||
|
los ficheros que <application>CVS</application> no debe
|
||||||
|
incluir en el repositorio. Puede editarlo a su gusto.
|
||||||
|
Para más información sobre fichero consulte
|
||||||
|
el manual de <application>CVS</application>.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>cvswrappers</filename> -
|
||||||
|
<application>CVS</application> usa este fichero para activar
|
||||||
|
o desactivar la expansión de
|
||||||
|
la expansión de palabras clave o si el
|
||||||
|
fichero debe ser considerado binario. Este fichero puede
|
||||||
|
editarse según necesidades. Para más
|
||||||
|
información sobre este fichero consulte el manual de
|
||||||
|
<application>CVS</application>.
|
||||||
|
Tenga en cuenta que las opciones <literal>-t</literal> y <literal>
|
||||||
|
-f</literal> no funcionan correctamente con <application>
|
||||||
|
CVS</application> cliente/servidor.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>edithook</filename> - este fichero ya no
|
||||||
|
se usa, aunque se mantenga por razones históricas.
|
||||||
|
Este fichero puede borrarse con total tranquilidad sin miedo de
|
||||||
|
perjudicar la configuración.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>editinfo</filename> - <application>CVS
|
||||||
|
</application> usa este fichero en las sobreescrituras de
|
||||||
|
edición. &os; no usa esta función ya que el
|
||||||
|
análisis de mensajes de <quote>log</quote> se hace
|
||||||
|
mediante <filename>verifymsg</filename> y
|
||||||
|
<filename>logcheck</filename>. Esto se debe a que
|
||||||
|
<filename>editinfo</filename> no funciona correctamente con
|
||||||
|
commits remotos ni con aquellos que usan las opciones
|
||||||
|
<literal>-m</literal> o <literal>-F</literal>.
|
||||||
|
No debería tener que modificar este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>exclude</filename> - este fichero lista
|
||||||
|
expresiones regulares usadas por
|
||||||
|
<filename>commit_prep.pl</filename> para determinar ficheros
|
||||||
|
que no puedan contener cabeceras de revisión. En la
|
||||||
|
configuración que se usa en &os; todos los ficheros
|
||||||
|
bajo control de revisión necesitan tener lo que se
|
||||||
|
llama una cabecera de revisión
|
||||||
|
($FreeBSD$). Todos los ficheros que aparezcan
|
||||||
|
en alguna de las líneas de
|
||||||
|
<filename>exclude</filename> no pasan por dicha revisión.
|
||||||
|
Incluya en este fichero entradas para aquellos ficheros que no
|
||||||
|
puedan tener una cabecera de revisión. Si va a instalar
|
||||||
|
los <quote>scripts</quote> <filename>CVSROOT/</filename> es un
|
||||||
|
firme candidato para figurar en este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>log_accum.pl</filename> - este es el
|
||||||
|
<quote>script</quote> encargado de obtener el mensaje de
|
||||||
|
<quote>log</quote> que genera <filename>logcheck</filename> y
|
||||||
|
añadirlo a un fichero de <quote>log</quote> en el repositorio
|
||||||
|
para que pueda disponerse de respaldos en caso de necesidad.
|
||||||
|
También gestiona el envío de un correo electrónico
|
||||||
|
a la dirección que el administrador declare (en
|
||||||
|
<filename>cfg_local.pm</filename>). <filename>loginfo
|
||||||
|
</filename> se encarga de conectar <filename>log_accum.pl
|
||||||
|
</filename> con <application>CVS</application>. No
|
||||||
|
debería tener que modificar este este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>logcheck</filename> - este fichero revisa el
|
||||||
|
mensaje de commit proporcionado por el
|
||||||
|
<quote>committer</quote> e intenta esterilizarlo, valga la
|
||||||
|
expresión. Este fichero conecta con
|
||||||
|
<application>CVS</application> via <filename>verifymsg
|
||||||
|
</filename>. Tampoco debería tener que modificar este
|
||||||
|
fichero.</para>
|
||||||
|
|
||||||
|
<note><para>Este <quote>script</quote> depende de un hack de <application>
|
||||||
|
CVS</application> propio de &os;: esta versión lee el
|
||||||
|
mensaje de <quote>log</quote> después de que este
|
||||||
|
<quote>script</quote> lo haya modificado. La versión
|
||||||
|
estándar de <application>CVS</application>
|
||||||
|
no hace esto, lo que hace a <filename>
|
||||||
|
logcheck</filename> incapaz de limpiar los mensajes de
|
||||||
|
<quote>log</quote>, aunque es capaz de comprobar que
|
||||||
|
esté sintácticamente correcto.
|
||||||
|
<application>CVS</application> 1.11.2 puede configurarse
|
||||||
|
para tener el mismo comportamiento que la
|
||||||
|
versión de &os; activando <literal>
|
||||||
|
RereadLogAfterVerify=always</literal> en el fichero
|
||||||
|
<filename>config</filename>.</para></note>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>loginfo</filename> - este fichero es usado por
|
||||||
|
<application>CVS</application> para controlar dónde se
|
||||||
|
enví la información de <quote>log</quote>;
|
||||||
|
aquí es donde <filename>log_accum.pl</filename>
|
||||||
|
entra en escena. No debería tener que modificar
|
||||||
|
este fichero.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>modules</filename> - este fichero mantiene su
|
||||||
|
significado tradicional en <application>CVS</application>.
|
||||||
|
Deberá borrar los módulos propios de &os; de la
|
||||||
|
versión que vaya a usar. Puede editarlo a su
|
||||||
|
gusto. Tiene más información acerca de este fichero
|
||||||
|
en el manual de <application>CVS</application>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>notify</filename> -
|
||||||
|
<application>CVS</application> usa este fichero en caso de que
|
||||||
|
alguien ponga un fichero en modo <quote>watch</quote>. No se usa en el
|
||||||
|
repositorio de &os; y puede editarse cuanto se desee.
|
||||||
|
Tiene más información acerca de este fichero
|
||||||
|
en el manual de <application>CVS</application>.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>options</filename> - este fichero se usa
|
||||||
|
específicamente en la versión de <application>CVS
|
||||||
|
</application>
|
||||||
|
de &os;, así como en la versión de Debian.
|
||||||
|
Contiene una palabra clave para expander cabeceras de
|
||||||
|
revisión. Tendrá que modificar este fichero
|
||||||
|
y escribir la misma palabra que haya declarado en
|
||||||
|
<filename>cfg_local.pm</filename> (si es que quiere usar esa
|
||||||
|
característica, claro está; el valor por defecto
|
||||||
|
es FreeBSD)</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>rcsinfo</filename> - este fichero mapea
|
||||||
|
directorios en el repositorio para aplicar una plantilla
|
||||||
|
como <filename>rcstemplate</filename>. Por defecto &os;
|
||||||
|
usa una plantilla para el repositorio. Es posible
|
||||||
|
añadir otras plantillas si se estima conveniente.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>tagcheck</filename> - este fichero controla
|
||||||
|
el acceso a marcar <quote>tags</quote> (etiquetas) en el
|
||||||
|
repositorio. La versión por defecto en &os; no admite
|
||||||
|
etiquetas con nombre RELENG* debido al proceso de ingeniería
|
||||||
|
de releases. Puede editar este fichero según sus
|
||||||
|
necesidades.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>taginfo</filename> - este fichero mapea operaciones
|
||||||
|
de etiquetado en los directorios del repositorio, cosa necesaria en
|
||||||
|
el funcionamiento habitual de <quote>scripts</quote> de control como
|
||||||
|
<filename>tagcheck</filename>. No debería tener que modificar
|
||||||
|
este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>unwrap</filename> - este <quote>script</quote> puede ser
|
||||||
|
usado para alterar el estado de ficheros binarios en una forma opuesta a
|
||||||
|
como lo hace <filename>cvswrappers</filename>, descrito al principio de esta
|
||||||
|
lista. No se usa en la configuración que funciona hoy día
|
||||||
|
en &os; porque no funciona correctamente con commits remotos. No
|
||||||
|
No debería tener que modificar este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>verifymsg</filename> - este fichero mapea
|
||||||
|
directorios del repositorio con <quote>scripts</quote> encargados del proceso
|
||||||
|
posterior de mensajes de commit en ficheros de <quote>log</quote>, por
|
||||||
|
ejemplo <filename>logcheck</filename>.
|
||||||
|
No debería verse en la necesidad de modificar este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>wrap</filename> - este script puede usarse
|
||||||
|
para poner ficheros binarios bajo el efecto de
|
||||||
|
<filename>cvswrappers</filename> (descrito al principio de esta
|
||||||
|
lista) en cada <quote>checkin</quote>. No se usa en la
|
||||||
|
configuración que mantiene el proyecto &os; porque no
|
||||||
|
funciona correctamente con commits remotos. No debería tener
|
||||||
|
que modificar este fichero.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Modificación de los <quote>scripts</quote></title>
|
||||||
|
|
||||||
|
<para>El siguiente paso es configurar los <quote>scripts</quote> para que
|
||||||
|
se adapten a sus necesidades. Tendrá que revisar todos y
|
||||||
|
cada uno de los ficheros en el directorio y hacer sus propios
|
||||||
|
cambios y configuraciones. Seguramente tendrá que editar los
|
||||||
|
siguientes ficheros:</para>
|
||||||
|
|
||||||
|
<procedure>
|
||||||
|
<step>
|
||||||
|
<para>Si no desea usar los <quote>scripts</quote> de la
|
||||||
|
<link linkend="freebsdspecific">
|
||||||
|
configuración específica de &os;</link>
|
||||||
|
puede borrar tranquilamente el fichero <filename>
|
||||||
|
access</filename>:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cvs rm -f access</userinput>
|
||||||
|
</screen></para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Editar <filename>avail</filename> para que contenga los
|
||||||
|
diferentes directorios del repositorio en los cuales quiera
|
||||||
|
controlar el acceso. Asegúrese de mantener la línea
|
||||||
|
<literal>avail||CVSROOT</literal>, si no lo hace no podrí
|
||||||
|
realizar el siguiente paso.</para>
|
||||||
|
|
||||||
|
<para>Otra de las opciones que puede añadir a este fichero
|
||||||
|
es el grupo de <quote>committers</quote>. Por defecto
|
||||||
|
&os; usa el fichero <filename>access</filename> para
|
||||||
|
listar todos sus <quote>committers</quote> pero se puede
|
||||||
|
usar cualquier fichero que se desee. También es
|
||||||
|
posible agregar grupos si se desea (la sintaxis está
|
||||||
|
declarada en la primera parte de <filename>cvs_acls.pl
|
||||||
|
</filename>).</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Edite <filename>cfg_local.pm</filename> para que contenga
|
||||||
|
las opciones deseadas. Seguramente le serán de gran
|
||||||
|
interés las siguientes configuraciones:
|
||||||
|
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><literal>%TEMPLATE_HEADERS</literal> - éstos son
|
||||||
|
procesados por los <quote>scripts</quote> de <quote>log</quote>
|
||||||
|
y se insertan bajo el correo de commit si es que existen.
|
||||||
|
Puede que quiera borrar las entradas <literal>PR</literal>
|
||||||
|
y <literal>MFC after</literal>; y claro, puede agregar
|
||||||
|
las suyas.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>$MAIL_BRANCH_HDR</literal> - puede añadir
|
||||||
|
una cabecera en cada correo de commit en la que se detalle la
|
||||||
|
rama (<quote>branch</quote>) en la que se ha hecho el commit.
|
||||||
|
Defina la cabecera según su configuración y
|
||||||
|
necesidades o déjelo vacío si no desea usar dicha
|
||||||
|
cabecera.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>@COMMIT_HOSTS</literal> - defina éste valor
|
||||||
|
si desea listar los <quote>hosts</quote> desde los que será
|
||||||
|
posible hacer commits.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>$MAILADDRS</literal> - defina éste como
|
||||||
|
la dirección del administrador o de alguna lista donde
|
||||||
|
reciban los correos de commit.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>@LOG_FILE_MAP</literal> - cambie este
|
||||||
|
valor como desee. Cada expresión regular
|
||||||
|
(regexp) se compara en el directorio del commit, y el
|
||||||
|
mensaje de log del commit se guarda en el subdirectorio
|
||||||
|
<filename>commitlogs</filename> en el nombre de fichero
|
||||||
|
mencionado.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><literal>$COMMITCHECK_EXTRA</literal> - si no
|
||||||
|
desea usar las <link linkend="freebsdspecific">comprobaciones
|
||||||
|
de acceso específicas de &os;</link> debería
|
||||||
|
borrar la definición de <literal>
|
||||||
|
$COMMITCHECK_EXTRA</literal> de este fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
|
||||||
|
<note><para>Cambiar el parámetro <literal>$IDHEADER</literal>
|
||||||
|
es algo que sólo puede asegurarse que funcionará en
|
||||||
|
&os;; depende de las modificaciones
|
||||||
|
específicas de <application>CVS</application> hechas por
|
||||||
|
&os;.</para></note>
|
||||||
|
|
||||||
|
Revise <filename>cfg.pm</filename> y compruebe si alguna de las
|
||||||
|
opciones puede modificarse, aunque los cambios propuestos en los
|
||||||
|
párrafos anteriores son bastante razonables.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Seguramente quiera borrar las líneas del principio de
|
||||||
|
<filename>exclude</filename> (las que contienen
|
||||||
|
<literal>^ports/</literal>, entre otras), puesto que son
|
||||||
|
específicas de &os;. Además de esto
|
||||||
|
comente las líneas que empiecen con
|
||||||
|
<literal>^CVSROOT/</literal> y agregue una línea sólo
|
||||||
|
con <literal>^CVSROOT/</literal>. Después de que
|
||||||
|
<quote>wrapper</quote> sea instalado puede añadir
|
||||||
|
su cabecera a los ficheros en el directorio <filename>
|
||||||
|
CVSROOT</filename> y restaurar estas líneas; por lo
|
||||||
|
pronto sólo estarán estorbarán en el momento
|
||||||
|
que quiera hacer un commit.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Edite <filename>modules</filename> y borre todo lo
|
||||||
|
relacionado con &os;. Añada sus propios módulos
|
||||||
|
si lo cree necesario.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<note><para>Este paso es sólo necesario si usted ha
|
||||||
|
declarado un valor a <literal>$IDHEADER</literal>
|
||||||
|
en <filename>cfg_local.pm</filename> (que sólo
|
||||||
|
funciona usando la versión de <application>CVS
|
||||||
|
</application> modificada por &os;).</para></note>
|
||||||
|
|
||||||
|
<para>Edite <filename>options</filename> y asegúrese
|
||||||
|
de que la etiqueta declarada sea la misma que en <filename>
|
||||||
|
cfg_local.pm</filename>. Simplemente cambie la etiqueta
|
||||||
|
<literal>FreeBSD</literal> por la suya.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Edite <filename>rcstemplate</filename> para que
|
||||||
|
contenga las mismas palabras clave
|
||||||
|
(o <quote>keywords</quote>) declaradas en
|
||||||
|
<filename>cfg_local.pm</filename>.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Puede borrar (este paso es opcional) las comprobaciones
|
||||||
|
realizadas por <filename>tagcheck</filename>. Puede
|
||||||
|
simplemente añadir <literal>exit 0</literal> al principio
|
||||||
|
del fichero para deshabilitar todas las comprobaciones que
|
||||||
|
hace sobre las etiquetas.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>El último paso antes de terminar es
|
||||||
|
asegurarse de que sea posible guardar de modo seguro los
|
||||||
|
mensajes de commit. Por defecto se guardan en el propio
|
||||||
|
repositorio, en el subdirectorio <filename>commitlogs</filename>
|
||||||
|
del directorio <filename>CVSROOT</filename>. Este
|
||||||
|
directorio debe crearse del siguiente modo:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>mkdir commitlogs
|
||||||
|
</userinput>&prompt.user; <userinput>cvs add commitlogs
|
||||||
|
</userinput></screen></para>
|
||||||
|
|
||||||
|
</step>
|
||||||
|
</procedure>
|
||||||
|
|
||||||
|
<para>Después de una revisión cuidadosa
|
||||||
|
debe hacer los commits necesarios con sus cambios. Asegúrese
|
||||||
|
de haber activado su acceso al directorio <filename>
|
||||||
|
CVSROOT</filename> en su <filename>avail</filename> antes
|
||||||
|
de intentarlo. Una vez haya comprobado que todo es correcto puede
|
||||||
|
hacer lo siguiente:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cvs commit -m '<replaceable>- Commit
|
||||||
|
para iniciar los scripts de FreeBSD</replaceable>'</userinput>
|
||||||
|
</screen></para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Prueba de la configuración</title>
|
||||||
|
|
||||||
|
<para>Ahora ya está listo para la primera prueba: un commit
|
||||||
|
forzado al fichero <filename>avail</filename> para asegurarnos
|
||||||
|
de que todo funciona como se espera.
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cvs commit -f -m'<replaceable>Commit
|
||||||
|
forzado para probar los nuevos scripts en CVSROOT</replaceable>'
|
||||||
|
avail</userinput></screen>
|
||||||
|
|
||||||
|
Si todo ha funcionado ¡felicidades! Dispone de una
|
||||||
|
configuración de los <quote>scripts</quote> de &os; en su repositorio.
|
||||||
|
Si <application>CVS</application> le da algún tipo de error
|
||||||
|
en algo revise todo de nuevo y asegúrese de que todos
|
||||||
|
los pasos se hayan hecho correctamente.</para>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
|
||||||
|
<sect1 id="freebsdspecific">
|
||||||
|
<title>Configuración específica de &os;</title>
|
||||||
|
|
||||||
|
<para>El proyecto &os; utliza una configuración
|
||||||
|
ligeramente diferente de la descrita; se usan los ficheros de
|
||||||
|
configuración del subdirectorio
|
||||||
|
<filename>freebsd</filename> en <filename>CVSROOT</filename>.
|
||||||
|
El proyecto lo hace de esta manera debido al gran número de
|
||||||
|
committers y a que todos y todas han de estar en el mismo grupo.
|
||||||
|
Un <quote>wrapper</quote> simple fué escrito para poder
|
||||||
|
asegurar que los usuarios tengan permisos correctos para poder hacer
|
||||||
|
hacer commits; este <quote>wrapper</quote> establece el id del grupo al
|
||||||
|
que el respositorio tiene.</para>
|
||||||
|
|
||||||
|
<para>Si su repositorio lo necesita también los
|
||||||
|
pasos para hacerlo están documentados más adelante. Pero
|
||||||
|
antes de nada veamos una descripción de los ficheros involucrados.</para>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Ficheros usados en la configuración de &os;</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<itemizedlist>
|
||||||
|
<listitem>
|
||||||
|
<para><filename>access</filename> - este fichero controla
|
||||||
|
la información de acceso. Se debe editar este
|
||||||
|
fichero e incluir a todos los miembros del proyecto.</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>freebsd/cvswrap.c</filename> - este es el
|
||||||
|
código de CVS wrapper que va a ser necesario
|
||||||
|
instalar para hacer que todos los chequeos de acceso
|
||||||
|
funcionen. Mas información sobre él más
|
||||||
|
adelante en el texto. Debería editar las rutas de las
|
||||||
|
macros <literal>ACCESS</literal> y <literal>REALCVS</literal>
|
||||||
|
para que se correspondan con su configuración.
|
||||||
|
</para>
|
||||||
|
</listitem>
|
||||||
|
|
||||||
|
<listitem>
|
||||||
|
<para><filename>freebsd/mailsend.c</filename> - este fichero
|
||||||
|
es necesario para la configuración de la lista
|
||||||
|
de correo de &os;. No deber´ tocar este
|
||||||
|
fichero.</para>
|
||||||
|
</listitem>
|
||||||
|
</itemizedlist>
|
||||||
|
</para>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>El procedimiento</title>
|
||||||
|
|
||||||
|
<procedure>
|
||||||
|
<step>
|
||||||
|
<para>Edite el fichero <filename>access</filename> para que
|
||||||
|
sólo contenga su nombre de usuario.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Edite el fichero <filename>cvswrap.c</filename> para que
|
||||||
|
contenga la ruta correcta de su configuración. Se
|
||||||
|
define con una macro llamada <literal>ACCESS</literal>.
|
||||||
|
Deberá cambiar también el lugar del binario de
|
||||||
|
<command>cvs</command> si no coincide con el de su
|
||||||
|
sistema. <filename>cvswrap.c</filename> está pensado
|
||||||
|
para sustituir al comando cvs del sistema, que pasará a
|
||||||
|
ser <filename>/usr/bin/ncvs
|
||||||
|
</filename>.</para>
|
||||||
|
|
||||||
|
<para>Mi copia de <filename>cvswrap.c</filename> tiene lo
|
||||||
|
siguiente:</para>
|
||||||
|
|
||||||
|
<programlisting>#define ACCESS "/local/cvsroot/CVSROOT/access"
|
||||||
|
#define REALCVS "/usr/bin/ncvs"</programlisting>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Instalaremos después wrapper para asegurarnos de que
|
||||||
|
se haya convertido en el grupo correcto al hacer el commit.
|
||||||
|
Tiene el código fuente en
|
||||||
|
<filename>cvswrap.c</filename> en su
|
||||||
|
<filename>CVSROOT</filename>.</para>
|
||||||
|
|
||||||
|
<para>Tendrá que compilar el código una vez haya
|
||||||
|
incluido en el las rutas correctas:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cc -o cvs cvswrap.c
|
||||||
|
</userinput></screen>
|
||||||
|
E instálelos (necesitará ejecutar este paso como root):
|
||||||
|
|
||||||
|
<screen>&prompt.root; <userinput>mv /usr/bin/cvs /usr/bin/ncvs
|
||||||
|
</userinput>
|
||||||
|
&prompt.root; <userinput>mv cvs /usr/bin/cvs</userinput>
|
||||||
|
&prompt.root; <userinput>chown root:<replaceable>ncvs</replaceable>
|
||||||
|
/usr/bin/cvs /usr/bin/ncvs</userinput>
|
||||||
|
&prompt.root; <userinput>chmod o-rw /usr/bin/ncvs</userinput>
|
||||||
|
&prompt.root; <userinput> chmod u-w,g+s /usr/bin/cvs</userinput>
|
||||||
|
</screen>
|
||||||
|
|
||||||
|
Esto instala wrapper como el comando <command>cvs</command>
|
||||||
|
por defecto; así nos aseguramos de que cualquiera que
|
||||||
|
quiera usar el repositorio necesita tener los niveles de acceso
|
||||||
|
correctos.</para>
|
||||||
|
</step>
|
||||||
|
|
||||||
|
<step>
|
||||||
|
<para>Ahora ya puede eliminar a todos los usuarios del grupo del repositorio.
|
||||||
|
Todo control de acceso lo hará a partir de ahora wrapper y este wrapper
|
||||||
|
establecerá el grupo de acceso correcto.</para>
|
||||||
|
</step>
|
||||||
|
</procedure>
|
||||||
|
</sect2>
|
||||||
|
|
||||||
|
<sect2>
|
||||||
|
<title>Prueba de la configuración</title>
|
||||||
|
|
||||||
|
<para>Su wrapper debería estar listo. Deberí probarlo,
|
||||||
|
claro está, haciendo un commit forzado al fichero <filename>
|
||||||
|
access</filename>:
|
||||||
|
|
||||||
|
<screen>&prompt.user; <userinput>cvs commit -f -m '<replaceable>Commit
|
||||||
|
forzado para probar los nuevos scripts en CVSROOT</replaceable>'
|
||||||
|
access</userinput></screen>
|
||||||
|
|
||||||
|
Si algo falla asegúrese de que todos los pasos arriba
|
||||||
|
descritos se han realizado correctamente.</para>
|
||||||
|
</sect2>
|
||||||
|
</sect1>
|
||||||
|
</article>
|
||||||
|
|
|
@ -5,6 +5,9 @@
|
||||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||||
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
|
<!ENTITY % man PUBLIC "-//FreeBSD//ENTITIES DocBook Manual Page Entities//EN">
|
||||||
%man;
|
%man;
|
||||||
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
|
||||||
|
%translators;
|
||||||
|
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<article lang=es>
|
<article lang=es>
|
||||||
|
@ -32,6 +35,7 @@
|
||||||
a la que se le asigna una IP dinámica. Éste
|
a la que se le asigna una IP dinámica. Éste
|
||||||
documento no se ocupa de la configuración de la
|
documento no se ocupa de la configuración de la
|
||||||
conexión PPP necesaria.</para>
|
conexión PPP necesaria.</para>
|
||||||
|
&trans.es.carvay;
|
||||||
</abstract>
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
|
|
|
@ -8,6 +8,8 @@ DOC?= article
|
||||||
|
|
||||||
FORMATS?= html
|
FORMATS?= html
|
||||||
|
|
||||||
|
WITH_ARTICLE_TOC?=YES
|
||||||
|
|
||||||
INSTALL_COMPRESSED?= gz
|
INSTALL_COMPRESSED?= gz
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
INSTALL_ONLY_COMPRESSED?=
|
||||||
|
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
%man;
|
%man;
|
||||||
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
||||||
%freebsd;
|
%freebsd;
|
||||||
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
|
||||||
|
%translators;
|
||||||
|
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<article lang=es>
|
<article lang=es>
|
||||||
|
@ -35,10 +38,10 @@
|
||||||
|
|
||||||
|
|
||||||
url="http://www.yahoo.com/">Yahoo!</ulink>, usan BSD. El servidor
|
url="http://www.yahoo.com/">Yahoo!</ulink>, usan BSD. El servidor
|
||||||
de FTP que más tráfico soporta del mundo, <ulink
|
de FTP con más carga en 1999 (ahora desaparecido) , <ulink
|
||||||
url="ftp://ftp.cdrom.com/">ftp.cdrom.com</ulink>, transfiere 1'4 TB
|
url="ftp://ftp.cdrom.com/">ftp.cdrom.com</ulink>, transfería
|
||||||
diariamente usando BSD. Es fácil suponer que no se trata de un
|
1'4TB diariamente usando BSD. Es fácil suponer que no se trata
|
||||||
nicho de mercado: BSD es un secreto bien guardado.</para>
|
de un nicho de mercado: BSD es un secreto bien guardado.</para>
|
||||||
|
|
||||||
<para>¿Así que cuál es el secreto? ¿Por
|
<para>¿Así que cuál es el secreto? ¿Por
|
||||||
qué BSD no es más conocido? Éste
|
qué BSD no es más conocido? Éste
|
||||||
|
@ -46,6 +49,7 @@
|
||||||
|
|
||||||
<para>A lo largo de éste artículo serán destacadas
|
<para>A lo largo de éste artículo serán destacadas
|
||||||
de <emphasis>éste modo</emphasis>.</para>
|
de <emphasis>éste modo</emphasis>.</para>
|
||||||
|
&trans.es.bazcar;
|
||||||
</abstract>
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
|
@ -582,7 +586,7 @@
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
<title>Entonces ¿Qué debería usar, BSD
|
<title>Entonces ¿Qué debería usar, BSD
|
||||||
o Linux</title>
|
o Linux?</title>
|
||||||
|
|
||||||
<para>¿Qué significa realmente esa pregunta?
|
<para>¿Qué significa realmente esa pregunta?
|
||||||
¿Quién debería utilizar BSD y quién
|
¿Quién debería utilizar BSD y quién
|
||||||
|
|
|
@ -13,7 +13,7 @@ INSTALL_COMPRESSED?= gz
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
INSTALL_ONLY_COMPRESSED?=
|
||||||
|
|
||||||
#
|
#
|
||||||
#WITH_ARTICLE_TOC?=YES
|
WITH_ARTICLE_TOC?=YES
|
||||||
|
|
||||||
# SGML content
|
# SGML content
|
||||||
SRCS= article.sgml fase_1.sh fase_2.sh fase_3.mk
|
SRCS= article.sgml fase_1.sh fase_2.sh fase_3.mk
|
||||||
|
|
|
@ -4,6 +4,8 @@
|
||||||
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
||||||
%freebsd;
|
%freebsd;
|
||||||
<!ENTITY scratch.ap "<application>FreeBSD From Scratch</application>">
|
<!ENTITY scratch.ap "<application>FreeBSD From Scratch</application>">
|
||||||
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
|
||||||
|
%translators;
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<article>
|
<article>
|
||||||
|
@ -39,6 +41,7 @@
|
||||||
que podría traducirse muy libremente como <quote>hacer, o más bien rehacer el
|
que podría traducirse muy libremente como <quote>hacer, o más bien rehacer el
|
||||||
mundo entero</quote> y <command>make evenmore</command>, osea, <quote>hacer más
|
mundo entero</quote> y <command>make evenmore</command>, osea, <quote>hacer más
|
||||||
aún</quote>. </para>
|
aún</quote>. </para>
|
||||||
|
&trans.es.carvay;
|
||||||
</abstract>
|
</abstract>
|
||||||
|
|
||||||
<sect1 id="introduction">
|
<sect1 id="introduction">
|
||||||
|
|
|
@ -11,6 +11,10 @@ FORMATS?= html
|
||||||
INSTALL_COMPRESSED?=gz
|
INSTALL_COMPRESSED?=gz
|
||||||
INSTALL_ONLY_COMPRESSED?=
|
INSTALL_ONLY_COMPRESSED?=
|
||||||
|
|
||||||
|
#
|
||||||
|
WITH_ARTICLE_TOC?=YES
|
||||||
|
|
||||||
|
|
||||||
SRCS= article.sgml
|
SRCS= article.sgml
|
||||||
|
|
||||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||||
|
|
|
@ -10,6 +10,8 @@
|
||||||
|
|
||||||
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//ES">
|
<!ENTITY % mailing-lists PUBLIC "-//FreeBSD//ENTITIES DocBook Mailing List Entities//ES">
|
||||||
%mailing-lists;
|
%mailing-lists;
|
||||||
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
|
||||||
|
%translators;
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<article lang=es>
|
<article lang=es>
|
||||||
|
@ -25,6 +27,7 @@
|
||||||
en el hardware de portátiles
|
en el hardware de portátiles
|
||||||
y sistemas de escritorio y de cómo afecta esto al uso
|
y sistemas de escritorio y de cómo afecta esto al uso
|
||||||
de FreeBSD.</para>
|
de FreeBSD.</para>
|
||||||
|
&trans.es.bazcar;
|
||||||
</abstract>
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
|
|
|
@ -66,7 +66,7 @@ $FreeBSDes: doc/es_ES.ISO8859-1/articles/problem-reports/article.sgml,v 1.2 2004
|
||||||
De forma semejante, una de las experiencias más fustrantes que
|
De forma semejante, una de las experiencias más fustrantes que
|
||||||
puede experimentar un desarrollador de aplicaciones consiste en
|
puede experimentar un desarrollador de aplicaciones consiste en
|
||||||
verse inundado por una cantidad ingente de informes de errores
|
verse inundado por una cantidad ingente de informes de errores
|
||||||
que en realidad vienen a ser solicitudes donde se requiere
|
que en realidad vienen a ser solicitudes de
|
||||||
soporte o ayuda, o que contienen poca o ninguna información
|
soporte o ayuda, o que contienen poca o ninguna información
|
||||||
sobre cúal es el problema y como se puede reproducir.</para>
|
sobre cúal es el problema y como se puede reproducir.</para>
|
||||||
|
|
||||||
|
@ -74,44 +74,46 @@ $FreeBSDes: doc/es_ES.ISO8859-1/articles/problem-reports/article.sgml,v 1.2 2004
|
||||||
problemas de calidad. Usted se preguntará cómo se pueden
|
problemas de calidad. Usted se preguntará cómo se pueden
|
||||||
escribir informes de problemas de calidad. Bien, para ir
|
escribir informes de problemas de calidad. Bien, para ir
|
||||||
directos al grano, un informe de problemas de calidad es aquél
|
directos al grano, un informe de problemas de calidad es aquél
|
||||||
que se puede analizar y tratar rápidamente, para mutua
|
que se puede analizar y tratar rápidamente, para mútua
|
||||||
satisfacción del usuario y del desarrollador.</para>
|
satisfacción del usuario y del desarrollador.</para>
|
||||||
|
|
||||||
<para>Aunque el objetivo principal de este artículo se centra en
|
<para>Aunque el objetivo principal de este artículo se centra en
|
||||||
los informes de problemas, la mayoría de los conceptos se pueden
|
los informes de problemas de &os; la mayoría de los conceptos se
|
||||||
aplicar bastante bien en otros proyectos de software.</para>
|
pueden aplicar bastante bien en otros proyectos de software.</para>
|
||||||
|
|
||||||
<para>Dése cuenta de que este artículo se organiza de forma
|
<para>Dése cuenta de que este artículo se organiza de forma
|
||||||
temática, no cronológicamente, de tal forma que se debe
|
temática, no cronológicamente, de tal forma que se debe
|
||||||
leer el documento íntegro antes de proceder a enviar informes
|
leer el documento íntegro antes de enviar informes
|
||||||
de problemas. No debe tratarse como un tutorial del estilo paso
|
de problemas. No debe tratarse como un tutorial del estilo paso
|
||||||
a paso.</para> </section>
|
a paso.</para> </section>
|
||||||
|
|
||||||
<section id="pr-when">
|
<section id="pr-when">
|
||||||
<title>Cuando enviar informes de problemas</title>
|
<title>Cuándo enviar informes de problemas</title>
|
||||||
|
|
||||||
<para>Existen varios tipos de problemas y no todos ellos se
|
<para>Existen varios tipos de problemas y no todos ellos se
|
||||||
merecen la creación de un informe de problemas. Por supuesto,
|
merecen la creación de un informe de problemas. Por supuesto,
|
||||||
nadie es perfecto, y existirán ocasiones donde estaremos
|
nadie es perfecto, y existirán ocasiones en las que estaremos
|
||||||
convencidos de haber encontrado un bug en un programa cuando
|
convencidos de haber encontrado un <quote>bug</quote> en un programa
|
||||||
realmente hemos malentendido la sintaxis o el funcionamiento de
|
cuando realmente hemos malinterpretado la sintaxis o el funcionamiento de
|
||||||
dicho programa, o simplemente hemos cometido un error
|
dicho programa, o simplemente hemos cometido un error
|
||||||
tipográfico en un archivo de configuración (aunque en este
|
tipográfico en un fichero de configuración (aunque en este
|
||||||
último caso podría tratarse de un indicador de
|
último caso podría tratarse de un indicador de
|
||||||
documentación pobre o de manejo de errores inadecuado por parte
|
documentación escasa o que la aplicación peca de una
|
||||||
de la aplicación). Incluso teniendo estos aspectos en cuenta,
|
gestión de errores defectuosa. Incluso
|
||||||
existen varios casos en los cuales el envío de un informe de
|
teniendo estos aspectos en cuenta existen varios casos en los cuales
|
||||||
problemas resulta claramente <emphasis>no ser</emphasis> la
|
el envío de un informe de problemas resulta claramente
|
||||||
mejor forma de actuar, ya que dicho envío puede servir para
|
<emphasis>no ser</emphasis> la mejor forma de proceder, ya que dicho
|
||||||
fustrar tanto al creador del informe como al desarrollador de
|
envío puede servir para frustrar tanto a quien envía el
|
||||||
la aplicación. Por el contrario, también existen casos
|
informe como a quien desarrolló la aplicación.
|
||||||
|
Por el contrario, también existen casos
|
||||||
en los que puede resultar apropiado enviar un informe de problemas sobre
|
en los que puede resultar apropiado enviar un informe de problemas sobre
|
||||||
algo más aparte de bugs; una mejora o una solucitud de
|
algo más aparte de <quote>bugs</quote>: una mejora o una solucitud
|
||||||
nueva característica, por citar un par de ejemplos.</para>
|
nuevas características, por citar un par de ejemplos.</para>
|
||||||
|
|
||||||
<para>Así que ¿cómo podemos determinar qué
|
<para>Así que ¿cómo podemos determinar qué
|
||||||
constituye un bug y qué no? Como regla para principiantes
|
constituye un <quote>bug</quote> y qué no? Como regla para
|
||||||
podemos decir que su problema <emphasis>no</emphasis> es un bug si
|
principiantes podemos decir que su problema
|
||||||
|
<emphasis>no</emphasis> es un <quote>bug</quote> si
|
||||||
se puede expresar como una pregunta (normalmente del estilo de
|
se puede expresar como una pregunta (normalmente del estilo de
|
||||||
<quote>¿cómo hago X?</quote> o
|
<quote>¿cómo hago X?</quote> o
|
||||||
<quote>¿donde puedo encontrar Y?</quote>). No siempre las
|
<quote>¿donde puedo encontrar Y?</quote>). No siempre las
|
||||||
|
@ -122,7 +124,7 @@ $FreeBSDes: doc/es_ES.ISO8859-1/articles/problem-reports/article.sgml,v 1.2 2004
|
||||||
|
|
||||||
<para>A continuación se muestran algunos casos en los que resulta
|
<para>A continuación se muestran algunos casos en los que resulta
|
||||||
apropiado enviar un informe de problemas sobre algo que no se
|
apropiado enviar un informe de problemas sobre algo que no se
|
||||||
considera un bug:</para>
|
considera un <quote>bug</quote>:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -139,26 +141,26 @@ $FreeBSDes: doc/es_ES.ISO8859-1/articles/problem-reports/article.sgml,v 1.2 2004
|
||||||
</listitem>
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>Otro tema es que si el sistema donde se experimentó el bug
|
<para>Otro tema es que si el sistema donde se experimentó el
|
||||||
no se encuentra medianamente actualizado, se debe considerar muy
|
<quote>bug</quote> no está medianamente actualizado se debe
|
||||||
seriamente su actualización e intentar reproducir el problema en
|
considerar muy seriamente su actualización e intentar reproducir
|
||||||
un sistema actualizado antes de emitir el informe de problemas.
|
el problema en un sistema actualizado antes de emitir el informe.
|
||||||
Existen pocas cosas que molesten más a un desarrollador que
|
Existen pocas cosas que molesten más a un desarrollador que
|
||||||
recibir un informe de problemas sobre un problema que ya ha
|
recibir un informe de problemas sobre un problema que ya ha
|
||||||
resuelto.</para>
|
resuelto.</para>
|
||||||
|
|
||||||
<para>Por último, un bug que no se puede reproducir
|
<para>Por último, un <quote>bug</quote> que no se puede
|
||||||
difícilmente puede arreglarse. Si el bug
|
reproducir difícilmente puede arreglarse. Si el
|
||||||
sólo corrió una vez y no somos capaces de
|
<quote>bug</quote> sólo ocurrió una vez y no somos capaces
|
||||||
reproducirlo, y parece que no le ocurre a nadie más,
|
de reproducirlo, y parece que no le ocurre a nadie más,
|
||||||
es muy probable que ni siquiera los desarrolladores puedan
|
es muy probable que ni siquiera los desarrolladores puedan
|
||||||
reproducirlo y por lo tanto ni siquiera puedan imaginarse que es
|
reproducirlo y por lo tanto ni siquiera puedan imaginarse qué es
|
||||||
lo que falla. Esto no significa que el bug no haya ocurrido,
|
lo que falla. Esto no significa que el <quote>bug</quote> no haya
|
||||||
sino que las probabilidades de que nuestro informe de errores
|
ocurrido, sino que las probabilidades de que nuestro informe de errores
|
||||||
sirva para corregir un defecto son muy pequeñas. Para complicar
|
sirva para corregir un defecto son muy pequeñas. Para complicar
|
||||||
más las cosas, a menudo estas clases de errores se producen
|
más las cosas, a menudo estas clases de errores se producen
|
||||||
debido a fallos en los discos duros o sobrecalentamiento del
|
debido a fallos en los discos duros o al sobrecalentamiento del
|
||||||
procesador — usted debe siempre intentar descubrir estos
|
procesador: debe intentar siempre descubrir estos
|
||||||
fallos, siempre que sea posible, antes de enviar un PR.</para>
|
fallos, siempre que sea posible, antes de enviar un PR.</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
@ -166,26 +168,26 @@ $FreeBSDes: doc/es_ES.ISO8859-1/articles/problem-reports/article.sgml,v 1.2 2004
|
||||||
<title>Preparativos</title>
|
<title>Preparativos</title>
|
||||||
|
|
||||||
<para>Una buena regla que se puede seguir consiste en realizar
|
<para>Una buena regla que se puede seguir consiste en realizar
|
||||||
siempre una búsqueda en segundo plano antes de enviar un informe
|
siempre una búsqueda antes de enviar un informe
|
||||||
de problemas. Quizá nuestro problema ya ha sido reportado;
|
de problemas. Quizá nuestro problema ya ha sido reportado;
|
||||||
quizá se está discutiendo en las listas de
|
quizá se está discutiendo en las listas de
|
||||||
distribución o fue discutido hace poco; incluso es posible que
|
distribución o fue discutido hace poco; incluso es posible que
|
||||||
se haya arreglado en versiones más recientes del software.
|
se haya arreglado en versiones más recientes del software.
|
||||||
Por lo tanto, se deben consultar los sitios y fuentes más obvias
|
Por lo tanto, se deben consultar los sitios y fuentes más obvias
|
||||||
antes de proceder con el envío del informe de errores.
|
antes de proceder con el envío del informe de errores.
|
||||||
En &os;, esto significa:</para>
|
En &os; esto significa:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>El &os;
|
<para>Las
|
||||||
<ulink url="http://www.freebsd.org/doc/en/books/faq/index.html">Preguntas Más
|
<ulink url="http://www.freebsd.org/doc/en/books/faq/index.html">Preguntas Más
|
||||||
<!--
|
<!--
|
||||||
XXX
|
XXX
|
||||||
<ulink url="&url.books.faq;/index.html">Preguntas Más
|
<ulink url="&url.books.faq;/index.html">Preguntas Más
|
||||||
-->
|
-->
|
||||||
Frecuentes</ulink> (FAQ).
|
Frecuentes</ulink> (FAQ) de &os;.
|
||||||
La lista de FAQ intenta proporcionar respuestas para un
|
Las FAQ intentan proporcionar respuestas para un
|
||||||
amplio rango de preguntas, tales como aquellas relacionadas
|
amplio rango de dudas, tales como aquellas relacionadas
|
||||||
con las
|
con las
|
||||||
<!--
|
<!--
|
||||||
<ulink url="&url.books.faq;/hardware.html">compatibilidades
|
<ulink url="&url.books.faq;/hardware.html">compatibilidades
|
||||||
|
@ -215,7 +217,7 @@ XXX
|
||||||
<ulink
|
<ulink
|
||||||
url="http://www.freebsd.org/doc/en/books/handbook/eresources.html#ERESOURCES-MAIL">listas
|
url="http://www.freebsd.org/doc/en/books/handbook/eresources.html#ERESOURCES-MAIL">listas
|
||||||
|
|
||||||
de correo</ulink>—si no está subscrito, utilice
|
de correo</ulink>. Si no está subscrito utilice
|
||||||
<ulink
|
<ulink
|
||||||
url="http://www.FreeBSD.org/search/search.html#mailinglists">la
|
url="http://www.FreeBSD.org/search/search.html#mailinglists">la
|
||||||
búsqueda en los archivos</ulink> del sitio web de &os;. Si
|
búsqueda en los archivos</ulink> del sitio web de &os;. Si
|
||||||
|
@ -245,7 +247,7 @@ XXX
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Lo más importante, se debería intentar comprobar
|
<para>Lo más importante, se debería intentar comprobar
|
||||||
si la documentaicón existente en el código fuente del
|
si la documentación existente en el código fuente del
|
||||||
programa puede resolver el problema.</para>
|
programa puede resolver el problema.</para>
|
||||||
|
|
||||||
<para>En el caso de las fuentes del sistema &os; debe estudiarse
|
<para>En el caso de las fuentes del sistema &os; debe estudiarse
|
||||||
|
@ -933,12 +935,12 @@ XXX
|
||||||
<title>Follow-up</title>
|
<title>Follow-up</title>
|
||||||
|
|
||||||
<para>Una vez enviado el informe de problemas, se recibe una
|
<para>Una vez enviado el informe de problemas, se recibe una
|
||||||
confirmación por correo eletrónico en la que se incluye el
|
confirmación por correo electrónico en la que se incluye el
|
||||||
número asignado al informe y la URL que puede utilizarse para
|
número asignado al informe y la URL que puede utilizarse para
|
||||||
consultar su estado. Con un poquito de suerte, alguien mostrará
|
consultar su estado. Con un poquito de suerte, alguien mostrará
|
||||||
interés en el problema y tratará de solucionarlo, o de
|
interés en el problema y tratará de solucionarlo, o de
|
||||||
explicar por qué razón no se considera un problema,
|
explicar por qué razón no se considera un problema,
|
||||||
cómo ha ocurrido en muchas ocasiones. Recibiremos
|
como ha ocurrido en muchas ocasiones. Recibiremos
|
||||||
automáticamente una notificación relativa a
|
automáticamente una notificación relativa a
|
||||||
cualquier cambio de estado, además de recibir copias de
|
cualquier cambio de estado, además de recibir copias de
|
||||||
cualquier comentario o de los parches que se generen
|
cualquier comentario o de los parches que se generen
|
||||||
|
|
|
@ -6,6 +6,9 @@
|
||||||
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
<!ENTITY % freebsd PUBLIC "-//FreeBSD//ENTITIES DocBook Miscellaneous FreeBSD Entities//EN">
|
||||||
%freebsd;
|
%freebsd;
|
||||||
|
|
||||||
|
<!ENTITY % translators PUBLIC "-//FreeBSD//ENTITIES DocBook Translator Entities//ES">
|
||||||
|
%translators;
|
||||||
|
|
||||||
]>
|
]>
|
||||||
|
|
||||||
<article lang=es>
|
<article lang=es>
|
||||||
|
@ -22,6 +25,9 @@
|
||||||
</affiliation>
|
</affiliation>
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
<abstract>
|
||||||
|
&trans.es.bazcar;
|
||||||
|
</abstract>
|
||||||
</articleinfo>
|
</articleinfo>
|
||||||
|
|
||||||
<sect1>
|
<sect1>
|
||||||
|
|
Loading…
Reference in a new issue