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