Dans un article précédent, j’expliquais comment patcher un package Gentoo via le répertoire /etc/portage/patches/. Cependant, pour utiliser cette méthode, il faut que l’ebuild appelle la fonction epatch_user dans le src_prepare.
Lorsque ce n’est pas le cas, vous ne pouvez donc pas utiliser cette méthode. Pour cela, vous pouvez créer votre propre ebuild à partir du tree officiel dans votre portage overlay.
Configurer le portage overlay
Pour configurer le portage overlay, il vous suffit d’ajouter la ligne suivante dans le fichier /etc/make.conf:
PORTDIR_OVERLAY="/usr/local/portage"
Ainsi, votre overlay est situé dans le dossier /usr/local/portage.
Modifier un ebuild
Si par exemple, vous voulez modifier le package dev-php/xdebug, il vous suffit de copier le fichier ebuild dans votre package overlay:
mkdir -p /usr/local/portage/dev-php/xdebug/ cp /usr/portage/dev-php/xdebug/xdebug-2.1.2.ebuild /usr/local/portage/dev-php/xdebug/xdebug-2.1.2.ebuild |
Il vous suffit d’ajouter la fonction post_src_prepare pour y appeler la fonction epatch_user comme ceci:
post_src_prepare () {
epatch_user
}
Ensuite, il faut générer le fichier Manifest grâce à l’outil ebuild:
cd /usr/local/portage/dev-php/xdebug/ ebuild xdebug-2.1.2.ebuild manifest |
Maintenant, emerge va tout d’abord récupérer le package depuis vote overlay, et va donc appliquer les patches de votre dossier /etc/portage/patches/dev-php/xdebug/.


