commit: 6a8389a3a9f6af80bbb4108d5bb6f4b847b44577
Author: Thomas Sachau <tommy <AT> gentoo <DOT> org>
AuthorDate: Fri Dec 12 20:22:45 2014 +0000
Commit: Thomas Sachau <tommy <AT> gentoo <DOT> org>
CommitDate: Fri Dec 12 20:22:45 2014 +0000
URL:
http://sources.gentoo.org/gitweb/?p=proj/portage.git;a=commit;h=6a8389a3
Merge tag 'v2.2.15' into multilib
Portage-2.2.15 release
RELEASE-NOTES | 52 +++
bin/bashrc-functions.sh | 7 +-
bin/dispatch-conf | 63 ++--
bin/ebuild | 6 +-
bin/ebuild.sh | 85 +++--
bin/etc-update | 164 +++++++++-
bin/install-qa-check.d/05double-D | 9 +-
bin/install-qa-check.d/90world-writable | 27 +-
bin/install.py | 2 +-
bin/isolated-functions.sh | 68 ++++
bin/misc-functions.sh | 71 ++--
bin/phase-functions.sh | 2 +-
bin/portageq | 14 +-
bin/quickpkg | 4 +-
bin/save-ebuild-env.sh | 4 +-
cnf/make.globals | 3 +-
man/ebuild.5 | 7 +-
man/emerge.1 | 28 +-
man/make.conf.5 | 6 +
man/portage.5 | 30 +-
pym/_emerge/Package.py | 18 +-
pym/_emerge/actions.py | 103 +++++-
pym/_emerge/create_depgraph_params.py | 5 +
pym/_emerge/depgraph.py | 232 ++++++++++---
pym/_emerge/main.py | 13 +-
pym/_emerge/sync/old_tree_timestamp.py | 5 +-
pym/_emerge/unmerge.py | 42 ++-
pym/portage/__init__.py | 27 ++
pym/portage/_global_updates.py | 4 +-
pym/portage/_selinux.py | 14 +-
pym/portage/cache/fs_template.py | 25 +-
pym/portage/const.py | 2 +
pym/portage/data.py | 134 ++++++--
.../dbapi/_ContentsCaseSensitivityManager.py | 93 ++++++
pym/portage/dbapi/bintree.py | 28 ++
pym/portage/dbapi/vartree.py | 361 ++++++++++++---------
pym/portage/dep/dep_check.py | 53 ++-
pym/portage/dispatch_conf.py | 157 +++++++--
pym/portage/exception.py | 1 +
pym/portage/locks.py | 9 +-
pym/portage/news.py | 9 +-
.../package/ebuild/_config/LocationsManager.py | 11 +-
.../package/ebuild/_config/special_env_vars.py | 4 +-
pym/portage/package/ebuild/config.py | 110 +++++--
pym/portage/package/ebuild/doebuild.py | 24 +-
pym/portage/package/ebuild/prepare_build_dirs.py | 9 +-
pym/portage/repository/config.py | 2 +-
pym/portage/tests/__init__.py | 4 +-
.../tests/ebuild/test_use_expand_incremental.py | 132 ++++++++
pym/portage/tests/emerge/test_config_protect.py | 292 +++++++++++++++++
pym/portage/tests/emerge/test_simple.py | 10 +-
pym/portage/tests/resolver/ResolverPlayground.py | 10 +
.../tests/resolver/test_onlydeps_circular.py | 51 +++
pym/portage/tests/resolver/test_or_choices.py | 59 +++-
..._slot_operator_update_probe_parent_downgrade.py | 68 ++++
pym/portage/tests/resolver/test_virtual_slot.py | 75 +++++
pym/portage/tests/resolver/test_with_test_deps.py | 44 +++
pym/portage/update.py | 6 +-
pym/portage/util/__init__.py | 49 ++-
pym/portage/util/movefile.py | 2 +-
pym/portage/util/path.py | 48 +++
pym/portage/util/writeable_check.py | 2 +-
setup.py | 25 +-
63 files changed, 2524 insertions(+), 500 deletions(-)
diff --cc bin/misc-functions.sh
index 416e2bf,e08c228..22ab339
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
@@@ -170,18 -168,21 +170,22 @@@ install_qa_check()
local EPREFIX= ED=${D}
fi
+ [[ -d "${ED}" ]] || return 0
cd "${ED}" || die "cd failed"
- # Run QA checks from install-qa-check.d.
- # Note: checks need to be run *before* stripping.
- local f
- # TODO: handle nullglob-like
- for f in "${PORTAGE_BIN_PATH}"/install-qa-check.d/*; do
- # Run in a subshell to treat it like external script,
- # but use 'source' to pass all variables through.
- (
- source "${f}" || eerror "Post-install QA check ${f##*/}
failed to run"
+ # Collect the paths for QA checks, highest prio first.
+ paths=(
+ # sysadmin overrides
+ "${PORTAGE_OVERRIDE_EPREFIX}"/usr/local/lib/install-qa-check.d
+ # system-wide package installs
+ "${PORTAGE_OVERRIDE_EPREFIX}"/usr/lib/install-qa-check.d
+ )
+
+ # Now repo-specific checks.
+ # (yes, PORTAGE_ECLASS_LOCATIONS contains repo paths...)
+ for d in "${PORTAGE_ECLASS_LOCATIONS[@]}"; do
+ paths+=(
+ "${d}"/metadata/install-qa-check.d
)
done
diff --cc pym/portage/package/ebuild/config.py
index a7e8bd6,59e239b..f9603e7
--- a/pym/portage/package/ebuild/config.py
+++ b/pym/portage/package/ebuild/config.py
@@@ -880,13 -915,8 +915,15 @@@ class config(object)
# initialize self.features
self.regenerate()
+ if 'force-multilib' in self.features:
+ #add multilib_abi internally to list of
USE_EXPANDed vars
+ self["USE_EXPAND"] = "MULTILIB_ABI" + " " +
self.get("USE_EXPAND", "")
+ self.backup_changes("USE_EXPAND")
+ default_abi =
self.configdict["defaults"].get('DEFAULT_ABI', '').strip()
+ if default_abi:
+ self.configdict["defaults"]["USE"] =
self.configdict["defaults"].get("USE", "") + " multilib_abi_" + default_abi
+ if unprivileged:
+ self.features.add('unprivileged')
if bsd_chflags:
self.features.add('chflags')