commit: d9a23f21950ac8dbd49844ea30aaceee5e9dc983
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Tue Jul 6 07:09:18 2021 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Tue Jul 6 07:10:04 2021 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=d9a23f21
Merge tag 'portage-3.0.21' into prefix
portage-3.0.21
Signed-off-by: Zac Medico <zmedico <AT> gentoo.org>
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
.github/workflows/ci.yml | 2 +-
NEWS | 12 ++
README | 2 +-
RELEASE-NOTES | 18 +++
bin/eapi.sh | 76 ++++++++-
bin/ebuild-helpers/doconfd | 8 +-
bin/ebuild-helpers/doenvd | 8 +-
bin/ebuild-helpers/doheader | 8 +-
bin/ebuild-helpers/doinitd | 9 +-
bin/ebuild-helpers/dosym | 67 +++++++-
bin/ebuild-ipc.py | 26 ++-
bin/ebuild.sh | 85 +++++++---
bin/estrip | 14 +-
bin/install-qa-check.d/10executable-issues | 2 +-
bin/install-qa-check.d/10ignored-flags | 4 +-
bin/install-qa-check.d/80libraries | 2 +-
bin/isolated-functions.sh | 6 +-
bin/misc-functions.sh | 13 +-
bin/phase-functions.sh | 23 ++-
bin/phase-helpers.sh | 62 +++++--
bin/portageq | 6 +-
bin/regenworld | 7 +-
cnf/sets/portage.conf | 1 +
lib/_emerge/EbuildBuild.py | 25 ++-
lib/_emerge/EbuildPhase.py | 5 +-
lib/_emerge/Package.py | 8 +-
lib/_emerge/PackageUninstall.py | 2 +-
lib/_emerge/Scheduler.py | 36 +++--
lib/_emerge/actions.py | 30 +++-
lib/_emerge/depgraph.py | 7 +-
lib/_emerge/main.py | 4 +-
lib/_emerge/unmerge.py | 19 ++-
lib/portage/__init__.py | 4 +-
lib/portage/_emirrordist/FetchIterator.py | 68 ++++----
lib/portage/_sets/dbapi.py | 8 +-
lib/portage/cache/metadata.py | 4 +-
lib/portage/const.py | 4 +-
lib/portage/dbapi/bintree.py | 7 +-
lib/portage/dbapi/porttree.py | 12 +-
lib/portage/dbapi/vartree.py | 2 +-
lib/portage/dep/__init__.py | 8 +-
lib/portage/dispatch_conf.py | 4 +-
lib/portage/eapi.py | 15 +-
.../package/ebuild/_config/special_env_vars.py | 7 +-
lib/portage/package/ebuild/config.py | 24 ++-
lib/portage/package/ebuild/doebuild.py | 34 +++-
lib/portage/package/ebuild/fetch.py | 87 ++++++----
lib/portage/tests/__init__.py | 127 ++++++++-------
lib/portage/tests/ebuild/test_shell_quote.py | 126 +++++++++++++++
lib/portage/tests/emerge/test_simple.py | 10 +-
lib/portage/tests/resolver/ResolverPlayground.py | 39 ++++-
lib/portage/tests/resolver/test_unmerge_order.py | 179 +++++++++++++++++++++
lib/portage/update.py | 17 +-
lib/portage/util/_async/PipeLogger.py | 35 ++--
lib/portage/util/env_update.py | 5 +
man/ebuild.5 | 33 +++-
man/make.conf.5 | 34 +++-
man/portage.5 | 33 +++-
repoman/lib/repoman/tests/__init__.py | 18 +--
repoman/setup.py | 47 ++++--
setup.py | 125 +++++++++++---
61 files changed, 1360 insertions(+), 353 deletions(-)
diff --cc bin/eapi.sh
index 26df37328,362cc07c0..1aaaa19e8
--- a/bin/eapi.sh
+++ b/bin/eapi.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 2012-2018 Gentoo Foundation
+ # Copyright 2012-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# PHASES
diff --cc bin/ebuild-helpers/doconfd
index e32c9d5c0,572629a54..a1b8146f7
--- a/bin/ebuild-helpers/doconfd
+++ b/bin/ebuild-helpers/doconfd
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
diff --cc bin/ebuild-helpers/doenvd
index 4e8068659,f1310c848..1d2c90b8c
--- a/bin/ebuild-helpers/doenvd
+++ b/bin/ebuild-helpers/doenvd
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
diff --cc bin/ebuild-helpers/doheader
index a87536c33,2f21a5a2a..bf11ecdb0
--- a/bin/ebuild-helpers/doheader
+++ b/bin/ebuild-helpers/doheader
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
diff --cc bin/ebuild-helpers/doinitd
index 883858320,1863aedac..ad8bb0347
--- a/bin/ebuild-helpers/doinitd
+++ b/bin/ebuild-helpers/doinitd
@@@ -1,7 -1,9 +1,9 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2010 Gentoo Foundation
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+ source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
+
if [[ $# -lt 1 ]] ; then
source "${PORTAGE_BIN_PATH}"/isolated-functions.sh || exit 1
__helpers_die "${0##*/}: at least one argument needed"
diff --cc bin/ebuild-ipc.py
index c523572a7,fa6ac4395..a0735fee5
--- a/bin/ebuild-ipc.py
+++ b/bin/ebuild-ipc.py
@@@ -1,5 -1,5 +1,5 @@@
-#!/usr/bin/python -b
+#!@PREFIX_PORTAGE_PYTHON@ -b
- # Copyright 2010-2018 Gentoo Foundation
+ # Copyright 2010-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
# This is a helper which ebuild processes can use
diff --cc bin/ebuild.sh
index dddaada87,5916bedfc..9f0eb24a2
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Prevent aliases from causing portage to act inappropriately.
diff --cc bin/isolated-functions.sh
index c16f0c42f,b495ae6c7..5232fcf7f
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2020 Gentoo Authors
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
source "${PORTAGE_BIN_PATH}/eapi.sh" || exit 1
diff --cc bin/misc-functions.sh
index ed35414b0,bd1fb7553..53a15aef7
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@@ -240,15 -201,18 +240,20 @@@ install_qa_check_elf()
echo "${QA_SONAME_NO_SYMLINK}" > \
"${PORTAGE_BUILDDIR}"/build-info/QA_SONAME_NO_SYMLINK
- if has binchecks ${RESTRICT} && \
- [ -s "${PORTAGE_BUILDDIR}/build-info/NEEDED.ELF.2" ] ;
then
- eqawarn "QA Notice: RESTRICT=binchecks prevented checks
on these ELF files:"
- eqawarn "$(while read -r x; do x=${x#*;} ; x=${x%%;*} ;
echo "${x#${EPREFIX}}" ; done < "${PORTAGE_BUILDDIR}"/build-info/NEEDED.ELF.2)"
+ if [[ -s ${PORTAGE_BUILDDIR}/build-info/NEEDED.ELF.2 ]]; then
+ if grep -qs '<stabilize-allarches/>'
"${EBUILD%/*}/metadata.xml"; then
+ eqawarn "QA Notice: <stabilize-allarches/>
found on package installing ELF files"
+ fi
+
+ if has binchecks ${PORTAGE_RESTRICT}; then
+ eqawarn "QA Notice: RESTRICT=binchecks
prevented checks on these ELF files:"
+ eqawarn "$(while read -r x; do x=${x#*;} ;
x=${x%%;*} ; echo "${x#${EPREFIX}}" ; done <
"${PORTAGE_BUILDDIR}"/build-info/NEEDED.ELF.2)"
+ fi
fi
fi
+}
+install_qa_check_misc() {
# Portage regenerates this on the installed system.
rm -f "${ED%/}"/usr/share/info/dir{,.gz,.bz2} || die "rm failed!"
}
diff --cc bin/phase-functions.sh
index 78bb5caca,0bb5d86e1..9774b9dff
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2019 Gentoo Authors
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# Hardcoded bash lists are needed for backward compatibility with
diff --cc bin/phase-helpers.sh
index a1b7bfe05,94f4f24f2..95f55780d
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2020 Gentoo Authors
+ # Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
if ___eapi_has_DESTTREE_INSDESTTREE; then
diff --cc lib/_emerge/Package.py
index f970d87f5,e8809a89d..40e595f36
--- a/lib/_emerge/Package.py
+++ b/lib/_emerge/Package.py
@@@ -36,11 -36,11 +36,11 @@@ class Package(Task)
"LICENSE", "MD5", "PDEPEND", "PROVIDES",
"RDEPEND", "repository", "REQUIRED_USE",
"PROPERTIES", "REQUIRES", "RESTRICT", "SIZE",
- "SLOT", "USE", "_mtime_"]
+ "SLOT", "USE", "_mtime_", "EPREFIX"]
- _dep_keys = ('BDEPEND', 'DEPEND', 'PDEPEND', 'RDEPEND')
+ _dep_keys = ('BDEPEND', 'DEPEND', 'IDEPEND', 'PDEPEND', 'RDEPEND')
_buildtime_keys = ('BDEPEND', 'DEPEND')
- _runtime_keys = ('PDEPEND', 'RDEPEND')
+ _runtime_keys = ('IDEPEND', 'PDEPEND', 'RDEPEND')
_use_conditional_misc_keys = ('LICENSE', 'PROPERTIES', 'RESTRICT')
UNKNOWN_REPO = _unknown_repo
diff --cc lib/portage/const.py
index 285e262cf,896771e14..892766c68
--- a/lib/portage/const.py
+++ b/lib/portage/const.py
@@@ -1,12 -1,7 +1,12 @@@
# portage: Constants
- # Copyright 1998-2019 Gentoo Authors
+ # Copyright 1998-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
+# ===========================================================================
+# autotool supplied constants.
+# ===========================================================================
+from portage.const_autotool import *
+
import os
# ===========================================================================
diff --cc lib/portage/dbapi/bintree.py
index 6839a7dd9,cb21a8ee5..7e81b7879
--- a/lib/portage/dbapi/bintree.py
+++ b/lib/portage/dbapi/bintree.py
@@@ -83,10 -83,10 +83,10 @@@ class bindbapi(fakedbapi)
# Selectively cache metadata in order to optimize dep matching.
self._aux_cache_keys = set(
["BDEPEND", "BUILD_ID", "BUILD_TIME", "CHOST",
"DEFINED_PHASES",
- "DEPEND", "EAPI", "IUSE", "KEYWORDS",
+ "DEPEND", "EAPI", "IDEPEND", "IUSE", "KEYWORDS",
"LICENSE", "MD5", "PDEPEND", "PROPERTIES",
"PROVIDES", "RDEPEND", "repository", "REQUIRES",
"RESTRICT",
- "SIZE", "SLOT", "USE", "_mtime_"
+ "SIZE", "SLOT", "USE", "_mtime_", "EPREFIX"
])
self._aux_cache_slot_dict =
slot_dict_class(self._aux_cache_keys)
self._aux_cache = {}
@@@ -384,13 -384,13 +384,13 @@@ class binarytree
self._pkgindex_aux_keys = \
["BASE_URI", "BDEPEND", "BUILD_ID",
"BUILD_TIME", "CHOST",
"DEFINED_PHASES", "DEPEND", "DESCRIPTION",
"EAPI", "FETCHCOMMAND",
- "IUSE", "KEYWORDS", "LICENSE", "PDEPEND",
+ "IDEPEND", "IUSE", "KEYWORDS", "LICENSE",
"PDEPEND",
"PKGINDEX_URI", "PROPERTIES", "PROVIDES",
"RDEPEND", "repository", "REQUIRES",
"RESTRICT", "RESUMECOMMAND",
- "SIZE", "SLOT", "USE"]
+ "SIZE", "SLOT", "USE", "EPREFIX"]
self._pkgindex_aux_keys = list(self._pkgindex_aux_keys)
self._pkgindex_use_evaluated_keys = \
- ("BDEPEND", "DEPEND", "LICENSE", "RDEPEND",
+ ("BDEPEND", "DEPEND", "IDEPEND", "LICENSE",
"RDEPEND",
"PDEPEND", "PROPERTIES", "RESTRICT")
self._pkgindex_header = None
self._pkgindex_header_keys = set([