commit: 900023af32d8ef72e7c6069af67d513ccf50048a
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Wed Jan 8 19:11:46 2020 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Wed Jan 8 19:11:46 2020 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=900023af
Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix
Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
.travis.yml | 18 +-
NEWS | 31 +
RELEASE-NOTES | 154 +++++
bin/dispatch-conf | 11 +-
bin/eapi.sh | 46 +-
bin/ebuild | 10 +-
bin/ebuild-helpers/doins | 3 +-
bin/ebuild.sh | 33 +-
bin/emerge-webrsync | 48 +-
bin/glsa-check | 112 ++--
bin/helper-functions.sh | 7 +-
bin/install.py | 24 +-
bin/isolated-functions.sh | 18 +-
bin/phase-functions.sh | 28 +-
bin/phase-helpers.sh | 103 ++--
bin/pid-ns-init | 2 +-
bin/quickpkg | 34 +-
bin/socks5-server.py | 2 +-
cnf/make.globals | 4 +-
cnf/repos.conf | 6 +-
cnf/sets/portage.conf | 12 +-
doc/package/ebuild.docbook | 1 -
doc/package/ebuild/eapi/5-hdepend.docbook | 32 --
doc/portage.docbook | 1 -
lib/_emerge/Binpkg.py | 96 ++--
lib/_emerge/EbuildExecuter.py | 6 +-
lib/_emerge/EbuildPhase.py | 2 +-
lib/_emerge/Package.py | 6 +-
lib/_emerge/Scheduler.py | 17 +-
lib/_emerge/actions.py | 45 +-
lib/_emerge/create_depgraph_params.py | 39 ++
lib/_emerge/depgraph.py | 628 +++++++++++++--------
lib/_emerge/main.py | 32 +-
lib/_emerge/resolver/backtracking.py | 20 +-
lib/_emerge/resolver/slot_collision.py | 17 +-
lib/portage/__init__.py | 5 +-
lib/portage/_emirrordist/Config.py | 10 +-
lib/portage/_emirrordist/DeletionIterator.py | 38 +-
lib/portage/_emirrordist/DeletionTask.py | 47 +-
lib/portage/_emirrordist/FetchTask.py | 120 ++--
lib/portage/_emirrordist/main.py | 12 +
lib/portage/_sets/__init__.py | 14 +-
lib/portage/_sets/dbapi.py | 18 +-
lib/portage/cache/metadata.py | 2 +-
lib/portage/const.py | 6 +-
lib/portage/dbapi/__init__.py | 5 +-
lib/portage/dbapi/bintree.py | 155 ++++-
lib/portage/dbapi/porttree.py | 2 +-
lib/portage/dbapi/vartree.py | 233 +++++++-
lib/portage/dep/__init__.py | 152 +++--
lib/portage/dep/_slot_operator.py | 3 -
lib/portage/dep/dep_check.py | 10 +
lib/portage/eapi.py | 18 +-
lib/portage/emaint/modules/binhost/binhost.py | 21 +-
lib/portage/exception.py | 6 +-
lib/portage/glsa.py | 15 +-
lib/portage/locks.py | 6 +-
.../package/ebuild/_config/special_env_vars.py | 4 +-
lib/portage/package/ebuild/config.py | 27 +-
lib/portage/package/ebuild/doebuild.py | 17 +-
lib/portage/package/ebuild/fetch.py | 286 +++++++++-
lib/portage/process.py | 100 +++-
lib/portage/repository/config.py | 14 +-
lib/portage/sync/modules/rsync/rsync.py | 7 +
lib/portage/sync/modules/webrsync/webrsync.py | 1 +
lib/portage/sync/syncbase.py | 10 +-
lib/portage/tests/dep/test_use_reduce.py | 72 ++-
lib/portage/tests/ebuild/test_fetch.py | 252 ++++++++-
lib/portage/tests/emerge/test_simple.py | 3 +-
lib/portage/tests/glsa/test_security_set.py | 2 +-
lib/portage/tests/process/test_unshare_net.py | 38 ++
lib/portage/tests/resolver/ResolverPlayground.py | 13 +
.../test_aggressive_backtrack_downgrade.py | 91 +++
lib/portage/tests/resolver/test_autounmask.py | 39 +-
lib/portage/tests/resolver/test_blocker.py | 87 ++-
.../tests/resolver/test_circular_choices.py | 109 +++-
lib/portage/tests/resolver/test_keywords.py | 15 +-
lib/portage/tests/resolver/test_merge_order.py | 28 +-
.../resolver/test_slot_conflict_mask_update.py | 5 +-
.../resolver/test_slot_conflict_update_virt.py | 79 +++
.../resolver/test_slot_operator_autounmask.py | 4 +-
.../resolver/test_slot_operator_complete_graph.py | 2 +-
.../test_slot_operator_runtime_pkg_mask.py | 4 +-
.../resolver/test_virtual_minimize_children.py | 39 ++
lib/portage/tests/resolver/test_with_test_deps.py | 39 +-
.../util/futures/asyncio/test_child_watcher.py | 19 +-
.../util/futures/asyncio/test_subprocess_exec.py | 36 +-
lib/portage/tests/util/test_file_copier.py | 48 ++
lib/portage/tests/util/test_getconfig.py | 4 +-
lib/portage/update.py | 6 +-
lib/portage/util/_async/FileCopier.py | 26 +-
lib/portage/util/_compare_files.py | 103 ++++
lib/portage/util/_dyn_libs/LinkageMapELF.py | 5 +-
lib/portage/util/_urlopen.py | 6 +-
lib/portage/util/_xattr.py | 6 +-
lib/portage/util/futures/_asyncio/__init__.py | 5 +-
lib/portage/util/netlink.py | 98 ++++
man/ebuild.5 | 194 +++++--
man/emerge.1 | 63 ++-
man/emirrordist.1 | 10 +
man/glsa-check.1 | 53 ++
man/make.conf.5 | 38 +-
misc/emerge-delta-webrsync | 33 +-
repoman/RELEASE-NOTES | 28 +
repoman/cnf/linechecks/linechecks.yaml | 46 +-
repoman/cnf/qa_data/qa_data.yaml | 1 +
repoman/cnf/repository/linechecks.yaml | 1 -
repoman/cnf/repository/qa_data.yaml | 1 +
repoman/lib/repoman/actions.py | 15 +-
repoman/lib/repoman/argparser.py | 7 +
repoman/lib/repoman/modules/linechecks/base.py | 5 +-
.../lib/repoman/modules/linechecks/controller.py | 12 +-
.../modules/linechecks/deprecated/inherit.py | 19 +-
repoman/lib/repoman/modules/linechecks/do/dosym.py | 6 +-
.../lib/repoman/modules/linechecks/eapi/checks.py | 10 +-
.../lib/repoman/modules/linechecks/emake/emake.py | 2 +-
.../repoman/modules/linechecks/patches/patches.py | 2 +-
.../lib/repoman/modules/linechecks/phases/phase.py | 4 +-
.../repoman/modules/linechecks/portage/internal.py | 7 +-
.../repoman/modules/linechecks/quotes/quoteda.py | 2 +-
.../repoman/modules/linechecks/useless/dodoc.py | 2 +-
.../repoman/modules/linechecks/whitespace/blank.py | 2 +-
.../lib/repoman/modules/scan/depend/__init__.py | 3 +-
.../repoman/modules/scan/depend/_depend_checks.py | 14 +
repoman/lib/repoman/modules/scan/depend/profile.py | 9 +-
repoman/lib/repoman/modules/scan/ebuild/ebuild.py | 3 +-
.../lib/repoman/modules/scan/metadata/restrict.py | 6 +-
repoman/lib/repoman/scanner.py | 9 +
repoman/lib/repoman/tests/commit/test_commitmsg.py | 2 +-
repoman/lib/repoman/tests/simple/test_simple.py | 1 +
repoman/man/repoman.1 | 9 +-
repoman/runtests | 6 +-
repoman/setup.py | 2 +-
runtests | 6 +-
setup.py | 4 +-
tox.ini | 8 +-
136 files changed, 3799 insertions(+), 1141 deletions(-)
diff --cc .travis.yml
index 4f94e36a3,5123141ac..dc8e2857c
--- a/.travis.yml
+++ b/.travis.yml
@@@ -19,24 -12,11 +12,25 @@@ install
script:
- printf "[build_ext]\nportage-ext-modules=true" >> setup.cfg
+ - find . -type f -exec
+ sed -e "s|@PORTAGE_EPREFIX@||"
+ -e "s|@PORTAGE_BASE@|${PWD}|"
+ -e "s|@PORTAGE_MV@|$(type -P mv)|"
+ -e "s|@PORTAGE_BASH@|$(type -P bash)|"
+ -e "s|@PREFIX_PORTAGE_PYTHON@|$(type -P python)|"
+ -e "s|@EXTRA_PATH@|/usr/sbin:/sbin|"
+ -e "s|@portagegroup@|$(id -gn)|"
+ -e "s|@portageuser@|$(id -un)|"
+ -e "s|@rootuser@|$(id -un)|"
+ -e "s|@rootuid@|$(id -u)|"
+ -e "s|@rootgid@|$(id -g)|"
+ -e "s|@sysconfdir@|/etc|"
+ -i '{}' +
- ./setup.py test
- ./setup.py install --root=/tmp/install-root
- - if [[ ${TRAVIS_PYTHON_VERSION} == ?.? ]]; then
- tox -e py${TRAVIS_PYTHON_VERSION/./};
+ - if [[ ${TRAVIS_PYTHON_VERSION/-dev/} == ?.? ]]; then
+ TOX_PYTHON_VERSION=${TRAVIS_PYTHON_VERSION/-dev/};
+ tox -e py${TOX_PYTHON_VERSION/./};
else
tox -e ${TRAVIS_PYTHON_VERSION};
fi
diff --cc bin/dispatch-conf
index fb16cb63f,62ab3f6cc..c05215fc3
--- a/bin/dispatch-conf
+++ b/bin/dispatch-conf
@@@ -1,5 -1,5 +1,5 @@@
-#!/usr/bin/python -b
+#!@PREFIX_PORTAGE_PYTHON@ -b
- # Copyright 1999-2017 Gentoo Foundation
+ # Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
#
diff --cc bin/ebuild
index 9e5c3b68e,460aa0fd1..a57dd4941
--- a/bin/ebuild
+++ b/bin/ebuild
@@@ -1,5 -1,5 +1,5 @@@
-#!/usr/bin/python -b
+#!@PREFIX_PORTAGE_PYTHON@ -b
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
from __future__ import print_function
diff --cc bin/ebuild-helpers/doins
index cf843bce5,24fe48121..825a421af
--- a/bin/ebuild-helpers/doins
+++ b/bin/ebuild-helpers/doins
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2019 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/emerge-webrsync
index f9da96ffa,db39b272e..6ac7e3328
--- a/bin/emerge-webrsync
+++ b/bin/emerge-webrsync
@@@ -50,16 -50,10 +50,16 @@@ eval "$("${portageq}" envvar -v DISTDI
FETCHCOMMAND GENTOO_MIRRORS \
PORTAGE_BIN_PATH PORTAGE_CONFIGROOT PORTAGE_GPG_DIR \
PORTAGE_NICENESS PORTAGE_REPOSITORIES PORTAGE_RSYNC_EXTRA_OPTS \
- PORTAGE_RSYNC_OPTS PORTAGE_TMPDIR \
+ PORTAGE_RSYNC_OPTS PORTAGE_TEMP_GPG_DIR PORTAGE_TMPDIR \
- USERLAND http_proxy ftp_proxy)"
+ USERLAND http_proxy ftp_proxy \
+ PORTAGE_USER PORTAGE_GROUP)"
export http_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 1
repo_name=gentoo
diff --cc bin/glsa-check
index 470003215,eff01cf31..f9dae110f
--- a/bin/glsa-check
+++ b/bin/glsa-check
@@@ -1,10 -1,11 +1,11 @@@
-#!/usr/bin/python -b
+#!@PREFIX_PORTAGE_PYTHON@ -b
- # Copyright 2008-2014 Gentoo Foundation
+ # Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
- from __future__ import print_function
+ from __future__ import print_function, unicode_literals
import argparse
+ import re
import sys
import codecs
from functools import reduce
diff --cc bin/isolated-functions.sh
index dc0489093,e8d41fd64..efc377575
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
source "${PORTAGE_BIN_PATH}/eapi.sh" || exit 1
diff --cc bin/phase-helpers.sh
index 74de140e7,020862ba0..d0ab03712
--- a/bin/phase-helpers.sh
+++ b/bin/phase-helpers.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2018 Gentoo Foundation
+ # Copyright 1999-2019 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 2a303835a,3d7df2437..b2dfc07c1
--- a/lib/_emerge/Package.py
+++ b/lib/_emerge/Package.py
@@@ -48,10 -48,10 +48,10 @@@ 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', 'HDEPEND', 'PDEPEND', 'RDEPEND')
- _buildtime_keys = ('BDEPEND', 'DEPEND', 'HDEPEND')
+ _dep_keys = ('BDEPEND', 'DEPEND', 'PDEPEND', 'RDEPEND')
+ _buildtime_keys = ('BDEPEND', 'DEPEND')
_runtime_keys = ('PDEPEND', 'RDEPEND')
_use_conditional_misc_keys = ('LICENSE', 'PROPERTIES', 'RESTRICT')
UNKNOWN_REPO = _unknown_repo
diff --cc lib/portage/dbapi/bintree.py
index 3f2f0052f,311c9a78a..2f6c4f343
--- a/lib/portage/dbapi/bintree.py
+++ b/lib/portage/dbapi/bintree.py
@@@ -87,10 -94,10 +94,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", "HDEPEND", "IUSE", "KEYWORDS",
+ "DEPEND", "EAPI", "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 = {}
@@@ -315,13 -394,13 +394,13 @@@ class binarytree(object)
self._pkgindex_aux_keys = \
["BASE_URI", "BDEPEND", "BUILD_ID",
"BUILD_TIME", "CHOST",
"DEFINED_PHASES", "DEPEND", "DESCRIPTION",
"EAPI",
- "HDEPEND", "IUSE", "KEYWORDS", "LICENSE",
"PDEPEND",
+ "IUSE", "KEYWORDS", "LICENSE", "PDEPEND",
"PKGINDEX_URI", "PROPERTIES", "PROVIDES",
"RDEPEND", "repository", "REQUIRES", "RESTRICT",
- "SIZE", "SLOT", "USE"]
+ "SIZE", "SLOT", "USE", "EPREFIX"]
self._pkgindex_aux_keys = list(self._pkgindex_aux_keys)
self._pkgindex_use_evaluated_keys = \
- ("BDEPEND", "DEPEND", "HDEPEND", "LICENSE",
"RDEPEND",
+ ("BDEPEND", "DEPEND", "LICENSE", "RDEPEND",
"PDEPEND", "PROPERTIES", "RESTRICT")
self._pkgindex_header = None
self._pkgindex_header_keys = set([
diff --cc lib/portage/package/ebuild/fetch.py
index d062ec77c,7ab054874..5f6c40146
--- a/lib/portage/package/ebuild/fetch.py
+++ b/lib/portage/package/ebuild/fetch.py
@@@ -32,10 -42,10 +42,11 @@@ portage.proxy.lazyimport.lazyimport(glo
from portage import os, selinux, shutil, _encodings, \
_movefile, _shell_quote, _unicode_encode
from portage.checksum import (get_valid_checksum_keys, perform_md5,
verify_all,
- _filter_unaccelarated_hashes, _hash_filter, _apply_hash_filter)
+ _filter_unaccelarated_hashes, _hash_filter, _apply_hash_filter,
+ checksum_str)
from portage.const import BASH_BINARY, CUSTOM_MIRRORS_FILE, \
GLOBAL_CONFIG_PATH
+from portage.const import rootgid
from portage.data import portage_gid, portage_uid, secpass, userpriv_groups
from portage.exception import FileNotFound, OperationNotPermitted, \
PortageException, TryAgain