commit:     b21e386a064e1ed49981d9527f968ddc5e1eeb86
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Fri Aug 10 23:46:23 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sat Aug 18 23:28:04 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b21e386a

epatch.eclass: drop 'estack.eclass' usage

Avoid use of eshopts_push / eshopts_pop functions
as they don't preserve expand_aliases shell option
and get detected by QA warning as:
  * QA Notice: Global shell options changed and were
  not restored while calling 'src_prepare'

Ssee bug #662586 for details.

Tested as:
    $ EPATCH_USER_EXCLUDE="*" ebuild gcc-8.2.0.ebuild clean prepare

Bug: https://bugs.gentoo.org/662586
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 eclass/epatch.eclass | 11 +++++------
 1 file changed, 5 insertions(+), 6 deletions(-)

diff --git a/eclass/epatch.eclass b/eclass/epatch.eclass
index da936413677..1ea657a3b6f 100644
--- a/eclass/epatch.eclass
+++ b/eclass/epatch.eclass
@@ -19,8 +19,6 @@ case ${EAPI:-0} in
                die "${ECLASS}: banned in EAPI=${EAPI}; use eapply* instead";;
 esac
 
-inherit estack
-
 # @VARIABLE: EPATCH_SOURCE
 # @DESCRIPTION:
 # Default directory to search for patches.
@@ -211,13 +209,14 @@ epatch() {
                # Let people filter things dynamically
                if [[ -n ${EPATCH_EXCLUDE}${EPATCH_USER_EXCLUDE} ]] ; then
                        # let people use globs in the exclude
-                       eshopts_push -o noglob
+                       local prev_noglob=$(shopt -p -o noglob)
+                       set -o noglob
 
                        local ex
                        for ex in ${EPATCH_EXCLUDE} ; do
                                if [[ ${patchname} == ${ex} ]] ; then
                                        einfo "  Skipping ${patchname} due to 
EPATCH_EXCLUDE ..."
-                                       eshopts_pop
+                                       ${prev_noglob}
                                        continue 2
                                fi
                        done
@@ -225,12 +224,12 @@ epatch() {
                        for ex in ${EPATCH_USER_EXCLUDE} ; do
                                if [[ ${patchname} == ${ex} ]] ; then
                                        einfo "  Skipping ${patchname} due to 
EPATCH_USER_EXCLUDE ..."
-                                       eshopts_pop
+                                       ${prev_noglob}
                                        continue 2
                                fi
                        done
 
-                       eshopts_pop
+                       ${prev_noglob}
                fi
 
                if [[ ${SINGLE_PATCH} == "yes" ]] ; then

Reply via email to