- 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.
243 lines
10 KiB
Text
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é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ère que vous connaissez déjà comment le système des ports fonctionne
|
|
et par conséquent ne donne que les trucs et astuces spécifiques à GNOME. Des instructions
|
|
plus géné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écessitent</i> GNOME, vous devez dé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éfix d'installation ainsi que les dépendances
|
|
indispensables pour GNOME. Si votre port peut utiliser GNOME, mais qu'il
|
|
n'est pas requis, vous pouvez définir les variables suivantes dans votre Makefile :</p>
|
|
|
|
<pre>
|
|
WANT_GNOME= yes
|
|
</pre>
|
|
|
|
<p>Si le système des ports détecte que GNOME est installé sur le système
|
|
alors les composants GNOME seront compilés. Autres macros utiles en rapport
|
|
avec GNOME qui peuvent être utilisées dans le Makefile :</p>
|
|
|
|
<!-- Begin GNOME-related Makefile macros -->
|
|
<ul>
|
|
<li><p><tt>USE_GLIB (WANT_GLIB)</tt> : L'application nécessite
|
|
(peut utiliser) Glib. Définir <tt>USE_GNOME</tt> ou <tt>USE_GTK</tt>
|
|
définit automatiquement cette option.</p></li>
|
|
|
|
<li><p><tt>USE_GTK (WANT_GTK)</tt> : L'application n'est pas forcément
|
|
compatible GNOME mais nécessite GTK+. Cela prendra en charge
|
|
ces dépendances. A noter que cette option ne <b>doit pas</b> être définie
|
|
si <tt>USE_GNOME</tt> est défini.</p></li>
|
|
|
|
<li><p><tt>USE_ESOUND (WANT_ESOUND)</tt> : L'application nécessite
|
|
(peut utiliser) esound. En temps normal, le support esound est ajouté en spécifiant
|
|
<tt>USE_GNOME</tt>.</p></li>
|
|
|
|
<li><p><tt>USE_IMLIB (WANT_IMLIB)</tt> : L'application nécessite
|
|
(peut utiliser) la librairie graphique Imlib. Il n'est pas nécessaire de l'indiquer
|
|
si <tt>USE_GNOME</tt> est défini.</p></li>
|
|
|
|
<li><p><tt>USE_GNOMELIBS (WANT_GNOMELIBS)</tt> : L'application
|
|
nécessite (peut utiliser) les librairies GNOME. Cela n'implique pas autant
|
|
de dépendances que <tt>USE_GNOME</tt> et doit être utilisé pour
|
|
les applications qui utilisent GNOME mais qui n'ont pas besoin du Centre de
|
|
Contrô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écessite (peut utiliser) toutes les librairies GNOME et le Centre de Contrôle
|
|
GNOME mais n'utilise aucun composant du noyau de GNOME. Cette option est
|
|
habituellement utilisé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érifier si
|
|
<tt>HAVE_GNOME</tt> est positionné. Comme c'est une é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 <bsd.port.pre.mk>
|
|
|
|
.if defined(HAVE_GNOME)
|
|
USE_GNOME= yes
|
|
CONFIGURE_ARGS+= --with-gnome
|
|
.else
|
|
CONFIGURE_ARGS+= --without-gnome
|
|
.endif
|
|
|
|
.include <bsd.port.post.mk>
|
|
</pre>
|
|
|
|
<p><tt>WANT_GNOME</tt> indique au système des ports
|
|
de vérifie l'existence de <tt>gnome-config</tt>. S'il
|
|
existe, <tt>HAVE_GNOME</tt> est positionné. Sinon, <tt>HAVE_GNOME</tt>
|
|
ne l'est pas. En positionnant <tt>USE_GNOME</tt> après la vérification sur
|
|
<tt>HAVE_GNOME</tt> le port enregistrera toutes les dépendances
|
|
liées à GNOME correctement.</p>
|
|
|
|
<p>Lors de la création des ports GNOME, rappelez-vous que de nombreuses applications
|
|
ont besoin de répertoires partagés dans <tt>${PREFIX}/share/gnome</tt>. Les ports
|
|
doivent être construits de telle manière que les fichiers placés dans ces
|
|
répertoires soient supprimés avant le paquetage qui a créé les
|
|
répertoires (i.e. le paquetage a une instruction <tt>@dirrm</tt>
|
|
approprié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 être correct. Si vous n'ê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és comme né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é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 également que les fichiers de traduction sont installé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èmes liés à Libtool</h2>
|
|
|
|
<p>La plupart si ce n'est toutes les applications GNOME dépendent de la libtool de GNU. Elles
|
|
utilisent également le système "configure" de GNU. Les dernières versions de libtool ont
|
|
un problème la macro <tt>USE_LIBTOOL</tt> de FreeBSD. L'utilisation de cette
|
|
macro est déconseillée. A la place, positionnez <tt>GNU_CONFIGURE= yes</tt>,
|
|
et utilisez ce <a href="../patches/patch-ltmain.sh">patch</a>.
|
|
Il empêche l'installation des fichiers .la, empêche la
|
|
compilation et l'installation des librairies statiques au format archive et
|
|
permet de s'assurer que l'option -pthread est passé à l'éditeur de lien.</p>
|
|
<!-- End GNOME libtool -->
|
|
|
|
<!-- Begin GNOME distfiles -->
|
|
<h2>Fichiers sources</h2>
|
|
|
|
<p>A mesure que GNOME 2.0 gagne en popularité, 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épertoire "distfiles". Pour ce faire,
|
|
les ports de GNOME 1.0 qui télé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élé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 économiser du temps de téléchargement sur les lignes à faible débit,
|
|
utilisez les fichiers sources bzip2 à 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é 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 également là pour vous aider.</p>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
&footer;
|
|
</body>
|
|
</html>
|