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

Reply via email to