OldGentooWiki:800-Trucs-Astuces-Avancés:Patch
De Gentoo-Quebec.
Index des trucs et astuces avancés
Introduction à l'application d'un correctif à un ebuild
Ce document décrit la procédure pour appliquer un correctif (patch) à un paquet.
Quand faut-il appliquer un correctif ?
Lorsqu'un paquet refuse de compiler ou qu'une modification au code source d'un programme est disponible, un correctif est parfois déjà disponible en dehors de l'arbre de Portage de Gentoo. Normalement, une fois un bogue rapporté, les développeurs de Gentoo appliqueront le correctif associé dans l'arbre de Portage quelque temps après la découverte du bogue. Par contre, lorsqu'un paquet n'est pas supporté par les développeurs ou bien que le développeur responsable du paquet en question prend du temps pour réparer le problème, il est possible de corriger manuellement le paquet avec le correctif trouvé. Attention par contre, ces correctifs sont souvent fourni par des utilisateurs et ne sont pas toujours corrects.
Comment trouver un correctif
Les correctifs sujets à être ajoutés dans l'arbre de Portage de Gentoo sont généralement disponibles sur le Bugzilla de Gentoo.
Création d'un "overlay" local
L'application d'un correctif requiert une branche locale de l'arbre de portage (overlay). La procédure à suivre pour créer son propre overlay est décrite dans le document suivant:
Overlay 800-Trucs-Astuces-Avancés:Overlay
Nouvelle version d'un paquet
Parfois, lorsqu'un paquet n'est pas à jour dans Portage, un simple renommage du ebuild correspondant suffit pour fournir la nouvelle version du paquet. Voici un exemple de renommage de ati-drivers-8.593 vers la version 8.594
# cp /usr/portage/x11-drivers/ati-drivers/ati-drivers-8.593.ebuild .
# mv ati-drivers-8.593.ebuild ati-drivers-8.594.ebuild
Application du correctif
Téléchargez le correctif et placez-le dans le dossier files. Créez le dossier s'il n'existe pas.
Une fois le ebuild ouvert, vérifiez que la version du EAPI utilisé est bien 2 en trouvant la ligne EAPI=2. Cette version du EAPI de Portage permet d'utiliser la section d'un ebuild nommée src_prepare()
Modifiez maintenant la section src_prepare() en y ajoutant la ligne epatch "${FILESDIR}"/[nom_patch].patch.
Fermez le fichier, et appliquez les modifications au ebuild et installez-le en exécutant les commandes suivantes:
