commit:     f188c989317a58ffc54cc0c022c728c100de9000
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Sun Aug 17 21:52:42 2014 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Thu Dec  4 14:01:35 2014 +0000
URL:        
http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=f188c989

Add tentative support for EAPI6 eapply_user function

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
+                       fi
+               done
+
+               [[ -n ${applied} ]] && ewarn "User patches applied."
+       }
+fi
+
 if ___eapi_has_master_repositories; then
        master_repositories() {
                local output repository=$1 retval

Reply via email to