commit:     df3f7a7261e2cee3808dcce85f90668b79ad3d81
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 22 19:31:19 2025 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Nov 22 19:31:19 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/prefix.git/commit/?id=df3f7a72

sys-apps/portage-3.0.72: version bump

Closes: https://bugs.gentoo.org/966267
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 sys-apps/portage/Manifest                          |   2 +-
 .../portage/files/portage-3.0.30-ebuildshell.patch | 349 ---------------------
 .../files/portage-3.0.30-prefix-stack.patch        |  81 -----
 ...portage-3.0.70.ebuild => portage-3.0.72.ebuild} |  29 +-
 4 files changed, 19 insertions(+), 442 deletions(-)

diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest
index bc958da6b6..931d367a99 100644
--- a/sys-apps/portage/Manifest
+++ b/sys-apps/portage/Manifest
@@ -1,3 +1,3 @@
 DIST prefix-portage-3.0.62.tar.bz2 1540010 BLAKE2B 
5228459672b9928881fcce58b01c30af4974cf56c5227f6b9a83ae14579821a65b5914a2c538ce3a2e6805a2abde226fb4a9c6b8fb4c8035a5b8a931e813e5b9
 SHA512 
07bb343c243ada777dd606318b49fb76b436c189d02f086ce069d6a1dbb4ce9fe5539b26c8bb0bb223ea981acaa92397ec43b21a669a8fcea89b4f4fc94d0b1d
 DIST prefix-portage-3.0.63.tar.bz2 1501121 BLAKE2B 
4d9ec570e958dca53b8adf7057d2f2b88083bfd7570b75594d54513e7bb3a4641b7d1f4b87689a863e092215f764f8609d53bc8becdbdb91108b9801a8ccc1ca
 SHA512 
df63d040d91912d81dbc15373618e6b2c043641bd93afd035c3739999c38d2616d3dcc87591e45eceeed17095ccddef90502684460e20f73ee451aa65bdac761
-DIST prefix-portage-3.0.70.tar.bz2 1544606 BLAKE2B 
e0d27e497f0f869a6b2c7c43e825e09a14122064a29809ebd1b77db19478c1e19fa44936c3d2c6d8b1cacec78705d3c57e5b8773bb6cd4ec40cc31c43ec0e91a
 SHA512 
393f0c451a8867dd14137209aaab45b5a76e79df85443603848c3abff4c1b8775d91494da3c39a4e599226ff300291d9b17c42cf059984e471e400b705598107
+DIST prefix-portage-3.0.72.tar.bz2 1533963 BLAKE2B 
3e97a868841819d3ac96efdb16fc1e09f3d25c3640971e9844fe34b677c162d0afcd4d8f8cfb51a047b161154153804414cb9eba38fd9b1a31750a99c7da6c5b
 SHA512 
50b145d4c6f10c3b0d00fa9b0bbf8cbb1fb6e6a1b33bfbf2df498de287aa76da477302b27b997f6c23aefe6a7f154539fb47c9a25b1e86a71d7b8e22bb973d6d

