doc/fr/gnome/docs/porting.sgml
Hiroki Sato 5305bb945d www cleanup mega commit:
- 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.
2006-08-19 21:26:51 +00:00

243 lines
10 KiB
Text

<!DOCTYPE HTML PUBLIC "-//FreeBSD//DTD HTML 4.01 Transitional-Based Extension//EN" [
<!ENTITY base CDATA "../..">
<!ENTITY date "$FreeBSD: www/fr/gnome/docs/porting.sgml,v 1.5 2005/10/06 12:56:03 blackend Exp $">
<!ENTITY title "Projet GNOME pour FreeBSD : Comment cr&eacute;er un port">
<!ENTITY % navinclude.developers "INCLUDE">
]>
<!--
The FreeBSD French Documentation Project
Original revision: 1.18
Version francaise : Stephane Legrand <stephane@freebsd-fr.org>
-->
<html>
&header;
<table border="0">
<tr>
<td>
<p>Ce document consid&egrave;re que vous connaissez d&eacute;j&agrave; comment le syst&egrave;me des ports fonctionne
et par cons&eacute;quent ne donne que les trucs et astuces sp&eacute;cifiques &agrave; GNOME. Des instructions
plus g&eacute;n&eacute;rales sont disponibles dans le
<a href="http://www.freebsd.org/doc/en_US.ISO8859-1/books/porters-handbook/index.html">Manuel du Porteur d'Applications pour FreeBSD</a>.
</p>
<h2>Les macros Makefile pour GNOME</h2>
<p>Pour les ports qui <i>n&eacute;cessitent</i> GNOME, vous devez d&eacute;finir les variables suivantes
dans le Makefile du port :</p>
<pre>
USE_GNOME= yes
USE_X_PREFIX= yes
</pre>
<p>Cela prendra en charge le pr&eacute;fix d'installation ainsi que les d&eacute;pendances
indispensables pour GNOME. Si votre port peut utiliser GNOME, mais qu'il
n'est pas requis, vous pouvez d&eacute;finir les variables suivantes dans votre Makefile :</p>
<pre>
WANT_GNOME= yes
</pre>
<p>Si le syst&egrave;me des ports d&eacute;tecte que GNOME est install&eacute; sur le syst&egrave;me
alors les composants GNOME seront compil&eacute;s. Autres macros utiles en rapport
avec GNOME qui peuvent &ecirc;tre utilis&eacute;es dans le Makefile :</p>
<!-- Begin GNOME-related Makefile macros -->
<ul>
<li><p><tt>USE_GLIB (WANT_GLIB)</tt> : L'application n&eacute;cessite
(peut utiliser) Glib. D&eacute;finir <tt>USE_GNOME</tt> ou <tt>USE_GTK</tt>
d&eacute;finit automatiquement cette option.</p></li>
<li><p><tt>USE_GTK (WANT_GTK)</tt> : L'application n'est pas forc&eacute;ment
compatible GNOME mais n&eacute;cessite GTK+. Cela prendra en charge
ces d&eacute;pendances. A noter que cette option ne <b>doit pas</b> &ecirc;tre d&eacute;finie
si <tt>USE_GNOME</tt> est d&eacute;fini.</p></li>
<li><p><tt>USE_ESOUND (WANT_ESOUND)</tt> : L'application n&eacute;cessite
(peut utiliser) esound. En temps normal, le support esound est ajout&eacute; en sp&eacute;cifiant
<tt>USE_GNOME</tt>.</p></li>
<li><p><tt>USE_IMLIB (WANT_IMLIB)</tt> : L'application n&eacute;cessite
(peut utiliser) la librairie graphique Imlib. Il n'est pas n&eacute;cessaire de l'indiquer
si <tt>USE_GNOME</tt> est d&eacute;fini.</p></li>
<li><p><tt>USE_GNOMELIBS (WANT_GNOMELIBS)</tt> : L'application
n&eacute;cessite (peut utiliser) les librairies GNOME. Cela n'implique pas autant
de d&eacute;pendances que <tt>USE_GNOME</tt> et doit &ecirc;tre utilis&eacute; pour
les applications qui utilisent GNOME mais qui n'ont pas besoin du Centre de
Contr&ocirc;le GNOME, de la librairie capplet ou d'un composant faisant partie
du noyau de GNOME.</p></li>
<li><p><tt>USE_GNOMECTRL (WANT_GNOMECTRL)</tt> : L'application
n&eacute;cessite (peut utiliser) toutes les librairies GNOME et le Centre de Contr&ocirc;le
GNOME mais n'utilise aucun composant du noyau de GNOME. Cette option est
habituellement utilis&eacute;e pour les APIs.</p></li>
</ul>
<p>Si votre port peut en option utiliser GNOME, vous devez utiliser
<tt>WANT_GNOME= yes</tt> dans votre Makefile et v&eacute;rifier si
<tt>HAVE_GNOME</tt> est positionn&eacute;. Comme c'est une &eacute;valuation
conditionnelle, vous devez le placer entre <tt>bsd.port.pre.mk</tt>
et <tt>bsd.port.post.mk</tt>. Par exemple :</p>
<pre>
WANT_GNOME= yes
.include &lt;bsd.port.pre.mk&gt;
.if defined(HAVE_GNOME)
USE_GNOME= yes
CONFIGURE_ARGS+= --with-gnome
.else
CONFIGURE_ARGS+= --without-gnome
.endif
.include &lt;bsd.port.post.mk&gt;
</pre>
<p><tt>WANT_GNOME</tt> indique au syst&egrave;me des ports
de v&eacute;rifie l'existence de <tt>gnome-config</tt>. S'il
existe, <tt>HAVE_GNOME</tt> est positionn&eacute;. Sinon, <tt>HAVE_GNOME</tt>
ne l'est pas. En positionnant <tt>USE_GNOME</tt> apr&egrave;s la v&eacute;rification sur
<tt>HAVE_GNOME</tt> le port enregistrera toutes les d&eacute;pendances
li&eacute;es &agrave; GNOME correctement.</p>
<p>Lors de la cr&eacute;ation des ports GNOME, rappelez-vous que de nombreuses applications
ont besoin de r&eacute;pertoires partag&eacute;s dans <tt>${PREFIX}/share/gnome</tt>. Les ports
doivent &ecirc;tre construits de telle mani&egrave;re que les fichiers plac&eacute;s dans ces
r&eacute;pertoires soient supprim&eacute;s avant le paquetage qui a cr&eacute;&eacute; les
r&eacute;pertoires (i.e. le paquetage a une instruction <tt>@dirrm</tt>
appropri&eacute;e dans le fichier pkg-plist). Pour GNOME, le port parent
principal est <tt>gnomecore</tt>. Si votre port inclu
<tt>USE_GNOME= yes</tt>, tout devrait &ecirc;tre correct. Si vous n'&ecirc;tes
pas certain d'avoir besoin d'autres paquetages, vous pouvez utiliser
le script <tt>${PORTSDIR}/Tools/scripts/gnomedepends.py</tt>
afin d'examiner le fichier pkg-plist de votre port :</p>
<pre>
# cd /usr/ports/x11/mygnomeport
# /usr/ports/Tools/scripts/gnomedepends.py
According to the contents of pkg-plist the port depends on the following GNOME
port(s):
/usr/ports/mail/gmail, for directories:
share/gnome/help
share/gnome/apps
share/gnome
/usr/ports/sysutils/gnomecontrolcenter, for directories:
share/gnome/apps/Settings
share/gnome/apps
/usr/ports/textproc/scrollkeeper, for directories:
share/gnome/omf
share/gnome
/usr/ports/x11/gnomecore, for directories:
share/gnome/apps/System
/usr/ports/x11/gnomelibs, for directories:
share/gnome/pixmaps
share/gnome/help
</pre>
<p>Pour voir la liste des paquetages indiqu&eacute;s comme n&eacute;cessaire par votre port,
utilisez la commande <tt>make package-depends</tt>.</p>
<!-- End GNOME-related Makefile macros -->
<!-- Begine GNOME I18N -->
<h2>Internationalisation de GNOME</h2>
<p>GNOME s'appuie sur le port <tt>gettext</tt> pour
l'internationalisation (I18N). FreeBSD supporte actuellement deux
versions de <tt>gettext</tt> : la 0.10.35 et la 0.11.1. La plupart des ports
peuvent utiliser la 0.11.1. Cependant, si lors de la compilation de votre port, vous avez une
erreur avec les fichiers de traduction .po, vous pouvez avoir besoin d'utiliser
la version plus ancienne de <tt>gettext</tt>.</p>
<p>Pour utiliser cette version plus ancienne de <tt>gettext</tt>, ajoutez les lignes suivantes dans le
Makefile de votre port :</p>
<pre>
BUILD_DEPENDS= msgfmt-old:${PORTSDIR}/devel/gettext-old
CONFIGURE_ENV+= MSGFMT=${LOCALBASE}/bin/msgfmt-old \
XGETTEXT=${LOCALBASE}/bin/xgettext-old
</pre>
<p>Lors de l'installation des applications GNOME, assurez-vous que les fichiers
de traduction sont plac&eacute;s dans <tt>/usr/X11R6/share/locale</tt> et
non pas dans <tt>/usr/X11R6/share/gnome/locale</tt>. Pour ce faire, ajoutez les
lignes suivantes dans la section <tt>pre-patch:</tt> du Makefile de votre port :</p>
<pre>
pre-patch:
@find ${WRKSRC} -name "Makefile.in*" | xargs ${PERL} -pi -e \
's|\$\(datadir\)/gnome/|\$\(datadir\)/|g ; \
s|\$\(datadir\)/locale|\$\(prefix\)/share/locale|g'
</pre>
<p>Assurez-vous &eacute;galement que les fichiers de traduction sont install&eacute;s avec l'extension .mo et
non pas avec l'extension .gmo. Pour cela, vous pouvez habituellement utiliser ce
<a href="../patches/patch-po::Makefile.in.in">patch</a>.</p>
<!-- End GNOME I18N -->
<!-- Begin GNOME libtool -->
<h2>Probl&egrave;mes li&eacute;s &agrave; Libtool</h2>
<p>La plupart si ce n'est toutes les applications GNOME d&eacute;pendent de la libtool de GNU. Elles
utilisent &eacute;galement le syst&egrave;me "configure" de GNU. Les derni&egrave;res versions de libtool ont
un probl&egrave;me la macro <tt>USE_LIBTOOL</tt> de FreeBSD. L'utilisation de cette
macro est d&eacute;conseill&eacute;e. A la place, positionnez <tt>GNU_CONFIGURE= yes</tt>,
et utilisez ce <a href="../patches/patch-ltmain.sh">patch</a>.
Il emp&ecirc;che l'installation des fichiers .la, emp&ecirc;che la
compilation et l'installation des librairies statiques au format archive et
permet de s'assurer que l'option -pthread est pass&eacute; &agrave; l'&eacute;diteur de lien.</p>
<!-- End GNOME libtool -->
<!-- Begin GNOME distfiles -->
<h2>Fichiers sources</h2>
<p>A mesure que GNOME 2.0 gagne en popularit&eacute;, nous devons
faire le tri entre les fichiers sources de GNOME 2.0 et ceux de GNOME 1.0 ainsi
que faire notre possible pour conserver un classement correct des fichiers sources dans le r&eacute;pertoire "distfiles". Pour ce faire,
les ports de GNOME 1.0 qui t&eacute;l&eacute;chargent leurs fichiers sources depuis le serveur
<tt>${MASTER_SITE_GNOME}</tt> doivent ajouter la ligne suivante
au fichier Makefile :</p>
<pre>
DIST_SUBDIR= gnome
</pre>
<p>Les ports de GNOME 2.0 qui t&eacute;l&eacute;chargent leurs fichiers sources depuis le serveur
<tt>${MASTER_SITE_GNOME}</tt> doivent ajouter la ligne suivante
au fichier Makefile :</p>
<pre>
DIST_SUBDIR= gnome2
</pre>
<p>Plusieurs des fichiers sources GNOME sont disponibles aux formats tar gzip et tar bzip2.
Pour &eacute;conomiser du temps de t&eacute;l&eacute;chargement sur les lignes &agrave; faible d&eacute;bit,
utilisez les fichiers sources bzip2 &agrave; chaque fois que possible. Pour cela,
ajoutez la ligne suivante au fichier Makefile du port :</p>
<pre>
USE_BZIP2= yes
</pre>
<!-- End GNOME distfiles -->
<p>Si vous avez malgr&eacute; tout besoin d'aide pour votre port, prenez exemple sur les
<a href="/ports/gnome.html">ports existant</a>.
La <a href="mailto:&email;@FreeBSD.org">liste de diffusion
freebsd-gnome</a> est &eacute;galement l&agrave; pour vous aider.</p>
</td>
</tr>
</table>
&footer;
</body>
</html>