commit: 3c689a5900519c178b860bfefbb93967231785df
Author: Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Fri Jan 27 15:07:09 2017 +0000
Commit: Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Fri Jan 27 15:07:09 2017 +0000
URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=3c689a59
Merge remote-tracking branch 'overlays-gentoo-org/master' into prefix
.gitignore | 2 +
.travis.yml | 14 +-
MANIFEST.in | 1 -
NEWS | 26 +
README | 19 +
RELEASE-NOTES | 97 ++-
bin/chpathtool.py | 2 +-
bin/dispatch-conf | 15 +-
bin/eapi.sh | 4 -
bin/ebuild | 25 +-
bin/ebuild.sh | 41 +-
bin/egencache | 87 +--
bin/glsa-check | 19 +-
bin/helper-functions.sh | 9 +-
bin/install-qa-check.d/10executable-issues | 24 +-
bin/install-qa-check.d/60openrc | 8 +-
bin/install-qa-check.d/80libraries | 2 +-
bin/install-qa-check.d/90gcc-warnings | 14 +-
bin/phase-functions.sh | 8 +-
bin/phase-helpers.sh | 18 +-
bin/portageq | 13 +-
bin/save-ebuild-env.sh | 2 +-
bin/socks5-server.py | 5 +
cnf/make.conf.example | 20 +-
cnf/make.conf.example.alpha.diff | 2 +-
cnf/make.conf.example.amd64-fbsd.diff | 2 +-
cnf/make.conf.example.amd64.diff | 2 +-
cnf/make.conf.example.arm.diff | 4 +-
cnf/make.conf.example.hppa.diff | 2 +-
cnf/make.conf.example.ia64.diff | 2 +-
cnf/make.conf.example.m68k.diff | 2 +-
cnf/make.conf.example.mips.diff | 2 +-
cnf/make.conf.example.ppc.diff | 2 +-
cnf/make.conf.example.ppc64.diff | 2 +-
cnf/make.conf.example.s390.diff | 2 +-
cnf/make.conf.example.sh.diff | 4 +-
cnf/make.conf.example.sparc-fbsd.diff | 2 +-
cnf/make.conf.example.sparc.diff | 8 +-
cnf/make.conf.example.x86-fbsd.diff | 2 +-
cnf/make.conf.example.x86.diff | 2 +-
cnf/make.globals | 4 +-
cnf/metadata.dtd | 102 ---
doc/config/sets.docbook | 4 +-
doc/package/ebuild/eapi/4-python.docbook | 2 +-
doc/package/ebuild/eapi/5-progress.docbook | 2 +-
doc/qa.docbook | 12 +-
man/color.map.5 | 2 +-
man/dispatch-conf.1 | 2 +-
man/ebuild.1 | 2 +-
man/ebuild.5 | 10 +-
man/egencache.1 | 2 +-
man/emaint.1 | 10 +-
man/emerge.1 | 32 +-
man/emirrordist.1 | 2 +-
man/env-update.1 | 2 +-
man/etc-update.1 | 2 +-
man/fixpackages.1 | 2 +-
man/make.conf.5 | 20 +-
man/portage.5 | 23 +-
man/quickpkg.1 | 2 +-
man/ru/color.map.5 | 2 +-
man/ru/dispatch-conf.1 | 2 +-
man/ru/ebuild.1 | 2 +-
man/ru/env-update.1 | 2 +-
man/ru/etc-update.1 | 2 +-
man/ru/fixpackages.1 | 2 +-
pym/_emerge/EbuildBuild.py | 22 +-
pym/_emerge/EbuildPhase.py | 2 +-
pym/_emerge/MiscFunctionsProcess.py | 3 +-
pym/_emerge/Scheduler.py | 24 +-
pym/_emerge/actions.py | 51 +-
pym/_emerge/depgraph.py | 178 +++--
pym/_emerge/main.py | 41 +-
pym/_emerge/post_emerge.py | 6 +-
pym/_emerge/resolver/output.py | 5 +-
pym/_emerge/resolver/output_helpers.py | 11 +
pym/_emerge/resolver/slot_collision.py | 37 +-
pym/_emerge/search.py | 26 +-
pym/portage/__init__.py | 23 +-
pym/portage/_emirrordist/FetchTask.py | 2 +-
pym/portage/_selinux.py | 24 +-
pym/portage/_sets/__init__.py | 37 +-
pym/portage/cache/anydbm.py | 4 +-
pym/portage/cache/ebuild_xattr.py | 2 +-
pym/portage/cache/flat_hash.py | 53 +-
pym/portage/cache/fs_template.py | 2 +-
pym/portage/cache/mappings.py | 4 +-
pym/portage/cache/sqlite.py | 4 +-
pym/portage/cache/template.py | 36 +-
pym/portage/const.py | 2 +-
pym/portage/data.py | 2 +-
pym/portage/dbapi/_SyncfsProcess.py | 2 +-
pym/portage/dbapi/bintree.py | 40 +-
pym/portage/dbapi/porttree.py | 4 +-
pym/portage/dbapi/vartree.py | 135 +++-
pym/portage/dep/__init__.py | 16 +-
pym/portage/dep/dep_check.py | 41 +-
pym/portage/dispatch_conf.py | 2 +-
pym/portage/emaint/main.py | 12 +-
pym/portage/emaint/modules/binhost/__init__.py | 1 +
pym/portage/emaint/modules/binhost/binhost.py | 6 +-
pym/portage/emaint/modules/config/__init__.py | 1 +
pym/portage/emaint/modules/config/config.py | 6 +-
pym/portage/emaint/modules/logs/__init__.py | 1 +
pym/portage/emaint/modules/logs/logs.py | 27 +-
pym/portage/emaint/modules/merges/__init__.py | 1 +
pym/portage/emaint/modules/merges/merges.py | 18 +-
pym/portage/emaint/modules/move/__init__.py | 2 +
pym/portage/emaint/modules/move/move.py | 9 +-
pym/portage/emaint/modules/resume/__init__.py | 1 +
pym/portage/emaint/modules/resume/resume.py | 3 +-
pym/portage/emaint/modules/sync/__init__.py | 1 +
pym/portage/emaint/modules/sync/sync.py | 19 +-
pym/portage/emaint/modules/world/__init__.py | 1 +
pym/portage/emaint/modules/world/world.py | 8 +-
pym/portage/glsa.py | 8 +-
pym/portage/localization.py | 6 +-
pym/portage/locks.py | 59 +-
pym/portage/manifest.py | 23 +-
pym/portage/metadata.py | 2 +-
pym/portage/module.py | 15 +-
pym/portage/news.py | 79 ++-
pym/portage/output.py | 2 +-
pym/portage/package/ebuild/config.py | 25 +-
pym/portage/package/ebuild/digestcheck.py | 2 +-
pym/portage/package/ebuild/doebuild.py | 28 +-
pym/portage/package/ebuild/prepare_build_dirs.py | 6 -
pym/portage/process.py | 4 +
pym/portage/repository/config.py | 65 +-
pym/portage/sync/modules/cvs/__init__.py | 1 +
pym/portage/sync/modules/cvs/cvs.py | 4 +-
pym/portage/sync/modules/git/__init__.py | 1 +
pym/portage/sync/modules/git/git.py | 4 +-
pym/portage/sync/modules/rsync/__init__.py | 1 +
pym/portage/sync/modules/rsync/rsync.py | 4 +-
pym/portage/sync/modules/svn/__init__.py | 1 +
pym/portage/sync/modules/svn/svn.py | 6 +-
pym/portage/sync/modules/webrsync/__init__.py | 1 +
pym/portage/sync/modules/webrsync/webrsync.py | 2 +-
.../tests/ebuild/test_array_fromfile_eof.py | 2 +-
pym/portage/tests/ebuild/test_ipc_daemon.py | 23 +-
...bi.py => test_emerge_blocker_file_collision.py} | 101 ++-
pym/portage/tests/emerge/test_simple.py | 18 +-
pym/portage/tests/news/test_NewsItem.py | 1 +
pym/portage/tests/process/test_poll.py | 2 +-
pym/portage/tests/resolver/ResolverPlayground.py | 24 +-
.../soname/test_slot_conflict_reinstall.py | 1 +
.../resolver/test_imagemagick_graphicsmagick.py | 104 +++
.../resolver/test_runtime_cycle_merge_order.py | 72 ++
.../tests/resolver/test_slot_conflict_rebuild.py | 2 +-
.../resolver/test_slot_operator_reverse_deps.py | 113 +++
pym/portage/tests/util/test_getconfig.py | 4 +-
pym/portage/util/__init__.py | 8 +-
pym/portage/util/_desktop_entry.py | 27 +-
pym/portage/util/_dyn_libs/LinkageMapELF.py | 38 +-
pym/portage/util/_dyn_libs/LinkageMapMachO.py | 4 +-
pym/portage/util/_eventloop/EventLoop.py | 17 +-
pym/portage/util/changelog.py | 69 ++
pym/portage/util/configparser.py | 76 +++
pym/portage/util/env_update.py | 6 +-
pym/{repoman => portage/util/futures}/__init__.py | 0
pym/portage/util/futures/extendedfutures.py | 73 ++
pym/portage/util/futures/futures.py | 118 ++++
pym/portage/util/locale.py | 20 +-
pym/portage/util/writeable_check.py | 28 +-
pym/portage/versions.py | 31 +-
pym/portage/xml/metadata.py | 89 ++-
pym/portage/xpak.py | 2 +-
pym/repoman/_xml.py | 106 ---
pym/repoman/checks/ebuilds/eclasses/live.py | 39 --
pym/repoman/checks/ebuilds/isebuild.py | 71 --
pym/repoman/checks/ebuilds/manifests.py | 102 ---
pym/repoman/checks/ebuilds/misc.py | 57 --
pym/repoman/checks/ebuilds/pkgmetadata.py | 177 -----
pym/repoman/checks/ebuilds/thirdpartymirrors.py | 39 --
pym/repoman/checks/ebuilds/variables/eapi.py | 44 --
pym/repoman/checks/ebuilds/variables/license.py | 47 --
pym/repoman/checks/herds/__init__.py | 0
pym/repoman/ebuild.py | 29 -
pym/repoman/metadata.py | 153 -----
pym/repoman/modules/__init__.py | 0
pym/repoman/modules/commit/__init__.py | 0
pym/repoman/modules/fix/__init__.py | 0
pym/repoman/modules/full/__init__.py | 0
pym/repoman/modules/manifest/__init__.py | 0
pym/repoman/modules/scan/__init__.py | 0
pym/repoman/scan.py | 172 -----
pym/repoman/scanner.py | 755 ---------------------
pym/repoman/vcs/__init__.py | 0
pym/repoman/vcs/vcs.py | 287 --------
pym/repoman/vcs/vcsstatus.py | 114 ----
.../__test__.py => repoman/.repoman_not_installed | 0
repoman/MANIFEST.in | 3 +
repoman/NEWS | 9 +
README => repoman/README | 9 -
repoman/RELEASE-NOTES | 39 ++
TEST-NOTES => repoman/TEST-NOTES | 0
{bin => repoman/bin}/repoman | 11 +-
repoman/cnf/metadata.xsd | 548 +++++++++++++++
{man => repoman/man}/repoman.1 | 13 +-
repoman/pym/repoman/__init__.py | 79 +++
{pym => repoman/pym}/repoman/_portage.py | 0
{pym => repoman/pym}/repoman/_subprocess.py | 4 +-
{pym => repoman/pym}/repoman/actions.py | 471 +++----------
{pym => repoman/pym}/repoman/argparser.py | 0
{pym => repoman/pym}/repoman/check_missingslot.py | 0
{pym => repoman/pym}/repoman/checks/__init__.py | 0
.../pym/repoman/checks/herds}/__init__.py | 0
.../pym}/repoman/checks/herds/herdbase.py | 2 +-
.../pym}/repoman/checks/herds/metadata.py | 0
{pym => repoman/pym}/repoman/copyrights.py | 0
{pym => repoman/pym}/repoman/errors.py | 0
{pym => repoman/pym}/repoman/gpg.py | 2 +-
{pym => repoman/pym}/repoman/main.py | 49 +-
repoman/pym/repoman/metadata.py | 128 ++++
.../pym/repoman/modules}/__init__.py | 0
.../pym/repoman/modules/commit}/__init__.py | 0
repoman/pym/repoman/modules/commit/manifest.py | 115 ++++
.../pym}/repoman/modules/commit/repochecks.py | 4 +-
.../pym/repoman/modules/scan}/__init__.py | 0
.../pym/repoman/modules/scan/depend/__init__.py | 32 +
.../repoman/modules/scan/depend/_depend_checks.py | 194 ++++++
.../pym/repoman/modules/scan/depend/_gen_arches.py | 57 ++
repoman/pym/repoman/modules/scan/depend/profile.py | 256 +++++++
.../repoman/modules/scan/directories/__init__.py | 48 ++
.../pym/repoman/modules/scan}/directories/files.py | 43 +-
.../pym/repoman/modules/scan/directories/mtime.py | 30 +
repoman/pym/repoman/modules/scan/eapi/__init__.py | 29 +
repoman/pym/repoman/modules/scan/eapi/eapi.py | 49 ++
.../pym/repoman/modules/scan/ebuild/__init__.py | 58 ++
.../pym/repoman/modules/scan/ebuild}/checks.py | 8 +-
repoman/pym/repoman/modules/scan/ebuild/ebuild.py | 238 +++++++
.../pym/repoman/modules/scan/ebuild}/errors.py | 0
.../pym/repoman/modules/scan/ebuild/multicheck.py | 56 ++
.../pym/repoman/modules/scan/eclasses/__init__.py | 47 ++
repoman/pym/repoman/modules/scan/eclasses/live.py | 76 +++
.../pym/repoman/modules/scan}/eclasses/ruby.py | 26 +-
repoman/pym/repoman/modules/scan/fetch/__init__.py | 33 +
.../pym/repoman/modules/scan/fetch}/fetches.py | 103 ++-
.../pym/repoman/modules/scan/keywords/__init__.py | 33 +
.../pym/repoman/modules/scan/keywords}/keywords.py | 95 +--
.../pym/repoman/modules/scan/manifest/__init__.py | 30 +
.../pym/repoman/modules/scan/manifest/manifests.py | 56 ++
.../pym/repoman/modules/scan/metadata/__init__.py | 85 +++
.../repoman/modules/scan/metadata}/description.py | 23 +-
.../modules/scan/metadata/ebuild_metadata.py | 84 +++
.../repoman/modules/scan/metadata/pkgmetadata.py | 198 ++++++
.../pym/repoman/modules/scan/metadata}/restrict.py | 32 +-
.../repoman/modules/scan/metadata}/use_flags.py | 28 +-
.../pym/repoman/modules/scan/options/__init__.py | 28 +
.../pym/repoman/modules/scan/options/options.py | 29 +
repoman/pym/repoman/modules/scan/scan.py | 66 ++
repoman/pym/repoman/modules/scan/scanbase.py | 79 +++
repoman/pym/repoman/modules/vcs/None/__init__.py | 34 +
repoman/pym/repoman/modules/vcs/None/changes.py | 50 ++
repoman/pym/repoman/modules/vcs/None/status.py | 53 ++
repoman/pym/repoman/modules/vcs/__init__.py | 14 +
repoman/pym/repoman/modules/vcs/bzr/__init__.py | 34 +
repoman/pym/repoman/modules/vcs/bzr/changes.py | 68 ++
repoman/pym/repoman/modules/vcs/bzr/status.py | 70 ++
repoman/pym/repoman/modules/vcs/changes.py | 169 +++++
repoman/pym/repoman/modules/vcs/cvs/__init__.py | 34 +
repoman/pym/repoman/modules/vcs/cvs/changes.py | 118 ++++
repoman/pym/repoman/modules/vcs/cvs/status.py | 131 ++++
repoman/pym/repoman/modules/vcs/git/__init__.py | 34 +
repoman/pym/repoman/modules/vcs/git/changes.py | 120 ++++
repoman/pym/repoman/modules/vcs/git/status.py | 79 +++
repoman/pym/repoman/modules/vcs/hg/__init__.py | 34 +
repoman/pym/repoman/modules/vcs/hg/changes.py | 105 +++
repoman/pym/repoman/modules/vcs/hg/status.py | 65 ++
repoman/pym/repoman/modules/vcs/settings.py | 108 +++
repoman/pym/repoman/modules/vcs/svn/__init__.py | 34 +
repoman/pym/repoman/modules/vcs/svn/changes.py | 142 ++++
repoman/pym/repoman/modules/vcs/svn/status.py | 150 ++++
repoman/pym/repoman/modules/vcs/vcs.py | 161 +++++
{pym => repoman/pym}/repoman/profile.py | 0
{pym => repoman/pym}/repoman/qa_data.py | 9 +-
{pym => repoman/pym}/repoman/qa_tracker.py | 0
{pym => repoman/pym}/repoman/repos.py | 13 +-
repoman/pym/repoman/scanner.py | 436 ++++++++++++
.../pym/repoman}/tests/__init__.py | 17 +-
.../bin => repoman/pym/repoman/tests}/__test__.py | 0
.../pym/repoman/tests/changelog}/__init__.py | 0
.../repoman/tests/changelog}/test_echangelog.py | 0
.../pym/repoman}/tests/runTests.py | 24 +-
.../pym/repoman/tests/simple}/__init__.py | 0
repoman/pym/repoman/tests/simple/__test__.py | 1 +
.../pym/repoman/tests/simple}/test_simple.py | 25 +-
{pym => repoman/pym}/repoman/utilities.py | 7 -
runtests => repoman/runtests | 22 +-
setup.py => repoman/setup.py | 205 +-----
runtests | 16 +-
setup.py | 42 +-
src/portage_util_libc.c | 68 ++
testpath | 9 +-
295 files changed, 7876 insertions(+), 3900 deletions(-)
diff --cc bin/dispatch-conf
index 4215e5b,fdf564e..befc8dc
--- a/bin/dispatch-conf
+++ b/bin/dispatch-conf
@@@ -1,5 -1,5 +1,5 @@@
-#!/usr/bin/python -bO
+#!@PREFIX_PORTAGE_PYTHON@ -bO
- # Copyright 1999-2014 Gentoo Foundation
+ # Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
#
diff --cc bin/egencache
index cf503a3,e994b4a..bb7e7a9
--- a/bin/egencache
+++ b/bin/egencache
@@@ -59,10 -58,10 +58,11 @@@ from portage.util._async.AsyncFunction
from portage.util._async.run_main_scheduler import run_main_scheduler
from portage.util._async.TaskScheduler import TaskScheduler
from portage.util._eventloop.global_event_loop import global_event_loop
+ from portage.util.changelog import ChangeLogTypeSort
from portage import cpv_getkey
from portage.dep import Atom, isjustname
- from portage.versions import pkgsplit, vercmp, _pkg_str
+ from portage.versions import vercmp
+from portage.const import EPREFIX
try:
from xml.etree import ElementTree
diff --cc bin/portageq
index ef2c7fb,06c8e0e..616aee0
--- a/bin/portageq
+++ b/bin/portageq
@@@ -1,5 -1,5 +1,5 @@@
-#!/usr/bin/python -bO
+#!@PREFIX_PORTAGE_PYTHON@ -bO
- # Copyright 1999-2015 Gentoo Foundation
+ # Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
from __future__ import print_function, unicode_literals
diff --cc cnf/make.conf.example
index 85a851d,04f3a02..6de7a90
--- a/cnf/make.conf.example
+++ b/cnf/make.conf.example
@@@ -141,9 -141,9 +141,9 @@@
# PORTDIR_OVERLAY is a directory where local ebuilds may be stored without
# concern that they will be deleted by rsync updates. Default is not
# defined.
-#PORTDIR_OVERLAY=/usr/local/portage
+#PORTDIR_OVERLAY=@PORTAGE_EPREFIX@/usr/local/portage
- # Fetching files
+ # Fetching files
# ==============
#
# If you need to set a proxy for wget or lukemftp, add the appropriate "export
@@@ -215,12 -215,8 +215,12 @@@
# one of them sync from the rotations above. The other boxes can then
rsync
# from the local rsync server, reducing the load on the mirrors.
# Instructions for setting up a local rsync server are available here:
- # http://www.gentoo.org/doc/en/rsync.xml
+ # https://wiki.gentoo.org/wiki/Local_Mirror
#
+# For Gentoo Prefix, use the following URL:
+#
+# Default: "rsync://rsync.prefix.bitzolder.nl/gentoo-portage-prefix
+#
#SYNC="rsync://rsync.gentoo.org/gentoo-portage"
#
# PORTAGE_RSYNC_RETRIES sets the number of times portage will attempt to
retrieve
diff --cc pym/portage/util/_dyn_libs/LinkageMapELF.py
index b32ee81,a063621..54a25e0
--- a/pym/portage/util/_dyn_libs/LinkageMapELF.py
+++ b/pym/portage/util/_dyn_libs/LinkageMapELF.py
@@@ -19,8 -22,13 +22,14 @@@ from portage.util import normalize_pat
from portage.util import varexpand
from portage.util import writemsg_level
from portage.util._dyn_libs.NeededEntry import NeededEntry
+ from portage.util.elf.header import ELFHeader
+from portage.const import EPREFIX
+ if sys.hexversion >= 0x3000000:
+ _unicode = str
+ else:
+ _unicode = unicode
+
# Map ELF e_machine values from NEEDED.ELF.2 to approximate multilib
# categories. This approximation will produce incorrect results on x32
# and mips systems, but the result is not worse than using the raw
diff --cc pym/portage/util/_dyn_libs/LinkageMapMachO.py
index 7cfb18e,a063621..5cfbadb
--- a/pym/portage/util/_dyn_libs/LinkageMapMachO.py
+++ b/pym/portage/util/_dyn_libs/LinkageMapMachO.py
@@@ -1,4 -1,4 +1,4 @@@
- # Copyright 1998-2011 Gentoo Foundation
-# Copyright 1998-2016 Gentoo Foundation
++# Copyright 1998-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
import errno
@@@ -231,7 -268,7 +231,7 @@@ class LinkageMapMachO(object)
continue
plibs.update((x, cpv) for x in items)
if plibs:
- args = [EPREFIX + "/usr/bin/scanmacho", "-qF",
"%a;%F;%S;%n"]
- args = [os.path.join(EPREFIX or "/",
"usr/bin/scanelf"), "-qF", "%a;%F;%S;%r;%n"]
++ args = [os.path.join(EPREFIX or "/",
"usr/bin/scanmacho"), "-qF", "%a;%F;%S;%n"]
args.extend(os.path.join(root, x.lstrip("." + os.sep)) \
for x in plibs)
try:
diff --cc pym/portage/versions.py
index fc7af27,adfb1c3..fb49967
--- a/pym/portage/versions.py
+++ b/pym/portage/versions.py
@@@ -257,42 -256,18 +257,42 @@@ def vercmp(ver1, ver2, silent=1)
if rval:
return rval
- # the suffix part is equal to, so finally check the revision
+ # The suffix part is equal too, so finally check the revision
+ # PREFIX hack: a revision starting with 0 is an 'inter-revision',
+ # which means that it is possible to create revisions on revisions.
+ # An example is -r01.1 which is the first revision of -r1. Note
+ # that a period (.) is used to separate the real revision and the
+ # secondary revision number. This trick is in use to allow revision
+ # bumps in ebuilds synced from the main tree for Prefix changes,
+ # while still staying in the main tree versioning scheme.
if match1.group(10):
- r1 = int(match1.group(10))
+ if match1.group(10)[0] == '0' and '.' in match1.group(10):
+ t = match1.group(10)[1:].split(".")
+ r1 = int(t[0])
+ r3 = int(t[1])
+ else:
+ r1 = int(match1.group(10))
+ r3 = 0
else:
r1 = 0
+ r3 = 0
if match2.group(10):
- r2 = int(match2.group(10))
+ if match2.group(10)[0] == '0' and '.' in match2.group(10):
+ t = match2.group(10)[1:].split(".")
+ r2 = int(t[0])
+ r4 = int(t[1])
+ else:
+ r2 = int(match2.group(10))
+ r4 = 0
else:
r2 = 0
+ r4 = 0
+ if r1 == r2 and (r3 != 0 or r4 != 0):
+ r1 = r3
+ r2 = r4
rval = (r1 > r2) - (r1 < r2)
return rval
-
+
def pkgcmp(pkg1, pkg2):
"""
Compare 2 package versions created in pkgsplit format.