diff --git a/sys-apps/portage/files/portage-3.0.30-ebuildshell.patch 
b/sys-apps/portage/files/portage-3.0.30-ebuildshell.patch
deleted file mode 100644
index 20f0aab813..0000000000
--- a/sys-apps/portage/files/portage-3.0.30-ebuildshell.patch
+++ /dev/null
@@ -1,349 +0,0 @@
-From 8c6b115fa0325b5bed2e1a9c4c8e8af45cdecc2e Mon Sep 17 00:00:00 2001
-From: Michael Haubenwallner <[email protected]>
-Date: Wed, 6 Nov 2013 12:40:05 +0100
-Subject: [PATCH 1/2] Add ebuildshell feature, bug#155161.
-
----
- bin/ebuild.sh                        | 146 ++++++++++++++++++++++++++++++++++-
- bin/filter-bash-environment.py       |  55 +++++++++----
- bin/save-ebuild-env.sh               |   2 +-
- man/make.conf.5                      |   6 ++
- lib/_emerge/AbstractEbuildProcess.py |   1 +
- lib/portage/const.py                 |   1 +
- 6 files changed, 194 insertions(+), 17 deletions(-)
-
-diff --git a/bin/ebuild.sh b/bin/ebuild.sh
-index f76a48d8e..683a4e9c1 100755
---- a/bin/ebuild.sh
-+++ b/bin/ebuild.sh
-@@ -121,7 +121,7 @@ __qa_source() {
- __qa_call() {
-       local shopts=$(shopt) OLDIFS="$IFS"
-       local retval
--      "$@"
-+      __call-ebuildshell "$@"
-       retval=$?
-       set +e
-       [[ $shopts != $(shopt) ]] &&
-@@ -547,6 +547,150 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
-       unset BIN_PATH BIN BODY FUNC_SRC
- fi
- 
-+__call-ebuildshell() {
-+      if ! has ebuildshell ${FEATURES}; then
-+              "$@"
-+              return $?
-+      fi
-+      local __ebuildshell_args=( "$@" )
-+      # These are the variables I have seen 'bash -i' maintaining the values 
for:
-+      local __ebuildshell_bash_i_vars="__ebuildshell_.*
-+              _ BASH_ARGC BASH_ARGV BASH_COMMAND BASH_LINENO BASH_SOURCE
-+              BASH_VERSINFO BASH_SUBSHELL BASHOPTS BASHPID COMP_WORDBREAKS
-+              DIRSTACK EUID FUNCNAME GROUPS HISTCMD HISTFILE LINENO PIPESTATUS
-+              PPID PS1 PS2 PS3 PS4 PWD RANDOM SECONDS SHELLOPTS UID"
-+      # Allow recursive ebuildshell, for use in multibuild.eclass and similar:
-+      local __ebuildshell_pid=${BASHPID:-$(__bashpid)}
-+      local __ebuildshell_tmpf="${T}/ebuildshell.${__ebuildshell_pid}"
-+      rm -f "${__ebuildshell_tmpf}."{ebuild,return}-{env,rovars}
-+      (
-+              cat <<-EOE
-+                      # local variables of functions using recursive 
ebuildshell are
-+                      # visible to the EXIT trap of that recursive 
ebuildshell.  To
-+                      # keep them local, we have to filter them from that 
recursive
-+                      # ebuildshell's return-env.  As 'declare -p' is unable 
to tell
-+                      # local-ity of variables, we abuse the trace attribute 
for local
-+                      # variables to filter them from the return-env.  So we 
need the
-+                      # local alias active before declaring any functions.
-+                      # On a sidehand, this allows for copy&paste of function 
body
-+                      # lines including the local keyword.
-+                      alias local='declare -t'
-+                      shopt -s expand_aliases
-+              EOE
-+              (
-+                      declare -p
-+                      declare -fp
-+                      shopt -p
-+                      [[ ${BASH_VERSINFO[0]} == 3 ]] && export
-+              ) |
-+              (
-+                      # we need everything but the bash vars after 'env -i'
-+                      2>"${__ebuildshell_tmpf}.ebuild-rovars" \
-+                      
"${PORTAGE_PYTHON:-/tools/haubi/gentoo/s01en24/usr/bin/python}" \
-+                              
"${PORTAGE_BIN_PATH}"/filter-bash-environment.py \
-+                                      --report-readonly-variables \
-+                                      --preserve-readonly-attribute \
-+                                      "${__ebuildshell_bash_i_vars}" \
-+                              || die "filter-bash-environment.py failed"
-+              )
-+              # 'declare -g' is available since bash-4.2,
-+              # https://bugs.gentoo.org/show_bug.cgi?id=155161#c35
-+              if (( ${BASH_VERSINFO[0]} > 4 )) ||
-+                 (( ${BASH_VERSINFO[0]} == 4 && ${BASH_VERSINFO[1]} >= 2 ))
-+              then
-+                      __ebuildshell_bash42_true=
-+                      __ebuildshell_bash42_false='#bash-4.2#'
-+              else
-+                  __ebuildshell_bash42_true='#bash-4.2#'
-+                  __ebuildshell_bash42_false=
-+              fi
-+              # The already readonly variables, without bash maintained ones:
-+              
__ebuildshell_ro_ebuild_vars=$(<"${__ebuildshell_tmpf}.ebuild-rovars")
-+              cat <<-EOE
-+                      # properly quote the function arguments
-+                      $(declare -p __ebuildshell_args)
-+                      set -- "\${__ebuildshell_args[@]}"
-+                      unset __ebuildshell_args
-+                      # be informative about what to do
-+                      PS1="EBUILD ${PN} $1 \$ "
-+                      type $1
-+                      ${__ebuildshell_bash42_false}echo 'warning: preserving 
variables across phases requires bash-4.2'
-+                      echo "WANTED: \$@"
-+                      echo "or use: \"\\\$@\""
-+                      # use bash history, but not the 'user's real one
-+                      HISTFILE=~/.bash_history
-+                      # but do not use history-expansion with '!',
-+                      # for copy&paste of function body lines containing: !
-+                      set +H
-+                      # this is a debugging shell already
-+                      shopt -u extdebug
-+                      trap - DEBUG
-+                      # at exit, dump the current environment
-+                      trap "
-+                              unalias local
-+                              unset -f __call-ebuildshell
-+                              rm -f '${__ebuildshell_tmpf}.return-'*
-+                              (
-+                                      (
-+                                              # declare -p does not tell the 
-g flag,
-+                                              # so we add it by aliasing 
declare.
-+                                              
${__ebuildshell_bash42_true}echo \"alias declare='declare -g'\"
-+                                              declare -p
-+                                              
${__ebuildshell_bash42_true}echo \"unalias declare\"
-+                                              declare -fp
-+                                              shopt -p | grep -v 
'\\(expand_aliases\\|extdebug\\)$'
-+                                              $([[ ${BASH_VERSINFO[0]} == 3 
]] && echo export)
-+                                      ) |
-+                                      (
-+                                              # We may have more readonly 
variables now, yet we
-+                                              # need to filter variables that 
were readonly before.
-+                                              # And filter local variables by 
their trace attribute.
-+                                              
2>'${__ebuildshell_tmpf}.return-rovars' \\
-+                                              
'${PORTAGE_PYTHON:-/tools/haubi/gentoo/s01en24/usr/bin/python}' \\
-+                                                      
'${PORTAGE_BIN_PATH}'/filter-bash-environment.py \\
-+                                                              
--report-readonly-variables \\
-+                                                              
--preserve-readonly-attribute \\
-+                                                              
--filter-traced-variables \\
-+                                                              
'${__ebuildshell_bash_i_vars} \
-+                                                               
${__ebuildshell_ro_ebuild_vars}' \\
-+                                                      || die 
'filter-bash-environment.py failed'
-+                                      )
-+                              ) > '${__ebuildshell_tmpf}.return-env'
-+                              " EXIT
-+                      # can do some cleanup right now
-+                      rm -f '${__ebuildshell_tmpf}.ebuild-'*
-+              EOE
-+      ) > "${__ebuildshell_tmpf}.ebuild-env"
-+
-+      # pre-fill the history with "$@"
-+      echo '"$@"' >> ~/.bash_history
-+      chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} 
~/.bash_history &>/dev/null
-+
-+      env -i HOME=~ ${BASH} --rcfile "${__ebuildshell_tmpf}.ebuild-env" -i
-+
-+      # The environment- and exit-status handling after leaving the 
ebuildshell
-+      # prompt is expected to be identical as without the ebuildshell prompt.
-+      local __ebuildshell_status=$?
-+
-+      # We might be in a recursive ebuildshell, but do not want
-+      # any aliases being active while sourcing the return-env.
-+      local __ebuildshell_orig_aliases=$(alias)
-+      unalias -a
-+      source "${__ebuildshell_tmpf}.return-env"
-+      unalias -a
-+      eval "${__ebuildshell_orig_aliases}"
-+
-+      # Portage has a whitelist of readonly variables: If an ebuild defines
-+      # additional readonly variables, their readonly attribute is removed
-+      # across ebuild phases.  If we ever want to preserve the readonly
-+      # attribute of additional ebuild-defined variables across phases,
-+      # when returning from the ebuildshell their names are in
-+      # "${__ebuildshell_tmpf}.return-rovars"
-+      rm -f "${__ebuildshell_tmpf}."{ebuild,return}-{env,rovars}
-+
-+      return ${__ebuildshell_status}
-+}
-+
- # Subshell/helper die support (must export for the die helper).
- export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
- trap 'exit 1' SIGTERM
-diff --git a/bin/filter-bash-environment.py b/bin/filter-bash-environment.py
-index 06cac7214..5590dbfc4 100755
---- a/bin/filter-bash-environment.py
-+++ b/bin/filter-bash-environment.py
-@@ -14,7 +14,8 @@
-     br'(^|^declare\s+-\S+\s+|^declare\s+|^export\s+)([^=\s]+)=("|\')?.*$'
- )
- close_quote_re = re.compile(br'(\\"|"|\')\s*$')
--readonly_re = re.compile(br"^declare\s+-(\S*)r(\S*)\s+")
-+readonly_re = re.compile(br"^declare\s+-(\S*)r(\S*)\s+([^=\s]+)")
-+trace_re = re.compile(br"^declare\s+-\S*t\S*\s+")
- # declare without assignment
- var_declare_re = re.compile(br"^declare(\s+-\S+)?\s+([^=\s]+)\s*$")
- 
-@@ -30,7 +31,7 @@
-     return close_quote_match is not None and close_quote_match.group(1) == 
quote
- 
- 
--def filter_declare_readonly_opt(line):
-+def filter_declare_readonly_opt(line, options):
-     readonly_match = readonly_re.match(line)
-     if readonly_match is not None:
-         declare_opts = b""
-@@ -38,14 +39,19 @@
-             group = readonly_match.group(i)
-             if group is not None:
-                 declare_opts += group
-+        var = readonly_match.group(3)
-+        if '--report-readonly-variables' in options:
-+            getattr(sys.stderr, 'buffer', sys.stderr).write(var + b'\n')
-+        if '--preserve-readonly-attribute' in options:
-+            declare_opts += b'r'
-         if declare_opts:
--            line = b"declare -" + declare_opts + b" " + 
line[readonly_match.end() :]
-+            line = b"declare -" + declare_opts + b" " + var + 
line[readonly_match.end() :]
-         else:
--            line = b"declare " + line[readonly_match.end() :]
-+            line = b"declare " + var + line[readonly_match.end() :]
-     return line
- 
- 
--def filter_bash_environment(pattern, file_in, file_out):
-+def filter_bash_environment(pattern, file_in, file_out, options):
-     # Filter out any instances of the \1 character from variable values
-     # since this character multiplies each time that the environment
-     # is saved (strange bash behavior). This can eventually result in
-@@ -68,6 +74,8 @@
-             if var_assign_match is not None:
-                 quote = var_assign_match.group(3)
-                 filter_this = pattern.match(var_assign_match.group(2)) is not 
None
-+                if not filter_this and '--filter-traced-variables' in options:
-+                    filter_this = trace_re.match(line) is not None
-                 # Exclude the start quote when searching for the end quote,
-                 # to ensure that the start quote is not misidentified as the
-                 # end quote (happens if there is a newline immediately after
-@@ -78,7 +86,7 @@
-                     multi_line_quote = quote
-                     multi_line_quote_filter = filter_this
-                 if not filter_this:
--                    line = filter_declare_readonly_opt(line)
-+                    line = filter_declare_readonly_opt(line, options)
-                     file_out.write(line.replace(b"\1", b""))
-                 continue
-             else:
-@@ -86,8 +94,10 @@
-                 if declare_match is not None:
-                     # declare without assignment
-                     filter_this = pattern.match(declare_match.group(2)) is 
not None
-+                    if not filter_this and '--filter-traced-variables' in 
options:
-+                        filter_this = trace_re.match(line) is not None
-                     if not filter_this:
--                        line = filter_declare_readonly_opt(line)
-+                        line = filter_declare_readonly_opt(line, options)
-                         file_out.write(line)
-                     continue
- 
-@@ -127,8 +137,28 @@
-         + "intact. The PATTERN is a space separated list of variable names"
-         + " and it supports python regular expression syntax."
-     )
--    usage = "usage: %s PATTERN" % os.path.basename(sys.argv[0])
--    args = sys.argv[1:]
-+    usage = "usage: %s [-h|OPTIONS] PATTERN" % os.path.basename(sys.argv[0])
-+    args = []
-+    known_options = {
-+        '--report-readonly-variables':
-+            "Write names of readonly variables to stderr.",
-+        '--preserve-readonly-attribute':
-+            "Preserve the '-r' flag in 'declare -r'.",
-+        '--filter-traced-variables':
-+            "Filter out variables declared with '-t' attribute."
-+    }
-+    options = {}
-+    for arg in sys.argv[1:]:
-+        if arg in known_options.keys():
-+            options[arg] = True
-+            continue
-+        if '-h' == arg or '--help' == arg:
-+            sys.stdout.write(usage + "\n\nKnown <options>:\n\n")
-+            for option, descr in known_options.items():
-+                sys.stdout.write("  " + option + "\t" + descr + "\n")
-+            sys.stdout.flush()
-+            sys.exit(os.EX_OK)
-+        args.append(arg)
- 
-     if "-h" in args or "--help" in args:
-         sys.stdout.write(usage + "\n")
-@@ -150,5 +180,5 @@
-     var_pattern.append(br".*\W.*")
- 
-     var_pattern = b"^(" + b"|".join(var_pattern) + b")$"
--    filter_bash_environment(re.compile(var_pattern), file_in, file_out)
-+    filter_bash_environment(re.compile(var_pattern), file_in, file_out, 
options)
-     file_out.flush()
-diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
-index bb17382d4..af35a3327 100755
---- a/bin/save-ebuild-env.sh
-+++ b/bin/save-ebuild-env.sh
-@@ -53,7 +53,7 @@
-               einfo einfon ewarn eerror ebegin __eend eend KV_major \
-               KV_minor KV_micro KV_to_int get_KV has \
-               __has_phase_defined_up_to \
--              hasv hasq __qa_source __qa_call \
-+              hasv hasq __qa_source __qa_call __call-ebuildshell \
-               addread addwrite adddeny addpredict __sb_append_var \
-               use usev useq has_version portageq \
-               best_version use_with use_enable register_die_hook \
-diff --git a/man/make.conf.5 b/man/make.conf.5
-index b0c1aa4f2..568f350a0 100644
---- a/man/make.conf.5
-+++ b/man/make.conf.5
-@@ -408,6 +408,12 @@ exist). Also see the related \fIunmerge\-backup\fR 
feature.
- Use locks to ensure that unsandboxed ebuild phases never execute
- concurrently. Also see \fIparallel\-install\fR.
- .TP
-+.B ebuildshell
-+Drop into an interactive shell for each phase function, meant for
-+debugging.  Because the shell would normally be used to execute the
-+phase function, commands like src_unpack or epatch are available in the
-+interactive shell.  Use `die` to terminate the merge.
-+.TP
- .B fail\-clean
- Clean up temporary files after a build failure. This is particularly useful
- if you have \fBPORTAGE_TMPDIR\fR on tmpfs. If this feature is enabled, you
-diff --git a/lib/_emerge/AbstractEbuildProcess.py 
b/lib/_emerge/AbstractEbuildProcess.py
-index 370cac529..a521596e5 100644
---- a/lib/_emerge/AbstractEbuildProcess.py
-+++ b/lib/_emerge/AbstractEbuildProcess.py
-@@ -234,6 +234,7 @@
-         null_fd = None
-         if (
-             0 not in self.fd_pipes
-+            and "ebuildshell" not in self.settings.features
-             and self.phase not in self._phases_interactive_whitelist
-             and "interactive" not in self.settings.get("PROPERTIES", 
"").split()
-         ):
-diff --git a/lib/portage/const.py b/lib/portage/const.py
-index 3c23c85ed..d9c57f300 100644
---- a/lib/portage/const.py
-+++ b/lib/portage/const.py
-@@ -172,6 +172,7 @@
-         "distlocks",
-         "downgrade-backup",
-         "ebuild-locks",
-+        "ebuildshell",
-         "fail-clean",
-         "fakeroot",
-         "fixlafiles",
--- 
-2.16.1
-

