On 12/01/2014 01:28 PM, Michał Górny wrote: > Add support for the user patch applying function. > --- > bin/eapi.sh | 4 ++++ > bin/phase-helpers.sh | 22 ++++++++++++++++++++++ > 2 files changed, 26 insertions(+) > > diff --git a/bin/eapi.sh b/bin/eapi.sh > index 8ffffbb..6e78750 100644 > --- a/bin/eapi.sh > +++ b/bin/eapi.sh > @@ -76,6 +76,10 @@ ___eapi_has_eapply() { > [[ ! ${1-${EAPI}} =~ > ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] > } > > +___eapi_has_eapply_user() { > + [[ ! ${1-${EAPI}} =~ > ^(0|1|2|3|4|4-python|4-slot-abi|5|5-hdepend|5-progress)$ ]] > +} > + > ___eapi_has_master_repositories() { > [[ ${1-${EAPI}} =~ ^(5-progress)$ ]] > } > diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh > index e9fbbb4..f4b64ee 100644 > --- a/bin/phase-helpers.sh > +++ b/bin/phase-helpers.sh > @@ -986,6 +986,28 @@ if ___eapi_has_eapply; then > } > fi > > +if ___eapi_has_eapply_user; then > + eapply_user() { > + local basedir=${PORTAGE_CONFIGROOT%/}/etc/portage/patches > + > + local d applied > + # possibilities: > + # 1. ${CATEGORY}/${P}-${PR} (note: -r0 desired to avoid applying > + # ${P} twice) > + # 2. ${CATEGORY}/${P} > + # 3. ${CATEGORY}/${PN} > + # all of the above may be optionally followed by a slot > + for d in > "${basedir}"/${CATEGORY}/{${P}-${PR},${P},${PN}}{,:${SLOT%/*}}; do > + if [[ -d ${d} ]]; then > + eapply "${d}" > + applied=1
I think it should break out of the loop here, like epatch_user does. It doesn't make sense to apply more-specific patches before less-specific patches, does it? Maybe we can just treat this as a bug fix? Is anyone relying on the multiple directory usage? > + fi > + done > + > + [[ -n ${applied} ]] && ewarn "User patches applied." > + } > +fi > + > if ___eapi_has_master_repositories; then > master_repositories() { > local output repository=$1 retval > -- Thanks, Zac