- Move includes.nav*.sgml to share/sgml/navibar.ent and
<lang>/share/sgml/navibar.l10n.ent.
- Move includes.sgml and includes.xsl to
share/sgml/common.ent, share/sgml/header.ent, <lang>/share/sgml/l10n.ent,
and <lang>?share/sgml/header.l10n.ent.
- Move most of XSLT libraries to share/sgml/*.xsl and
<lang>/share/sgml/*.xsl.
- Move news.xml and other *.xml files for the similar purpose
to share/sgml/*.xml and <lang>/share/sgml/*.xml.
- Switch to use a custom DTD for HTML document. Now we use
"-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension", which is
HTML 4.01 + some entities previously pulled via
"<!ENTITY % includes SYSTEM "includes.sgml"> %includes;" line.
The location of entity file will be resolved by using catalog file.
- Add DOCTYPE declearation to XML documents. This makes the followings
possible:
* Use of &foo; entities for SGML in an XML file instead of defining
{$foo} as the same content.
* &symbolic; entities for Latin characters.
- Duplicated information between SGML and XML, or English and
translated doc, has been removed as much as possible.
328 lines
14 KiB
Text
Executable file
328 lines
14 KiB
Text
Executable file
<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
|
|
<!ENTITY base CDATA "../..">
|
|
<!ENTITY date "$FreeBSD: www/es/gnome/docs/porting.sgml,v 1.4 2005/10/04 07:56:17 murray Exp $">
|
|
<!ENTITY title "Proyecto FreeBSD GNOME: Como Crear Un Port">
|
|
<!ENTITY % navinclude.developers "INCLUDE">
|
|
]>
|
|
<html>
|
|
&header;
|
|
|
|
<p>El presente documento asume que usted ya tiene conocimiento de
|
|
la forma de trabajar del sistema de ports, y por lo tanto solo
|
|
provee de algunos consejos específicos sobre GNOME. Las
|
|
instrucciones generales pueden encontrarse en el manual
|
|
<a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/index.html">FreeBSD Porter's Handbook</a>.
|
|
</p>
|
|
|
|
<h2>Macros de Makefile de GNOME</h2>
|
|
<p>Las aplicaciones de GNOME bajo FreeBSD utilizan la
|
|
infraestructura <b>USE_GNOME</b>. Para indicar qué
|
|
componentes de GNOME son necesarios para que su port compile;
|
|
simplemente lístelos con un espacio de separación.
|
|
Por ejemplo:</p>
|
|
|
|
<pre>
|
|
USE_X_PREFIX= yes
|
|
USE_GNOME= gnomeprefix gnomehack libgnomeui
|
|
</pre>
|
|
|
|
|
|
<p>Los componentes de <b>USE_GNOME</b> son divididos en las
|
|
siguientes dos listas:</p>
|
|
|
|
<ul>
|
|
<li><p><a href="gnome2_porting.html">componentes de GNOME 2</a></p></li>
|
|
<li><p><a href="gnome_porting.html">componentes de GNOME 1</a></p></li>
|
|
</ul>
|
|
|
|
<!-- I'm not sold on the utility of this section -->
|
|
<p>Si su port, solamente necesita las librerías de
|
|
<b>GTK2</b>, la siguiente forma es la más sencilla de
|
|
definir esto:</p>
|
|
|
|
<pre>
|
|
USE_X_PREFIX= yes
|
|
USE_GNOME= gtk20
|
|
</pre>
|
|
|
|
<p>Si su port, solamente necesita las librerías de
|
|
<b>GTK1</b>, la siguiente forma es la más sencilla de
|
|
definirlo:</p>
|
|
|
|
<pre>
|
|
USE_X_PREFIX= yes
|
|
USE_GNOME= gtk12
|
|
</pre>
|
|
|
|
<p>Aún en el caso de que su port, solamente necesite las
|
|
librerías GTK, algunos otros componentes de
|
|
<b>USE_GNOME</b> le pueden ser de utilidad. Por favor vea la
|
|
lista completa, para asegurarse que su port cuenta con todos
|
|
los componentes necesarios.</p>
|
|
<!-- end questionable section -->
|
|
|
|
<p>Una vez que haya terminado con su port, es recomendable verificar
|
|
que la lista de componentes de los cuales depende su port sea la
|
|
correcta. Para ver una lista completa de los paquetes que su
|
|
port requiere, puede ejecutar el comando
|
|
<tt>make package-depends</tt> desde el directorio de su port.</p>
|
|
|
|
<p>Para apoyarse en la creación de la lista de componentes
|
|
necesarios, puede ser de utilidad examinar el resultado del
|
|
comando <tt>make configure</tt>. Al final de dicha salida,
|
|
verá una línea con <tt>checking for...</tt>, y una
|
|
lista similar a la siguiente:</p>
|
|
|
|
<pre>
|
|
checking for libgnomeui-2.0 >= 2.0.0 cspi-1.0 >= 1.1.7
|
|
libspi-1.0 >= 1.1.7 libbonobo-2.0 >= 2.0.0 atk >= 1.0.0
|
|
gtk+-2.0 >= 2.0.0 gail libwnck-1.0 esound... yes
|
|
</pre>
|
|
|
|
<p>Esta es una lista de los componentes de los cuales depende su
|
|
aplicación para poder compilar. Preste atención a
|
|
la jerarquización del sistema <b>USE_GNOME</b>; muchos
|
|
componentes pueden estar implicados por las directivas de
|
|
<b>USE_GNOME</b>. En el ejemplo anterior
|
|
<tt>USE_GNOME= libgnomeui</tt>, implica el uso de
|
|
<tt>libbonoboui</tt>, lo cual implica el uso de
|
|
<tt>libgnomecanvas</tt>, que a su vez implica el uso de
|
|
<tt>libglade2</tt>, el cual implica a <tt>gtk20</tt>. Por lo
|
|
que, aún cuando <tt>gtk+-2.0</tt> aparece en la lista de
|
|
componentes necesarios, <tt>gtk20</tt> puede ser eliminado de la
|
|
lista de <b>USE_GNOME</b>. Existe cierto número de
|
|
redundancias similares que pueden ser eliminadas de la lista.</p>
|
|
|
|
<p>Para la lista anterior (tomado de <tt>sysutils/gok</tt>), lo
|
|
siguiente es definido en el fichero <tt>Makefile</tt>:
|
|
|
|
<pre>
|
|
USE_GNOME= gnomehack gnomeprefix libgnomeui atspi libwnck
|
|
</pre>
|
|
|
|
<h2>Escritorio GNOME 1 vs. Escritorio GNOME 2</h2>
|
|
<p>En el principio, solo era <tt>GNOME 1</tt>. Cuando
|
|
surgió el escritorio <tt>GNOME 2</tt>, se buscó
|
|
asegurar la máxima compatibilidad con el pasado. Buscando
|
|
que las aplicaciones de <tt>GNOME 1</tt> se ejecuten
|
|
correctamente bajo <tt>GNOME 2</tt>, considerando que las
|
|
aplicaciones no hagan uso de funcionalidades específicas
|
|
del entorno de <tt>GNOME 1</tt>.</p>
|
|
|
|
<p>El escritorio <tt>GNOME 1</tt>, y todas las aplicaciones que no
|
|
se ejecutan correctamente bajo <tt>GNOME 2</tt>, se han eliminado
|
|
del árbol de ports.</p>
|
|
|
|
<p>Lo que esto significa para usted, como migrador de aplicaciones,
|
|
simplemente es que; no debe añadir aplicaciones
|
|
específicas de <tt>GNOME 1</tt> al árbol de ports.
|
|
</p>
|
|
|
|
<p>Si desea determinar que versión del escritorio GNOME
|
|
tiene instalado un usuario en su maquina, puede verificar el
|
|
valor de la variable <b>GNOME_DESKTOP_VERSION</b>. Este valor
|
|
será de <tt>"1"</tt> o <tt>"2"</tt>, dependiendo si se
|
|
tiene instalado el escritorio <tt>GNOME 1</tt> o <tt>GNOME 2</tt>
|
|
.</p>
|
|
|
|
<h2>Dependencias Opcionales en GNOME</h2>
|
|
<p>Si su ports puede usar GNOME opcionalmente, entonces
|
|
deberá definir en el fichero Makefile
|
|
<tt>WANT_GNOME= yes</tt>, y posteriormente verificar en todos los
|
|
componentes que su port vaya a utilizar para ver si se cuenta con
|
|
<tt>HAVE_GNOME</tt>. En virtud de que esta última
|
|
declaración, es una evaluación condicional,
|
|
deberá ser incluida entre la línea
|
|
<tt>bsd.port.pre.mk</tt> y <tt>bsd.port.post.mk</tt>. Por
|
|
ejemplo:</p>
|
|
|
|
<pre>
|
|
WANT_GNOME= yes
|
|
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${HAVE_GNOME:Mgnomepanel}!=""
|
|
USE_GNOME+= gnomeprefix gnomepanel
|
|
CONFIGURE_ARGS+= --with-gnome
|
|
PKGNAMESUFFIX= -gnome
|
|
PLIST_SUB= DATADIR="share/gnome"
|
|
.else
|
|
CONFIGURE_ARGS+= --without-gnome
|
|
PLIST_SUB= DATADIR="share"
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|
|
</pre>
|
|
|
|
<p>En este caso, <tt>WANT_GNOME</tt> le indica al sistema de ports
|
|
que debe checar la existencia de los componentes de GNOME
|
|
listados. Para cada componente que se encuentre, su nombre
|
|
será incluido en <tt>HAVE_GNOME</tt>. Dado que este port
|
|
puede usar <tt>gnomepanel</tt>, utilizamos <tt>HAVE_GNOME</tt>
|
|
para validar si contiene <tt>gnomepanel</tt> (para más
|
|
información con respecto a la sintáxis del
|
|
<tt>patrón</tt> de make <b>:M</b>, por favor consulte la
|
|
página de ayuda
|
|
<a href="http://www.freebsd.org/cgi/man.cgi?query=make&apropos=0&sektion=0&manpath=FreeBSD+4.6-stable&format=html">make(1)</a>)
|
|
. Si se localiza <tt>gnomepanel</tt>, entonces es incluido en la
|
|
lista de dependencias de <tt>USE_GNOME</tt>, y le son pasados
|
|
argumentos de configuración específicos del port,
|
|
del tipo <tt>--with-gnome</tt> a <tt>CONFIGURE_ARG</tt>. En la
|
|
infraestructura del antiguo GNOME, <tt>PKGNAMESUFFIX</tt> se
|
|
ajustaba automaticamente, con el uso apropiado del macro
|
|
<tt>USE_*</tt>. Ahora esto depende de cada responsable del port.
|
|
En nuestro port de ejemplo, se le incluye <tt>-gnome</tt> al
|
|
nombre del port, para indicar que ha sido compilado con soporte
|
|
para GNOME. Lo mismo aplica para <tt>DATADIR</tt>
|
|
<tt>PLIST_SUB</tt>. El responsable del port deberá
|
|
decidir cuando realizar la sustitución de <tt>DATADIR</tt>
|
|
. Una buena referencia es incluir el <tt>DATADIR</tt>
|
|
<tt>PLIST_SUB</tt> cuando se utilice el componente
|
|
<tt>gnomeprefix</tt>.</p>
|
|
|
|
<p><b>Nota:</b> Usted no puede incluir componentes extras en
|
|
<tt>USE_GNOME</tt> después de la línea
|
|
<tt>.include <bsd.port.pre.mk></tt>. Por lo que, lo
|
|
siguiente es <font color="#FF0000"><b>incorrecto</b></font>:</p>
|
|
|
|
<pre>
|
|
.include <bsd.port.pre.mk>
|
|
|
|
.if ${HAVE_GNOME:Mgnomelibs}!=""
|
|
USE_GNOME+= libgnome
|
|
.else
|
|
USE_GNOME+= gtk12 # !INCORRECTO!
|
|
.endif
|
|
</pre>
|
|
|
|
<p>Esto hará pensar al sistema que GNOME <em>es</em> deseado,
|
|
y marcará el <tt>pkg-plist</tt> de acuerdo a esto, por lo
|
|
que fallará la compilación. Si necesita incluir
|
|
componentes adicionales a <tt>USE_GNOME</tt>, hagalo por
|
|
<b>arriba</b> de la línea
|
|
<tt>.include <bsd.port.pre.mk></tt>.</p>
|
|
|
|
<p>Para forzar el uso opcional de dependencias incondicionales de
|
|
GNOME, puede incluir en su fichero <tt>/etc/make.conf</tt> la
|
|
línea <tt>WITH_GNOME= yes</tt> o bien directamente en la
|
|
línea de comandos. Esto siempre dará un resultado
|
|
verdadero cuando se verifique por dependencias opcionales de
|
|
GNOME. Si desea que el sistema siempre dé un resultado de
|
|
falso cuando se verifiquen las dependencias opcionales de GNOME,
|
|
puede incluir la línea <tt>WITHOUT_GNOME= yes</tt> al
|
|
fichero <tt>/etc/make.conf</tt> o bien hacerlo desde la
|
|
línea de comandos.</p>
|
|
|
|
<p>Puede encontrar más información en el uso de la
|
|
infraestructura <b>USE_GNOME</b> al mirar el código y los
|
|
comentarios que se incluyen en
|
|
<tt>${PORTSDIR}/Mk/bsd.gnome.mk</tt>.</p>
|
|
|
|
<!-- End GNOME-related Makefile macros -->
|
|
|
|
<!-- Begin GNOME OMF -->
|
|
<h2>Instalación OMF</h2>
|
|
|
|
<p>Gran cantidad de aplicaciones de GNOME (especialmente
|
|
aplicaciones de GNOME 2) instalan ficheros de OMF (por las siglas
|
|
en inglés; OpenSource Metadata Framework) que contienen la
|
|
información de los ficheros de ayuda para dichas
|
|
aplicaciones. Estos ficheros OMF requieren de un tratamiento
|
|
especial por parte de ScrollKeeper para que aplicaciones como
|
|
Yelp puedan localizar la documentación de ayuda. Para
|
|
efecto de que se realice un registro exitoso de los ficheros OMF,
|
|
al instalar aplicaciones de GNOME desde paquetes, deberá
|
|
asegurarse que el <tt>pkg-plist</tt> de su port cuente con lo
|
|
siguiente para <em>cada</em> fichero OMF listado.</p>
|
|
|
|
<pre>
|
|
@exec scrollkeeper-install -q \
|
|
%D/ruta/al/fichero/help_file.omf \
|
|
2>/dev/null || /usr/bin/true
|
|
@unexec scrollkeeper-uninstall -q \
|
|
%D/ruta/al/fichero/help_file.omf \
|
|
2>/dev/null || /usr/bin/true
|
|
</pre>
|
|
|
|
<p>Por ejemplo:</p>
|
|
|
|
<pre>
|
|
@exec scrollkeeper-install -q \
|
|
%D/share/gnome/bug-buddy/bug-buddy-C.omf \
|
|
2>/dev/null || /usr/bin/true
|
|
@unexec scrollkeeper-uninstall -q \
|
|
%D/share/gnome/bug-buddy/bug-buddy-C.omf \
|
|
2>/dev/null || /usr/bin/true
|
|
</pre>
|
|
|
|
<!-- End GNOME OMF -->
|
|
|
|
<!-- Begin GNOME libtool -->
|
|
<h2>Problemas con Libtool</h2>
|
|
|
|
<p>La mayoría (si no es que todas), de las aplicaciones de
|
|
GNOME, dependen del programa de la GNU libtool. Así mismo
|
|
utilizan el sistema de configuración de GNU. Si su port
|
|
instala librerías compartidas, deberá añadir
|
|
al fichero Makefile del port la línea
|
|
<tt>USE_LIBTOOL= yes</tt>. Esto se encargará de cubrir
|
|
casi todos los requisitos de <tt>libtool</tt>, pero no
|
|
prevendrá cosas como la instalación de ficheros de
|
|
tipo .la. Para asegurarse de una instalación exitosa de
|
|
las librerías compartidas, también considere
|
|
incluir la siguiente línea al script <tt>configure</tt> de
|
|
su port, directamente abajo de la línea
|
|
<tt>LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"</tt>:</p>
|
|
|
|
<pre>
|
|
$ac_aux_dir/ltconfig $LIBTOOL_DEPS
|
|
</pre>
|
|
|
|
<p>Esto previene la instalación misma del fichero .la y se
|
|
asegura que la variable <tt>${PTHREAD_LIBS}</tt> sea pasada
|
|
correctamente el enlazador (linker).</p>
|
|
<!-- End GNOME libtool -->
|
|
|
|
<!-- Begin GNOME distfiles -->
|
|
<h2>Distfiles</h2>
|
|
|
|
<p>Para separar los ficheros distfiles de GNOME 2 con los distfiles
|
|
de GNOME 1, y para mantener el directorio distfiles lo más
|
|
limpio posible, los ports de GNOME 1 que descarguen sus distfiles
|
|
desde <tt>${MASTER_SITE_GNOME}</tt> deberán incluir lo
|
|
siguiente en el fichero Makefile:</p>
|
|
|
|
<pre>
|
|
DIST_SUBDIR= gnome
|
|
</pre>
|
|
|
|
<p>Los ports de GNOME 2 que descarguen los ficheros distfiles desde
|
|
<tt>${MASTER_SITE_GNOME}</tt> deberán incluir la siguiente
|
|
línea en el fichero Makefile:</p>
|
|
|
|
<pre>
|
|
DIST_SUBDIR= gnome2
|
|
</pre>
|
|
|
|
<p>Algunos ficheros distfiles de GNOME se pueden encontrar
|
|
comprimidos con formato tar gzip o bien como tar bzip2. Para
|
|
ahorrar tiempo de descarga en enlaces lentos, deberá usar
|
|
el formato bzip2 cuando le sea posible. Para hacer esto incluya
|
|
la siguiente línea en el fichero Makefile de su port:</p>
|
|
|
|
<pre>
|
|
USE_BZIP2= yes
|
|
</pre>
|
|
|
|
<!-- End GNOME distfiles -->
|
|
|
|
|
|
<p>Si aún requiere de algo de ayuda con su port, vea alguno
|
|
de los <a href="/ports/gnome.html">ports existentes</a> como
|
|
ejemplo. Además la lista de correo
|
|
<a href="mailto:&email;@FreeBSD.org">freebsd-gnome</a> siempre
|
|
está disponible para usted.</p>
|
|
|
|
&footer;
|
|
</body>
|
|
</html>
|