commit: 3fc0447f6d36cad9d168c40dad680dbe0876cf38
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Jun 4 19:46:28 2015 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Jun 4 19:46:28 2015 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=3fc0447f
Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix
NEWS | 15 ++
RELEASE-NOTES | 59 ++++++
bin/ebuild-helpers/bsd/sed | 4 +-
bin/ebuild-helpers/doconfd | 5 +-
bin/ebuild-helpers/dodoc | 5 +-
bin/ebuild-helpers/doenvd | 5 +-
bin/ebuild-helpers/doheader | 5 +-
bin/ebuild-helpers/doinitd | 5 +-
bin/ebuild-helpers/dolib.a | 3 +-
bin/ebuild-helpers/dolib.so | 3 +-
bin/ebuild-helpers/emake | 27 +--
bin/ebuild-helpers/portageq | 4 +-
bin/ebuild-helpers/unprivileged/chown | 4 +-
bin/ebuild-helpers/xattr/install | 14 +-
bin/ebuild.sh | 10 +-
bin/egencache | 17 +-
bin/emerge-webrsync | 4 +-
bin/install-qa-check.d/10executable-issues | 242 ++++++++++++-----------
bin/install-qa-check.d/80libraries | 130 ++++++------
bin/install-qa-check.d/90gcc-warnings | 2 +-
bin/misc-functions.sh | 15 +-
bin/phase-functions.sh | 9 +-
bin/phase-helpers.sh | 2 +-
bin/portageq | 18 +-
bin/quickpkg | 16 +-
bin/repoman | 39 ++--
cnf/make.conf.example | 6 +-
cnf/make.globals | 6 +-
cnf/repos.conf | 4 +
man/ebuild.5 | 22 ++-
man/egencache.1 | 2 +-
man/emaint.1 | 4 +-
man/make.conf.5 | 8 +-
man/repoman.1 | 7 +-
pym/_emerge/BinpkgExtractorAsync.py | 5 +-
pym/_emerge/EbuildMerge.py | 3 +-
pym/_emerge/JobStatusDisplay.py | 4 +-
pym/_emerge/PackageMerge.py | 9 +-
pym/_emerge/Scheduler.py | 20 +-
pym/_emerge/actions.py | 5 +-
pym/_emerge/search.py | 24 ++-
pym/portage/_emirrordist/Config.py | 6 +-
pym/portage/_emirrordist/MirrorDistTask.py | 4 +-
pym/portage/checksum.py | 2 +-
pym/portage/const.py | 3 +
pym/portage/dbapi/_MergeProcess.py | 9 +-
pym/portage/dbapi/_VdbMetadataDelta.py | 25 ++-
pym/portage/dbapi/bintree.py | 15 +-
pym/portage/dbapi/vartree.py | 73 +++++--
pym/portage/dep/soname/multilib_category.py | 2 +-
pym/portage/dispatch_conf.py | 97 +++++++--
pym/portage/output.py | 4 +-
pym/portage/package/ebuild/_config/UseManager.py | 8 +-
pym/portage/package/ebuild/doebuild.py | 22 ++-
pym/portage/package/ebuild/fetch.py | 7 +-
pym/portage/repository/config.py | 15 +-
pym/portage/sync/controller.py | 9 +-
pym/portage/sync/modules/rsync/rsync.py | 13 +-
pym/portage/sync/modules/webrsync/__init__.py | 4 +-
pym/portage/sync/modules/webrsync/webrsync.py | 4 +
pym/portage/util/__init__.py | 24 ++-
pym/portage/util/_dyn_libs/LinkageMapELF.py | 5 +-
pym/portage/util/formatter.py | 69 +++++++
pym/portage/util/writeable_check.py | 24 ++-
pym/portage/util/xattr.py | 20 ++
pym/repoman/utilities.py | 8 +-
setup.py | 2 +-
67 files changed, 888 insertions(+), 377 deletions(-)
diff --cc bin/ebuild-helpers/bsd/sed
index 89f9ec6,9a7f2d4..0be2737
--- a/bin/ebuild-helpers/bsd/sed
+++ b/bin/ebuild-helpers/bsd/sed
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 2007-2012 Gentoo Foundation
+ # Copyright 2007-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
scriptpath=${BASH_SOURCE[0]}
diff --cc bin/ebuild-helpers/dodoc
index 1b508df,6ccf0a4..20f15bb
--- a/bin/ebuild-helpers/dodoc
+++ b/bin/ebuild-helpers/dodoc
@@@ -2,13 -2,10 +2,10 @@@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
+source "${PORTAGE_BIN_PATH:-@PORTAGE_BASE@/bin}"/isolated-functions.sh
if ___eapi_dodoc_supports_-r; then
- exec \
- env \
- __PORTAGE_HELPER="dodoc" \
- doins "$@"
+ __PORTAGE_HELPER='dodoc' exec doins "$@"
fi
if [ $# -lt 1 ] ; then
diff --cc bin/ebuild-helpers/emake
index dcb64a3,2a3c2f0..4b98aec
--- a/bin/ebuild-helpers/emake
+++ b/bin/ebuild-helpers/emake
@@@ -1,19 -1,23 +1,22 @@@
-#!/bin/bash
-# Copyright 1999-2015 Gentoo Foundation
+#!@PORTAGE_BASH@
- # Copyright 1999-2010 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
- # emake: Supplies some default parameters to GNU make. At the moment the
- # only parameter supplied is -jN, where N is a number of
- # parallel processes that should be ideal for the running host
- # (e.g. on a single-CPU machine, N=2). The MAKEOPTS variable
- # is set in make.globals. We don't source make.globals
- # here because emake is only called from an ebuild.
+ # emake: Run make and automatically pass along flags set in the env. We
support
+ # MAKEOPTS & EXTRA_EMAKE which allows the user to customize behavior (such as
+ # parallel builds and load limiting). The latter overrides the ebuild and
thus
+ # should be used with caution (more a debugging knob).
+ #
+ # With newer EAPIs, we also automatically fail the build if make itself fails.
-source "${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"/isolated-functions.sh
+source "${PORTAGE_BIN_PATH:-@PORTAGE_BASE@/bin}"/isolated-functions.sh
- if [[ $PORTAGE_QUIET != 1 ]] ; then
+ cmd=(
- ${MAKE:-make} ${MAKEOPTS} "$@" ${EXTRA_EMAKE}
++ ${MAKE:-make} SHELL="${BASH:-/bin/bash}" ${MAKEOPTS} "$@" ${EXTRA_EMAKE}
+ )
+
+ if [[ ${PORTAGE_QUIET} != 1 ]] ; then
(
- for arg in ${MAKE:-make} $MAKEOPTS "$@" $EXTRA_EMAKE ; do
+ for arg in "${cmd[@]}" ; do
[[ ${arg} == *" "* ]] \
&& printf "'%s' " "${arg}" \
|| printf "%s " "${arg}"
diff --cc bin/ebuild-helpers/portageq
index 935f548,ba889eb..4f3e4e5
--- a/bin/ebuild-helpers/portageq
+++ b/bin/ebuild-helpers/portageq
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 2009-2013 Gentoo Foundation
+ # Copyright 2009-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
scriptpath=${BASH_SOURCE[0]}
@@@ -15,9 -15,11 +15,11 @@@ set -f # in case ${PATH} contains any s
for path in ${PATH}; do
[[ -x ${path}/${scriptname} ]] || continue
+ [[ ${path} == ${PORTAGE_OVERRIDE_EPREFIX}/usr/lib*/portage/* ]] &&
continue
+ [[ ${path} == */._portage_reinstall_.* ]] && continue
[[ ${path}/${scriptname} -ef ${scriptpath} ]] && continue
PYTHONPATH=${PORTAGE_PYTHONPATH:-${PORTAGE_PYM_PATH}} \
- exec "${PORTAGE_PYTHON:-/usr/bin/python}" \
+ exec "${PORTAGE_PYTHON:-@PREFIX_PORTAGE_PYTHON@}" \
"${path}/${scriptname}" "$@"
done
diff --cc bin/ebuild-helpers/unprivileged/chown
index 86b87c2,2f1f161..4705bca
--- a/bin/ebuild-helpers/unprivileged/chown
+++ b/bin/ebuild-helpers/unprivileged/chown
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 2012-2013 Gentoo Foundation
+ # Copyright 2012-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
scriptpath=${BASH_SOURCE[0]}
diff --cc bin/ebuild-helpers/xattr/install
index 233459f,2d2a693..bc1bab9
--- a/bin/ebuild-helpers/xattr/install
+++ b/bin/ebuild-helpers/xattr/install
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 2013 Gentoo Foundation
+ # Copyright 2013-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
PORTAGE_BIN_PATH=${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}
diff --cc bin/ebuild.sh
index 8d1b947,4e26f87..8a815ab
--- a/bin/ebuild.sh
+++ b/bin/ebuild.sh
@@@ -1,9 -1,9 +1,9 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2013 Gentoo Foundation
+ # Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
-PORTAGE_BIN_PATH="${PORTAGE_BIN_PATH:-/usr/lib/portage/bin}"
-PORTAGE_PYM_PATH="${PORTAGE_PYM_PATH:-/usr/lib/portage/pym}"
+PORTAGE_BIN_PATH="${PORTAGE_BIN_PATH:-@PORTAGE_BASE@/bin}"
+PORTAGE_PYM_PATH="${PORTAGE_PYM_PATH:-@PORTAGE_BASE@/pym}"
# Prevent aliases from causing portage to act inappropriately.
# Make sure it's before everything so we don't mess aliases that follow.
diff --cc bin/misc-functions.sh
index 4928575,24941af..a8a07f4
mode 100644,100755..100644
--- a/bin/misc-functions.sh
+++ b/bin/misc-functions.sh
diff --cc bin/phase-functions.sh
index f447fca,7bf4d63..013cc43
--- a/bin/phase-functions.sh
+++ b/bin/phase-functions.sh
@@@ -1,5 -1,5 +1,5 @@@
-#!/bin/bash
+#!@PORTAGE_BASH@
- # Copyright 1999-2013 Gentoo Foundation
+ # Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Hardcoded bash lists are needed for backward compatibility with
diff --cc bin/repoman
index 943a61f,7cb32ce..afc26c3
--- a/bin/repoman
+++ b/bin/repoman
@@@ -1,5 -1,5 +1,5 @@@
-#!/usr/bin/python -bO
+#!@PREFIX_PORTAGE_PYTHON@ -bO
- # Copyright 1999-2014 Gentoo Foundation
+ # Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Next to do: dep syntax checking in mask files
diff --cc cnf/make.globals
index 880fed5,82d8cc1..3518180
--- a/cnf/make.globals
+++ b/cnf/make.globals
@@@ -152,24 -123,12 +152,26 @@@ PORTAGE_ELOG_MAILFROM="@portageuser@@lo
PORTAGE_GPG_SIGNING_COMMAND="gpg --sign --digest-algo SHA256 --clearsign
--yes --default-key \"\${PORTAGE_GPG_KEY}\" --homedir \"\${PORTAGE_GPG_DIR}\"
\"\${FILE}\""
# btrfs.* attributes are irrelevant, see bug #527636.
- # Security labels are special, see bug #461868.
+ # security.* attributes may be special (see bug 461868), but
+ # security.capability is specifically not excluded (bug 548516).
# system.nfs4_acl attributes are irrelevant, see bug #475496.
- PORTAGE_XATTR_EXCLUDE="btrfs.* security.* system.nfs4_acl"
+ PORTAGE_XATTR_EXCLUDE="btrfs.* security.evm security.ima
+ security.selinux system.nfs4_acl"
+# Writeable paths for Mac OS X seatbelt sandbox
+#
+# If path ends in a slash (/), access will recursively be allowed to directory
+# contents (using a regex), not the directory itself. Without a slash, access
+# to the directory or file itself will be allowed (using a literal), so it can
+# be created, removed and changed. If both is needed, the directory needs to
be
+# given twice, once with and once without the slash. Obviously this only makes
+# sense for directories, not files.
+#
+# An empty value for either variable will disable all restrictions on the
+# corresponding operation.
+MACOSSANDBOX_PATHS="/dev/fd/ /private/tmp/ /private/var/tmp/
@@PORTAGE_BUILDDIR@@/ @@PORTAGE_ACTUAL_DISTDIR@@/"
+MACOSSANDBOX_PATHS_CONTENT_ONLY="/dev/null /dev/dtracehelper /dev/tty
/private/var/run/syslog"
+
# *****************************
# ** DO NOT EDIT THIS FILE **
# ***************************************************
diff --cc cnf/repos.conf
index 4433546,062fc0d..b27d5c6
--- a/cnf/repos.conf
+++ b/cnf/repos.conf
@@@ -1,8 -1,12 +1,12 @@@
[DEFAULT]
-main-repo = gentoo
+main-repo = gentoo_prefix
-[gentoo]
-location = /usr/portage
+[gentoo_prefix]
+location = @PORTAGE_EPREFIX@/usr/portage
sync-type = rsync
-sync-uri = rsync://rsync.gentoo.org/gentoo-portage
+sync-uri = rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix
auto-sync = yes
+
+ # for daily squashfs snapshots
+ #sync-type = squashdelta
+ #sync-uri = mirror://gentoo/../snapshots/squashfs
diff --cc pym/portage/dbapi/vartree.py
index a037200,62d880e..f5527b6
--- a/pym/portage/dbapi/vartree.py
+++ b/pym/portage/dbapi/vartree.py
@@@ -33,13 -33,11 +33,14 @@@ portage.proxy.lazyimport.lazyimport(glo
'portage.util.env_update:env_update',
'portage.util.listdir:dircache,listdir',
'portage.util.movefile:movefile',
- 'portage.util.path:first_existing',
+ 'portage.util.path:first_existing,iter_parents',
'portage.util.writeable_check:get_ro_checker',
+ 'portage.util:xattr@_xattr',
'portage.util._dyn_libs.PreservedLibsRegistry:PreservedLibsRegistry',
'portage.util._dyn_libs.LinkageMapELF:LinkageMapELF@LinkageMap',
+ 'portage.util._dyn_libs.LinkageMapMachO:LinkageMapMachO',
+ 'portage.util._dyn_libs.LinkageMapPeCoff:LinkageMapPeCoff',
+ 'portage.util._dyn_libs.LinkageMapXCoff:LinkageMapXCoff',
'portage.util._async.SchedulerInterface:SchedulerInterface',
'portage.util._eventloop.EventLoop:EventLoop',
'portage.util._eventloop.global_event_loop:global_event_loop',
diff --cc pym/portage/dispatch_conf.py
index fe2a85b,ed9a64a..97a79d8
--- a/pym/portage/dispatch_conf.py
+++ b/pym/portage/dispatch_conf.py
@@@ -20,7 -21,7 +21,8 @@@ from portage import _encodings, os, shu
from portage.env.loaders import KeyValuePairFileLoader
from portage.localization import _
from portage.util import shlex_split, varexpand
+ from portage.util.path import iter_parents
+from portage.const import EPREFIX
RCS_BRANCH = '1.1.1'
RCS_LOCK = 'rcs -ko -M -l'
diff --cc pym/portage/package/ebuild/doebuild.py
index 9ff635e,5e4d7b1..77c92fd
--- a/pym/portage/package/ebuild/doebuild.py
+++ b/pym/portage/package/ebuild/doebuild.py
@@@ -209,29 -211,31 +212,33 @@@ def _doebuild_path(settings, eapi=None)
prefixes.append("/")
path = overrides
+ # PREFIX LOCAL: use DEFAULT_PATH and EXTRA_PATH from make.globals
+ defaultpath = [x for x in settings.get("DEFAULT_PATH", "").split(":")
if x]
+ extrapath = [x for x in settings.get("EXTRA_PATH", "").split(":") if x]
if "xattr" in settings.features:
- path.append(os.path.join(portage_bin_path, "ebuild-helpers",
"xattr"))
+ for x in portage_bin_path:
+ path.append(os.path.join(x, "ebuild-helpers", "xattr"))
if uid != 0 and \
"unprivileged" in settings.features and \
"fakeroot" not in settings.features:
- path.append(os.path.join(portage_bin_path,
- "ebuild-helpers", "unprivileged"))
+ for x in portage_bin_path:
+ path.append(os.path.join(x,
+ "ebuild-helpers", "unprivileged"))
if settings.get("USERLAND", "GNU") != "GNU":
- path.append(os.path.join(portage_bin_path, "ebuild-helpers",
"bsd"))
+ for x in portage_bin_path:
+ path.append(os.path.join(x, "ebuild-helpers", "bsd"))
- path.append(os.path.join(portage_bin_path, "ebuild-helpers"))
+ for x in portage_bin_path:
+ path.append(os.path.join(x, "ebuild-helpers"))
path.extend(prerootpath)
-
- for prefix in prefixes:
- for x in ("usr/local/sbin", "usr/local/bin", "usr/sbin",
"usr/bin", "sbin", "bin"):
- path.append(os.path.join(prefix, x))
-
+ path.extend(defaultpath)
path.extend(rootpath)
+ path.extend(extrapath)
+ # END PREFIX LOCAL
+
settings["PATH"] = ":".join(path)
def doebuild_environment(myebuild, mydo, myroot=None, settings=None,