commit:     89b7e3eb081fc7c0f53c1e4646d161febc40fc40
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Sat Nov  1 19:47:35 2025 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Sat Nov  1 19:48:56 2025 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=89b7e3eb

Merge remote-tracking branch 'origin/master' into prefix

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>

 .github/workflows/ci.yml                           |  11 +-
 .pre-commit-config.yaml                            |   2 +-
 NEWS                                               | 244 ++++++++++-
 bin/eapi.sh                                        |   8 +-
 bin/ebuild                                         |   9 +-
 bin/ebuild-helpers/domo                            |   7 +-
 bin/ebuild-ipc.py                                  |   9 +-
 bin/ebuild.sh                                      | 125 +++---
 bin/egencache                                      |  65 +--
 bin/emaint                                         |  10 +-
 bin/emerge                                         |  10 +-
 bin/emerge-webrsync                                | 282 ++++++-------
 bin/estrip                                         |  74 ++--
 bin/etc-update                                     |   2 +-
 bin/install-qa-check.d/60pkgconfig                 |   2 +-
 bin/isolated-functions.sh                          | 260 ++++++------
 bin/misc-functions.sh                              |  61 ++-
 bin/phase-functions.sh                             | 138 +++----
 bin/phase-helpers.sh                               | 384 ++++++++++-------
 bin/portageq                                       |  14 +-
 bin/save-ebuild-env.sh                             | 372 ++++++++++++-----
 bin/{eapi7-ver-funcs.sh => version-functions.sh}   |  47 ++-
 cnf/make.globals                                   |   2 +-
 cnf/repos.conf                                     |   1 +
 doc/config/sets.docbook                            |   4 +
 lib/_emerge/BinpkgExtractorAsync.py                |   4 +-
 lib/_emerge/EbuildFetcher.py                       |   9 +-
 lib/_emerge/JobStatusDisplay.py                    |   6 -
 lib/_emerge/MetadataRegen.py                       |  57 ++-
 lib/_emerge/actions.py                             |  38 +-
 lib/_emerge/depgraph.py                            |   6 +-
 lib/_emerge/emergelog.py                           |   2 -
 lib/_emerge/is_valid_package_atom.py               |   2 +-
 lib/_emerge/main.py                                |   6 +
 lib/_emerge/post_emerge.py                         |   3 +
 lib/_emerge/resolver/output.py                     |   4 -
 lib/_emerge/resolver/output_helpers.py             |   5 +-
 lib/portage/__init__.py                            |   3 +-
 lib/portage/const.py                               |   1 -
 lib/portage/cvstree.py                             |   4 +-
 lib/portage/dbapi/__init__.py                      |   2 +-
 lib/portage/dbapi/bintree.py                       | 453 ++++++++++++---------
 lib/portage/dbapi/porttree.py                      | 113 ++---
 lib/portage/dbapi/vartree.py                       |  37 +-
 lib/portage/dep/__init__.py                        | 155 +++----
 lib/portage/eapi.py                                |  10 +-
 lib/portage/elog/mod_save_summary.py               |   5 -
 lib/portage/getbinpkg.py                           |   6 +-
 lib/portage/gpkg.py                                |  29 +-
 lib/portage/output.py                              |   4 +
 .../package/ebuild/_config/special_env_vars.py     |   4 +-
 .../ebuild/_parallel_manifest/ManifestScheduler.py |  65 ++-
 .../ebuild/_parallel_manifest/ManifestTask.py      |   9 +-
 lib/portage/package/ebuild/config.py               |  44 +-
 lib/portage/package/ebuild/doebuild.py             |  30 +-
 lib/portage/package/ebuild/fetch.py                |   4 +
 lib/portage/process.py                             |  59 ++-
 lib/portage/repository/config.py                   |  28 +-
 lib/portage/sync/syncbase.py                       |  15 +-
 lib/portage/tests/bin/meson.build                  |   2 +-
 .../{test_eapi7_ver_funcs.py => test_ver_funcs.py} |   8 +-
 lib/portage/tests/dbapi/test_bintree.py            |   8 +-
 lib/portage/tests/dep/test_atom.py                 |  11 +
 lib/portage/tests/ebuild/test_ipc_daemon.py        |   7 +-
 lib/portage/tests/emerge/test_actions.py           |   2 +-
 lib/portage/tests/locks/test_asynchronous_lock.py  |   9 -
 lib/portage/tests/locks/test_lock_nonblock.py      |  15 +-
 lib/portage/tests/resolver/ResolverPlayground.py   |   8 +-
 .../futures/asyncio/test_event_loop_in_fork.py     |  32 +-
 .../tests/util/futures/asyncio/test_pipe_closed.py |  20 +-
 .../futures/asyncio/test_run_until_complete.py     |  37 +-
 .../util/futures/asyncio/test_subprocess_exec.py   |  18 +-
 lib/portage/tests/util/futures/test_retry.py       |  20 +-
 lib/portage/util/__init__.py                       |   2 +-
 lib/portage/util/_async/ForkProcess.py             |  90 ++--
 lib/portage/util/_urlopen.py                       |  18 +-
 lib/portage/util/file_copy.py                      |  18 +-
 lib/portage/util/meson.build                       |   2 +
 lib/portage/util/movefile.py                       |  11 +-
 lib/portage/util/portage_lru_cache.py              |  42 ++
 lib/portage/util/time.py                           |  15 +
 lib/portage/versions.py                            |  18 +-
 lib/portage/xml/metadata.py                        |  12 +-
 man/ebuild.5                                       |  55 ++-
 man/emerge.1                                       |  39 +-
 man/make.conf.5                                    |  24 +-
 man/portage.5                                      |  31 +-
 meson.build                                        |   2 +-
 misc/emerge-delta-webrsync                         |   2 +-
 pylintrc                                           |   4 -
 90 files changed, 2431 insertions(+), 1516 deletions(-)

