aboutsummaryrefslogtreecommitdiff
path: root/es/gnome/docs/porting.sgml
blob: e72e352acc469570f80bde1c78d0ee168a4a9a2c (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD: www/es/gnome/docs/porting.sgml,v 1.3 2004/03/05 19:31:58 jesusr Exp $">
<!ENTITY title "Proyecto FreeBSD GNOME: Como Crear Un Port">
<!ENTITY % navincludes SYSTEM "../../includes.navdevelopers.sgml"> %navincludes;
<!ENTITY % gnomeincludes SYSTEM "../includes.sgml"> %gnomeincludes;
<!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
]>
<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&iacute;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&eacute;
	    componentes de GNOME son necesarios para que su port compile;
	    simplemente l&iacute;stelos con un espacio de separaci&oacute;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&iacute;as de
	        <b>GTK2</b>, la siguiente forma es la m&aacute;s sencilla de
		definir esto:</p>

          <pre>
USE_X_PREFIX=   yes
USE_GNOME=      gtk20
          </pre>

             <p>Si su port, solamente necesita las librer&iacute;as de
	       <b>GTK1</b>, la siguiente forma es la m&aacute;s sencilla de
	       definirlo:</p>

          <pre>
USE_X_PREFIX=   yes
USE_GNOME=      gtk12
          </pre>

              <p>A&uacute;n en el caso de que su port, solamente necesite las
	        librer&iacute;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&oacute;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&aacute; una l&iacute;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&oacute;n para poder compilar.  Preste atenci&oacute;n a
	    la jerarquizaci&oacute;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&uacute;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&uacute;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&oacute; el escritorio <tt>GNOME 2</tt>, se busc&oacute;
	    asegurar la m&aacute;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&iacute;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 &aacute;rbol de ports.</p>

          <p>Lo que esto significa para usted, como migrador de aplicaciones,
            simplemente es que; no debe a&ntilde;adir aplicaciones
	    espec&iacute;ficas de <tt>GNOME 1</tt> al &aacute;rbol de ports.
	    </p>

          <p>Si desea determinar que versi&oacute;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&aacute; 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&aacute; 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 &uacute;ltima
	    declaraci&oacute;n, es una evaluaci&oacute;n condicional,
	    deber&aacute; ser incluida entre la l&iacute;nea
	    <tt>bsd.port.pre.mk</tt> y <tt>bsd.port.post.mk</tt>.  Por
	    ejemplo:</p>

          <pre>
WANT_GNOME=     yes

.include &lt;bsd.port.pre.mk&gt;

.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 &lt;bsd.port.post.mk&gt;
          </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&aacute; 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&aacute;s
	    informaci&oacute;n con respecto a la sint&aacute;xis del
	    <tt>patr&oacute;n</tt> de make <b>:M</b>, por favor consulte la
	    p&aacute;gina de ayuda
            <a href="http://www.freebsd.org/cgi/man.cgi?query=make&amp;apropos=0&amp;sektion=0&amp;manpath=FreeBSD+4.6-stable&amp;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&oacute;n espec&iacute;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&aacute;
	    decidir cuando realizar la sustituci&oacute;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&eacute;s de la l&iacute;nea
	    <tt>.include &lt;bsd.port.pre.mk&gt;</tt>.  Por lo que, lo
	    siguiente es <font color="#FF0000"><b>incorrecto</b></font>:</p>

          <pre>
.include &lt;bsd.port.pre.mk&gt;

.if ${HAVE_GNOME:Mgnomelibs}!=""
        USE_GNOME+=     libgnome
.else
        USE_GNOME+=     gtk12   # !INCORRECTO!
