245 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			245 lines
		
	
	
	
		
			11 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" [
 | |
| <!ENTITY base CDATA "../..">
 | |
| <!ENTITY enbase "../&base;">
 | |
| <!ENTITY date "$FreeBSD: www/fr/gnome/docs/porting.sgml,v 1.2 2003/09/08 11:35:06 stephane Exp $">
 | |
| <!ENTITY title "Projet GNOME pour FreeBSD : Comment créer un port">
 | |
| <!ENTITY % gnomeincludes SYSTEM "../includes.sgml"> %gnomeincludes;
 | |
| <!ENTITY % includes SYSTEM "../../includes.sgml"> %includes;
 | |
| ]>
 | |
| 
 | |
| <!-- 
 | |
|   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>
 |