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 76C6C139085 for ; Fri, 27 Jan 2017 15:09:03 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C0434E0F33; Fri, 27 Jan 2017 15:09:02 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 9051BE0F33 for ; Fri, 27 Jan 2017 15:08:57 +0000 (UTC) Received: from oystercatcher.gentoo.org (unknown [IPv6:2a01:4f8:202:4333:225:90ff:fed9:fc84]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 738F134164A for ; Fri, 27 Jan 2017 15:08:56 +0000 (UTC) Received: from localhost.localdomain (localhost [127.0.0.1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 3DFDB31B4 for ; Fri, 27 Jan 2017 15:08:55 +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: <1485529629.3c689a5900519c178b860bfefbb93967231785df.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: 3c689a5900519c178b860bfefbb93967231785df X-VCS-Branch: prefix Date: Fri, 27 Jan 2017 15:08:55 +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-Archives-Salt: caf40668-9721-45f6-adc6-cb80501be3fb X-Archives-Hash: 6b92c95cd964c21d9390d73f81beb878 commit: 3c689a5900519c178b860bfefbb93967231785df Author: Fabian Groffen gentoo org> AuthorDate: Fri Jan 27 15:07:09 2017 +0000 Commit: Fabian Groffen gentoo 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.