diff --cc bin/emerge-webrsync
index 5007e1c498,cca63ebb35..0e65598da9
--- a/bin/emerge-webrsync
+++ b/bin/emerge-webrsync
@@@ -640,14 -645,9 +645,14 @@@ portage_vars=
        https_proxy
  )
  
- eval "$("${portageq}" envvar -v "${portage_vars[@]}")"
+ eval "$("${path_of[portageq]}" envvar -v "${portage_vars[@]}")"
  export http_proxy https_proxy ftp_proxy
  
 +# PREFIX LOCAL: use Prefix servers, just because we want this and infra
 +# can't support us yet
 +GENTOO_MIRRORS="http://rsync.prefix.bitzolder.nl";
 +# END PREFIX LOCAL
 +
  source "${PORTAGE_BIN_PATH:?}"/isolated-functions.sh || exit
  
  # The implementation of die() from isolated-functions.sh is over-engineered 
and
diff --cc bin/phase-functions.sh
index 61123cd29d,98b2784c96..e4c94feb78
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@@ -167,15 -165,18 +165,19 @@@ __filter_readonly_variables() 
                :
        elif [[ "${EMERGE_FROM}" = binary ]]; then
                # Preserve additional variables from build time, while
-               # excluding untrusted variables.
-               filtered_vars+=( "${binpkg_untrusted_vars[@]}" )
+               # excluding some variables that are untrusted, due to the
+               # possible application of package renames to binpkgs.
+               filtered_vars+=( CATEGORY PVR PF PN PR PV P )
        else
-               read -rd '' -a words <<<"${PORTAGE_SAVED_READONLY_VARS} 
${PORTAGE_MUTABLE_FILTERED_VARS}"
-               filtered_vars+=( "${words[@]}" )
+               # Allow for the option to have its full effect.
+               filtered_vars+=(
+                       "${portage_mutable_filtered_vars[@]}"
+                       "${portage_saved_readonly_vars[@]}"
+               )
        fi
  
 -      "${PORTAGE_PYTHON:-/usr/bin/python}" 
"${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${filtered_vars[*]}" \
 +    # PREFIX LOCAL: use Prefix Python fallback
 +      "${PORTAGE_PYTHON:-@PREFIX_PORTAGE_PYTHON@}" 
"${PORTAGE_BIN_PATH}"/filter-bash-environment.py "${filtered_vars[*]}" \
        || die "filter-bash-environment.py failed"
  }
  
diff --cc bin/save-ebuild-env.sh
index 5d5d25bbd7,ace7e41f9c..ace7e41f9c
mode 100755,100644..100755
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
diff --cc lib/portage/package/ebuild/_config/special_env_vars.py
index d7b4e29886,e4cfc727fc..a51dc54e4d
--- a/lib/portage/package/ebuild/_config/special_env_vars.py
+++ b/lib/portage/package/ebuild/_config/special_env_vars.py
@@@ -265,20 -264,8 +264,21 @@@ environ_filter = frozenset
          "INFOPATH",
          "MANPATH",
          "USER",
 +        # BEGIN PREFIX LOCAL
 +        "HOST",
 +        "GROUP",
 +        "LOGNAME",
 +        "MAIL",
 +        "REMOTEHOST",
 +        "SECURITYSESSIONID",
 +        "TERMINFO",
 +        "TERM_PROGRAM",
 +        "TERM_PROGRAM_VERSION",
 +        "VENDOR",
 +        "__CF_USER_TEXT_ENCODING",
 +        # END PREFIX LOCAL
          # variables that break bash
+         "GLOBSORT",
          "HISTFILE",
          "POSIXLY_CORRECT",
          # portage config variables and variables set directly by portage
diff --cc man/emerge.1
index dff2c8c539,03799b6266..118ff05c23
--- a/man/emerge.1
+++ b/man/emerge.1
@@@ -1441,12 -1432,28 +1432,34 @@@ add this to \fBmake.conf\fR(5)
  Tools such as dispatch\-conf, cfg\-update, and etc\-update are also available
  to aid in the merging of these files. They provide interactive merging and can
  auto\-merge trivial changes.
 +.LP
 +When an offset prefix (\fBEPREFIX\fR) is active, all paths in
 +\fBCONFIG_PROTECT\fR and \fBCONFIG_PROTECT_MASK\fR are prefixed with the
 +offset by Portage before they are considered.  Hence, these paths never
 +contain the offset prefix, and the variables can be defined in
 +offset-unaware locations, such as the profiles. 
+ .SH "PORTAGE DEVELOPMENT FEATURES"
+ This section describes features that are of interest when developing
+ Portage.  They allow for introspection, debugging, and performance
+ analysis.  Portage provides no stability guarantee; any feature may
+ disappear in the future, and the output format may change without
+ prior notice.
+ .TP
+ .BR PORTAGE_SHOW_LRU_CACHE_INFO
+ If this environment variable is set, then Portage will display
+ statistics about its internal LRU caches.
+ .TP
+ .BR PORTAGE_SHOW_HTTP_TRACE
+ If this environment variable is set, then Portage will show
+ a trace of all HTTP request.
+ .TP
+ .BR PORTAGE_DO_NOT_EXPORT_PMS_VARS
+ If this environment variable is set, then Portage will not export PMS
+ variables regardless of the EAPI.  The variables are still available
+ to ebuilds; however, they are not exported and therefore not available
+ to child processes of the ebuild.  Since EAPI 9, Portage will never
+ export PMS variables.  This setting allows testing EAPI < 9 ebuilds
+ with the new behavior.
  .SH "REPORTING BUGS"
  Please report any bugs you encounter through our website:
  .LP

Reply via email to