diff --git a/sys-apps/portage/files/portage-3.0.30-prefix-stack.patch 
b/sys-apps/portage/files/portage-3.0.30-prefix-stack.patch
deleted file mode 100644
index c49c473ea3..0000000000
--- a/sys-apps/portage/files/portage-3.0.30-prefix-stack.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 1fe30e79c368ce71e024d70c3ec07a6aed3ef262 Mon Sep 17 00:00:00 2001
-From: Michael Haubenwallner <[email protected]>
-Date: Fri, 22 Mar 2019 17:52:05 +0100
-Subject: [PATCH] from FEATURES=stacked-prefix to USE=prefix-stack
-
-Rather than telling the base prefix' portage to support stacked prefix,
-be explicit in the stacked prefix about to USE that feature.
-Bug: https://bugs.gentoo.org/658572
----
- bin/install-qa-check.d/05prefix | 10 +++-------
- bin/phase-helpers.sh            | 12 ++++--------
- lib/portage/const.py            |  1 -
- 3 files changed, 7 insertions(+), 16 deletions(-)
-
-diff --git a/bin/install-qa-check.d/05prefix b/bin/install-qa-check.d/05prefix
-index 03da3bbce..4f48e4216 100644
---- a/bin/install-qa-check.d/05prefix
-+++ b/bin/install-qa-check.d/05prefix
-@@ -36,16 +36,12 @@ install_qa_check_prefix() {
-       local WHITELIST=" /usr/bin/env "
-       # shebang can be an absolutised path, bug #342929
-       local eprefix=$(canonicalize ${EPREFIX})
--      # Without the stacked-prefix feature, tests using BPREFIX
--      # are redundant to EPREFIX, but run only if we will fail.
-+      # Without USE=prefix-stack, tests using BPREFIX are
-+      # redundant to EPREFIX, but run only if we will fail.
-       # Otherways, BPREFIX really is BROOT (the EAPI 7 one).
-       local BPREFIX=${EPREFIX}
-       local bprefix=${eprefix}
--      if has stacked-prefix ${FEATURES} &&
--         [[ -z ${ROOT%/} ]]             &&
--         [[ ${CBUILD} == ${CHOST} ]]    &&
--         [[ ${EPREFIX} != ${BROOT-${PORTAGE_OVERRIDE_EPREFIX}} ]] &&
--      :; then
-+      if has prefix-stack ${USE} ; then
-               BPREFIX=${BROOT-${PORTAGE_OVERRIDE_EPREFIX}}
-               bprefix=$(canonicalize ${BPREFIX})
-       fi
-diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
-index 606b1cdfd..c64f1106b 100644
---- a/bin/phase-helpers.sh
-+++ b/bin/phase-helpers.sh
-@@ -932,18 +932,14 @@ ___best_version_and_has_version_common() {
-                       fi ;;
-       esac
- 
--      # PREFIX LOCAL: stacked-prefix feature
-+      # PREFIX LOCAL: prefix-stack feature
-       if ___eapi_has_prefix_variables         &&
-          has "${root_arg}" '--host-root' '-b' &&
--         has stacked-prefix ${FEATURES}       &&
-+         has prefix-stack ${USE}              &&
-          [[ -z ${ROOT%/} ]]                   &&
--         [[ ${CBUILD} == ${CHOST} ]]          &&
--         [[ ${EPREFIX} != ${BROOT-${PORTAGE_OVERRIDE_EPREFIX}} ]] &&
-       :; then
--              # When we merge into another EPREFIX, but not into some ROOT,
--              # and CHOST is equal to CBUILD, build tools found in EPREFIX
--              # perfectly work for the current build environment.
--              # In a "stacked prefix" we explicitly utilize this situation.
-+              # When we merge into "stacked" EPREFIX, but not into some ROOT, 
build
-+              # tools found in EPREFIX perfectly work for current build 
environment.
-               "${FUNCNAME[1]}" "${atom}" && return 0
-       fi
-       # END PREFIX LOCAL
-diff --git a/lib/portage/const.py b/lib/portage/const.py
-index eddce377d..db02cbc56 100644
---- a/lib/portage/const.py
-+++ b/lib/portage/const.py
-@@ -207,8 +207,6 @@ SUPPORTED_FEATURES       = frozenset([
-         "usersync",
-         "webrsync-gpg",
-         "xattr",
--        # PREFIX LOCAL
--              "stacked-prefix",
-     ]
- )
- 
--- 
-2.19.2
-

diff --git a/sys-apps/portage/portage-3.0.70.ebuild 
b/sys-apps/portage/portage-3.0.72.ebuild
similarity index 90%
rename from sys-apps/portage/portage-3.0.70.ebuild
rename to sys-apps/portage/portage-3.0.72.ebuild
index 35594c0fae..5d1000df01 100644
--- a/sys-apps/portage/portage-3.0.70.ebuild
+++ b/sys-apps/portage/portage-3.0.72.ebuild
@@ -126,12 +126,17 @@ src_prepare() {
                        -i cnf/repos.conf || die "sed failed"
 
                # PREFIX LOCAL: only hack const_autotool
-               # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as 
people
-               # tend not to update that often, as long as we are a separate 
ebuild
-               # we can assume when unset, it's time for some older trick
-               if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
-                       PORTAGE_ROOT_USER=$(python -c 'from portage.const 
import rootuser; print rootuser')
-               fi
+               PORTAGE_GROUP=${PORTAGE_GRPNAME}
+               PORTAGE_USER=${PORTAGE_USERNAME}
+               PORTAGE_ROOT_USER=$(python -c 'from portage.const import 
rootuser; print(rootuser)')
+               [[ -z ${PORTAGE_GROUP} ]] && \
+                       PORTAGE_GROUP=$(python -c 'from portage.const import 
portagegroup; print(portagegroup)')
+               [[ -z ${PORTAGE_USER} ]] && \
+                       PORTAGE_USER=$(python -c 'from portage.const import 
portageuser; print(portageuser)')
+               [[ -z ${PORTAGE_ROOT_USER} ]] && PORTAGE_ROOT_USER=root
+               [[ -z ${PORTAGE_GROUP}     ]] && PORTAGE_GROUP=portage
+               [[ -z ${PORTAGE_USER}      ]] && PORTAGE_USER=portage
+
                # We need to probe for bash in the Prefix, because it may not
                # exist, in which case we fall back to the currently in use
                # bash.  This logic is necessary in particular during bootstrap,
@@ -143,12 +148,14 @@ src_prepare() {
                sed -e "s|@PORTAGE_EPREFIX@|${EPREFIX}|" \
                        -e "s|@PORTAGE_MV@|$(type -P mv)|" \
                        -e "s|@PORTAGE_BASH@|${bash}|" \
-                       -e "s|@portagegroup@|${PORTAGE_GROUP:-portage}|" \
-                       -e "s|@portageuser@|${PORTAGE_USER:-portage}|" \
-                       -e "s|@rootuser@|${PORTAGE_ROOT_USER:-root}|" \
-                       -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER:-root})|" \
-                       -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER:-root})|" \
+                       -e "s|@portagegroup@|${PORTAGE_GROUP}|" \
+                       -e "s|@portageuser@|${PORTAGE_USER}|" \
+                       -e "s|@rootuser@|${PORTAGE_ROOT_USER}|" \
+                       -e "s|@rootuid@|$(id -u ${PORTAGE_ROOT_USER})|" \
+                       -e "s|@rootgid@|$(id -g ${PORTAGE_ROOT_USER})|" \
                        -e "s|@sysconfdir@|${EPREFIX}/etc|" \
+                       -e "s|@portageuser@|${PORTAGE_USER}|" \
+                       -e "s|@portagegroup@|${PORTAGE_GROUP}|" \
                        -i \
                        lib/portage/const_autotool.py cnf/make.globals \
                        || die "Failed to patch sources"

Reply via email to