--- hb-guide-ebuild.xml.orig 2009-10-26 20:51:43.000000000 +0100 +++ hb-guide-ebuild.xml.orig 2009-10-26 22:26:54.000000000 +0100 @@ -6,8 +6,8 @@ -1 -2006-02-02 +1.0.4 +2007-11-01
L'arbre de Portage @@ -27,7 +27,8 @@ util-linux-2.11y.ebuild. C'est dû au fait que tous les ebuilds pour un paquet particulier (quelle que soit la version) partagent le même répertoire ma_categorie/mon_paquet dans -/usr/portage. +/usr/portage, à moins que vous avez des surcouches +« overlays » installées.

@@ -110,7 +111,7 @@ solutionpour le faire fonctionner, regardez ce qu'ont fait d'autres distributions qui ont effectué leur propres versions de ce paquet. Vous pouvez regarder chez Mandrake ou +link="http://cvs.mandriva.com/cgi-bin/viewvc.cgi/SPECS/">Mandriva ou Debian ou Fedora pour avoir de bons exemples. @@ -410,249 +411,11 @@

La première partie de tous les fichiers ebuild est constituée d'un certain -nombre de variables. Elles sont placées dans trois catégories qui sont : +nombre de variables. Pour plus d'information sur ces variables, consultez + +le guide de développement.

