Introduction
Ce guide a pour objectif de présenter les routines de maintenance des ebuilds
habituelles, ainsi que des routines de maintenance plus rares, avec lesquelles
les développeurs ne sont pas forcément très familiers.
Stabiliser des ebuilds
Quand vous créez un nouvel ebuild, vous ne devez inclure que les KEYWORDS
pour les architectures qui ont été effectivement testées pour cet ebuild ce qui
confirmera qu'il fonctionne effectivement bien comme nous l'espérons, et que les
paramètres USE sont bien respectés dans le paquet résultant de
l'installation à partir de l'ebuild. Dans la mesure du possible, vous devez
également préciser les bibliothèques ou applications qui ont été effectivement
utilisés lors des tests, dans la mesure où vous serez responsable des problèmes
inhérents à votre paquet pour les architectures présentées. Un minimum de
vérifications doit être effectué comme s'assurer que l'application se lance bien
et sans erreurs.
Si vous ajoutez un ebuild proposé par un utilisateur, faites comme si celui-ci
n'avait pas fait de vérification sur les différentes architectures : il
arrive souvent que les KEYWORDS aient été récupérés sur d'autres paquets
ou générés à partir de la documentation proposée avec les sources des paquets.
Cela ne signifie en rien que le paquet fonctionnera effectivement sur ces mêmes
architectures.
Les ebuilds ne peuvent être stabilisés, c'est à dire placés de ~arch à
arch que si le mainteneur de l'ebuild ou un mainteneur de l'architecture
concernée considère l'ebuild comme effectivement stable. Vous ne devez
jamais stabiliser des paquets sur des architectures pour lesquelles vous
ne pouvez faire aucun test. À la place, vous devez remplir un formulaire de
bogue destiné à l'équipe de l'architecture correspondante, comme par exemple
sparc@gentoo.org pour que l'équipe
s'occupant de l'architecture SPARC stabilise si possible l'ebuild. Sinon, vous
pouvez également chercher des développeurs Gentoo sur IRC qui pourront vous
aider dans votre demande.
Il vaut mieux éviter d'utiliser
arch-maintainers@gentoo.org
et préférer ajouter les équipes d'architecture dans le champ CC d'un rapport de
bogue à la place. De cette manière les équipes peuvent s'enlever de la liste une
fois qu'ils ont effectué le travail, ce qui permet de savoir de manière précise
quelles sont les équipes qui doivent toujours stabiliser le paquet.
Mettre à jour des ebuilds
Les nouveaux ebuilds sont rarement proposés directement avec un mot-clef
arch, et même s'ils le sont, les paquets doivent être testés sur
toutes les architectures listées dans la variable KEYWORDS d'un nouvel
ebuild.
Les exceptions à la règle qui consiste à ne jamais proposer directement un
ebuild en arch sont les correctifs majeurs, ou les mises à jour de
sécurité. Si la version précédente d'un ebuild contient des mots-clefs
KEYWORDS pour lesquels vous ne pouvez pas faire de tests, vous devez les
replacer en instable, en changeant tous les arch que vous ne pouvez pas
tester en ~arch. Si vous pensez que votre paquet ne fonctionnera pas du
tout, même en le mettant comme ~arch, alors il est préférable d'enlever
le mot-clef et de faire une demande de tests à l'équipe concernée : si vous
êtes amenés à faire ce genre de chose, vous devez faire un rapport de bogue à
destination de l'équipe en question.
Si une nouvelle version introduit de nouvelles dépendances qui ne sont pas
disponibles sur certaines architectures, vous devez rapporter un bogue ou
demander de l'aide sur IRC avant de mettre à jour le paquet. Si vous avez
réellement besoin d'ajouter cet ebuild et que c'est urgent, par exemple, pour
une correction de sécurité, alors vous devez enlever tous les KEYWORDS
qui posent problème et mettre en CC les architectures en question dans le bogue
rapporté. Vous devez pour cela ouvrir un nouveau bogue pour l'architecture en
question, sauf si celui-ci existe déjà.
S'il n'y a pas de nouvelles dépendances, n'enlevez pas de mots-clefs. Si la
soumission échoue avec repoman essayez de faire un cvs update complet et
si le problème subsiste, alors faites votre soumission avec repoman -I et
rapportez un nouveau bogue pour l'architecture qui pose problème, en indiquant
le problème dans votre message de soumission de CVS.
Lorsque vous faites votre soumission CVS, assurez-vous que vous référencez bien
tous les bogues rencontrés, ainsi que le message CVS. Ne pas le faire est
considéré comme un geste de très mauvais goût, et peut donner lieu à une
sanction disciplinaire.
Déplacer des ebuilds
Déplacer des ebuilds se fait en deux temps :
Tout d'abord, vous devez déplacer l'ebuild dans le CVS. Pour faire cela, vous
devrez copier l'ebuild à sa nouvelle position, et soumettre celui-ci comme si
vous soumettiez un nouvel ebuild.
Ensuite, vous devez changer tous les ebuilds qui dépendent (via la variable
DEPEND) de l'ancien ebuild, pour qu'ils pointent vers le nouveau. Alors
seulement vous pourrez enlever l'ensemble des fichiers relatifs à l'ancien
ebuild avec cvs remove dans l'ancien répertoire.
CVS ne peut pas détruire de répertoire : il ne recréera tout simplement pas
ceux-ci si ils sont vides, dans l'hypothèse ou vous utilisez l'option -P
de cvs.
Une autre méthode consiste à utiliser epkgmove qui fera le travail pour
vous :
epkgmove net-ancien/paquet net-nouveau/paquet
Une fois que le déplacement a été fait, ajoutez une entrée au dernier fichier
dans profiles/updates/ dans l'arbre de Portage, avec la syntaxe
suivante :
move net-misc/fwbuilder net-firewall/fwbuilder
Cet exemple devrait déplacer de manière transparente
net-misc/fwbuilder vers net-firewall si les
utilisateurs l'ont installé. De cette manière, les utilisateurs pourront
désormais récupérer les mises à jour sur net-firewall quand elles
sont disponibles.
Enlever des ebuilds
Quand vous supprimez un ebuild assurez-vous qu'aucune dépendance dans Portage ne
se casse à cause de la suppression. De plus, votre message de soumission au CVS
devra expliquer clairement pourquoi l'ebuild a été supprimé du CVS.
Si vous avez besoin d'enlever des ebuilds, assurez-vous de ne pas enlever de
manière accidentelle des ebuilds nouveaux ou stables uniquement pour certaines
architectures. Si vous voulez faire une nouvelle version marquée comme stable,
merci de faire un rapport de bogue ou d'en discuter sur IRC.
Vous devez également éviter de diminuer les versions stables des paquets quand
vous supprimez des ebuilds. À la place, le mieux est de prendre la plus récente
version marquée comme ~arch en premier lieu, puis supprimez les versions
redondantes de l'ebuild.