Projet GNOME pour FreeBSD : Comment cr�er un port
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 Manuel du Porteur d'Applications pour FreeBSD. Les macros Makefile pour GNOMEPour les ports qui n�cessitent GNOME, vous devez d�finir les variables suivantes dans le Makefile du port : USE_GNOME= yes USE_X_PREFIX= yes 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 : WANT_GNOME= yes 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 :
Si votre port peut en option utiliser GNOME, vous devez utiliser WANT_GNOME= yes dans votre Makefile et v�rifier si HAVE_GNOME est positionn�. Comme c'est une �valuation conditionnelle, vous devez le placer entre bsd.port.pre.mk et bsd.port.post.mk. Par exemple : 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> WANT_GNOME indique au syst�me des ports de v�rifie l'existence de gnome-config. S'il existe, HAVE_GNOME est positionn�. Sinon, HAVE_GNOME ne l'est pas. En positionnant USE_GNOME apr�s la v�rification sur HAVE_GNOME le port enregistrera toutes les d�pendances li�es � GNOME correctement. Lors de la cr�ation des ports GNOME, rappelez-vous que de nombreuses applications ont besoin de r�pertoires partag�s dans ${PREFIX}/share/gnome. 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 @dirrm appropri�e dans le fichier pkg-plist). Pour GNOME, le port parent principal est gnomecore. Si votre port inclu USE_GNOME= yes, tout devrait �tre correct. Si vous n'�tes pas certain d'avoir besoin d'autres paquetages, vous pouvez utiliser le script ${PORTSDIR}/Tools/scripts/gnomedepends.py afin d'examiner le fichier pkg-plist de votre port : # 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 Pour voir la liste des paquetages indiqu�s comme n�cessaire par votre port, utilisez la commande make package-depends. Internationalisation de GNOMEGNOME s'appuie sur le port gettext pour l'internationalisation (I18N). FreeBSD supporte actuellement deux versions de gettext : 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 gettext. Pour utiliser cette version plus ancienne de gettext, ajoutez les lignes suivantes dans le Makefile de votre port : BUILD_DEPENDS= msgfmt-old:${PORTSDIR}/devel/gettext-old CONFIGURE_ENV+= MSGFMT=${LOCALBASE}/bin/msgfmt-old \ XGETTEXT=${LOCALBASE}/bin/xgettext-old Lors de l'installation des applications GNOME, assurez-vous que les fichiers de traduction sont plac�s dans /usr/X11R6/share/locale et non pas dans /usr/X11R6/share/gnome/locale. Pour ce faire, ajoutez les lignes suivantes dans la section pre-patch: du Makefile de votre port : pre-patch: @find ${WRKSRC} -name "Makefile.in*" | xargs ${PERL} -pi -e \ 's|\$\(datadir\)/gnome/|\$\(datadir\)/|g ; \ s|\$\(datadir\)/locale|\$\(prefix\)/share/locale|g' 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 patch. Probl�mes li�s � LibtoolLa 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 USE_LIBTOOL de FreeBSD. L'utilisation de cette macro est d�conseill�e. A la place, positionnez GNU_CONFIGURE= yes, et utilisez ce patch. 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. Fichiers sourcesA 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 ${MASTER_SITE_GNOME} doivent ajouter la ligne suivante au fichier Makefile : DIST_SUBDIR= gnome Les ports de GNOME 2.0 qui t�l�chargent leurs fichiers sources depuis le serveur ${MASTER_SITE_GNOME} doivent ajouter la ligne suivante au fichier Makefile : DIST_SUBDIR= gnome2 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 : USE_BZIP2= yes Si vous avez malgr� tout besoin d'aide pour votre port, prenez exemple sur les ports existant. La liste de diffusion freebsd-gnome est �galement l� pour vous aider. |