From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 5175B13933E for ; Tue, 6 Jul 2021 07:10:20 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 97304E096F; Tue, 6 Jul 2021 07:10:19 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 6C99EE096F for ; Tue, 6 Jul 2021 07:10:19 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 3D871335DB7 for ; Tue, 6 Jul 2021 07:10:18 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id A09E37C5 for ; Tue, 6 Jul 2021 07:10:16 +0000 (UTC) From: "Fabian Groffen" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Fabian Groffen" Message-ID: <1625555404.d9a23f21950ac8dbd49844ea30aaceee5e9dc983.grobian@gentoo> Subject: [gentoo-commits] proj/portage:prefix commit in: / X-VCS-Repository: proj/portage X-VCS-Committer: grobian X-VCS-Committer-Name: Fabian Groffen X-VCS-Revision: d9a23f21950ac8dbd49844ea30aaceee5e9dc983 X-VCS-Branch: prefix Date: Tue, 6 Jul 2021 07:10:16 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 9d16ecc8-d012-4046-a3c9-b1ad101161c2 X-Archives-Hash: c0c9766959bd7c519c63df2c0ae5e34a commit: d9a23f21950ac8dbd49844ea30aaceee5e9dc983 Author: Fabian Groffen gentoo org> AuthorDate: Tue Jul 6 07:09:18 2021 +0000 Commit: Fabian Groffen gentoo 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 gentoo.org> Signed-off-by: Fabian Groffen 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 '' "${EBUILD%/*}/metadata.xml"; then + eqawarn "QA Notice: 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([