- - - - - - - - - - - P - READ - Le nom et la version du paquet - - - - PN - READ - Le nom du paquet - - - - PV - READ - La version du paquet - - - - PR - READ - - Contient le numéro de révision ou r0 si aucun numéro de - révision n'existe. - - - - - PVR - READ - Contient le numéro de version avec la révision. - - - - PF - READ - Contient le nom complet du paquet ${PN}-${PVR}. - - - - A - READ - - Liste séparée par des espaces, des fichiers dans SRC_URI. Elle ne - contient pas les liens URL, juste le nom de fichier. - - - - - DISTDIR - READ - - Contient le nom du répertoire distfiles où sont mis tous - les fichiers récupérés pour un paquet. C'est en général - /usr/portage/distfiles. - - - - - FILESDIR - READ - - Contient le chemin vers le sous-répertoire files/ dans - l'emplacement spécifique du paquet dans l'arbre de Portage. Ne modifiez - pas cette variable. - - - - - WORKDIR - READ - - Base de la racine de travail pour un ebuild. Rien ne doit être construit - hors de ce répertoire. - - - - - S - OPT - - Le répertoire source pour votre paquet, en général ${WORKDIR}/${P}. - Portage va prendre cette valeur par défaut donc vous n'avez probablement pas - besoin de l'initialiser. - - - - - T - READ - - Le répertoire temporaire pour votre paquet. Il est utilisé lors de - l'exécution de l'ebuild à la manière du répertoire /tmp. - - - - - D - READ - - Le répertoire racine où le paquet devra être installé. Considérez-le comme - une racine d'arborescence (/) virtuelle. - - - - - SLOT - MUST - - Portage manipule souvent plusieurs versions d'un même programme installées. - Par exemple vous pouvez avoir GCC 2.95 et GCC 3.2 installés en - même temps sur votre machine. Vous devez alors spécifier le SLOT - dans chaque ebuild. Ici, nous prendrions pour le SLOT de - GCC 2.95 la valeur 2 alors que nous aurions utilisé la valeur - 3 pour le SLOT de GCC 3.2.
- Note : utiliser 0 comme valeur du SLOT signifie - que le paquet n'a qu'un seul SLOT possible (en d'autres termes, ce - paquet n'est pas « SLOTable »). -
- - - - LICENSE - MUST - - Cette variable spécifie la licence du programme, par exemple GPL-2, BSD, - etc. Ce champ doit être initialisé à une valeur de licence valide (qui peut - être n'importe quelle licence présente dans le répertoire - /usr/portage/license/). Si la licence n'y est pas encore - répertoriée, elle doit être ajoutée avant d'ajouter l'ebuild à l'arbre de - Portage. - - - - - KEYWORDS - MUST - - Cette variable remplit désormais un certain nombre de rôles. Tout d'abord, - elle spécifie la cible de l'ebuild en matière d'architecture. Les - mots-clefs incluent : x86, ppc, sparc, mips, alpha, arm, hppa, - amd64, ia64 La liste des architectures est dans le fichier - profiles/arch.list. Évidemment, vous utiliserez ceci pour - indiquer l'architecture de la machine cible. Portage n'autorisera pas une - machine x86 à construire autre chose que des ebuilds dont le mot-clef x86 - est spécifié dans la variable KEYWORDS. Les paquets qui ne - supportent pas une architecture nativement sont automatiquement masqués par - Portage. Si le paramètre KEYWORDS est précédé d'un ~, alors - cela indique que l'ebuild fonctionne, mais nécessite encore plusieurs tests - dans différents environnements avant d'être placé dans un profil stable - avec le mot-clef associé. Si le paramètre KEYWORDS est précédé d'un - - (tiret), alors le paquet ne fonctionne pas pour l'architecture - concernée. Si rien ne précède le KEYWORDS alors le paquet est - considéré comme stable. Vous pouvez autoriser l'installation de ces - différents types de paquets à travers l'utilisation de la variable - ACCEPT_KEYWORDS dans make.conf, ou dans le fichier - /etc/portage/package.keywords. - - - - - DESCRIPTION - MUST - Une courte et unique ligne de description de votre paquet. - - - - SRC_URI - MUST - - Les URL pour chaque fichier source de votre paquet séparés d'un espace. - Vous devez essayer de ne pas utiliser le numéro de version du paquet dans - les variables SRC_URI et S. Utilisez les variables ${PV} ou ${P}. Si l'URL - ne correspond pas exactement ou pas du tout au nom du paquet, définissez - une variable ${MY_P} et utilisez-la. - - - - - HOMEPAGE - MUST - - La page Internet dédiée au paquet. Si vous n'arrivez pas à trouver la page - officielle, essayez de trouver un lien depuis le site freshmeat.net ou un site de traçage de - paquets similaires. N'utilisez jamais de variables dans la description, - uniquement du text pur. - - - - - IUSE - MUST - - Cette variable contient les paramètres USE que votre paquet utilise. - Souvenez-vous que KEYWORDS ne doit pas y être listé ! - - - - - DEPEND - OPT - - Les dépendances de construction du paquet sont listées ici. Lire la section - sur les dépendances de paquets pour plus de - détails sur la syntaxe. - - - - - RDEPEND - OPT - - Les dépendances d'exécution du paquet sont listées ici. Encore une fois, - lisez la section sur les dépendances de - paquets pour plus de détails sur la syntaxe. - - -
VariableUtilisationDescription
-

Les fonctions

@@ -672,9 +435,7 @@ Utilisez cette fonction pour effectuer n'importe quel type de tâche qui soit un pré-requis à la construction. Cela inclut la vérification de l'existence - d'un fichier de configuration par exemple. S'il est nécessaire de créer des - utilisateurs ici, vous devez également faire une vérification dans la - fonction pkg_preinst() avant que le paquet ne s'installe. + d'un fichier de configuration par exemple. @@ -713,7 +474,7 @@ Utilisez cette fonction pour installer le paquet dans une image dans D. Si le paquet utilise automake, vous pouvez simplement effectuer un - make DESTDIR=${D} install. Assurez-vous que votre paquet installe + emake DESTDIR=${D} install. Assurez-vous que votre paquet installe tous ses fichiers en utilisant D comme racine ! Le répertoire initial de travail est S. @@ -792,11 +553,11 @@ use - Vérifier si un ou plusieurs paramètres USE sont définis. Si c'est le cas, - la fonction retournera les paramètres qui existent dans USE. Cette - possibilité va bientôt être modifiée et use ne retournera rien, mais - usev continuera à retourner les paramètres. Pour vérifier - l'existence d'un paramètre USE, vous pouvez utiliser use foobar. + Vérifier si une ou plusieurs variables USE sont sélectionnées. Pour les + variables sélectionnées, la fonction renverra "vrai". Dans tous les cas, + rien ne sera affiché sur la sortie standard. Pour une sortie plus verbeuse, + utilisez usev qui affichera les options USE qui ont été + sélectionnées. @@ -882,7 +643,7 @@ une fois, vous pouvez donner des arguments supplémentaires à la commande make en les donnant directement comme paramètres à einstall. Notez que la méthode utilisée de manière préférentielle pour installer un paquet - est d'utiliser la commande make install DESTDIR=${D} et non + est d'utiliser la commande emake install DESTDIR="${D}" et non einstall. Cette commande n'est en fait qu'une alternative aux fichiers make défectueux. @@ -901,13 +662,22 @@ - einfo + elog Informe l'utilisateur d'un événement important. L'argument passé à - einfo est le message qui sera donné à l'utilisateur. N'utilisez pas - einfo pour afficher des bannières comme + elog est le message qui sera donné à l'utilisateur. N'utilisez pas + elog pour afficher des bannières comme "*************************************". Le fait même d'utiliser - einfo est suffisant pour attirer l'attention de l'utilisateur. + elof est suffisant pour attirer l'attention de l'utilisateur. Le + message est aussi sauvegardé dans un fichier de traçage (« log ») + en utilisant le système « ELOG » de Portage. + + + + einfo + + Affiche des informations moins importantes qui ne seront pas sauvegardés + dans un fichier de traçage (« log »). @@ -972,12 +742,12 @@ Crée un nouvel utilisateur. Cette fonction prend pour argument obligatoire le nom d'utilisateur et un certain nombre d'arguments optionnels peuvent lui être spécifiés : $2 contient un UID. Mettre -1 pour que - l'UID prenne le prochain ID disponible. $3 contient un shell avec - /bin/false comme shell par défaut. $4 contient le - répertoire utilisateur avec /dev/null comme répertoire par - défaut. $5 contient tous les groupes auquel l'utilisateur doit être - ajouté, vide par défaut et $6 contient les éventuels paramètres à - passer à la commande useradd lors de la création de l'utilisateur. + l'UID prenne le prochain ID disponible. $3 contient un shell. Mettre + -1 pour que prendre le shell par défaut. $4 contient le répertoire + utilisateur avec /dev/null comme répertoire par défaut. + $5 contient tous les groupes auquel l'utilisateur doit être ajouté, + vide par défaut et $6 contient les éventuels paramètres à passer à la + commande useradd lors de la création de l'utilisateur. @@ -1109,8 +879,9 @@ replace-cpu-flags - Remplace tous les paramètres -march=... ou -mcpu=... qui contiennent le - second argument par le premier. + Cette fonction nécessite deux arguments. Il remplace une valeur de type + mtune/march/mcpu par une autre (Par exemple, « replace-cpu-flags 'i686' 'i586' » + remplacera -mtune/-march/-mcpu=i686 par -mtune/-march/-mcpu=i586). @@ -1170,6 +941,8 @@ +

Les fonctions d'assistance fournies par toolchain-funs.eclass

+

Vous pouvez aussi utiliser les fonctions suivantes fournies par l'eclass "toolchain-funcs". Vous devez vous assurer que inherit toolchain-funcs @@ -1336,8 +1109,8 @@

Sur les systèmes non Gentoo, vous pouvez obtenir des résultats similaires en utilisant les lignes suivantes dans votre vimrc, ou mieux en installant les -scripts de gentoo-syntax. +scripts « gentoo-syntax » qui peuvent être téléchargés à partir des +serveurs mirroirs de Gentoo.

@@ -1346,22 +1119,14 @@ 
 

-Si vous utilisez emacs, vous pouvez ajouter les lignes suivantes à la fin de -votre fichier .emacsrc (pour GNU Emacs) ou init.el (pour XEmacs) pour vous -assurer d'utiliser une configuration correcte lors de l'édition de tout ce qui -est lité à Gentoo : +Si vous utilisez Emacs, vous pouvez installer par la commande emerge, le +paquetage « app-emacs/gentoo-syntax » (pour GNU Emacs ou +« app-xemacs/gentoo-syntax » (pour XEmacs). Ces paquetages +fournissent des fonctions majeures pour Emacs pour l'indentation automatique +et pour la mise en surbrillance des fichiers « ebuild » et des autres +types de fichiers spécifiques au système d'exploitation Gentoo.

-
-(defun ebuild-mode ()
-  (shell-script-mode)
-  (sh-set-shell "bash")
-  (make-local-variable 'tab-width)
-  (setq tab-width 4))
-(setq auto-mode-alist (cons '("\\.ebuild$" . ebuild-mode) auto-mode-alist))
-(setq auto-mode-alist (cons '("\\.eclass$" . ebuild-mode) auto-mode-alist))
-
-

Si vous utilisez nano, alors vous avez de la chance ! Éditez simplement /etc/nanorc et décommentez la section liée aux ebuilds. @@ -1406,10 +1171,9 @@

-Dans vos propres ebuilds, vous pouvez vérifier si un paramètre USE est présent -ou non en utilisant la commande use <variable>. La commande -use affiche <variable> si celle-ci est présente dans les -USE de l'utilisateur. Vous pouvez l'utiliser comme suit : +Dans vos propres ebuilds, vous pouvez vérifier si une variable USE est présent +en utilisant la commande use <variable>. Elle s'utilise comme suit + :

@@ -1474,8 +1238,8 @@ 
 voir ce qu'ils recommandent, voyez quelle solution offre le plus de
 fonctionnalités ou lancez une pièce et choisissez pile ou face.  Par exemple,
 l'ebuild msmtp peut utiliser SSL avec GnuTLS ou avec OpenSSL, ou pas de
-SSL du tout. GnuTLS est préféré, car il offre plus de fonctionnalités que
-OpenSSL.
+SSL du tout. GnuTLS est préféré, car il offre plus beaucoup plus de
+fonctionnalités que OpenSSL.
 

@@ -1758,8 +1522,8 @@ 
   Non disponible
 
 
-  digest*
-  Crée un fichier digest pour un paquet
+  manifest*
+  Crée un fichier Manifest pour un paquet
   Non disponible
 
 
@@ -1841,7 +1605,7 @@ 
   ""
   
     Fixe le sous-répertoire relatif utilisé par dodoc
-    (DOCDESTREE)
+    (DOCDESTREE)
   
   docinto exemples
 
@@ -1868,8 +1632,9 @@ 
   doexe
   N/A
   
-    Installe les fichiers spécifiés avec le mode EXEOPTIONS (voir
-    exeopts) dans EXEDESTTREE (voir exeinto)
+    Installe les fichiers spécifiés avec le mode EXEOPTIONS (cf.
+    exeopts) dans PATH défini par EXEINTO (cf.
+    exeinto).
   
   doexe ${FILESDIR}/quake3
 
@@ -2125,9 +1890,8 @@ 
   prepalldocs
   N/A
   
-     Archive de manière récursive avec gzip tous les fichiers de documentation
-     dans /usr/share/doc, en tenant compte de manière transparente
-     des liens symboliques
+     Le fonctionnement de Portage a évolué et les nouveaux ebuilds ne doivent
+     plus utiliser cette fonction.
   
   prepalldocs
 
@@ -2196,32 +1960,32 @@ 
 

La variable DEPEND dans votre foo-x.y.z.ebuild indique à Portage les paquets qui sont nécessaires à la construction de foo. -La variable RDEPEND indique à Portage les paquets nécessaires à son -lancement. Vous n'avez besoin de spécifier explicitement RDEPEND que si -les dépendances de lancement de l'ebuild sont différentes de celles spécifiées -dans DEPEND ; Si RDEPEND n'est pas spécifié, la valeur par -défaut sera celle de DEPEND. Ne jamais initialiser RDEPENDDEPEND par vous-même dans un ebuild. +La variable RDEPEND indique à Portage les paquets nécessaires au +lancement du paquet. La variable RDEPEND doit être explicitement +renseignée même si son contenu est le même que la variable DEPEND car +prochainement, cette variable dont elle correspond par défaut +« DEPEND » ne sera plus utilisé par le système de gestion des +paquetages Portage de Gentoo.

-DEPEND="virtual/glibc
-        sys-libs/zlib"
-RDEPEND="virtual/glibc"
+DEPEND="virtual/opengl
+        dev-libs/libxml2"
+RDEPEND="${DEPEND}"
 

Cela indique à Portage de construire foo-x.y.z, les paquets -virtual/glibc (plus de précisions sur les virtuals seront données -plus tard) et sys-libs/zlib étant nécessaires à la construction. Il -ne précise pas la version de glibc ou zlib dont vous avez besoin, ce qui -signifie que n'importe laquelle ira très bien. +virtual/opengl (plus de précisions sur les virtuals seront données +plus tard) et dev-libs/libxml2 étant nécessaires à la construction. +Il ne précise pas la version d'opengl ou de libxml2 dont vous avez besoin, ce +qui signifie que n'importe laquelle ira très bien.

La mention de n'importe laquelle fait évidemment un peu peur et ne -fonctionnera en général pas. En revanche, pour des bibliothèques centrales -comme glibc qui fait tout pour avoir des binaires toujours compatibles, ça +fonctionnera pas en général. En revanche, pour des bibliothèques centrales +qui font tout pour avoir des binaires toujours compatibles, cela fonctionnera. Pour d'autres bibliothèques, on peut évidemment préciser la version des dépendances.

@@ -2259,7 +2023,8 @@ =sys-apps/foo-1.2* va selectionner le membre le plus récent de la série 1.2, mais ignorera la 1.3 et les versions plus récentes/vieilles. Ainsi foo-1.2.3 et foo-1.2.0 sont tous les deux valides, mais foo-1.3.3, foo-1.3.0 et foo-1.1.0 ne -le sont pas. +le sont pas. Veuillez noter que la version foo-1.22.3 correpond aussi et +pourrait très bien provoquer des problèmes dans certains cas.

@@ -2407,10 +2172,10 @@

Prenez le temps de penser à la façon de tester votre paquet. Parfois, les développeurs ont intégré une routine make check qui permet de tester les -fonctionnalités de base du paquet. Dans ce cas, la commande env -FEATURES=test ebuild foo-x.y.z.ebuild test l'exécutera. -Si cela ne fonctionne pas, essayez de résoudre le problème et proposez votre -solution aux développeurs du paquet. +fonctionnalités de base du paquet. Dans ce cas, la commande FEATURES=test +ebuild foo-x.y.z.ebuild test l'exécutera. Si cela ne +fonctionne pas, essayez de résoudre le problème et proposez votre solution aux +développeurs du paquet.

@@ -2457,7 +2222,7 @@ procédure de vérification pour déposer un ebuild dans le CVS. Il effectue de nombreuses vérifications communes de qualité (QA) et essaie de s'assurer que les fichiers ajoutés dans le cvs ne vont pas casser l'arborescence de - Portage + Portage. @@ -2477,7 +2242,7 @@ Ouvre un shell qui crée un environnement « bac à sable ». Très utile pour entrer dans le même environnement que celui dans lequel Portage - construit les paquets, et y appliquer manuellement des corrections + construit les paquets, et y appliquer manuellement des corrections. @@ -2486,7 +2251,7 @@ app-portage/gentoolkit-dev Permet de créer un nouveau ChangeLog ou d'ajouter une entrée dans un - ChangeLog déjà existant + ChangeLog déjà existant.