.endif
          </pre>

          <p>Esto har&aacute; pensar al sistema que GNOME <em>es</em> deseado,
            y marcar&aacute; el <tt>pkg-plist</tt> de acuerdo a esto, por lo
	    que fallar&aacute; la compilaci&oacute;n.  Si necesita incluir
	    componentes adicionales a <tt>USE_GNOME</tt>, hagalo por
	    <b>arriba</b> de la l&iacute;nea
	    <tt>.include &lt;bsd.port.pre.mk&gt;</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&iacute;nea <tt>WITH_GNOME= yes</tt> o bien directamente en la
	    l&iacute;nea de comandos.  Esto siempre dar&aacute; un resultado
	    verdadero cuando se verifique por dependencias opcionales de
	    GNOME.  Si desea que el sistema siempre d&eacute; un resultado de
	    falso cuando se verifiquen las dependencias opcionales de GNOME,
	    puede incluir la l&iacute;nea <tt>WITHOUT_GNOME= yes</tt> al
	    fichero <tt>/etc/make.conf</tt> o bien hacerlo desde la
	    l&iacute;nea de comandos.</p>

          <p>Puede encontrar m&aacute;s informaci&oacute;n en el uso de la
	    infraestructura <b>USE_GNOME</b> al mirar el c&oacute;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&oacute;n OMF</h2>

          <p>Gran cantidad de aplicaciones de GNOME (especialmente
	    aplicaciones de GNOME 2) instalan ficheros de OMF (por las siglas
	    en ingl&eacute;s; OpenSource Metadata Framework) que contienen la
	    informaci&oacute;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&oacute;n de ayuda.  Para
	    efecto de que se realice un registro exitoso de los ficheros OMF,
	    al instalar aplicaciones de GNOME desde paquetes, deber&aacute;
	    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&gt;/dev/null || /usr/bin/true
@unexec scrollkeeper-uninstall -q \
        %D/ruta/al/fichero/help_file.omf \
        2&gt;/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&gt;/dev/null || /usr/bin/true
@unexec scrollkeeper-uninstall -q \
        %D/share/gnome/bug-buddy/bug-buddy-C.omf \
        2&gt;/dev/null || /usr/bin/true
            </pre>

<!-- End GNOME OMF -->

<!-- Begin GNOME libtool -->
          <h2>Problemas con Libtool</h2>

          <p>La mayor&iacute;a (si no es que todas), de las aplicaciones de
	    GNOME, dependen del programa de la GNU libtool.  As&iacute; mismo
	    utilizan el sistema de configuraci&oacute;n de GNU.  Si su port
	    instala librer&iacute;as compartidas, deber&aacute; a&ntilde;adir
	    al fichero Makefile del port la l&iacute;nea
	    <tt>USE_LIBTOOL= yes</tt>.  Esto se encargar&aacute; de cubrir
	    casi todos los requisitos de <tt>libtool</tt>, pero no
	    prevendr&aacute; cosas como la instalaci&oacute;n de ficheros de
	    tipo .la.  Para asegurarse de una instalaci&oacute;n exitosa de
	    las librer&iacute;as compartidas, tambi&eacute;n considere
	    incluir la siguiente l&iacute;nea al script <tt>configure</tt> de
	    su port, directamente abajo de la l&iacute;nea
	    <tt>LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"</tt>:</p>

            <pre>
$ac_aux_dir/ltconfig $LIBTOOL_DEPS
            </pre>

            <p>Esto previene la instalaci&oacute;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&aacute;s
	    limpio posible, los ports de GNOME 1 que descarguen sus distfiles
	    desde <tt>${MASTER_SITE_GNOME}</tt> deber&aacute;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&aacute;n incluir la siguiente
	    l&iacute;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&aacute; usar
	    el formato bzip2 cuando le sea posible.  Para hacer esto incluya
	    la siguiente l&iacute;nea en el fichero Makefile de su port:</p>

          <pre>
USE_BZIP2=  yes
          </pre>

<!-- End GNOME distfiles -->


          <p>Si a&uacute;n requiere de algo de ayuda con su port, vea alguno
	    de los <a href="/ports/gnome.html">ports existentes</a> como
	    ejemplo.  Adem&aacute;s la lista de correo
	    <a href="mailto:&email;@FreeBSD.org">freebsd-gnome</a> siempre
	    est&aacute; disponible para usted.</p>

  &footer;
  </body>
</html>