epatch_user() currently looks into <CATEGORY>/<PF|P|PN> subdirectories
of /etc/portage/patches. If the package has no revision, then PF and P
are identical, so there's no way to specify that a patch should only
apply to -r0.

The patch below changes ${PF} to ${P}-${PR}. Behaviour should be
identical for all non-zero revisions. For -r0 it will look in ${P}-r0
first, then in ${P} and ${PN}, as before.

--- eutils.eclass       3 Jan 2012 08:45:36 -0000       1.377
+++ eutils.eclass       29 Jan 2012 11:00:15 -0000
@@ -544,7 +544,7 @@
 
        # don't clobber any EPATCH vars that the parent might want
        local EPATCH_SOURCE check 
base=${PORTAGE_CONFIGROOT%/}/etc/portage/patches
-       for check in {${CATEGORY}/${PF},${CATEGORY}/${P},${CATEGORY}/${PN}}; do
+       for check in ${CATEGORY}/{${P}-${PR},${P},${PN}}; do
                EPATCH_SOURCE=${base}/${CTARGET}/${check}
                [[ -r ${EPATCH_SOURCE} ]] || 
EPATCH_SOURCE=${base}/${CHOST}/${check}
                [[ -r ${EPATCH_SOURCE} ]] || EPATCH_SOURCE=${base}/${check}

Reply via email to