summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenda Xu <heroxbd@gentoo.org>2014-12-10 19:11:39 +0900
committerBenda Xu <heroxbd@gentoo.org>2014-12-10 19:12:31 +0900
commit6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d (patch)
tree2ee2c82172e26bfd274eaf2c3745154fae00fd3f /sys-apps
parentsys-libs/glibc: specify rootsbindir (diff)
downloadandroid-6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d.tar.gz
android-6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d.tar.bz2
android-6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d.zip
sys-apps/portage: track for bug 532100, call ldconfig via env-update
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/portage/ChangeLog2773
-rw-r--r--sys-apps/portage/Manifest26
-rw-r--r--sys-apps/portage/files/05portage.envd1
-rw-r--r--sys-apps/portage/files/portage-2.2.00.15801-prefix-chaining.patch693
-rw-r--r--sys-apps/portage/files/portage-2.2.01.18213-ebuildshell.patch105
-rw-r--r--sys-apps/portage/files/portage-2.2.01.18826-aix-preservelibs.patch32
-rw-r--r--sys-apps/portage/files/portage-2.2.01.18980-ebuildshell.patch103
-rw-r--r--sys-apps/portage/files/portage-2.2.01.19247-aix-preserve-libs.patch163
-rw-r--r--sys-apps/portage/files/portage-2.2.01.19247-ebuildshell.patch105
-rw-r--r--sys-apps/portage/files/portage-2.2.01.19981-ebuildshell.patch105
-rw-r--r--sys-apps/portage/files/portage-2.2.01.20020-ebuildshell.patch137
-rw-r--r--sys-apps/portage/files/portage-2.2.01.20239-ebuildshell.patch148
-rw-r--r--sys-apps/portage/files/portage-2.2.10.1-case-insensitive-fs.patch375
-rw-r--r--sys-apps/portage/files/portage-2.2.14-ldconfig.patch28
-rw-r--r--sys-apps/portage/files/portage-2.2.7-ebuildshell.patch158
-rw-r--r--sys-apps/portage/files/portage-2.2.7-macho-relative-install_names.patch68
-rw-r--r--sys-apps/portage/files/portage-2.2.7-sandbox.patch21
-rw-r--r--sys-apps/portage/files/portage-2.2.7-shebang-fixes.patch153
-rw-r--r--sys-apps/portage/files/portage-2.2.8-ebuildshell.patch157
-rw-r--r--sys-apps/portage/metadata.xml13
-rw-r--r--sys-apps/portage/portage-2.2.10.1-r1.ebuild592
-rw-r--r--sys-apps/portage/portage-2.2.10.1.ebuild586
-rw-r--r--sys-apps/portage/portage-2.2.14.ebuild583
-rw-r--r--sys-apps/portage/portage-2.2.8.ebuild585
24 files changed, 7710 insertions, 0 deletions
diff --git a/sys-apps/portage/ChangeLog b/sys-apps/portage/ChangeLog
new file mode 100644
index 0000000..d6f32f1
--- /dev/null
+++ b/sys-apps/portage/ChangeLog
@@ -0,0 +1,2773 @@
+# ChangeLog for sys-apps/portage
+# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
+# $Id$
+
+*portage-2.2.10.1-r1 (12 Nov 2014)
+*portage-2.2.14 (12 Nov 2014)
+
+ 12 Nov 2014; Fabian Groffen <grobian@gentoo.org>
+ +files/portage-2.2.10.1-case-insensitive-fs.patch,
+ +portage-2.2.10.1-r1.ebuild, +portage-2.2.14.ebuild, -portage-2.2.10.ebuild,
+ -portage-2.2.14_rc1.ebuild, -portage-2.2.7-r2.ebuild:
+ Version bump, also revbump on 2.2.10.1 for case-insensitive-fs patch. This
+ version needs to be installed in order to install 2.2.14. Unfortunately we
+ cannot force this with dependencies, hence 2.2.14 is masked for the time
+ being.
+
+ 29 Oct 2014; Fabian Groffen <grobian@gentoo.org> portage-2.2.10.1.ebuild,
+ portage-2.2.14_rc1.ebuild:
+ Use pool for default rsync server
+
+ 18 Oct 2014; Fabian Groffen <grobian@gentoo.org> portage-2.2.10.1.ebuild,
+ portage-2.2.14_rc1.ebuild:
+ portage: let's face it, prefix.ge.org is dead
+
+*portage-2.2.14_rc1 (30 Sep 2014)
+
+ 30 Sep 2014; Fabian Groffen <grobian@gentoo.org> +portage-2.2.14_rc1.ebuild:
+ Version bump
+
+*portage-2.2.10.1 (20 Jun 2014)
+
+ 20 Jun 2014; Fabian Groffen <grobian@gentoo.org> +portage-2.2.10.1.ebuild:
+ Version bump, suppot for QA_INSTALL_NAME in ebuilds
+
+ 25 May 2014; Fabian Groffen <grobian@gentoo.org> portage-2.2.10.ebuild:
+ Fix ever fixing make.conf, bug #511404 by Greg Turner
+
+*portage-2.2.10 (26 Apr 2014)
+
+ 26 Apr 2014; Fabian Groffen <grobian@gentoo.org> +portage-2.2.10.ebuild,
+ -portage-2.2.4.22351.ebuild, -portage-2.2.6.22374.ebuild:
+ Version bump
+
+ 03 Apr 2014; Michael Haubenwallner <haubi@gentoo.org> portage-2.2.8.ebuild,
+ +files/portage-2.2.8-ebuildshell.patch:
+ update ebuildshell patch
+
+*portage-2.2.7-r2 (22 Dec 2013)
+
+ 22 Dec 2013; Fabian Groffen <grobian@gentoo.org>
+ +files/portage-2.2.7-macho-relative-install_names.patch,
+ +portage-2.2.7-r2.ebuild, -portage-2.2.7-r1.ebuild:
+ Add relative install_names patch for Darwin
+
+ 15 Dec 2013; Benda Xu <heroxbd@gentoo.org> portage-2.2.7-r1.ebuild:
+ Add patch to fix nosandbox behaviour
+
+*portage-2.2.7-r1 (12 Nov 2013)
+
+ 12 Nov 2013; Fabian Groffen <grobian@gentoo.org>
+ +files/portage-2.2.7-shebang-fixes.patch, +portage-2.2.7-r1.ebuild,
+ -portage-2.2.7.ebuild:
+ Revbump to provide repos.conf/ and fix some shebangs
+
+ 25 Oct 2013; Michael Haubenwallner <haubi@gentoo.org> portage-2.2.7.ebuild,
+ +files/portage-2.2.7-ebuildshell.patch:
+ Bump ebuildshell patch, bug#155161.
+
+*portage-2.2.7 (24 Sep 2013)
+
+ 24 Sep 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.7.ebuild,
+ -portage-2.2.01.22288.ebuild:
+ Version bump, align versioning with gx86
+
+ 19 Sep 2013; Fabian Groffen <grobian@gentoo.org> portage-2.2.4.22351.ebuild,
+ portage-2.2.6.22374.ebuild:
+ Drop more legacy sedding
+
+ 19 Sep 2013; Fabian Groffen <grobian@gentoo.org> portage-2.2.01.22288.ebuild,
+ portage-2.2.4.22351.ebuild, portage-2.2.6.22374.ebuild:
+ Drop legacy sed replacements (vars were moved)
+
+*portage-2.2.6.22374 (18 Sep 2013)
+
+ 18 Sep 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.6.22374.ebuild,
+ -portage-2.2.01.22124-r1.ebuild:
+ Version bump
+
+*portage-2.2.4.22351 (13 Sep 2013)
+
+ 13 Sep 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.4.22351.ebuild,
+ -portage-2.2.01.22097.ebuild, -portage-2.2.01.22124.ebuild:
+ Version bump
+
+ 13 Aug 2013; Benda Xu <heroxbd@gentoo.org> +portage-2.2.01.22288.ebuild:
+ portage lib is usr/lib regardless of multilib. fix variable
+ portage_base introduced in portage-2.2.00.7209.ebuild rev 7277.
+
+*portage-2.2.01.22288 (12 Aug 2013)
+
+ 12 Aug 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.22288.ebuild,
+ -portage-2.2.01.22013.ebuild:
+ Version bump, matches v2.2.0_alpha196+
+
+*portage-2.2.01.22124-r1 (13 Jul 2013)
+
+ 13 Jul 2013; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.22124-r1.ebuild:
+ Bring ebuild in line with gentoo-x86 version
+
+*portage-2.2.01.22124 (10 Jul 2013)
+
+ 10 Jul 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.22124.ebuild,
+ -portage-2.2.01.22120.ebuild:
+ Version bump, matches 2.2.0_alpha188
+
+*portage-2.2.01.22120 (08 Jul 2013)
+
+ 08 Jul 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.22120.ebuild,
+ -portage-2.2.01.22007.ebuild:
+ Version bump, matches 2.2.0_alpha187
+
+*portage-2.2.01.22097 (29 Jun 2013)
+
+ 29 Jun 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.22097.ebuild,
+ -portage-2.2.01.21938.ebuild:
+ Version bump, matches v2.2.0_alpha186
+
+*portage-2.2.01.22013 (12 Jun 2013)
+
+ 12 Jun 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.22013.ebuild,
+ -portage-2.2.01.21890.ebuild:
+ bump for fix for bug #472984
+
+*portage-2.2.01.22007 (09 Jun 2013)
+
+ 09 Jun 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.22007.ebuild,
+ -portage-2.2.01.21882.ebuild:
+ Version bump, matches 2.2.0_alpha179
+
+*portage-2.2.01.21938 (05 May 2013)
+
+ 05 May 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21938.ebuild,
+ -portage-2.2.01.21933.ebuild:
+ Bump for Darwin preserve-libs fix
+
+*portage-2.2.01.21933 (05 May 2013)
+
+ 05 May 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21933.ebuild,
+ -portage-2.2.01.21864.ebuild:
+ Version bump, matches 2.2.0_alpha174
+
+*portage-2.2.01.21890 (02 Apr 2013)
+
+ 02 Apr 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21890.ebuild,
+ -portage-2.2.01.21476.ebuild:
+ Version bump, matches v2.2.0_alpha171, fixes bug #460382
+
+*portage-2.2.01.21882 (31 Mar 2013)
+
+ 31 Mar 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21882.ebuild,
+ -portage-2.2.01.21418.ebuild:
+ Version bump, matches 2.2.0_alpha170+
+
+*portage-2.2.01.21864 (24 Mar 2013)
+
+ 24 Mar 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21864.ebuild,
+ -portage-2.2.01.21863.ebuild:
+ Apply patch for MacOSX sandbox by Michael Weiser, bug #462054
+
+*portage-2.2.01.21863 (24 Mar 2013)
+
+ 24 Mar 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21863.ebuild,
+ -portage-2.2.01.21858.ebuild:
+ Version bump, more silent during bootstraps
+
+*portage-2.2.01.21858 (23 Mar 2013)
+
+ 23 Mar 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21858.ebuild,
+ -portage-2.2.01.21688.ebuild:
+ Version bump, matches 2.2.0_alpha169+, fixes Error 35 on Darwin, bug #456296
+
+*portage-2.2.01.21688 (27 Jan 2013)
+
+ 27 Jan 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21688.ebuild,
+ -portage-2.2.01.21580.ebuild:
+ Version bump, matches portage-2.2.0_alpha160+
+
+*portage-2.2.01.21580 (13 Jan 2013)
+
+ 13 Jan 2013; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21580.ebuild,
+ -portage-2.2.01.21313.ebuild:
+ Version bump, matches portage-2.2.0_alpha151.
+
+*portage-2.2.01.21476 (26 Dec 2012)
+
+ 26 Dec 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21476.ebuild,
+ -portage-2.2.01.21165.ebuild:
+ Version bump, matches 2.2.0_alpha149+, fixes bugs #439488 and #442348
+
+*portage-2.2.01.21418 (02 Dec 2012)
+
+ 02 Dec 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21418.ebuild,
+ -portage-2.2.01.21143.ebuild:
+ Version bump, matches 2.2.0_alpha144+, support for Python 3
+
+*portage-2.2.01.21313 (22 Oct 2012)
+
+ 22 Oct 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21313.ebuild,
+ -portage-2.2.01.21003.ebuild:
+ Version bump, matches 2.2.0_alpha141+, has EAPI5 support
+
+*portage-2.2.01.21165 (30 Sep 2012)
+
+ 30 Sep 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21165.ebuild,
+ -portage-2.2.01.20972.ebuild:
+ Version bump, matches 2.2.0_alpha134+, includes updated seatbelt/macosx
+ sandbox support
+
+*portage-2.2.01.21143 (26 Sep 2012)
+
+ 26 Sep 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21143.ebuild,
+ -portage-2.2.01.20894.ebuild:
+ Version bump, matches v2.2.0_alpha133
+
+*portage-2.2.01.21003 (12 Sep 2012)
+
+ 12 Sep 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.21003.ebuild,
+ -portage-2.2.01.20837.ebuild:
+ Version bump, matches 2.2.0_alpha127
+
+*portage-2.2.01.20972 (09 Sep 2012)
+
+ 09 Sep 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20972.ebuild,
+ -portage-2.2.01.20796.ebuild:
+ Version bump, matches 2.2.0_alpha125+
+
+*portage-2.2.01.20894 (27 Aug 2012)
+
+ 27 Aug 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20894.ebuild,
+ -portage-2.2.01.20757.ebuild:
+ Version bump, matches 2.2.0_alpha123
+
+ 20 Aug 2012; Fabian Groffen <grobian@gentoo.org> portage-2.2.01.20837.ebuild:
+ Up the requirement for bash to 4.1, since redirect_alloc_fd better relies on
+ bash' built-in to find a free filedescriptor than a rather Linux-specific way
+ to figure one out.
+
+ 12 Aug 2012; Fabian Groffen <grobian@gentoo.org> portage-2.2.01.20837.ebuild:
+ Add sys-devel/patch to DEPEND for bug #429746
+
+ 12 Aug 2012; Fabian Groffen <grobian@gentoo.org> portage-2.2.01.20837.ebuild:
+ Remove /etc/make.globals symlink code (bug #427862)
+
+*portage-2.2.01.20837 (12 Aug 2012)
+
+ 12 Aug 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20837.ebuild,
+ -portage-2.2.01.20430.ebuild:
+ Version bump, matches 2.2.0_alpha121
+
+*portage-2.2.01.20796 (19 Jul 2012)
+
+ 19 Jul 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20796.ebuild,
+ -portage-2.2.01.20389.ebuild:
+ Version bump, matches v2.2.0_alpha120
+
+*portage-2.2.01.20757 (08 Jul 2012)
+
+ 08 Jul 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20757.ebuild:
+ Version bump, matches portage-2.2.0_alpha116+
+
+*portage-2.2.01.20430 (23 Apr 2012)
+
+ 23 Apr 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20430.ebuild,
+ -portage-2.2.01.20271.ebuild, portage-2.2.01.20366.ebuild,
+ portage-2.2.01.20389.ebuild:
+ Version bump, matches 2.2.0_alpha101
+
+*portage-2.2.01.20389 (03 Apr 2012)
+
+ 03 Apr 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20389.ebuild,
+ -portage-2.2.01.20239.ebuild:
+ Version bump, matches v2.2.0_alpha99+
+
+*portage-2.2.01.20366 (31 Mar 2012)
+
+ 31 Mar 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20366.ebuild,
+ -portage-2.2.01.20153.ebuild:
+ Version bump, matches 2.2.0_alpha96+
+
+*portage-2.2.01.20271 (01 Mar 2012)
+
+ 01 Mar 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20271.ebuild,
+ -portage-2.2.01.20062.ebuild, files/portage-2.2.01.20239-ebuildshell.patch:
+ Version bump, matches portage-2.2.0_alpha89+
+
+ 29 Feb 2012; Michael Haubenwallner <haubi@gentoo.org>
+ portage-2.2.01.20239.ebuild, +files/portage-2.2.01.20239-ebuildshell.patch:
+ handle 'ebuildshell' feature like the 'interactive' property in
+ stdio-redirection
+
+*portage-2.2.01.20239 (19 Feb 2012)
+
+ 19 Feb 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20239.ebuild,
+ -portage-2.2.01.20048.ebuild:
+ Version bump, matches portage-2.2.0_alpha87
+
+*portage-2.2.01.20153 (09 Feb 2012)
+
+ 09 Feb 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20153.ebuild,
+ -portage-2.2.01.19572.ebuild:
+ Version bump, potential fixes for bugs #402413 and #398805.
+
+*portage-2.2.01.20062 (10 Jan 2012)
+
+ 10 Jan 2012; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20062.ebuild,
+ -portage-2.2.01.19981.ebuild:
+ Version bump to fix bug #397613
+
+*portage-2.2.01.20048 (31 Dec 2011)
+
+ 31 Dec 2011; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20048.ebuild,
+ -portage-2.2.01.20043.ebuild:
+ Version bump, matches 2.2.0_alpha84, fixes #396577
+
+*portage-2.2.01.20043 (26 Dec 2011)
+
+ 26 Dec 2011; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.20043.ebuild,
+ -portage-2.2.01.20023.ebuild:
+ Version bump, matches portage-2.2.0_alpha83+, fix for Prefix bug #395911
+
+*portage-2.2.01.20023 (23 Dec 2011)
+
+ 23 Dec 2011; Fabian Groffen <grobian@gentoo.org>
+ +files/portage-2.2.01.20020-ebuildshell.patch, +portage-2.2.01.20023.ebuild,
+ -portage-2.2.01.19941.ebuild:
+ Version bump
+
+*portage-2.2.01.19981 (19 Dec 2011)
+
+ 19 Dec 2011; Fabian Groffen <grobian@gentoo.org>
+ +files/portage-2.2.01.19981-ebuildshell.patch, +portage-2.2.01.19981.ebuild,
+ -portage-2.2.01.19893.ebuild:
+ Version bump, matches portage-2.1.10.41+, fixes bug #395241
+ (FEATURES=installsources installing sources to incorrect path)
+
+*portage-2.2.01.19941 (14 Dec 2011)
+
+ 14 Dec 2011; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.19941.ebuild,
+ -portage-2.2.01.19295.ebuild, -portage-2.2.01.19478.ebuild:
+ Version bump, quite some commits after portage-2.2.0_alpha80. Contains
+ lockfile fixes.
+
+*portage-2.2.01.19893 (10 Dec 2011)
+
+ 10 Dec 2011; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.19893.ebuild,
+ -portage-2.2.01.19833.ebuild:
+ Bump, replace previous faulty snapshot, ebuilds could cause out-of-prefix
+ installations with funcs like doman.
+
+*portage-2.2.01.19833 (08 Dec 2011)
+
+ 08 Dec 2011; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.19833.ebuild:
+ Version bump, matches portage-2.2.0_alpha79+
+
+*portage-2.2.01.19572 (21 Oct 2011)
+
+ 21 Oct 2011; Fabian Groffen <grobian@gentoo.org> +portage-2.2.01.19572.ebuild,
+ -portage-2.2.01.19247.ebuild:
+ Version bump, matches portage-2.2.0_alpha70
+
+*portage-2.2.01.19478 (15 Oct 2011)
+
+ 15 Oct 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.19120.ebuild, +portage-2.2.01.19478.ebuild:
+ Version bump, matches portage-2.2.0_alpha67
+
+*portage-2.2.01.19295 (20 Sep 2011)
+
+ 20 Sep 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.19074.ebuild, +portage-2.2.01.19295.ebuild:
+ Version bump, matches portage-2.2.0_alpha59+, fixes preserve-libs on AIX and
+ Darwin, bug #383691
+
+ 16 Sep 2011; Michael Haubenwallner <haubi@gentoo.org>
+ portage-2.2.01.19247.ebuild,
+ +files/portage-2.2.01.19247-aix-preserve-libs.patch,
+ +files/portage-2.2.01.19247-ebuildshell.patch:
+ Fix preserve-libs for AIX. Fix ebuildshell patch for portage-2.2.01.19247.
+
+*portage-2.2.01.19247 (14 Sep 2011)
+
+ 14 Sep 2011; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.19247.ebuild:
+ Version bump, portage-2.2.0_alpha56+ including repoman fixes for repodirs
+
+*portage-2.2.01.19235 (13 Sep 2011)
+
+ 13 Sep 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.19234.ebuild, +portage-2.2.01.19235.ebuild:
+ Replace faulty snapshot that had a broken enough repoman to die on committing
+ the Manifest
+
+*portage-2.2.01.19234 (13 Sep 2011)
+
+ 13 Sep 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.19062.ebuild, +portage-2.2.01.19234.ebuild:
+ Version bump, matches portage-2.2.0_alpha55+, ebuildshell patch
+ disabled due to failure to apply
+
+*portage-2.2.01.19120 (30 Aug 2011)
+
+ 30 Aug 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18890.ebuild, -portage-2.2.01.18980.ebuild,
+ +portage-2.2.01.19120.ebuild:
+ New snapshot with patches for bugs #378625, #381125 and another
+ unicode_decode bug reported on -alt ML
+
+*portage-2.2.01.19074 (25 Aug 2011)
+
+ 25 Aug 2011; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.19074.ebuild:
+ Version bump, fix for bug #379469
+
+*portage-2.2.01.19062 (20 Aug 2011)
+
+ 20 Aug 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.19011.ebuild, +portage-2.2.01.19062.ebuild:
+ Version bump, matches portage-2.2.0_alpha51+, fixes bug #378515
+
+*portage-2.2.01.19011 (26 Jul 2011)
+
+ 26 Jul 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18826.ebuild, +portage-2.2.01.19011.ebuild:
+ Version bump, matches portage-2.2.0_alpha47+
+
+*portage-2.2.01.18980 (17 Jul 2011)
+
+ 17 Jul 2011; Fabian Groffen <grobian@gentoo.org>
+ -files/portage-2.2.00.13849-ebuildshell.patch,
+ -files/portage-2.2.00.15842-configshell.patch,
+ -files/portage-2.2.00.15842-shebangcheck.patch, -portage-2.2.01.18761.ebuild,
+ +portage-2.2.01.18980.ebuild, +files/portage-2.2.01.18980-ebuildshell.patch:
+ Version bump, matches portage-2.2.0_alpha45+, cleanup
+
+*portage-2.2.01.18890 (01 Jul 2011)
+
+ 01 Jul 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18706.ebuild, +portage-2.2.01.18890.ebuild:
+ Version bump, matches portage-2.2.0_alpha43
+
+ 17 Jun 2011; Michael Haubenwallner <haubi@gentoo.org>
+ portage-2.2.01.18826.ebuild,
+ +files/portage-2.2.01.18826-aix-preservelibs.patch:
+ fix the preserve-libs feature for AIX once more
+
+*portage-2.2.01.18826 (14 Jun 2011)
+
+ 14 Jun 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15842-r1.ebuild, -portage-2.2.01.15553.ebuild,
+ +portage-2.2.01.18826.ebuild:
+ Version bump, matches portage-2.2.0_alpha40
+
+*portage-2.2.01.18761 (07 Jun 2011)
+
+ 07 Jun 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18252.ebuild, +portage-2.2.01.18761.ebuild:
+ Version bump, matches portage-2.2.0_alpha38
+
+*portage-2.2.01.18706 (29 May 2011)
+
+ 29 May 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18703.ebuild, +portage-2.2.01.18706.ebuild:
+ Fix for find error with e.g. virtual packages, bug #368839, changed fowners
+ not to operate in Prefix for non-privileged users
+
+*portage-2.2.01.18703 (28 May 2011)
+
+ 28 May 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18213.ebuild, +portage-2.2.01.18703.ebuild:
+ Version bump, matches portage-2.2.0_alpha37
+
+*portage-2.2.01.18252 (17 Apr 2011)
+
+ 17 Apr 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18125.ebuild, +portage-2.2.01.18252.ebuild:
+ Version bump, matches portage-2.2.0_alpha30
+
+ 10 Apr 2011; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.15842-r1.ebuild, portage-2.2.01.15553.ebuild,
+ portage-2.2.01.18125.ebuild, portage-2.2.01.18213.ebuild:
+ Remove PROVIDE=virtual/portage, bug #358847
+
+ 01 Apr 2011; Michael Haubenwallner <haubi@gentoo.org>
+ portage-2.2.01.18213.ebuild, +files/portage-2.2.01.18213-ebuildshell.patch:
+ update ebuildshell patch (#155161)
+
+*portage-2.2.01.18213 (28 Mar 2011)
+
+ 28 Mar 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.18091.ebuild, +portage-2.2.01.18213.ebuild:
+ Version bump, matches portage-2.2.0_alpha29
+
+*portage-2.2.01.18125 (17 Mar 2011)
+
+ 17 Mar 2011; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.18125.ebuild:
+ Version bump
+
+*portage-2.2.01.18091 (13 Mar 2011)
+
+ 13 Mar 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17901.ebuild, +portage-2.2.01.18091.ebuild:
+ Version bump, matches portage-2.2.0_alpha26, includes loadavg patch for AIX
+ and HP-UX
+
+*portage-2.2.01.18036 (27 Feb 2011)
+
+ 27 Feb 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17865.ebuild, +portage-2.2.01.18036.ebuild:
+ Version bump, matches portage-2.2.0_alpha25
+
+*portage-2.2.01.17901 (10 Feb 2011)
+
+ 10 Feb 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17757.ebuild, +portage-2.2.01.17901.ebuild:
+ Version bump, matches portage-2.2.0_alpha23
+
+*portage-2.2.01.17865 (06 Feb 2011)
+
+ 06 Feb 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17693.ebuild, +portage-2.2.01.17865.ebuild:
+ Version bump, FreeMiNT fixes
+
+*portage-2.2.01.17757 (02 Feb 2011)
+
+ 02 Feb 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17721.ebuild, +portage-2.2.01.17757.ebuild:
+ Bump, hopefully with fixes for backtraces like bug #353395
+
+*portage-2.2.01.17721 (30 Jan 2011)
+
+ 30 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17680.ebuild, +portage-2.2.01.17721.ebuild:
+ Bump, updated 'no offset with helpers' check
+
+ 27 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17649.ebuild:
+ Drop old
+
+ 26 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.17693.ebuild:
+ Bump, repoman now has prefix.usedwithhelpers check added
+
+*portage-2.2.01.17693 (26 Jan 2011)
+
+ 26 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.17693.ebuild:
+ Bump, repoman now has prefix.usedwithhelpers check added
+
+*portage-2.2.01.17680 (22 Jan 2011)
+
+ 22 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17583.ebuild, +portage-2.2.01.17680.ebuild:
+ Version bump, matches portage-2.2.0_alpha19
+
+*portage-2.2.01.17649 (18 Jan 2011)
+
+ 18 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17555.ebuild, +portage-2.2.01.17649.ebuild:
+ Version bump, matches portage-2.2.0_alpha17
+
+*portage-2.2.01.17583 (07 Jan 2011)
+
+ 07 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17422.ebuild, +portage-2.2.01.17583.ebuild:
+ Version bump, matches portage-2.2.0_alpha14
+
+*portage-2.2.01.17555 (03 Jan 2011)
+
+ 03 Jan 2011; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17409.ebuild, +portage-2.2.01.17555.ebuild:
+ Version bump, matches portage-2.2.0_alpha12
+
+*portage-2.2.01.17422 (21 Dec 2010)
+
+ 21 Dec 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17304.ebuild, +portage-2.2.01.17422.ebuild:
+ Version bump, matches portage-2.2.0_alpha10
+
+*portage-2.2.01.17409 (20 Dec 2010)
+
+ 20 Dec 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17390.ebuild, +portage-2.2.01.17409.ebuild:
+ Version bump, matches portage-2.2_alpha9
+
+*portage-2.2.01.17390 (15 Dec 2010)
+
+ 15 Dec 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17380.ebuild, +portage-2.2.01.17390.ebuild:
+ Bump for fix for bug #348790, fixup fix for detection of python.
+
+*portage-2.2.01.17380 (13 Dec 2010)
+
+ 13 Dec 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17377.ebuild, +portage-2.2.01.17380.ebuild:
+ Fix detection of python, leading to bugs like #348369
+
+*portage-2.2.01.17377 (13 Dec 2010)
+
+ 13 Dec 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17133.ebuild, -portage-2.2.01.17168.ebuild,
+ +portage-2.2.01.17377.ebuild:
+ Version bump, matches portage-2.2_alpha8
+
+*portage-2.2.01.17304 (30 Nov 2010)
+
+ 30 Nov 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17294.ebuild, +portage-2.2.01.17304.ebuild:
+ Bump, fixes for bugs #344307 (numeric group ids), #345633 (unmerge out of
+ prefix) and permission denied errors during merging on directories before
+ the prefix
+
+*portage-2.2.01.17294 (29 Nov 2010)
+
+ 29 Nov 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.17294.ebuild:
+ Version bump, matches portage-2.2.0_alpha6
+
+*portage-2.2.01.17168 (07 Nov 2010)
+
+ 07 Nov 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.17168.ebuild:
+ Version bump, matches portage-2.2.0_alpha4
+
+ 04 Nov 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.17133.ebuild, -portage-2.2.01.17146.ebuild:
+ Undo latest version bump, it has a broken shebang check
+
+*portage-2.2.01.17146 (03 Nov 2010)
+
+ 03 Nov 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.17086.ebuild, -portage-2.2.01.17133.ebuild,
+ +portage-2.2.01.17146.ebuild:
+ Version bump, matches portage-2.2.0_alpha3
+
+*portage-2.2.01.17133 (28 Oct 2010)
+
+ 28 Oct 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.17133.ebuild:
+ Version bump, this version matches portage-2.2.0_alpha2
+
+ 26 Oct 2010; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.01.17086.ebuild:
+ Drop no longer existing bsd-chflags installation, bug #342711
+
+*portage-2.2.01.17086 (24 Oct 2010)
+
+ 24 Oct 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16711.ebuild, -portage-2.2.01.17063.ebuild,
+ +portage-2.2.01.17086.ebuild:
+ Version bump, improved install_name check for Darwin users, fixes many
+ bugs since 2.2.01.16711, hence, supersedes that version, matches
+ portage-2.2.0_alpha1
+
+*portage-2.2.01.17063 (23 Oct 2010)
+
+ 23 Oct 2010; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.01.16711.ebuild, +portage-2.2.01.17063.ebuild:
+ Drop EAPI=2 from 2.2.01.16711, add testing version up-to-date with master
+
+ 23 Oct 2010; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.01.16711.ebuild:
+ Sync ipc enabling/disabling code from portage-2.2.0_alpha1
+
+*portage-2.2.01.16711 (29 Sep 2010)
+
+ 29 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16706.ebuild, +portage-2.2.01.16711.ebuild:
+ Bump for preserved-libs on ELF-system fixes
+
+*portage-2.2.01.16706 (29 Sep 2010)
+
+ 29 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16626.ebuild, -portage-2.2.01.16692.ebuild,
+ +portage-2.2.01.16706.ebuild:
+ Drop broken versions wrt preserve-libs, add fixed one
+
+*portage-2.2.01.16692 (28 Sep 2010)
+
+ 28 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.16692.ebuild:
+ Bump, add macossandbox support by Michael Weiser
+
+*portage-2.2.01.16626 (25 Sep 2010)
+
+ 25 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16616.ebuild, +portage-2.2.01.16626.ebuild, metadata.xml:
+ Replace snapshot, disable ipc by default as it is causing too many
+ problems
+
+*portage-2.2.01.16616 (23 Sep 2010)
+
+ 23 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16610.ebuild, +portage-2.2.01.16616.ebuild:
+ Replace snapshot for bug #338441
+
+ 22 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15838.ebuild, -portage-2.2.01.15417.ebuild:
+ Drop some versions now we know that at least 15553 was stable enough (off
+ git)
+
+*portage-2.2.01.16610 (22 Sep 2010)
+
+ 22 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16365.ebuild, +portage-2.2.01.16610.ebuild:
+ Drop masked version (bug #337945), new snapshot for a new try
+
+*portage-2.2.01.16365 (17 Sep 2010)
+
+ 17 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.16365.ebuild:
+ Bump, this release has patched up EROOT support from master
+
+ 05 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.16270.ebuild:
+ Drop totally faulty version
+
+ 05 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.01.16270.ebuild:
+ dekeyword 2.2.01.16270 as it seems to have weird issues with merging
+ packages
+
+*portage-2.2.01.16270 (05 Sep 2010)
+
+ 05 Sep 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.16270.ebuild:
+ Bump, many main-stream EROOT support changes, includes fix for bug #334271
+
+*portage-2.2.01.15553 (09 Aug 2010)
+
+ 09 Aug 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.15478.ebuild, +portage-2.2.01.15553.ebuild:
+ Replace last snapshot by one that is tested better
+
+*portage-2.2.01.15478 (07 Aug 2010)
+
+ 07 Aug 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.01.15354-r1.ebuild, +portage-2.2.01.15478.ebuild:
+ Bump snapshot
+
+*portage-2.2.01.15417 (23 Jul 2010)
+
+ 23 Jul 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.15417.ebuild:
+ Version bump, includes darkside's redundant mirror patch
+
+*portage-2.2.01.15354-r1 (22 Jul 2010)
+
+ 22 Jul 2010; Jeremy Olexa <darkside@gentoo.org>
+ +files/0001-emerge-webrsync-Redundant-Mirroring.patch,
+ +portage-2.2.01.15354-r1.ebuild:
+ Add emerge-webrsync patch to use a redundant mirror
+
+*portage-2.2.01.15354 (07 Jul 2010)
+
+ 07 Jul 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15819.ebuild, -portage-2.2.01.15352.ebuild,
+ +portage-2.2.01.15354.ebuild:
+ Bump, shebang fixing now also considers scripts that are symlinked from
+ inside path but reside outside path
+
+*portage-2.2.01.15352 (02 Jul 2010)
+
+ 02 Jul 2010; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.01.15352.ebuild:
+ New snapshot, first one off git/hg
+
+*portage-2.2.00.15842-r1 (24 Apr 2010)
+
+ 24 Apr 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15842.ebuild, +portage-2.2.00.15842-r1.ebuild,
+ +files/portage-2.2.00.15842-shebangcheck.patch:
+ Add patch to fix shebang check being overaggressive, bug #313731
+
+ 16 Apr 2010; Michael Haubenwallner <haubi@gentoo.org>
+ portage-2.2.00.15842.ebuild,
+ +files/portage-2.2.00.15842-configshell.patch:
+ add patch for bug#308835, need to use CONFIG_SHELL on AIX
+
+*portage-2.2.00.15842 (23 Mar 2010)
+
+ 23 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15801.ebuild, +portage-2.2.00.15842.ebuild:
+ Bump, fix AIX hooks. This is the last SVN-based version.
+
+*portage-2.2.00.15838 (21 Mar 2010)
+
+ 21 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15754.ebuild, +portage-2.2.00.15838.ebuild:
+ Bump, shebang check got more strict by checking existence of already
+ prefixed shebangs as well now
+
+*portage-2.2.00.15819 (11 Mar 2010)
+
+ 11 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15817.ebuild, +portage-2.2.00.15819.ebuild:
+ Replace snapshot, added fix for summary.log misplacement when
+ EPREFIX='', and fix for chpathtool to better detect textfiles.
+
+*portage-2.2.00.15817 (11 Mar 2010)
+
+ 11 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15444.ebuild, +portage-2.2.00.15817.ebuild:
+ Bump, matches 2.2_rc67
+
+ 11 Mar 2010; Markus Duft <mduft@gentoo.org> portage-2.2.00.15801.ebuild,
+ +files/portage-2.2.00.15801-prefix-chaining.patch:
+ updated prefix-chaining patch once more.
+
+*portage-2.2.00.15801 (09 Mar 2010)
+
+ 09 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15431.ebuild, +portage-2.2.00.15801.ebuild:
+ Bump, matches 2.2_rc66+, includes fix for shebang check regarding files
+ with DOS line endings
+
+*portage-2.2.00.15754 (06 Mar 2010)
+
+ 06 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15742.ebuild, -files/portage-2.2.00.15742-aix-imp.patch,
+ +portage-2.2.00.15754.ebuild:
+ Replace faulty snapshot with fixed one (unknown variable EPREFIX_LSTRIP),
+ matches 2.2_rc65
+
+*portage-2.2.00.15742 (03 Mar 2010)
+
+ 03 Mar 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15335.ebuild, +portage-2.2.00.15742.ebuild:
+ Bump, matches 2.2_rc64+. This version has a changed chpathtool to overcome
+ problems with certain binary files.
+
+*portage-2.2.00.15444 (23 Feb 2010)
+
+ 23 Feb 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15443.ebuild, +portage-2.2.00.15444.ebuild:
+ Fix shebang code even more, so it doesn't prevent most merges
+
+*portage-2.2.00.15443 (23 Feb 2010)
+
+ 23 Feb 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15320.ebuild, +portage-2.2.00.15443.ebuild:
+ New snapshot, including fixes to the auto-shebang-fix-and-detect-problems
+ code.
+
+*portage-2.2.00.15431 (22 Feb 2010)
+
+ 22 Feb 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15274.ebuild, +portage-2.2.00.15431.ebuild:
+ New version, this revision matches 2.2_rc63
+
+*portage-2.2.00.15335 (10 Feb 2010)
+
+ 10 Feb 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15210.ebuild, +portage-2.2.00.15335.ebuild:
+ New snapshot
+
+*portage-2.2.00.15320 (04 Feb 2010)
+
+ 04 Feb 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15200.ebuild, +portage-2.2.00.15320.ebuild:
+ New snapshot, fix version comparisons with -r0, bug #303145
+
+*portage-2.2.00.15274 (29 Jan 2010)
+
+ 29 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15187.ebuild, +portage-2.2.00.15274.ebuild:
+ New snapshot, this version supports EAPI=3
+
+*portage-2.2.00.15210 (26 Jan 2010)
+
+ 26 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15171.ebuild, +portage-2.2.00.15210.ebuild:
+ New snapshot, adds repoman Mercurial (hg) support
+
+*portage-2.2.00.15200 (14 Jan 2010)
+
+ 14 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15134.ebuild, +portage-2.2.00.15200.ebuild:
+ Bump, small fix in repoman's bzr support
+
+*portage-2.2.00.15187 (10 Jan 2010)
+
+ 10 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15184.ebuild, +portage-2.2.00.15187.ebuild:
+ New snapshot, repoman now has Bazaar (bzr) support
+
+*portage-2.2.00.15184 (09 Jan 2010)
+
+ 09 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15178.ebuild, +portage-2.2.00.15184.ebuild:
+ Replace previous snapshot, fix spurious ValueError and NameErrors, added
+ back setting of EPREFIX in the internal environment.
+
+*portage-2.2.00.15178 (08 Jan 2010)
+
+ 08 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15176.ebuild, +portage-2.2.00.15178.ebuild:
+ Replace previous snapshot. Include possible fix for installation problems
+ on AIX (bug #299163) and fix Portage behaviour for EPREFIX=''
+
+*portage-2.2.00.15176 (08 Jan 2010)
+
+ 08 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15123.ebuild, +portage-2.2.00.15176.ebuild:
+ New snapshot, whitelists UNIXMODE for MiNT platforms. Perhaps the last
+ snapshot from the original SVN repository
+
+*portage-2.2.00.15171 (05 Jan 2010)
+
+ 05 Jan 2010; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15027.ebuild, +portage-2.2.00.15171.ebuild:
+ New snapshot
+
+*portage-2.2.00.15134 (22 Dec 2009)
+
+ 22 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14964.ebuild, +portage-2.2.00.15134.ebuild:
+ Bump, brings back the binpkg functionality of Prefix Portage that got
+ broken somehow.
+
+*portage-2.2.00.15123 (20 Dec 2009)
+
+ 20 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.15118.ebuild, +portage-2.2.00.15123.ebuild:
+ Replace latest snapshot, it doesn't properly set the full path during
+ merges.
+
+*portage-2.2.00.15118 (18 Dec 2009)
+
+ 18 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14896.ebuild, +portage-2.2.00.15118.ebuild:
+ Bump, resembles version 2.2_rc60
+
+*portage-2.2.00.15027 (10 Dec 2009)
+
+ 10 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14994.ebuild, +portage-2.2.00.15027.ebuild:
+ Replace faulty snapshot (SRC_URI fetch weirdness) with version which
+ resembles 2.2_rc58+
+
+*portage-2.2.00.14994 (09 Dec 2009)
+
+ 09 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14813.ebuild, +portage-2.2.00.14994.ebuild:
+ Version bump, one step closer to the same behaviour as trunk with
+ EPREFIX=''
+
+ 07 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -files/portage-2.2.00.14487-brokentty-more-platforms.patch,
+ -files/portage-2.2.00.14487-prefix-chaining.patch,
+ -files/portage-2.2.00.14555-prefix-chaining.patch:
+ Drop stale patches
+
+*portage-2.2.00.14964 (07 Dec 2009)
+
+ 07 Dec 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14555.ebuild, -portage-2.2.00.14771.ebuild,
+ +portage-2.2.00.14964.ebuild:
+ Bump, this version resembles 2.2_rc56
+
+*portage-2.2.00.14896 (26 Nov 2009)
+
+ 26 Nov 2009; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.14896.ebuild:
+ New revision, this one is equal to portage-2.2_rc52 feature wise.
+
+*portage-2.2.00.14813 (13 Nov 2009)
+
+ 13 Nov 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14487.ebuild, +portage-2.2.00.14813.ebuild:
+ Bump, restore bash-3 compatability, no longer provide ld.so.conf file for
+ offset installs
+
+*portage-2.2.00.14771 (01 Nov 2009)
+
+ 01 Nov 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14748-r1.ebuild,
+ -files/portage-2.2.00.14748-fix-crash-on-new-cat-install.patch,
+ +portage-2.2.00.14771.ebuild:
+ Bump, including proper fix replacing the new category crash hack. This
+ version resembles portage-2.2_rc48.
+
+*portage-2.2.00.14748-r1 (31 Oct 2009)
+
+ 31 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14748.ebuild, +portage-2.2.00.14748-r1.ebuild,
+ +files/portage-2.2.00.14748-fix-crash-on-new-cat-install.patch:
+ Add fix for bug #291271, Portage crashing on installing new categories,
+ separate patch because I expect this not going to be the final patch, so
+ at least fix the problem for now
+
+*portage-2.2.00.14748 (30 Oct 2009)
+
+ 30 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14746.ebuild,
+ -files/portage-2.2.00.14746-aix-finetuning.patch,
+ +portage-2.2.00.14748.ebuild:
+ Replace 2.2.00.14746 with 2.2.00.14748 that includes the additional fixes
+ for AIX, and fixes accidential aix QA code being run on ELF platforms
+
+ 30 Oct 2009; Michael Haubenwallner <haubi@gentoo.org>
+ -portage-2.2.00.14724.ebuild,
+ -files/portage-2.2.00.14724-aix-preservelibs.patch,
+ -files/portage-2.2.00.14724-aix-qa.patch:
+ dropped
+
+ 30 Oct 2009; Michael Haubenwallner <haubi@gentoo.org>
+ portage-2.2.00.14724.ebuild,
+ -files/portage-2.2.00.14724-aix-finetuning.patch,
+ portage-2.2.00.14746.ebuild,
+ +files/portage-2.2.00.14746-aix-finetuning.patch:
+ added fine tuning/fixes for preserve-libs feature for AIX for 14746,
+ dropped from 14724
+
+*portage-2.2.00.14746 (30 Oct 2009)
+
+ 30 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.14746.ebuild:
+ Bump, include AIX preserve-libs patches
+
+*portage-2.2.00.14724 (24 Oct 2009)
+
+ 24 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14701.ebuild, +portage-2.2.00.14724.ebuild:
+ Bump, fix emerge hangs on Solaris and wrong path for CONFIG_MEMORY_FILE,
+ bug #290254
+
+*portage-2.2.00.14701 (21 Oct 2009)
+
+ 21 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14700.ebuild, +portage-2.2.00.14701.ebuild:
+ Replace last snapshot, fixed a bug in dohtml complaining about missing
+ dohtml.py
+
+*portage-2.2.00.14700 (20 Oct 2009)
+
+ 20 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14200.ebuild, +portage-2.2.00.14700.ebuild:
+ Bump, fixes hang on FreeBSD, fixes emaint double prefix error, bug #289835
+
+ 15 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.14555.ebuild:
+ We need python-2.6 for exception syntax
+
+*portage-2.2.00.14555 (10 Oct 2009)
+
+ 10 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14183.ebuild, +portage-2.2.00.14555.ebuild, metadata.xml:
+ Bump, openpty is now only tried on FreeBSD and Linux, possible fix for bug
+ #285720 (backslashes in groupname), fix for bug #288025 (unconditional
+ statvfs usage)
+
+*portage-2.2.00.14487 (04 Oct 2009)
+
+ 04 Oct 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14277.ebuild, +portage-2.2.00.14487.ebuild:
+ Bump, this version equals the code from 2.2_rc43 with Prefix patches.
+ Shebang check is now restricted to only abort when the offending file
+ is in $PATH.
+
+*portage-2.2.00.14277 (21 Sep 2009)
+
+ 21 Sep 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14160.ebuild, +portage-2.2.00.14277.ebuild:
+ Bump, add QA check for shebangs, bug #282539. You may see messages about
+ fixed shebangs from now on.
+
+*portage-2.2.00.14200 (14 Sep 2009)
+
+ 14 Sep 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13878.ebuild, +portage-2.2.00.14200.ebuild:
+ Simple bump
+
+*portage-2.2.00.14183 (04 Sep 2009)
+
+ 04 Sep 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14179.ebuild, +portage-2.2.00.14183.ebuild:
+ Bump for Interix users, fixing an unicode problem
+
+*portage-2.2.00.14179 (02 Sep 2009)
+
+ 02 Sep 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.14178.ebuild, +portage-2.2.00.14179.ebuild:
+ Bump to fix bug #283541, dispatch-conf backtracing on config-archive
+
+*portage-2.2.00.14178 (01 Sep 2009)
+
+ 01 Sep 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13849.ebuild, +portage-2.2.00.14178.ebuild:
+ Bump, small unicode fixes
+
+ 27 Aug 2009; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.14160.ebuild:
+ Add back old style way to retrieve rootuser, for those who don't have an
+ up-to-date Portage yet
+
+*portage-2.2.00.14160 (26 Aug 2009)
+
+ 26 Aug 2009; Fabian Groffen <grobian@gentoo.org>
+ -files/portage-2.2.00.13683-prefix-chaining.patch,
+ -portage-2.2.00.14153-r1.ebuild,
+ -files/portage-2.2.00.14153-imports.patch, +portage-2.2.00.14160.ebuild:
+ Version bump with appropriate fixes for dispatch-conf (replaces imports
+ patch)
+
+*portage-2.2.00.14153-r1 (26 Aug 2009)
+
+ 26 Aug 2009; Markus Duft <mduft@gentoo.org> -portage-2.2.00.14153.ebuild,
+ +portage-2.2.00.14153-r1.ebuild,
+ +files/portage-2.2.00.14153-imports.patch:
+ added patch to fix dispatch-conf and quickpkg - imports where wrong
+
+*portage-2.2.00.14153 (24 Aug 2009)
+
+ 24 Aug 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13830.ebuild, +portage-2.2.00.14153.ebuild:
+ Quantum leap jump, this version resembles version 2.2_rc40+
+
+ 19 Aug 2009; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.13878.ebuild:
+ update eselect-news dependency to be able to deal with eselect-1.2
+
+*portage-2.2.00.13878 (03 Aug 2009)
+
+ 03 Aug 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13876.ebuild, +portage-2.2.00.13878.ebuild:
+ Replace broken version by new one, fixing bug #280189 (setsid script not
+ Prefix-aware), and the backtrace in comment 21 of bug #279550
+
+*portage-2.2.00.13876 (02 Aug 2009)
+
+ 02 Aug 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13683.ebuild, +portage-2.2.00.13876.ebuild:
+ Version bump, fixes bug #279550
+
+*portage-2.2.00.13849 (22 Jul 2009)
+
+ 22 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.13849.ebuild:
+ Version bump, fix bug #278373, add preserve-libs support for Interix and
+ Windows
+
+ 22 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ -files/portage-2.2.00.13133-prefix-chaining.patch,
+ -files/portage-2.2.00.13243-prefix-chaining-path-noportage.patch,
+ -files/portage-2.2.00.13243-prefix-chaining-sync.patch,
+ -files/portage-2.2.00.13243-prefix-chaining-utils.patch,
+ -files/portage-2.2.00.13286-dest-fix.patch,
+ -files/portage-2.2.00.13369-interix-estale.patch,
+ -files/portage-2.2.00.13369-nodeps-order.patch,
+ -files/portage-2.2.00.13625-prefix-chaining.patch:
+ Drop stale patches
+
+ 22 Jul 2009; Markus Duft <mduft@gentoo.org> portage-2.2.00.13830.ebuild,
+ +files/portage-2.2.00.13830-prefix-chaining.patch,
+ +files/portage-2.2.00.13830-preserve-pecoff.patch:
+ updated prefix-chaining patch to match new split-up sources. added
+ preserve-libs support for winnt and interix - should go to svn soon.
+
+*portage-2.2.00.13830 (16 Jul 2009)
+
+ 16 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13827.ebuild, +portage-2.2.00.13830.ebuild:
+ Bump for fix for bug #278014
+
+ 16 Jul 2009; Jeremy Olexa <darkside@gentoo.org>
+ -portage-2.2.00.13797.ebuild:
+ remove old, masked version
+
+*portage-2.2.00.13827 (14 Jul 2009)
+
+ 14 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13825.ebuild, +portage-2.2.00.13827.ebuild:
+ Let's try it another time. Fixed bugs #277011 and #277815.
+
+*portage-2.2.00.13825 (13 Jul 2009)
+
+ 13 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13629.ebuild, +portage-2.2.00.13825.ebuild:
+ New snapshot, without bugs this time?
+
+*portage-2.2.00.13797 (07 Jul 2009)
+
+ 07 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13734.ebuild, +portage-2.2.00.13797.ebuild:
+ Replace last snapshot with a new one that has reverse order with --nodeps
+ fixed.
+
+*portage-2.2.00.13734 (01 Jul 2009)
+
+ 01 Jul 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13625.ebuild, +portage-2.2.00.13734.ebuild:
+ New snapshot, using a 'modular' emerge/__init__.py
+
+ 30 Jun 2009; Jeremy Olexa <darkside@gentoo.org>
+ portage-2.2.00.13683.ebuild:
+ sys-apps/sandbox has caused multiple headaches in the past weeks, for now
+ we no longer hard depend on it. If it is emerged, you can still use it,
+ however
+
+*portage-2.2.00.13683 (24 Jun 2009)
+
+ 24 Jun 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13621.ebuild, +portage-2.2.00.13683.ebuild:
+ Version bump for haubi's postsync fix
+
+*portage-2.2.00.13629 (12 Jun 2009)
+
+ 12 Jun 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13595.ebuild, +portage-2.2.00.13629.ebuild:
+ Version bump
+
+*portage-2.2.00.13625 (19 May 2009)
+
+ 19 May 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13405.ebuild, +portage-2.2.00.13625.ebuild:
+ New snapshot, probable fix for bug #267887
+
+*portage-2.2.00.13621 (10 May 2009)
+
+ 10 May 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13398.ebuild, +portage-2.2.00.13621.ebuild:
+ New snapshot, should no longer install Makefile* files
+
+*portage-2.2.00.13595 (02 May 2009)
+
+ 02 May 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13369.ebuild, +portage-2.2.00.13595.ebuild:
+ New snapshot, no longer kills airplanes, no longer barfs about mtree
+ missing on FreeBSD, matches 2.2_rc32+
+
+*portage-2.2.00.13405 (28 Apr 2009)
+
+ 28 Apr 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13346.ebuild, +portage-2.2.00.13405.ebuild:
+ New snapshot, including fix for bug #267556 and problem with sandbox reading
+ ~root/.history
+
+*portage-2.2.00.13398 (26 Apr 2009)
+
+ 26 Apr 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13286-r1.ebuild, +portage-2.2.00.13398.ebuild:
+ New snapshot, matches Portage 2.2_rc31+, revamped buildsystem which should
+ speed up installing Portage. From this point EAPI="prefix" really is
+ over.
+
+*portage-2.2.00.13369 (19 Apr 2009)
+
+ 19 Apr 2009; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.13369.ebuild:
+ New snapshot, fixing repoman issues, and converting the vdb more properly
+
+*portage-2.2.00.13346 (15 Apr 2009)
+
+ 15 Apr 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13200.ebuild, -portage-2.2.00.13280.ebuild,
+ +portage-2.2.00.13346.ebuild:
+ Version bump to 2.2_rc30+, this version no longer accepts
+ EAPI="prefix", note: you cannot downgrade from this version
+
+*portage-2.2.00.13286-r1 (14 Apr 2009)
+
+ 14 Apr 2009; Jeremy Olexa <darkside@gentoo.org>
+ +files/portage-2.2.00.13286-dest-fix.patch, -portage-2.2.00.13286.ebuild,
+ +portage-2.2.00.13286-r1.ebuild:
+ Add a patch from svn to fix issues with _many_ packages - will be in next
+ portage release
+
+*portage-2.2.00.13286 (10 Apr 2009)
+
+ 10 Apr 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13133.ebuild, +portage-2.2.00.13286.ebuild:
+ New snapshot. This version uses BASH and MV from the locations configure
+ found, which should help to reduce the prefix-chaining patch a bit.
+
+*portage-2.2.00.13280 (02 Apr 2009)
+
+ 02 Apr 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.13243.ebuild, +portage-2.2.00.13280.ebuild:
+ Bump for bug #264245, ecompress was broken
+
+*portage-2.2.00.13243 (29 Mar 2009)
+
+ 29 Mar 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12807.ebuild, +portage-2.2.00.13243.ebuild:
+ Version bump, this is a hybrid Portage that accepts both EAPI with and
+ without 'prefix' meant to be used only during the transition period of our
+ tree while EAPI=prefix is being removed.
+
+*portage-2.2.00.13200 (26 Mar 2009)
+
+ 26 Mar 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12790.ebuild, +portage-2.2.00.13200.ebuild:
+ New snapshot, some glep55 preparations included
+
+ 26 Mar 2009; Markus Duft <mduft@gentoo.org>
+ -files/portage-2.2.00.12425-cross-prefix.patch,
+ -files/portage-2.2.00.12540-cross-prefix.patch,
+ -files/portage-2.2.00.12574-cross-prefix.patch,
+ +files/portage-2.2.00.13133-prefix-chaining.patch,
+ portage-2.2.00.13133.ebuild:
+ removed cross-prefix stuff - not working since a few revisions now. added
+ prefix-chain stuff as a successor to cross-prefix
+
+*portage-2.2.00.13133 (18 Mar 2009)
+
+ 18 Mar 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12699.ebuild, +portage-2.2.00.13133.ebuild:
+ New snapshot, portage no longer includes eprefixify, so you need to 'inherit
+ prefix' to use it
+
+*portage-2.2.00.12807 (12 Mar 2009)
+
+ 12 Mar 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12671.ebuild, +portage-2.2.00.12807.ebuild:
+ Bump
+
+*portage-2.2.00.12790 (09 Mar 2009)
+
+ 09 Mar 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12652.ebuild, +portage-2.2.00.12790.ebuild:
+ New snapshot
+
+*portage-2.2.00.12699 (05 Mar 2009)
+
+ 05 Mar 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12565.ebuild, +portage-2.2.00.12699.ebuild:
+ New snapshot
+
+*portage-2.2.00.12671 (21 Feb 2009)
+
+ 21 Feb 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12528.ebuild, +portage-2.2.00.12671.ebuild:
+ New snapshot, includes code that makes resolving much faster for packages
+ without a category.
+
+*portage-2.2.00.12652 (19 Feb 2009)
+
+ 19 Feb 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12608.ebuild, +portage-2.2.00.12652.ebuild:
+ New snapshot
+
+*portage-2.2.00.12608 (18 Feb 2009)
+
+ 18 Feb 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12425.ebuild, +portage-2.2.00.12608.ebuild:
+ New snapshot
+
+ 03 Feb 2009; Markus Duft <mduft@gentoo.org>
+ -files/portage-2.2.00.12387-cross-prefix.patch,
+ +files/portage-2.2.00.12574-cross-prefix.patch,
+ portage-2.2.00.12565.ebuild:
+ updated cross-prefix patchery
+
+*portage-2.2.00.12565 (31 Jan 2009)
+
+ 31 Jan 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12396.ebuild, +portage-2.2.00.12565.ebuild:
+ New snapshot, 2.2_rc23+, including emake SHELL=bash change for Interix
+
+ 20 Jan 2009; User generated by SUA Setup Script <mduft@gentoo.org>
+ -files/portage-2.2.00.12182-cross-prefix.patch,
+ +files/portage-2.2.00.12540-cross-prefix.patch,
+ portage-2.2.00.12528.ebuild:
+ updated cross-prefix patchery. added bits to support environments in child
+ prefixes properly.
+
+*portage-2.2.00.12528 (18 Jan 2009)
+
+ 18 Jan 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12527.ebuild, +portage-2.2.00.12528.ebuild:
+ Small bump for Darwin users to catch more reference problems
+
+*portage-2.2.00.12527 (17 Jan 2009)
+
+ 17 Jan 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12347.ebuild, +portage-2.2.00.12527.ebuild:
+ Bump, matches 2.2_rc22+
+
+*portage-2.2.00.12425 (11 Jan 2009)
+
+ 11 Jan 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12288.ebuild, +portage-2.2.00.12425.ebuild:
+ New snapshot
+
+*portage-2.2.00.12396 (08 Jan 2009)
+
+ 08 Jan 2009; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12182.ebuild, +portage-2.2.00.12396.ebuild:
+ New snapshot, 2.2_rc20+, depends on eselect-news
+
+ 07 Jan 2009; Markus Duft <mduft@gentoo.org>
+ -files/portage-2.2.00.12040-cross-prefix.patch,
+ +files/portage-2.2.00.12387-cross-prefix.patch,
+ portage-2.2.00.12347.ebuild:
+ updated cross-prefix patchery
+
+*portage-2.2.00.12347 (25 Dec 2008)
+
+ 25 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12172.ebuild, +portage-2.2.00.12347.ebuild:
+ New shapshot, matches 2.2_rc19+, with more debugging aids
+
+*portage-2.2.00.12288 (23 Dec 2008)
+
+ 23 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12276.ebuild, +portage-2.2.00.12288.ebuild:
+ New snapshot, .dll made executable, some poll() related code to avoid hangs
+
+*portage-2.2.00.12276 (22 Dec 2008)
+
+ 22 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12040.ebuild, +portage-2.2.00.12276.ebuild:
+ Bump, matches 2.2_rc18+
+
+ 18 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.12182.ebuild:
+ Add back master mirror to avoid screwups due to unavailable distfiles, no
+ need for explicit mirror:// as portage should try that by default
+
+*portage-2.2.00.12182 (08 Dec 2008)
+
+ 08 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11947.ebuild, +portage-2.2.00.12182.ebuild:
+ New version with fix for not seeing profile's deprecated files
+
+*portage-2.2.00.12172 (06 Dec 2008)
+
+ 06 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.12165.ebuild, +portage-2.2.00.12172.ebuild:
+ Fix issue with stripping unwritable files, fix backtrace on unmerge
+
+*portage-2.2.00.12165 (06 Dec 2008)
+
+ 06 Dec 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11799.ebuild, +portage-2.2.00.12165.ebuild:
+ Version bump, matches 2.2_rc17+
+
+*portage-2.2.00.12040 (22 Nov 2008)
+
+ 22 Nov 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11736.ebuild, +portage-2.2.00.12040.ebuild:
+ New snapshot, matching 2.2_rc15+
+
+*portage-2.2.00.11947 (15 Nov 2008)
+
+ 15 Nov 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11700.ebuild, +portage-2.2.00.11947.ebuild:
+ New revision, 2.2_rc14+, with git support in repoman
+
+ 03 Nov 2008; Markus Duft <mduft@gentoo.org>
+ -files/portage-2.2.00.11514-cross-prefix.patch,
+ +files/portage-2.2.00.11799-cross-prefix.patch,
+ portage-2.2.00.11799.ebuild:
+ updated portage cross-prefix-ability patchery for windows.
+
+*portage-2.2.00.11799 (02 Nov 2008)
+
+ 02 Nov 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11694.ebuild, +portage-2.2.00.11799.ebuild:
+ New snapshot, roughly comparable to 2.2_rc13
+
+*portage-2.2.00.11736 (28 Oct 2008)
+
+ 28 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11675.ebuild, +portage-2.2.00.11736.ebuild:
+ New snapshot, nothing groovy that I know of
+
+*portage-2.2.00.11700 (18 Oct 2008)
+
+ 18 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11635.ebuild, +portage-2.2.00.11700.ebuild:
+ New snapshot with a repoman that shouldn't be happy with zero-length
+ distfiles any more
+
+*portage-2.2.00.11694 (15 Oct 2008)
+
+ 15 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11620.ebuild, +portage-2.2.00.11694.ebuild:
+ Bump, hopefully fix repoman not to commit twice most of the time, bug #229033
+
+*portage-2.2.00.11675 (11 Oct 2008)
+
+ 11 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11580.ebuild, +portage-2.2.00.11675.ebuild:
+ New snapshot, some fixes
+
+*portage-2.2.00.11635 (05 Oct 2008)
+
+ 05 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11567.ebuild, +portage-2.2.00.11635.ebuild:
+ New snapshot, better fix for Solaris rmdir problem
+
+*portage-2.2.00.11620 (04 Oct 2008)
+
+ 04 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11616.ebuild, +portage-2.2.00.11620.ebuild:
+ Replace snapshot with a new one which turns changelog.ebuildadded into a
+ warning instead of error.
+
+*portage-2.2.00.11616 (03 Oct 2008)
+
+ 03 Oct 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11505.ebuild, +portage-2.2.00.11616.ebuild:
+ New snapshot, now picks EAPIPREFIX from the environment if set.
+
+*portage-2.2.00.11580 (28 Sep 2008)
+
+ 28 Sep 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11579.ebuild, +portage-2.2.00.11580.ebuild:
+ New bump to fix AttributeError on Darwin
+
+*portage-2.2.00.11579 (28 Sep 2008)
+
+ 28 Sep 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11572.ebuild, +portage-2.2.00.11579.ebuild:
+ Replace 2.2.00.11572 with 2.2.00.11579 which has a rmdir fix for Solaris users
+
+*portage-2.2.00.11572 (27 Sep 2008)
+
+ 27 Sep 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11477.ebuild, -portage-2.2.00.11484.ebuild,
+ +portage-2.2.00.11572.ebuild:
+ New snapshot, doing a quantum jump into the current: EAPI=2
+
+*portage-2.2.00.11567 (27 Sep 2008)
+
+ 27 Sep 2008; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.11567.ebuild:
+ New snapshot, making use of scanmacho on Darwin
+
+ 17 Sep 2008; Markus Duft <mduft@gentoo.org>
+ +files/portage-2.2.00.11514-cross-prefix.patch,
+ portage-2.2.00.11505.ebuild, portage-2.2.00.11505.ebuild:
+ added cross-prefix patch for current prefix-portage, conditional with
+ (temporary) use flag
+
+*portage-2.2.00.11505 (11 Sep 2008)
+
+ 11 Sep 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11421.ebuild, +portage-2.2.00.11505.ebuild:
+ New snapshot, mainly to fix bug #237323
+
+*portage-2.2.00.11484 (01 Sep 2008)
+
+ 01 Sep 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11409.ebuild, +portage-2.2.00.11484.ebuild:
+ New snapshot, just to make sure I have the latest fixes
+
+*portage-2.2.00.11477 (27 Aug 2008)
+
+ 27 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11472.ebuild, +portage-2.2.00.11477.ebuild:
+ Another bump to try and fix bug #235858
+
+*portage-2.2.00.11472 (24 Aug 2008)
+
+ 24 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11469.ebuild, +portage-2.2.00.11472.ebuild:
+ Hopefully last replacement tonight. Fix an IndexError due to a stray line.
+
+*portage-2.2.00.11469 (24 Aug 2008)
+
+ 24 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11465.ebuild, +portage-2.2.00.11469.ebuild:
+ Sort of emergency update, to fix a fatal problem with preserved-libs that do
+ not exist
+
+*portage-2.2.00.11465 (24 Aug 2008)
+
+ 24 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11445.ebuild, +portage-2.2.00.11465.ebuild:
+ Replace latest snapshot with one that avoids more keyerrors in the odcctools
+ case :/
+
+*portage-2.2.00.11445 (20 Aug 2008)
+
+ 20 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10815.ebuild, +portage-2.2.00.11445.ebuild:
+ New snapshot, should fix an issue when updating odcctools
+
+*portage-2.2.00.11421 (16 Aug 2008)
+
+ 16 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11391.ebuild, +portage-2.2.00.11421.ebuild:
+ New snapshot, with repoman that only warns about IUSE.invalid
+
+*portage-2.2.00.11409 (14 Aug 2008)
+
+ 14 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11322.ebuild, +portage-2.2.00.11409.ebuild:
+ New snapshot, this matches 2.2_rc8+
+
+*portage-2.2.00.11391 (10 Aug 2008)
+
+ 10 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.11391.ebuild:
+ New snapshot, this one should do it, EAPI=+-2
+
+ 06 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11334.ebuild:
+ Remove 2.2.00.11334, it seems to make ncurses fail to compile, and I don't
+ like this repoman IUSE stuff either
+
+*portage-2.2.00.11334 (05 Aug 2008)
+
+ 05 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11287.ebuild, +portage-2.2.00.11334.ebuild:
+ New snapshot which installs symlink to emerge-webrsync
+
+*portage-2.2.00.11322 (03 Aug 2008)
+
+ 03 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11248.ebuild, +portage-2.2.00.11322.ebuild:
+ New snapshot, nothing special I know of
+
+ 01 Aug 2008; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.11287.ebuild:
+ Fix stupid inverted logic
+
+*portage-2.2.00.11287 (30 Jul 2008)
+
+ 30 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11225.ebuild, +portage-2.2.00.11287.ebuild:
+ New snapshot, with support for EAPI 2_pre1
+
+*portage-2.2.00.11248 (28 Jul 2008)
+
+ 28 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11243.ebuild, +portage-2.2.00.11248.ebuild:
+ Replace snapshot with one that has a working depclean on the Mac, and
+ hopefully preserves http proxy settings on all platforms.
+
+*portage-2.2.00.11243 (28 Jul 2008)
+
+ 28 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11187.ebuild, +portage-2.2.00.11243.ebuild:
+ New snapshot, support for EAPI 2_pre0
+
+*portage-2.2.00.11225 (27 Jul 2008)
+
+ 27 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11215.ebuild, +portage-2.2.00.11225.ebuild:
+ Replace last snapshot with one that doesn't throw so many QA errors.
+
+*portage-2.2.00.11215 (27 Jul 2008)
+
+ 27 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11125.ebuild, +portage-2.2.00.11215.ebuild:
+ New snapshot, with repoman that commits the Manifest file in one go if
+ possible.
+
+*portage-2.2.00.11187 (25 Jul 2008)
+
+ 25 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11110.ebuild, +portage-2.2.00.11187.ebuild:
+ New snapshot, misc fixes, stay ahead of gentoo-x86, don't fall behind ;)
+
+*portage-2.2.00.11125 (18 Jul 2008)
+
+ 18 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11060.ebuild, +portage-2.2.00.11125.ebuild:
+ New snapshot, fix for 'ebuild ... install'
+
+*portage-2.2.00.11110 (17 Jul 2008)
+
+ 17 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11087.ebuild, +portage-2.2.00.11110.ebuild:
+ Fix for etc-update, and misc parallel merging (cosmetic) improvements
+
+*portage-2.2.00.11087 (16 Jul 2008)
+
+ 16 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11048.ebuild, +portage-2.2.00.11087.ebuild:
+ New snapshot, misc fixes, huge change internally with handling the EPREFIX,
+ should now better recognise settings.
+
+*portage-2.2.00.11060 (15 Jul 2008)
+
+ 15 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10788.ebuild, +portage-2.2.00.11060.ebuild:
+ New snapshot, bugfixes
+
+*portage-2.2.00.11048 (14 Jul 2008)
+
+ 14 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.11041.ebuild, +portage-2.2.00.11048.ebuild:
+ Replace previous snapshot with a new one, hopefully with less backtraces
+
+*portage-2.2.00.11041 (13 Jul 2008)
+
+ 13 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.11041.ebuild:
+ After a number of seriously broken snapshots, finally one that works at
+ least on Darwin (and Linux hopefully). To repeat, this snapshot should
+ finally be useful for Interix. This snapshots contains parallel merge
+ feature, use --jobs to use it!
+
+*portage-2.2.00.10884 (01 Jul 2008)
+
+ 01 Jul 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10770.ebuild, +portage-2.2.00.10884.ebuild:
+ New snapshot, this should actually be the first snapshot that will install
+ on my Interix installation without horribly breaking down.
+
+*portage-2.2.00.10815 (27 Jun 2008)
+
+ 27 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10760.ebuild, +portage-2.2.00.10815.ebuild:
+ New snapshot, try out the cool new --keep-going option
+
+*portage-2.2.00.10788 (25 Jun 2008)
+
+ 25 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10738.ebuild, +portage-2.2.00.10788.ebuild:
+ New snapshot, with fix for backtrace on coloured output
+
+*portage-2.2.00.10770 (24 Jun 2008)
+
+ 24 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10625.ebuild, +portage-2.2.00.10770.ebuild:
+ Add snapshot of latest sources to reproduce some backtraces with
+
+ 24 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.10760.ebuild:
+ Drop SVN repo check, what we force doesn't work (see many bugs on svn:
+ connection closed unexpectedly) and we need http for commits anyway at the
+ moment. Besides, most users should be on an rsync tree now, which is much
+ better for many reasons.
+
+*portage-2.2.00.10760 (22 Jun 2008)
+
+ 22 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10585.ebuild, +portage-2.2.00.10760.ebuild:
+ New snapshot that gets rid of the repo_name warning
+
+*portage-2.2.00.10738 (20 Jun 2008)
+
+ 20 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10729.ebuild, +portage-2.2.00.10738.ebuild:
+ Replace previous snapshot, this new snapshot has better 'working'
+ preserve-libs support for Darwin
+
+*portage-2.2.00.10729 (19 Jun 2008)
+
+ 19 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10708.ebuild, +portage-2.2.00.10729.ebuild:
+ Fix brokenness for Darwin users
+
+*portage-2.2.00.10708 (17 Jun 2008)
+
+ 17 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10347.ebuild, +portage-2.2.00.10708.ebuild:
+ New snapshot, preserve-libs fixes
+
+ 10 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.10347.ebuild, portage-2.2.00.10585.ebuild,
+ portage-2.2.00.10625.ebuild:
+ Restrict 'test', it can't work in Prefix currently, since it needs the
+ sources to be installed first. bug #223193
+
+*portage-2.2.00.10625 (09 Jun 2008)
+
+ 09 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.10625.ebuild:
+ New snapshot, hopefully fixes preserve-libs issue
+
+*portage-2.2.00.10585 (05 Jun 2008)
+
+ 05 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10577.ebuild, +portage-2.2.00.10585.ebuild:
+ Replace previous snapshot with new one which got a fix for bug #224713
+
+*portage-2.2.00.10577 (04 Jun 2008)
+
+ 04 Jun 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10385.ebuild, -portage-2.2.00.10418.ebuild,
+ +portage-2.2.00.10577.ebuild:
+ New snapshot, remove masked versions
+
+*portage-2.2.00.10418 (25 May 2008)
+
+ 25 May 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10249.ebuild, +portage-2.2.00.10418.ebuild:
+ New snapshot, including trunk USE-deps feature
+
+*portage-2.2.00.10385 (21 May 2008)
+
+ 21 May 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.10181.ebuild, +portage-2.2.00.10385.ebuild:
+ New snapshot, new chances for b0rkage ;)
+
+*portage-2.2.00.10347 (16 May 2008)
+
+ 16 May 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9894.ebuild, +portage-2.2.00.10347.ebuild:
+ New snapshot, readded rsync dependency, since we're about to switch to rsync
+ for normal installations
+
+*portage-2.2.00.10249 (08 May 2008)
+
+ 08 May 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9962.ebuild, +portage-2.2.00.10249.ebuild:
+ New snapshot should solve downgrade problems (bug #220689)
+
+*portage-2.2.00.10181 (04 May 2008)
+
+ 04 May 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9831.ebuild, +portage-2.2.00.10181.ebuild:
+ New version that includes fixes for Interix' usernames with spaces in them.
+ Preserve-libs may be wonky (broken).
+
+*portage-2.2.00.9962 (24 Apr 2008)
+
+ 24 Apr 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9583.ebuild, +portage-2.2.00.9962.ebuild:
+ New snapshot, should contain zmedico's new blocker resultion voodoo, we'll see!
+
+ 19 Apr 2008; Fabian Groffen <grobian@gentoo.org>
+ portage-2.2.00.9894.ebuild:
+ Don't do repo check if we don't have svn availble, saves us from an ugly
+ error message during bootstrap.
+
+*portage-2.2.00.9894 (14 Apr 2008)
+
+ 14 Apr 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9869.ebuild, +portage-2.2.00.9894.ebuild:
+ Replace previous snapshot which contains a backtrace on unmerging packages
+ which have preserved-libs
+
+*portage-2.2.00.9869 (13 Apr 2008)
+
+ 13 Apr 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9500.ebuild, +portage-2.2.00.9869.ebuild:
+ New snapshot, with a wannabe workaround for bug #217481
+
+*portage-2.2.00.9831 (11 Apr 2008)
+
+ 11 Apr 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9812.ebuild, +portage-2.2.00.9831.ebuild:
+ New snapshot, fix for backtrace on preserve-libs; getlibpaths
+
+*portage-2.2.00.9812 (10 Apr 2008)
+
+ 10 Apr 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9494.ebuild, +portage-2.2.00.9812.ebuild:
+ New snapshot, includes important fix in chpathtool
+
+*portage-2.2.00.9583 (28 Mar 2008)
+
+ 28 Mar 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9468.ebuild, +portage-2.2.00.9583.ebuild:
+ New snapshot, important fixes for NEEDED recording such that preserve-libs
+ doesn't get all upset
+
+*portage-2.2.00.9500 (24 Mar 2008)
+
+ 24 Mar 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9450.ebuild, +portage-2.2.00.9500.ebuild:
+ New snapshot, with support for preserve-libs functionality for Darwin users,
+ little fixes for others in there
+
+*portage-2.2.00.9494 (20 Mar 2008)
+
+ 20 Mar 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9405.ebuild, +portage-2.2.00.9494.ebuild:
+ New snapshot and ebuild to fix bug #212818, regarding retaining the
+ root-user when updating per ebuild
+
+*portage-2.2.00.9468 (15 Mar 2008)
+
+ 15 Mar 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9380.ebuild, +portage-2.2.00.9468.ebuild:
+ New snapshot, defaulting to parallel fetch
+
+*portage-2.2.00.9450 (07 Mar 2008)
+
+ 07 Mar 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9271.ebuild, +portage-2.2.00.9450.ebuild:
+ New snapshot, hopefully finally releasing us from many duplicate post emerge
+ messages
+
+*portage-2.2.00.9405 (01 Mar 2008)
+
+ 01 Mar 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9233.ebuild, +portage-2.2.00.9405.ebuild:
+ New snapshot, with window titles support for interix.
+
+*portage-2.2.00.9380 (24 Feb 2008)
+
+ 24 Feb 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9376.ebuild, +portage-2.2.00.9380.ebuild:
+ New snapshot which fixes the masked packages output of the previous two
+ masked releases.
+
+*portage-2.2.00.9376 (24 Feb 2008)
+
+ 24 Feb 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9300.ebuild, +portage-2.2.00.9376.ebuild:
+ New snapshot, replacing the older masked one, this one still has the same
+ problem, which I think is bug #209538
+
+*portage-2.2.00.9300 (08 Feb 2008)
+
+ 08 Feb 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9214.ebuild, +portage-2.2.00.9300.ebuild:
+ New snapshot, nothing spectacular
+
+*portage-2.2.00.9271 (01 Feb 2008)
+
+ 01 Feb 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9208.ebuild, +portage-2.2.00.9271.ebuild:
+ New snapshot, experimental NEEDED recording for Darwin, repoman no longer
+ knows manifest1 mode
+
+*portage-2.2.00.9233 (30 Jan 2008)
+
+ 30 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.9233.ebuild:
+ New snapshot with important fix for preserve libs
+
+*portage-2.2.00.9214 (20 Jan 2008)
+
+ 20 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9154.ebuild, -portage-2.2.00.9205.ebuild,
+ +portage-2.2.00.9214.ebuild:
+ Add new snapshot with improved Portage error messages, remove old snapshots
+ that don't force svn repo switches
+
+*portage-2.2.00.9208 (19 Jan 2008)
+
+ 19 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9150.ebuild, +portage-2.2.00.9208.ebuild:
+ Important update, support for svn:// and svn+https:// schemes. This ebuild
+ forces the user to switch from svn+http:// as it scheduled for removal.
+
+*portage-2.2.00.9205 (13 Jan 2008)
+
+ 13 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9139.ebuild, +portage-2.2.00.9205.ebuild:
+ New snapshot
+
+*portage-2.2.00.9154 (07 Jan 2008)
+
+ 07 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9133.ebuild, +portage-2.2.00.9154.ebuild:
+ New snapshot with slight binpkg install fix
+
+*portage-2.2.00.9150 (05 Jan 2008)
+
+ 05 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9063.ebuild, +portage-2.2.00.9150.ebuild:
+ Fixes for binpkg installing, portage env and chpathtool
+
+*portage-2.2.00.9139 (03 Jan 2008)
+
+ 03 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9049.ebuild, +portage-2.2.00.9139.ebuild:
+ New snapshot
+
+*portage-2.2.00.9133 (01 Jan 2008)
+
+ 01 Jan 2008; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9044.ebuild, +portage-2.2.00.9133.ebuild:
+ New snapshot, with fix for OSX applications with relative install_names
+
+*portage-2.2.00.9063 (28 Dec 2007)
+
+ 28 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.9058.ebuild, +portage-2.2.00.9063.ebuild:
+ Last portage had a regression with regard to digest generation. New snapshot
+ with a fix.
+
+*portage-2.2.00.9058 (27 Dec 2007)
+
+ 27 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8872.ebuild, +portage-2.2.00.9058.ebuild:
+ New snapshot with fix for chpathtool generating symlinks with garbage in the
+ target
+
+*portage-2.2.00.9049 (24 Dec 2007)
+
+ 24 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8843.ebuild, +portage-2.2.00.9049.ebuild:
+ New snapshot. Most notably is the new import logic that should cater for
+ Portage loading its own modules.
+
+*portage-2.2.00.9044 (22 Dec 2007)
+
+ 22 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -files/eprefix_dyn_install.patch, -portage-2.2.00.8820.ebuild,
+ -portage-2.2.00.9001-r0.01.ebuild, +portage-2.2.00.9044.ebuild:
+ New snapshot to replace faulty 9001 snapshot
+
+*portage-2.2.00.9001 (20 Dec 2007)
+
+ 20 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.2.00.9001.ebuild:
+ New snapshot
+
+*portage-2.2.00.8872 (08 Dec 2007)
+
+ 08 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8815.ebuild, +portage-2.2.00.8872.ebuild:
+ New snapshot
+
+*portage-2.2.00.8843 (04 Dec 2007)
+
+ 04 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8661.ebuild, +portage-2.2.00.8843.ebuild:
+ A new day, a new bunch of fixes
+
+*portage-2.2.00.8820 (03 Dec 2007)
+
+ 03 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8627.ebuild, +portage-2.2.00.8820.ebuild:
+ Yesterday's mistakes
+
+*portage-2.2.00.8815 (02 Dec 2007)
+
+ 02 Dec 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8592.ebuild, +portage-2.2.00.8815.ebuild:
+ Catch up with zmedico
+
+*portage-2.2.00.8661 (25 Nov 2007)
+
+ 25 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8530.ebuild, +portage-2.2.00.8661.ebuild:
+ New snapshot
+
+*portage-2.2.00.8627 (23 Nov 2007)
+
+ 23 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8523.ebuild, +portage-2.2.00.8627.ebuild:
+ New snapshot that fixes Portage spitting out all kinds of 'cannot unset'
+ scary messages
+
+*portage-2.2.00.8592 (21 Nov 2007)
+
+ 21 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8515.ebuild, +portage-2.2.00.8592.ebuild:
+ New snapshot with fix for bug #199665 which was a regression I introduced
+ when I added binhost == repository eye-candy
+
+*portage-2.2.00.8530 (19 Nov 2007)
+
+ 19 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8470.ebuild, +portage-2.2.00.8530.ebuild:
+ New snapshot
+
+*portage-2.2.00.8523 (18 Nov 2007)
+
+ 18 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8435.ebuild, +portage-2.2.00.8523.ebuild:
+ New snapshot with performance fixes and binary merge fix
+
+*portage-2.2.00.8515 (16 Nov 2007)
+
+ 16 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8510.ebuild, +portage-2.2.00.8515.ebuild:
+ Replace 8510 by 8515 because the former contains a logic bug
+
+*portage-2.2.00.8510 (15 Nov 2007)
+
+ 15 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8508.ebuild, +portage-2.2.00.8510.ebuild:
+ Fix dosym to run dodir for the target if necessary (fixes texlive problem)
+
+*portage-2.2.00.8508 (15 Nov 2007)
+
+ 15 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8400.ebuild, +portage-2.2.00.8508.ebuild:
+ New snapshot, now also installing emaint
+
+*portage-2.2.00.8470 (08 Nov 2007)
+
+ 08 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8459.ebuild, +portage-2.2.00.8470.ebuild:
+ Replace just released snapshot with one that fixes a bug in binpkg handling.
+ Includes quickpg fix to create PKGDIR if it doesn't exist
+
+*portage-2.2.00.8459 (08 Nov 2007)
+
+ 08 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8340.ebuild, +portage-2.2.00.8459.ebuild:
+ New snapshot, added support for eapi identification from the main tree
+
+*portage-2.2.00.8435 (05 Nov 2007)
+
+ 05 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8328.ebuild, +portage-2.2.00.8435.ebuild:
+ New snapshot with hack/fix/workaround for binpkg's Packages file and elibc_*
+ etc USE conditionals, compilation support for Interix
+
+*portage-2.2.00.8400 (03 Nov 2007)
+
+ 03 Nov 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8280.ebuild, +portage-2.2.00.8400.ebuild:
+ New snapshot that hopefully dies when installing files with wrong links on
+ Darwin
+
+*portage-2.2.00.8340 (29 Oct 2007)
+
+ 29 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8299.ebuild, +portage-2.2.00.8340.ebuild:
+ New snapshot, mainly for a Darwin7 compilation fix.
+
+*portage-2.2.00.8328 (27 Oct 2007)
+
+ 27 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8321.ebuild, +portage-2.2.00.8328.ebuild:
+ New snapshot, this snapshot contains a few fixes which makes it usable when
+ configured with --offset-prefix="".
+
+*portage-2.2.00.8321 (27 Oct 2007)
+
+ 27 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8127.ebuild, +portage-2.2.00.8321.ebuild:
+ New snapshot, condensed digest checking for distfiles
+
+*portage-2.2.00.8299 (25 Oct 2007)
+
+ 25 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8228.ebuild, +portage-2.2.00.8299.ebuild:
+ New snapshot, fixes doins problem. I retained 2.2.00.8127 as it is the only
+ one with ~ia64-hpux keyword.
+
+*portage-2.2.00.8280 (24 Oct 2007)
+
+ 24 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8276.ebuild, +portage-2.2.00.8280.ebuild:
+ Replace version by a version of portage I just used to commit the previous
+ portage (with repoman, fixing it untill it worked)
+
+*portage-2.2.00.8276 (24 Oct 2007)
+
+ 24 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8123.ebuild, +portage-2.2.00.8276.ebuild:
+ New snapshot, includes makefile fix, includes a complete cleanup of repoman,
+ so I expect breakage there.
+
+*portage-2.2.00.8227 (22 Oct 2007)
+
+ 22 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8112.ebuild, +portage-2.2.00.8228.ebuild:
+ New snapshot, should now also compile on HPUX
+
+*portage-2.2.00.8127 (15 Oct 2007)
+
+ 15 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8079.ebuild, +portage-2.2.00.8127.ebuild:
+ Fix compilation on Linux
+
+*portage-2.2.00.8123 (14 Oct 2007)
+
+ 14 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.8027.ebuild, +portage-2.2.00.8123.ebuild:
+ New snapshot that gets rid of the usr/share: no such file or directory error
+
+*portage-2.2.00.8110 (13 Oct 2007)
+
+ 13 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7961.ebuild, +portage-2.2.00.8112.ebuild:
+ Essential fixes to emerge binpkgs in prefix right. Solves problem with for
+ example ghc binpkg
+
+*portage-2.2.00.8079 (12 Oct 2007)
+
+ 12 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7903.ebuild, +portage-2.2.00.8079.ebuild:
+ New snapshot, should include some binpkg fixes
+
+*portage-2.2.00.8027 (09 Oct 2007)
+
+ 09 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7791.ebuild, +portage-2.2.00.8027.ebuild:
+ New snapshot. Most important: a fixed repoman
+
+*portage-2.2.00.7961 (05 Oct 2007)
+
+ 05 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7783.ebuild, +portage-2.2.00.7965.ebuild:
+ More EAPI voodoo, some set support (?)
+
+*portage-2.2.00.7903 (02 Oct 2007)
+
+ 02 Oct 2007; Fabian Groffen <grobian@gentoo.org>
+ -files/portage-2.2.00.7889-fix_indentation.prefix,
+ -portage-2.2.00.7889.ebuild, +portage-2.2.00.7903.ebuild:
+ New snapshot which includes the fix pipping checked in yesterday as patch
+
+*portage-2.2.00.7889 (29 Sep 2007)
+
+ 29 Sep 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7724.ebuild, +portage-2.2.00.7889.ebuild:
+ New snapshot with fresh blessings from zmedico
+
+*portage-2.2.00.7791 (18 Sep 2007)
+
+ 18 Sep 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7722.ebuild, +portage-2.2.00.7791.ebuild:
+ New snapshot, with a somewhat cleaned up repoman
+
+*portage-2.2.00.7783 (14 Sep 2007)
+
+ 14 Sep 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7716.ebuild, +portage-2.2.00.7783.ebuild:
+ New snapshot
+
+*portage-2.2.00.7724 (02 Sep 2007)
+
+ 02 Sep 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7698.ebuild, +portage-2.2.00.7724.ebuild:
+ New snapshot, includes install_name check on Darwin, and correction of those
+ where possible
+
+*portage-2.2.00.7722 (01 Sep 2007)
+
+ 01 Sep 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7586.ebuild, -portage-2.2.00.7595.ebuild,
+ +portage-2.2.00.7722.ebuild:
+ Hotfix that makes it really possible to use binary packages from another prefix
+
+*portage-2.2.00.7716 (28 Aug 2007)
+
+ 28 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7708.ebuild, +portage-2.2.00.7716.ebuild:
+ Previous version didn't include a special field in binary packages, this
+ version does.
+
+*portage-2.2.00.7708 (27 Aug 2007)
+
+ 27 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7707.ebuild, +portage-2.2.00.7708.ebuild:
+ New snapshot which has theoretical support for binary packages on different
+ prefixes
+
+*portage-2.2.00.7698 (25 Aug 2007)
+
+ 25 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7571.ebuild, +portage-2.2.00.7698.ebuild:
+ New snapshot, should have some speed improvements brought to you by Zac ;)
+
+*portage-2.2.00.7595 (12 Aug 2007)
+
+ 12 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7563.ebuild, +portage-2.2.00.7595.ebuild:
+ New snapshot, fixing issue where installed files could be removed when
+ upgrading
+
+*portage-2.2.00.7586 (10 Aug 2007)
+
+ 10 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7521.ebuild, +portage-2.2.00.7586.ebuild:
+ New snapshot which solves creating double prefixes
+
+*portage-2.2.00.7571 (04 Aug 2007)
+
+ 04 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7307.ebuild, +portage-2.2.00.7571.ebuild:
+ New snapshot that doesn't leave .ecompress.file files behind when
+ ruby.eclass is in use
+
+*portage-2.2.00.7563 (04 Aug 2007)
+
+ 04 Aug 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7245.ebuild, +portage-2.2.00.7563.ebuild:
+ New portage snapshot, doesn't do useless metadata import after sync, doesn't
+ show repo any more if the ebuild comes from the standard PORTDIR
+
+*portage-2.2.00.7521 (30 Jul 2007)
+
+ 30 Jul 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7209.ebuild, +portage-2.2.00.7521.ebuild:
+ New snapshot, with new goodies!
+
+*portage-2.2.00.7307 (19 Jul 2007)
+
+ 19 Jul 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7130.ebuild, +portage-2.2.00.7307.ebuild:
+ New snapshot
+
+*portage-2.2.00.7245 (13 Jul 2007)
+
+ 13 Jul 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7085.ebuild, +portage-2.2.00.7245.ebuild:
+ New snapshot which solves an issue with emerge -av crashing when PORTDIR
+ contains symlinks.
+
+*portage-2.2.00.7209 (09 Jul 2007)
+
+ 09 Jul 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7037.ebuild, +portage-2.2.00.7209.ebuild:
+ New snapshot, may be dangerous. Synced ebuild logic with the main tree.
+
+*portage-2.2.00.7130 (02 Jul 2007)
+
+ 02 Jul 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.7033.ebuild, +portage-2.2.00.7130.ebuild:
+ New snapshot with revised configure script and user/group management, beware!
+
+*portage-2.2.00.7085 (28 Jun 2007)
+
+ 28 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.6949.ebuild, +portage-2.2.00.7085.ebuild:
+ new snapshot
+
+*portage-2.2.00.7037 (26 Jun 2007)
+
+ 26 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.2.00.6804.ebuild, +portage-2.2.00.7037.ebuild:
+ New snapshot, fixes make.conf.example incorrectnesses
+
+*portage-2.2.00.7033 (25 Jun 2007)
+
+ 25 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.29.6752.ebuild, +portage-2.2.00.7033.ebuild:
+ New snapshot
+
+*portage-2.2.00.6949 (22 Jun 2007)
+
+ 22 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.29.6710.ebuild, +portage-2.2.00.6949.ebuild:
+ New snapshot, many code changes, beware
+
+*portage-2.2.00.6804 (11 Jun 2007)
+
+ 11 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.28.6626.ebuild, +portage-2.2.00.6804.ebuild:
+ New snapshot. Based on version 2.2, including GLEP 42 support.
+
+*portage-2.1.29.6752 (08 Jun 2007)
+
+ 08 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.27.6539.ebuild, +portage-2.1.29.6752.ebuild:
+ New snapshot
+
+*portage-2.1.29.6710 (01 Jun 2007)
+
+ 01 Jun 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.27.6534.ebuild, +portage-2.1.29.6710.ebuild:
+ New snapshot with big cleanups
+
+*portage-2.1.28.6626 (25 May 2007)
+
+ 25 May 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.27.6600.ebuild, +portage-2.1.28.6626.ebuild:
+ New snapshot which fixes pty problems on Solaris
+
+*portage-2.1.27.6600 (23 May 2007)
+
+ 23 May 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.27.6502.ebuild, +portage-2.1.27.6600.ebuild:
+ Many many fixes from trunk, including cPickle fix by Michael Haubenwallner
+
+*portage-2.1.27.6539 (15 May 2007)
+
+ 15 May 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.25.6465.ebuild, +portage-2.1.27.6539.ebuild:
+ New snapshot with a small fix for Interix/Windows
+
+*portage-2.1.27.6534 (13 May 2007)
+
+ 13 May 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.25.6450.ebuild, +portage-2.1.27.6534.ebuild:
+ Fix for outside prefix QA check not aborting the merge, but silently
+ continuing.
+
+*portage-2.1.27.6502 (08 May 2007)
+
+ 08 May 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.23.6400.ebuild, +portage-2.1.27.6502.ebuild:
+ New snapshot, misc fixes
+
+*portage-2.1.25.6464 (01 May 2007)
+
+ 01 May 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.25.6460.ebuild, +portage-2.1.25.6465.ebuild:
+ Add bugfix replacement for 6460, fixes backtrace on invalid digest, crash on
+ elog_summary (touching /var/log/portage), leaving behind of
+ man.ecompress.dir files, repoman dieing during commit in
+ manifest1_obsolete repositories
+
+*portage-2.1.25.6460 (30 Apr 2007)
+
+ 30 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.23.6391.ebuild, +portage-2.1.25.6460.ebuild:
+ New snapshot, now generates portage cache after --sync
+
+*portage-2.1.25.6450 (28 Apr 2007)
+
+ 28 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.23.6370.ebuild, +portage-2.1.25.6450.ebuild:
+ New snapshot, two leap jumps forward
+
+*portage-2.1.23.6400 (14 Apr 2007)
+
+ 14 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.23.6338.ebuild, +portage-2.1.23.6400.ebuild:
+ New snapshot, fix for Solaris configure issue, fix for improper handling of
+ files/paths with spaces
+
+*portage-2.1.23.6391 (13 Apr 2007)
+
+ 13 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.23.6381.ebuild, +portage-2.1.23.6391.ebuild:
+ New snapshot, fixes issues with newexe, doexe, that 6381 seemed to have
+ introduced.
+
+*portage-2.1.23.6381 (12 Apr 2007)
+
+ 12 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6320.ebuild, +portage-2.1.23.6381.ebuild:
+ New snapshot that uses deb2targz for AIX users
+
+*portage-2.1.23.6370 (10 Apr 2007)
+
+ 10 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6250.ebuild, +portage-2.1.23.6370.ebuild:
+ New snapshot, fixes dispatch-conf
+
+*portage-2.1.23.6336 (05 Apr 2007)
+
+ 05 Apr 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6248.ebuild, +portage-2.1.23.6338.ebuild:
+ New snapshot with IRIX support, and interrevision handling bugfix
+
+*portage-2.1.22.6320 (28 Mar 2007)
+
+ 28 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6239.ebuild, +portage-2.1.22.6320.ebuild:
+ New snapshot, misc fixes, improvements and more
+
+*portage-2.1.22.6250 (20 Mar 2007)
+
+ 20 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6209.ebuild, +portage-2.1.22.6250.ebuild:
+ New snapshot that allows emerge --config to work in prefix
+
+*portage-2.1.22.6248 (18 Mar 2007)
+
+ 18 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6245.ebuild, +portage-2.1.22.6248.ebuild:
+ New snapshot, fixing fowners and fperms behaviour
+
+*portage-2.1.22.6245 (18 Mar 2007)
+
+ 18 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.22.6243.ebuild, +portage-2.1.22.6245.ebuild:
+ New snapshot, fix fperms and fowners to work again
+
+*portage-2.1.22.6243 (18 Mar 2007)
+
+ 18 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6185.ebuild, -portage-2.1.22.6204.ebuild,
+ +portage-2.1.22.6243.ebuild:
+ New snapshot which fixes a collision-protect endless-recursion bug on
+ circular symlinks, patch thanks to Tobias Hahn
+
+*portage-2.1.22.6239 (17 Mar 2007)
+
+ 17 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.1.22.6239.ebuild:
+ New snapshot, with repoman QuickCommit(tm) feature
+
+*portage-2.1.22.6209 (15 Mar 2007)
+
+ 15 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6173.ebuild, +portage-2.1.22.6209.ebuild:
+ New snapshot with fixed config-protect functionality
+
+*portage-2.1.22.6204 (11 Mar 2007)
+
+ 11 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6152.ebuild, +portage-2.1.22.6204.ebuild:
+ Add new snapshot, fixes bug in quickpgk
+
+*portage-2.1.20.6185 (06 Mar 2007)
+
+ 06 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6132.ebuild, +portage-2.1.20.6185.ebuild:
+ New snapshot, most important: a fix for repoman when used in locales other
+ than C
+
+*portage-2.1.20.6173 (04 Mar 2007)
+
+ 04 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6097.ebuild, +portage-2.1.20.6173.ebuild:
+ New revision, fixes from upstream for prefix, fix for double-D check in prefix
+
+*portage-2.1.20.6152 (03 Mar 2007)
+
+ 03 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6151.ebuild, +portage-2.1.20.6152.ebuild:
+ Fix a bug for users not having a gentoo patched portage, making them unable
+ to run emerge
+
+*portage-2.1.20.6151 (03 Mar 2007)
+
+ 03 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.6085.ebuild, +portage-2.1.20.6151.ebuild:
+ New bump, mainly fixes. Added support for AIX.
+
+*portage-2.1.20.6132 (02 Mar 2007)
+
+ 02 Mar 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5937.ebuild, +portage-2.1.20.6132.ebuild:
+ New release, mainly bugfixes
+
+*portage-2.1.20.6097 (27 Feb 2007)
+
+ 27 Feb 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5894.ebuild, +portage-2.1.20.6097.ebuild:
+ Fixes for backtraces reported on the gentoo-alt mailing list, added QA check
+ on Darwin for .so and .dylib files
+
+*portage-2.1.20.6085 (26 Feb 2007)
+
+ 26 Feb 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5886.ebuild, +portage-2.1.20.6085.ebuild:
+ New version with lots of upstream changes. Note: this portage includes
+ support for deprecation of Manifest1 which will soon be used, so update ASAP
+
+*portage-2.1.20.5937 (10 Feb 2007)
+
+ 10 Feb 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5839.ebuild, +portage-2.1.20.5937.ebuild:
+ New snapshot with new configure logic that should fix some bugs, and
+ probably introduces some new ones
+
+*portage-2.1.20.5894 (05 Feb 2007)
+
+ 05 Feb 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5820.ebuild, +portage-2.1.20.5894.ebuild:
+ New snapshot with fix for emerge -s being broken
+
+*portage-2.1.20.5886 (03 Feb 2007)
+
+ 03 Feb 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5758.ebuild, +portage-2.1.20.5886.ebuild:
+ New snapshot, with fix for emerge --metadata erroring out
+
+*portage-2.1.20.5839 (30 Jan 2007)
+
+ 30 Jan 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5732.ebuild, +portage-2.1.20.5839.ebuild:
+ Misc fixes to avoid python backtraces
+
+*portage-2.1.20.5819 (28 Jan 2007)
+
+ 28 Jan 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5501.ebuild, +portage-2.1.20.5820.ebuild:
+ New snapshot with new and improved *cough* package structure. Might result
+ in some pythonic errors.
+
+*portage-2.1.20.5732 (19 Jan 2007)
+
+ 19 Jan 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5447.ebuild, +portage-2.1.20.5732.ebuild:
+ New snapshot with glep 42 (news items) support
+
+*portage-2.1.20.5501 (09 Jan 2007)
+
+ 09 Jan 2007; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5400.ebuild, +portage-2.1.20.5501.ebuild:
+ New snapshot
+
+*portage-2.1.20.5476 (06 Jan 2007)
+
+ 06 Jan 2007; Fabian Groffen <grobian@gentoo.org>
+ +portage-2.1.20.5476.ebuild:
+ New snapshot
+
+ 02 Jan 2007; Fabian Groffen <grobian@gentoo.org> ChangeLog:
+ New snapshot, doesn't install sed wrapper in usr/bin any more
+
+*portage-2.1.20.5400 (27 Dec 2006)
+
+ 27 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5377.ebuild, -portage-2.1.20.5380.ebuild,
+ -portage-2.1.20.5396.ebuild, +portage-2.1.20.5400.ebuild:
+ New snapshot, add back --with-default-path again, which seems to have been
+ dropped by accident.
+
+*portage-2.1.20.5396 (26 Dec 2006)
+
+ 26 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5336.ebuild, +portage-2.1.20.5396.ebuild:
+ New snapshot with fix in emerge --sync code
+
+*portage-2.1.20.5380 (24 Dec 2006)
+
+ 24 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5320.ebuild, +portage-2.1.20.5380.ebuild:
+ Cosmetic fixes in emerge --info output
+
+*portage-2.1.20.5377 (24 Dec 2006)
+
+ 24 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5376.ebuild, +portage-2.1.20.5377.ebuild:
+ Fix for repoman not accepting inter-revision ebuilds
+
+*portage-2.1.20.5376 (24 Dec 2006)
+
+ 24 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5284.ebuild, +portage-2.1.20.5376.ebuild:
+ New snapshot with fixes/cleanup from the main trunk. Includes special prefix
+ inter-revision version support
+
+*portage-2.1.20.5336 (20 Dec 2006)
+
+ 20 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5261.ebuild, +portage-2.1.20.5336.ebuild:
+ New snapshot with fix for a bug which caused weird python behaviour
+ introduced in 5320
+
+*portage-2.1.20.5320 (18 Dec 2006)
+
+ 18 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5226.ebuild, +portage-2.1.20.5320.ebuild:
+ New snapshot, mainly performance improvements
+
+*portage-2.1.20.5284 (13 Dec 2006)
+
+ 13 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5188.ebuild, +portage-2.1.20.5284.ebuild:
+ New snapshot
+
+*portage-2.1.20.5261 (10 Dec 2006)
+
+ 10 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5172.ebuild, +portage-2.1.20.5261.ebuild:
+ New snapshort, cleanup and optimisation stuff from trunk
+
+*portage-2.1.20.5226 (08 Dec 2006)
+
+ 08 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5165.ebuild, +portage-2.1.20.5226.ebuild:
+ New snapshot, with possible performance improvements from the trunk
+
+*portage-2.1.20.5188 (06 Dec 2006)
+
+ 06 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5145.ebuild, +portage-2.1.20.5188.ebuild:
+ New snapshot, fix for DEFAULT_PATH screwup, fix for XCU_ID check to look in
+ prefix first, repoman identification clearification.
+
+*portage-2.1.20.5172 (04 Dec 2006)
+
+ 04 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5138.ebuild, +portage-2.1.20.5172.ebuild:
+ New snapshot, fixes emerge --sync in SVN mode
+
+*portage-2.1.20.5165 (03 Dec 2006)
+
+ 03 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5162.ebuild, +portage-2.1.20.5165.ebuild:
+ New snapshot with fix for portage not informing about files that need
+ updating after emerging.
+
+*portage-2.1.20.5162 (03 Dec 2006)
+
+ 03 Dec 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5132.ebuild, +portage-2.1.20.5162.ebuild:
+ New snapshot, more strictness on Manifests
+
+*portage-2.1.20.5145 (29 Nov 2006)
+
+ 29 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5141.ebuild, +portage-2.1.20.5145.ebuild:
+ New snapshot, portage's binpath is now added to DEFAULT_PATH by portage itself
+
+*portage-2.1.20.5141 (29 Nov 2006)
+
+ 29 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5139.ebuild, +portage-2.1.20.5141.ebuild:
+ Remove faulty version, new version with fix for a correct DEFAULT_PATH
+
+*portage-2.1.20.5140 (29 Nov 2006)
+
+ 29 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5139.ebuild, +portage-2.1.20.5140.ebuild:
+ Default path didn't include portage's own bins, fixed now
+
+*portage-2.1.20.5139 (29 Nov 2006)
+
+ 29 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5120.ebuild, +portage-2.1.20.5139.ebuild:
+ New snapshot, including a DEFAULT_PATH order fix.
+
+*portage-2.1.20.5138 (26 Nov 2006)
+
+ 26 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5090.ebuild, +portage-2.1.20.5138.ebuild:
+ New snapshot, contains some important etc-update related fixes
+
+*portage-2.1.20.5132 (26 Nov 2006)
+
+ 26 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5077.ebuild, +portage-2.1.20.5132.ebuild:
+ New snapshot
+
+*portage-2.1.20.5120 (22 Nov 2006)
+
+ 22 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5060.ebuild, +portage-2.1.20.5120.ebuild:
+ New snapshot. Includes a fix for repoman not seeing added digests.
+
+*portage-2.1.20.5090 (19 Nov 2006)
+
+ 19 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5020.ebuild, +portage-2.1.20.5090.ebuild:
+ Fix for repoman's SVN support. It now properly detects added ebuilds.
+
+*portage-2.1.20.5089 (19 Nov 2006)
+
+ 19 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5020.ebuild, +portage-2.1.20.5089.ebuild:
+ New snapshot, most particular, all traces of ACCEPT_LICENSE support have
+ been removed again
+
+*portage-2.1.20.5077 (17 Nov 2006)
+
+ 17 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.5016.ebuild, +portage-2.1.20.5077.ebuild:
+ New snapshot, mainly with fixes for portage niceness, and (new style)
+ virtuals
+
+*portage-2.1.20.5060 (16 Nov 2006)
+
+ 16 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.4986.ebuild, +portage-2.1.20.5060.ebuild:
+ New snapshot. Includes prefix patch for repoman not honouring the
+ portage group given during configure call.
+
+*portage-2.1.20.5020 (12 Nov 2006)
+
+ 12 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.4965.ebuild, +portage-2.1.20.5020.ebuild:
+ New snapshot that includes a SVN aware repoman. The initial work was
+ done by Kito, I just finished the job.
+
+*portage-2.1.20.5016 (12 Nov 2006)
+
+ 12 Nov 2006; Fabian Groffen <grobian@gentoo.org>
+ -portage-2.1.20.4942.ebuild, +portage-2.1.20.5016.ebuild:
+ New snapshot from main-line, plus additional SVN support, such that
+ `emerge --sync` now also works with our SVN tree.
+
+ 16 Oct 2006; Fabian Groffen <grobian@gentoo.org> ChangeLog:
+ New release 4721 which is based on a complete merge of the trunk code.
+
+ 11 Oct 2006; Fabian Groffen <grobian@gentoo.org> ChangeLog:
+ Since the bootstrap script now uses 4497, removed 4415. Bumped 4497
+ to -r6, to include root_slash patch, such that original ebuilds and
+ eclasses work without modifying ${ROOT} handling.
+
+ 08 Oct 2006; Fabian Groffen <grobian@gentoo.org> ChangeLog:
+ Rewrote QA patch from Matt, to actually work and die on double prefixed
+ files. Added QA check for files installed outside the prefix, which also
+ dies if it finds files. Bumping to -r5 to force everyone using the
+ new QA checks for better feedback on problem packages in the tree.
diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest
new file mode 100644
index 0000000..8005081
--- /dev/null
+++ b/sys-apps/portage/Manifest
@@ -0,0 +1,26 @@
+AUX 05portage.envd 58 SHA256 3caa7956606d288cffaca28d4016c5f75e24ff55307d9d8c1c889f2dba67da06 SHA512 a6e314b21e4d2e640eeefb8caf7e89540aac404dafe70895e7dcfd59b4832d82a9e9ebee9c3efe0406a614cde0c78dc39a2fd17f6ef98b5ad701b8fad14a97bc WHIRLPOOL a480018676c8d568323220536843671bef657a1f457cc3d185e478fa7941ab7836d9bca073a503bc3eecef0d34c2a1324718645721661100223423839ebc3313
+AUX portage-2.2.00.15801-prefix-chaining.patch 27681 SHA256 f9484fa6c899bd023c80888b961392639c7ce6b1662f37b89da22d7a2b84f354 SHA512 578526c1e4d5f4f514b9f289b00b954392ac3aabad7da6fcb89d9881f5b8210a8145d4aa03c3c8f6532ec146f7167330c83e8914404315d586fd16fe9ebc37bd WHIRLPOOL 682d08421e4186f14b9307fe269d8fd7441693547171e3c74385fb7e1ebd55c3d6fe2bb774934c306581655148f2d0c9a919de1657a2761cde0f7a6fbbf1c7c0
+AUX portage-2.2.01.18213-ebuildshell.patch 3216 SHA256 3b84dc57b27a3b4e88c93919a9188d9747957bd1d9ea57f12cf9ba2af7bc171e SHA512 bb016e8e909fed75c1ac18b263d6202001851dc186cfd3550eeae0e12116083435a8f097b72112920d98f8841287e22494dc0dbd0ed97fcf50aa98c2e44007dd WHIRLPOOL acc323f6f048ab991c12e8b9a6702ea10d9d62bb58d64204ccee55dc6f068209f9a373a17f8aab270f1c8e5a55acf32f0496cdb86610de5ffcc56e584b96b30d
+AUX portage-2.2.01.18826-aix-preservelibs.patch 1188 SHA256 663221d2b16604d2dff922ef6126e3589d0ab070aa45b06bc60141be3518e8ff SHA512 cf39861eb914605321c4e5491113d109b0426bd3a20024aabc9bcfcb32c84b6959e203277af685d9b3377f9f126c2db03da5acd65f77ed900a665eeedb42f338 WHIRLPOOL 47f2ae377f9dc6027c4a4d69e9ebd27472f6271017f37e38614ffb395e67c82344e07165136b8aab2480bc0a08b1a10ef0dfad63e8e5a213b2028db3a6b5f0ec
+AUX portage-2.2.01.18980-ebuildshell.patch 3196 SHA256 f6afb0dade46de4f6ddd263b7ed73a7f48580315e88802008ed6b2bfae054dcf SHA512 658acd8a6252ce1e28c87888b3503d4d5bb3f0461e34dde59c99b0887f06a0ff76d7ddd80ce87ead980229ec02f2596f0e4226694591cd43bf6d1549ec77de1f WHIRLPOOL 316aa7cd283f4f9f32b1c8dc00180dee4587b287c724af8b7ffff9926784d7e18d507bb24ec6d8a9ffe0a1c8441cff8c3cd6c80b3e0645f568293325e0465cd4
+AUX portage-2.2.01.19247-aix-preserve-libs.patch 6502 SHA256 c8f1ac40f9adffeee7158650d9b9c79bb27a0b52694471308df853d4ed1cd197 SHA512 d3de61418db143885771fca0bf3aadb7a1767cf5ccde2333f6948d35392fd4548976e7483c9b9fc865fbf2d672169581fbf9f687ac24d19083910c2cd3a8e059 WHIRLPOOL 66196536936c3bf1b3c8927b2569060913d2947e30e23b04af9ad3b9608b6d7894bcfb97f657a145bc3cc765dbbfca8913ef95a6fd74944d89f15249aa10215b
+AUX portage-2.2.01.19247-ebuildshell.patch 3296 SHA256 8cee3ddf8f4b03e9440407ecd414b31b072f76a26c7f01c7798fc9072004ea1b SHA512 4b3399576f10d2eee5e3f560eba2fb7003dc7a94bc45f2f5a83629511a39398abef50c86793848f08998982466369ce56d89911dd6ee878d02f2e07e71e77b4e WHIRLPOOL 65668006e8c7c0e7241ef76dc2728803a2723c18217fd8a99ff98ce2c59a99e755e43a4031757a5a7e48a2b54be8f531089ea82c28a4a26fc4ba86112bc8e664
+AUX portage-2.2.01.19981-ebuildshell.patch 3304 SHA256 2b7f313afe62815b791835da8cdfc3991732712cbdf4c7d4ac7f4e9a310b9ed0 SHA512 782598093305b4d51c32af5f79a1f512f6a42162fa8e37e02758bb0c742ff32ac712969e20f5042e04e14a7e919c644d4ad53638ff6d865551f1b15b6dd47b82 WHIRLPOOL 2103b1f02de4dd288f441e486fb36f98c8348135961e12e3ce0f113ca370a39c8aee2d14d5a7c149d48c3ed9c9b6a940a8f7faf4e5fb446c53f243d1eddf61bc
+AUX portage-2.2.01.20020-ebuildshell.patch 4736 SHA256 92f91c788e3591fb71f55b7a04df8bd0baee767e2561649182bf1b814a0451a8 SHA512 785059ad71e1d9172338926df22883bf70560c3f22f84da74aa21b872b52c9dd05ca61fe8bb786a2da7e4756ae3568f35ca6d7a6ec22b9be419efab6529b8f52 WHIRLPOOL 63ba30a2fa005cca2a6866178938e4ce83bed8ca3a5cbc9bcbcffc888ef4561c27d45f29707db26574c96b8a0c0ed565a0224d64bed8191a1179ae6ace325904
+AUX portage-2.2.01.20239-ebuildshell.patch 5292 SHA256 602efac969b76b33e46f927bb6d5ddaff837f2d69dba446c05116fd6e9d6aaf9 SHA512 9f79c62482cacfe4d52d9b7a42969c5090ec1dd6c55ac67ac0697fa3261d00d437e32a46987d242d3380b459d1af2cdfdacec5d72b7aa905146bbf5759158bdf WHIRLPOOL 2ee6f82ec9dc8c44704c1badeafa207656dac9ce49443616b4ebfd402e872c71434e049f4436ed04009e633a00b4863dd35e79a80ba4e710ac1af6579a9decdf
+AUX portage-2.2.10.1-case-insensitive-fs.patch 13475 SHA256 e9ca3560b580e1df7bdf7424c76b5bf022c4189ed6ae51370f88895d5c00031d SHA512 6c7b4cba0827d0b29f1be1fc6fb42b1703f373f6825be14f43506921e71075b6967191cf79e4e659c0f37c96de6cbdbdc1e04cd0e668a563a4a3c3be9e97f773 WHIRLPOOL 839ebc4214add69531f9f8a387ed155006c77c396031a116a6b79814a09e6591d5e8905e8398541ca213e60aacd0265e2f941858bbfcc3551a2ff5768a87f432
+AUX portage-2.2.14-ldconfig.patch 1139 SHA256 3ccf2649dd76a1093aec62479da57bd53f3e2a4995bec5bd312149aa78ecff9b SHA512 c94602e611edc8363abc0c904ac9b12fb5d19bc3d80a6cfda5d4aef70c936b77eb376bf0c63cb21b4e6fce14c113f6be1ae9950705b3f6e9d35fba766a35e147 WHIRLPOOL 02128e5ddde6969450fb17da55e335f2d64423d73864b98806092db8e669d290f56e57b3e166df7909408729068c9637f72ea97b418958203f35efc87e5d8cae
+AUX portage-2.2.7-ebuildshell.patch 6030 SHA256 c654f5e0b60a4a930ec973b306246d9e920d89b7536bda56c72f38d1ed56445d SHA512 c4bfa44be5d706a9206fcab884e3ad7b0530ec315f9b824fd77f06ff5482414af3e3aaadbc059a49712b2a2e203320f367e2d8c64bf1fceb78495d940fd3fd2a WHIRLPOOL a468e4d5b5d1c493415188c500ea04388e34bc5e5f5a03d61ea5aea8d5b029e2a4426c52471729345a4293eb7c9b747948f75b64982452d96a920a3ac5e528e6
+AUX portage-2.2.7-macho-relative-install_names.patch 2811 SHA256 de767ffb6d29625ca9ba0f33765a59a55bbdf2f3b2c1d9989a73a474ae55c388 SHA512 8555d04e4fc361c500d6c18c30f54f178164477f6c1fbb5fd30d5f89671f95915243e92b655e4264f748c2f29f0cf3e7a5fe439316cc6faebc752172557f0a89 WHIRLPOOL f5f92a762e7455dddfa2ffe3ba27c78ec1533c40920acc96a5e65d89ea93f7657f8bf7771e805d7d62c6f60944dccde72de3f34cee1d14c7db667b27cdd76d55
+AUX portage-2.2.7-sandbox.patch 723 SHA256 b6b941659a4cdbdafc65bf9977d7a92255b553c49e8f445862dcb00567906fec SHA512 fcf4bc7826bab92b1847dcecaf5def212b4eecdb4ac87b10b0668ea470d5836f3d68eb4ccf61345b39f9265c7f31ef3562de58b2ee4bb3096a71c0567343d810 WHIRLPOOL 3699c7a2a0e6229d337760d07ce40e45b949614518ae292d74ca4297d3e9e5f3eb5edeb7f59c8821a6bfcf981cf1363f4f3d03c16af533276f577b1ff3d8c264
+AUX portage-2.2.7-shebang-fixes.patch 5159 SHA256 726bec5b4be8906b58cad7729e4a9697a6a5270181809aa69412e07e3630656b SHA512 79ab1ddfea57e11c7a21fd8c685b5bc9ab668d1816c994eb2a2f2dbc7680c898fcc79286f760f927bc8e5188af99b66ff6ca5fe6d4cb55880ef5f48dae100964 WHIRLPOOL 3c39362990eb86c5319c13f4abad3bf2cff55c1be61583c4ec9a8a452fee0de3cce6d4b7f3b000c255225403e1c17f7a0d7cbf36a3797e9e8d6ea7313db9e47a
+AUX portage-2.2.8-ebuildshell.patch 5417 SHA256 e3160c33568155727f2243f49b92f455c134f583e8eb95e4d0727237f0948bc2 SHA512 6de4e9ce0304577740144db6eb395b223cf28cb4ecd02418fb06a90385062859f3f04eb94ecb4c4f059e47cb1cf0234977cc12f2228b0dffb5937e84d53d2471 WHIRLPOOL 4e54834681cd0af7747fa50c68395fd336bb85a6f38323c97cd0cadbfc1d84ac9cb2f85c7a02af155b29e5f430e14877ccd2d8b7b83e9cfa7354b41ca788a869
+DIST prefix-portage-2.2.10.1.tar.bz2 1116228 SHA256 c0b3960b466098dc1913890e6aacc6b64e0f1bb97fbf18c96ab2f648a6daa1e9 SHA512 4d824119707936b6c73ec90a4dff8916a59d0d339e94dddbb9d0b241b550e1a982b475ca8708badf413aaca0aceab2b37f7dfeb62fa90eef7e27c91e41a61cec WHIRLPOOL 9910b2486c513d5b61a8985acf7318d6801d2b425bb3e79759c1d7e692762b02f8489275bb9d361fe5be01e8847cbc540d9dd157afa7a27bbfa9aec9f5834bc5
+DIST prefix-portage-2.2.14.tar.bz2 1133962 SHA256 5e7aa542f99fbad1bd371d9e6b5ba5ebaeb8b613a8730dd8966a1be5c9dabf72 SHA512 a107f603139c484caef11eade196876679a79c3800cce1aac58e958aff62a28df734e30d0e66b2f14f4622c6111106610e7527d59ed7677ced2c475f17768ea1 WHIRLPOOL bb857797d0db06e7dead010346887be36ed066979298efba3598361aca06df3cb19a5da924fae65a0ace7a6ad25b9d59d757e058d0c97036a10fb43ac2698b33
+DIST prefix-portage-2.2.8.tar.bz2 1104086 SHA256 cb9a1802be6e66c104316f7860c9e0d5cd78799d0d1e9964ac1a0df7d9e2ee0e SHA512 803adbfa17b6b05b84c727189208fb745435adee746751f51b6af364be7ef8ff7b0536cbc48551143965b246a2adfc8be3ffb0377a47451e1f4a524b991f272f WHIRLPOOL 8d4716ce2af9ade202249e50ce9bbd5df32455415a0b640000522e877ba912724e91e719881b768d99b5c9b2eb15a40374a8242df5b67f31bd1804f2e7288de6
+EBUILD portage-2.2.10.1-r1.ebuild 19901 SHA256 cb018131657d9eb8867f8a46345ae6085f9f6356b1d4a58dbc3c14803b9631c3 SHA512 73fb6daade66027bbedaf7d4a4092c2203e1355ec8b7131c5f0d72836ee763c88af948de38a2cd6d4047218d81825c0ce07c4cd838600519c6c26332b7dc81ff WHIRLPOOL 1794d599c414a04c0e081313d2cc5d7d1551b2ddd0646fde8fb3c6ab6fbf50ddedb5fbc62e31fc8f2e17f2f23481fedf55974eae67f7a5d5e9d0757be879a7c7
+EBUILD portage-2.2.10.1.ebuild 19700 SHA256 e71efa93de48797000bc015b9a9854ecba2d803d0c1f3eb85fe44ff39429a7b1 SHA512 ed65c5f5c481f26d92214e0f5b1d943fbd04e81e5319c8ef99d424ac296efc5d2da8ab5b93376b7c2fbe4f6cc8fc283fb17f46b4186cad31dd3fe303b62d3f37 WHIRLPOOL 3e6bc1a8b229bb815e5ef6a008f4d1c5c3f871dbd418fecfa48460aa0c2ccaab145a766bc02d7b57e0c4f27a6b4401093ad3114d2fe2b9eb1b19615113cbc8ef
+EBUILD portage-2.2.14.ebuild 19599 SHA256 69a1150530585dad83dd7c9d022db6fe2c0dab6bb5c518afbf569f857e8787ac SHA512 b831085854abc9d3f668d33215ea46b5eb6565051742e2156d8f70f1e9bf4965e949200bddb38bde76b280b47f166256c7b463766fadecb140c756736ad1fbe9 WHIRLPOOL 048272ca135ed7ad2382c54553f29669b22a46063f9b7b97d6cf3a0b6bbd669b2121d9b7849890b6731a5753c35a50bce580ab8266591a4ed516575a1fc1eb9e
+EBUILD portage-2.2.8.ebuild 19617 SHA256 49933ae1bb31cce87940e5aa0479aee04a458cb859bdb5009554e26994e77211 SHA512 24705ca09b375dd1350fe95974318fd39cf3760a8316ebcef331adab77a92068d4858143da3aba1b31b4b5259c804ad74a6c17765003df12ca4af7ad44efc28e WHIRLPOOL 218b7a88e9ef1d93dfd61c2903f27fd2a82fddb0eade185f90af5b6d978c45d48af5d307d7c3eead7dcde574558862b9dd6e30201ce1c3c33cf62fd4cb1d1d1d
+MISC ChangeLog 96567 SHA256 5b1873573b98ebe0b9fba668b3cf51eb42f7c710c6cae5de2832079abcb1a375 SHA512 310340f91090972d9a6751e5cb03d0b2e75907b97df3d1ce8ed7e53458b1aed386275441ee5b21efc579e9b7bfc4558173b87b8bc85d4a6ad1886a36545b5497 WHIRLPOOL d8e8722250edcab4f4c2b8065ea46e4fd55dfa38de5d116897caa43e8b1edca3d5e411e9051210001554424895e7c01b28b65a2e6a8b6164efe949d2feb5ef3f
+MISC metadata.xml 570 SHA256 caa1a631e6fe0d42012260b948ab80a89ca449ec33f911c22bdaa84f1ff5e95a SHA512 8b7232056c81963d3ea91d718ba95c253731a9c4f827414e13e94b4c0cab1d4d013481bf2f90c3b9d381fc1c6e31a9b81958da5d652d40f5040a8575014d67ee WHIRLPOOL b2a448ff69a9b29d71afbe731cb058e3ed28e11929dc6ea2d74f9f894d1c41241dac81814e0124d17fa048118d12d304d224bca5484edd66a3f5e2a547d05b31
diff --git a/sys-apps/portage/files/05portage.envd b/sys-apps/portage/files/05portage.envd
new file mode 100644
index 0000000..ec94905
--- /dev/null
+++ b/sys-apps/portage/files/05portage.envd
@@ -0,0 +1 @@
+PYTHONPATH="@GENTOO_PORTAGE_EPREFIX@/usr/lib/portage/pym"
diff --git a/sys-apps/portage/files/portage-2.2.00.15801-prefix-chaining.patch b/sys-apps/portage/files/portage-2.2.00.15801-prefix-chaining.patch
new file mode 100644
index 0000000..01e5934
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.00.15801-prefix-chaining.patch
@@ -0,0 +1,693 @@
+diff -ru prefix-portage-2.2.00.15801.orig/bin/ebuild.sh prefix-portage-2.2.00.15801/bin/ebuild.sh
+--- prefix-portage-2.2.00.15801.orig/bin/ebuild.sh 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/bin/ebuild.sh 2010-03-11 10:38:21 +0100
+@@ -123,6 +123,83 @@
+ # Unset some variables that break things.
+ unset GZIP BZIP BZIP2 CDPATH GREP_OPTIONS GREP_COLOR GLOBIGNORE
+
++if [[ -n "${PORTAGE_READONLY_EPREFIXES}" ]]; then
++ new_PATH=${PATH}
++
++ prefixes="${PORTAGE_READONLY_EPREFIXES}:${EPREFIX}"
++
++ # build up a PATH for the current environment. the path has to
++ # contain all the paths the start with $EPREFIX _first_, and
++ # after that, all the others. We have to re-order the new_PATH,
++ # so that EPREFIX paths move to the front. after that, the paths
++ # of all parent prefixes are added, and finally, after that, the
++ # paths not containing any prefix are added.
++
++ save_IFS=$IFS
++ IFS=':'
++ pth_pfx=
++ pth_nopfx=
++ for pth in ${new_PATH}; do
++ IFS=$save_IFS
++ if [[ "${pth#${EPREFIX}}" == "${pth}" ]]; then
++ [[ ":${pth_nopfx}:" == *":${pth}:"* ]] && continue
++ if [[ -z "${pth_nopfx}" ]]; then
++ pth_nopfx="${pth}"
++ else
++ pth_nopfx="${pth_nopfx}:${pth}"
++ fi
++ else
++ [[ ":${pth_pfx}:" == *":${pth}:"* ]] && continue
++ if [[ -z "${pth_pfx}" ]]; then
++ pth_pfx="${pth}"
++ else
++ pth_pfx="${pth_pfx}:${pth}"
++ fi
++ fi
++ done
++ IFS=$save_IFS
++
++ new_PATH=
++
++ save_IFS=$IFS
++ IFS=':'
++ for eroot in ${prefixes}; do
++ IFS=$save_IFS
++ if [[ -f ${eroot}/usr/share/portage/config/make.globals ]]; then
++ # ok, there is a portage instance installed in this prefix,
++ # so we can ask (politely) for the DEFAULT_PATH of it :)
++
++ defpath="$(. ${eroot}/etc/make.globals && echo $DEFAULT_PATH)"
++ okpath=
++ save_IFS2=$IFS
++ IFS=':'
++ for p in $defpath; do
++ IFS=$save_IFS2
++ # we have that one already...
++ [[ ":${new_PATH}:" == *":$p:"* ]] && continue
++ # we skip paths, that are outside our prefix ...
++ [[ "${p#${eroot}}" == "${p}" ]] && continue
++ if [[ -z "${okpath}" ]]; then
++ okpath="${p}"
++ else
++ okpath="${okpath}:${p}"
++ fi
++ done
++ IFS=$save_IFS2
++
++ new_PATH="${okpath}:${new_PATH}"
++ else
++ # no portage installed in this prefix. this means we have to
++ # somehow fiddle together a sane path for that prefix for at
++ # least the standard things to work.
++ new_PATH="${eroot}/usr/bin:${eroot}/usr/sbin:${eroot}/bin:${eroot}/sbin:${new_PATH}"
++ fi
++ done
++ IFS=$save_IFS
++
++ export PATH=${pth_pfx}:$new_PATH:${pth_nopfx}
++fi
++
+ source "${PORTAGE_BIN_PATH}/isolated-functions.sh" &>/dev/null
+
+ [[ $PORTAGE_QUIET != "" ]] && export PORTAGE_QUIET
+@@ -1988,7 +2065,11 @@
+
+ #PATH=$_ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin${ROOTPATH:+:}$ROOTPATH
+ # PREFIX: same notes apply as at the top of this file
+- PATH="$_ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}${ROOTPATH:+:}$ROOTPATH${EXTRA_PATH:+:}${EXTRA_PATH}"
++ #PATH="$_ebuild_helpers_path:$PREROOTPATH${PREROOTPATH:+:}${DEFAULT_PATH}${ROOTPATH:+:}$ROOTPATH${EXTRA_PATH:+:}${EXTRA_PATH}"
++ # PREFIX (with CHAINING!): why the heck not simply pre-pend the paths? hell,
++ # this shot down prefix-chaining, and made me search a while...
++ # PATH has been set up at the top of the file already.
++ PATH="${ebuild_helpers_path}:${PATH}"
+ unset _ebuild_helpers_path
+
+ if hasq distcc $FEATURES ; then
+diff -ru prefix-portage-2.2.00.15801.orig/pym/_emerge/actions.py prefix-portage-2.2.00.15801/pym/_emerge/actions.py
+--- prefix-portage-2.2.00.15801.orig/pym/_emerge/actions.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/_emerge/actions.py 2010-03-11 10:38:21 +0100
+@@ -1783,8 +1783,9 @@
+ "control (contains %s).\n!!! Aborting rsync sync.\n") % \
+ (myportdir, vcs_dir), level=logging.ERROR, noiselevel=-1)
+ return 1
+- if not os.path.exists(EPREFIX + "/usr/bin/rsync"):
+- print("!!! " + EPREFIX + "/usr/bin/rsync does not exist, so rsync support is disabled.")
++ rsync_bin = portage.readonly_pathmatch_any(settings, "/usr/bin/rsync")
++ if not os.path.exists(rsync_bin):
++ print("!!! rsync binary does not exist, so rsync support is disabled.")
+ print("!!! Type \"emerge net-misc/rsync\" to enable rsync support.")
+ sys.exit(1)
+ mytimeout=180
+@@ -1957,7 +1958,7 @@
+ if mytimestamp != 0 and "--quiet" not in myopts:
+ print(">>> Checking server timestamp ...")
+
+- rsynccommand = [EPREFIX + "/usr/bin/rsync"] + rsync_opts + extra_rsync_opts
++ rsynccommand = [rsync_bin] + rsync_opts + extra_rsync_opts
+
+ if "--debug" in myopts:
+ print(rsynccommand)
+@@ -2108,8 +2109,9 @@
+ out.eerror(line)
+ sys.exit(exitcode)
+ elif syncuri[:6]=="cvs://":
+- if not os.path.exists(EPREFIX + "/usr/bin/cvs"):
+- print("!!! " + EPREFIX + "/usr/bin/cvs does not exist, so CVS support is disabled.")
++ cvs_bin = portage.readonly_pathmatch_any(settings, "/usr/bin/cvs")
++ if not os.path.exists(cvs_bin):
++ print("!!! cvs binary does not exist, so CVS support is disabled.")
+ print("!!! Type \"emerge dev-util/cvs\" to enable CVS support.")
+ sys.exit(1)
+ cvsroot=syncuri[6:]
+@@ -2128,7 +2130,7 @@
+ "!!! existing '%s' directory; exiting.\n" % myportdir)
+ sys.exit(1)
+ del e
+- if portage.spawn("cd "+cvsdir+"; cvs -z0 -d "+cvsroot+" co -P gentoo-x86",settings,free=1):
++ if portage.spawn("cd "+cvsdir+"; "+cvs_bin+" -z0 -d "+cvsroot+" co -P gentoo-x86",settings,free=1):
+ print("!!! cvs checkout error; exiting.")
+ sys.exit(1)
+ os.rename(os.path.join(cvsdir, "gentoo-x86"), myportdir)
+@@ -2136,15 +2138,16 @@
+ #cvs update
+ print(">>> Starting cvs update with "+syncuri+"...")
+ retval = portage.process.spawn_bash(
+- "cd %s; cvs -z0 -q update -dP" % \
+- (portage._shell_quote(myportdir),), **spawn_kwargs)
++ "cd %s; %s -z0 -q update -dP" % \
++ (portage._shell_quote(myportdir),cvs_bin), **spawn_kwargs)
+ if retval != os.EX_OK:
+ sys.exit(retval)
+ dosyncuri = syncuri
+ elif syncuri[:11]=="svn+http://" or syncuri[:6]=="svn://" or syncuri[:12]=="svn+https://":
+ # Gentoo Prefix hardcoded SVN support
+- if not os.path.exists(EPREFIX + "/usr/bin/svn"):
+- print("!!! " + EPREFIX + "/usr/bin/svn does not exist, so SVN support is disabled.")
++ svn_bin = portage.readonly_pathmatch_any(settings, "/usr/bin/svn")
++ if not os.path.exists(svn_bin):
++ print("!!! svn binary does not exist, so SVN support is disabled.")
+ print("!!! Type \"emerge dev-util/subversion\" to enable SVN support.")
+ sys.exit(1)
+ svndir=os.path.dirname(myportdir)
+@@ -2171,7 +2174,7 @@
+ else:
+ #svn update
+ print(">>> Starting svn update...")
+- retval = portage.spawn("cd '%s'; svn update" % myportdir, \
++ retval = portage.spawn("cd '%s'; %s update" % (myportdir,svn_bin), \
+ settings, free=1)
+ if retval != os.EX_OK:
+ sys.exit(retval)
+diff -ru prefix-portage-2.2.00.15801.orig/pym/_emerge/depgraph.py prefix-portage-2.2.00.15801/pym/_emerge/depgraph.py
+--- prefix-portage-2.2.00.15801.orig/pym/_emerge/depgraph.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/_emerge/depgraph.py 2010-03-11 10:39:49 +0100
+@@ -17,6 +17,7 @@
+ from portage.dbapi import dbapi
+ from portage.dbapi.dep_expand import dep_expand
+ from portage.dep import Atom
++from portage.dep.dep_check import ro_selected
+ from portage.output import bold, blue, colorize, create_color_func, darkblue, \
+ darkgreen, green, nc_len, red, teal, turquoise, yellow
+ bad = create_color_func("BAD")
+@@ -1143,14 +1144,14 @@
+ edepend["DEPEND"] = ""
+
+ deps = (
+- (bdeps_root, edepend["DEPEND"],
++ (bdeps_root, "DEPEND",
+ self._priority(buildtime=(not bdeps_optional),
+ optional=bdeps_optional),
+ pkg.built),
+- (myroot, edepend["RDEPEND"],
++ (myroot, "RDEPEND",
+ self._priority(runtime=True),
+ False),
+- (myroot, edepend["PDEPEND"],
++ (myroot, "PDEPEND",
+ self._priority(runtime_post=True),
+ False)
+ )
+@@ -1161,7 +1162,8 @@
+ if not strict:
+ portage.dep._dep_check_strict = False
+
+- for dep_root, dep_string, dep_priority, ignore_blockers in deps:
++ for dep_root, dep_type, dep_priority, ignore_blockers in deps:
++ dep_string = edepend[dep_type]
+ if not dep_string:
+ continue
+ if debug:
+@@ -1180,7 +1182,7 @@
+ uselist=pkg.use.enabled))
+
+ dep_string = list(self._queue_disjunctive_deps(
+- pkg, dep_root, dep_priority, dep_string))
++ pkg, dep_root, dep_priority, dep_string, dep_type))
+
+ except portage.exception.InvalidDependString as e:
+ if pkg.installed:
+@@ -1196,7 +1198,7 @@
+
+ if not self._add_pkg_dep_string(
+ pkg, dep_root, dep_priority, dep_string,
+- allow_unsatisfied, ignore_blockers=ignore_blockers):
++ allow_unsatisfied, ignore_blockers=ignore_blockers, dep_type=dep_type):
+ return 0
+
+ except portage.exception.AmbiguousPackageName as e:
+@@ -1224,7 +1226,7 @@
+ return 1
+
+ def _add_pkg_dep_string(self, pkg, dep_root, dep_priority, dep_string,
+- allow_unsatisfied, ignore_blockers=False):
++ allow_unsatisfied, ignore_blockers=False, dep_type=None):
+ depth = pkg.depth + 1
+ debug = "--debug" in self._frozen_config.myopts
+ strict = pkg.type_name != "installed"
+@@ -1240,7 +1242,7 @@
+ try:
+ selected_atoms = self._select_atoms(dep_root,
+ dep_string, myuse=pkg.use.enabled, parent=pkg,
+- strict=strict, priority=dep_priority)
++ strict=strict, priority=dep_priority, dep_type=dep_type)
+ except portage.exception.InvalidDependString as e:
+ show_invalid_depstring_notice(pkg, dep_string, str(e))
+ del e
+@@ -1395,7 +1397,7 @@
+ child_pkgs = atom_pkg_graph.child_nodes(atom)
+ yield (atom, child_pkgs[0])
+
+- def _queue_disjunctive_deps(self, pkg, dep_root, dep_priority, dep_struct):
++ def _queue_disjunctive_deps(self, pkg, dep_root, dep_priority, dep_struct, dep_type=None):
+ """
+ Queue disjunctive (virtual and ||) deps in self._dynamic_config._dep_disjunctive_stack.
+ Yields non-disjunctive deps. Raises InvalidDependString when
+@@ -1406,11 +1408,11 @@
+ x = dep_struct[i]
+ if isinstance(x, list):
+ for y in self._queue_disjunctive_deps(
+- pkg, dep_root, dep_priority, x):
++ pkg, dep_root, dep_priority, x, dep_type):
+ yield y
+ elif x == "||":
+ self._queue_disjunction(pkg, dep_root, dep_priority,
+- [ x, dep_struct[ i + 1 ] ] )
++ [ x, dep_struct[ i + 1 ] ] , dep_type)
+ i += 1
+ else:
+ try:
+@@ -1425,25 +1427,25 @@
+ # purpose.
+ if x.cp.startswith('virtual/'):
+ self._queue_disjunction( pkg, dep_root,
+- dep_priority, [ str(x) ] )
++ dep_priority, [ str(x) ] , dep_type)
+ else:
+ yield str(x)
+ i += 1
+
+- def _queue_disjunction(self, pkg, dep_root, dep_priority, dep_struct):
++ def _queue_disjunction(self, pkg, dep_root, dep_priority, dep_struct, dep_type=None):
+ self._dynamic_config._dep_disjunctive_stack.append(
+- (pkg, dep_root, dep_priority, dep_struct))
++ (pkg, dep_root, dep_priority, dep_struct, dep_type))
+
+ def _pop_disjunction(self, allow_unsatisfied):
+ """
+ Pop one disjunctive dep from self._dynamic_config._dep_disjunctive_stack, and use it to
+ populate self._dynamic_config._dep_stack.
+ """
+- pkg, dep_root, dep_priority, dep_struct = \
++ pkg, dep_root, dep_priority, dep_struct, dep_type = \
+ self._dynamic_config._dep_disjunctive_stack.pop()
+ dep_string = portage.dep.paren_enclose(dep_struct)
+ if not self._add_pkg_dep_string(
+- pkg, dep_root, dep_priority, dep_string, allow_unsatisfied):
++ pkg, dep_root, dep_priority, dep_string, allow_unsatisfied, dep_type):
+ return 0
+ return 1
+
+@@ -2063,12 +2065,18 @@
+ return self._select_atoms_highest_available(*pargs, **kwargs)
+
+ def _select_atoms_highest_available(self, root, depstring,
+- myuse=None, parent=None, strict=True, trees=None, priority=None):
++ myuse=None, parent=None, strict=True, trees=None, priority=None, dep_type=None):
+ """This will raise InvalidDependString if necessary. If trees is
+ None then self._dynamic_config._filtered_trees is used."""
+ pkgsettings = self._frozen_config.pkgsettings[root]
+ if trees is None:
+ trees = self._dynamic_config._filtered_trees
++
++ # this one is needed to guarantee good readonly root
++ # resolution display in the merge list. required since
++ # parent (below) can be None
++ trees[root]["disp_parent"] = parent
++
+ atom_graph = digraph()
+ if True:
+ try:
+@@ -2081,7 +2089,7 @@
+ portage.dep._dep_check_strict = False
+ mycheck = portage.dep_check(depstring, None,
+ pkgsettings, myuse=myuse,
+- myroot=root, trees=trees)
++ myroot=root, trees=trees, dep_type=dep_type)
+ finally:
+ if parent is not None:
+ trees[root].pop("parent")
+@@ -2116,6 +2124,7 @@
+ selected_atoms[pkg] = [atom for atom in \
+ atom_graph.child_nodes(node) if atom in chosen_atoms]
+
++ trees[root].pop("disp_parent")
+ return selected_atoms
+
+ def _show_unsatisfied_dep(self, root, atom, myparent=None, arg=None,
+@@ -4633,6 +4642,37 @@
+ for x in blockers:
+ print(x)
+
++ # print readonly selected packages
++ if len(ro_selected) > 0:
++ out.write("\n%s\n\n" % (darkgreen("Packages resolved from readonly installations:")))
++
++ ro_mismatch_warning = False
++ ro_dupcheck = []
++ for x in ro_selected:
++ tmp_type = x["type"].replace("END","")
++ while len(tmp_type) < 4:
++ tmp_type += " "
++ if str(x["atom"]) not in ro_dupcheck:
++ out.write("[%s %s] %s %s %s (%s by %s)" % (teal("readonly"),
++ green(tmp_type), green(str(x["matches"][0])), yellow("from"),
++ blue(x["ro_root"]), turquoise(str(x["atom"])), green(x["parent"].cpv)))
++
++ ro_dupcheck.append(str(x["atom"]))
++
++ if x["host_mismatch"]:
++ ro_mismatch_warning = True
++ out.write(" %s\n" % (red("**")))
++ else:
++ out.write("\n")
++
++ if ro_mismatch_warning:
++ out.write("\n%s:" % (red("**")))
++ out.write(yellow(" WARNING: packages marked with ** have been resolved as a\n"))
++ out.write(yellow(" runtime dependency, but the CHOST variable for the parent\n"))
++ out.write(yellow(" and dependency package don't match. This could cause link\n"))
++ out.write(yellow(" errors. It is recommended to use RDEPEND READONLY_EPREFIX's\n"))
++ out.write(yellow(" only with matching CHOST portage instances.\n"))
++
+ if verbosity == 3:
+ print()
+ print(counters)
+diff -ru prefix-portage-2.2.00.15801.orig/pym/portage/__init__.py prefix-portage-2.2.00.15801/pym/portage/__init__.py
+--- prefix-portage-2.2.00.15801.orig/pym/portage/__init__.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/portage/__init__.py 2010-03-11 10:40:37 +0100
+@@ -85,7 +85,7 @@
+ 'portage.dep:best_match_to_list,dep_getcpv,dep_getkey,' + \
+ 'flatten,get_operator,isjustname,isspecific,isvalidatom,' + \
+ 'match_from_list,match_to_list',
+- 'portage.dep.dep_check:dep_check,dep_eval,dep_wordreduce,dep_zapdeps',
++ 'portage.dep.dep_check:dep_check,dep_eval,dep_wordreduce,dep_zapdeps,dep_wordreduce_readonly',
+ 'portage.eclass_cache',
+ 'portage.env.loaders',
+ 'portage.exception',
+diff -ru prefix-portage-2.2.00.15801.orig/pym/portage/dbapi/vartree.py prefix-portage-2.2.00.15801/pym/portage/dbapi/vartree.py
+--- prefix-portage-2.2.00.15801.orig/pym/portage/dbapi/vartree.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/portage/dbapi/vartree.py 2010-03-11 10:38:21 +0100
+@@ -1837,9 +1837,20 @@
+ self._counter_path = os.path.join(root,
+ CACHE_PATH, "counter")
+
++ plibreg_path = os.path.join(self.root, PRIVATE_PATH, "preserved_libs_registry")
++
++ if vartree:
++ self._kill_eprefix = vartree._kill_eprefix
++ else:
++ self._kill_eprefix = False
++
++ if self._kill_eprefix:
++ self._aux_cache_filename = os.path.join(self.root, self._aux_cache_filename.replace(EPREFIX, ""))
++ self._counter_path = os.path.join(self.root, self._counter_path.replace(EPREFIX, ""))
++ plibreg_path = os.path.join(self.root, plibreg_path.replace(EPREFIX, ""))
++
+ try:
+- self.plib_registry = PreservedLibsRegistry(self.root,
+- os.path.join(self.root, PRIVATE_PATH, "preserved_libs_registry"))
++ self.plib_registry = PreservedLibsRegistry(self.root, plibreg_path)
+ except PermissionDenied:
+ # apparently this user isn't allowed to access PRIVATE_PATH
+ self.plib_registry = None
+@@ -1861,6 +1872,9 @@
+ # This is an optimized hotspot, so don't use unicode-wrapped
+ # os module and don't use os.path.join().
+ rValue = self.root + _os.sep + VDB_PATH + _os.sep + mykey
++ if self._kill_eprefix:
++ rValue = rValue.replace(EPREFIX, "")
++
+ if filename is not None:
+ # If filename is always relative, we can do just
+ # rValue += _os.sep + filename
+@@ -2012,6 +2026,9 @@
+ returnme = []
+ basepath = os.path.join(self.root, VDB_PATH) + os.path.sep
+
++ if self._kill_eprefix:
++ basepath = os.path.join(self.root, basepath.replace(EPREFIX, ""))
++
+ if use_cache:
+ from portage import listdir
+ else:
+@@ -2102,7 +2119,12 @@
+ return list(self._iter_match(mydep,
+ self.cp_list(mydep.cp, use_cache=use_cache)))
+ try:
+- curmtime = os.stat(os.path.join(self.root, VDB_PATH, mycat)).st_mtime
++ _tmp_path = os.path.join(self.root, VDB_PATH, mycat)
++
++ if self._kill_eprefix:
++ _tmp_path = os.path.join(self.root, _tmp_path.replace(EPREFIX, ""))
++
++ curmtime = os.stat(_tmp_path).st_mtime
+ except (IOError, OSError):
+ curmtime=0
+
+@@ -2689,7 +2711,7 @@
+ class vartree(object):
+ "this tree will scan a var/db/pkg database located at root (passed to init)"
+ def __init__(self, root="/", virtual=None, clone=None, categories=None,
+- settings=None):
++ settings=None, kill_eprefix=False):
+ if clone:
+ writemsg("vartree.__init__(): deprecated " + \
+ "use of clone parameter\n", noiselevel=-1)
+@@ -2698,6 +2720,7 @@
+ self.populated = 1
+ from portage import config
+ self.settings = config(clone=clone.settings)
++ self._kill_eprefix = clone._kill_eprefix
+ else:
+ self.root = root[:]
+ if settings is None:
+@@ -2705,6 +2728,7 @@
+ self.settings = settings
+ if categories is None:
+ categories = settings.categories
++ self._kill_eprefix=kill_eprefix
+ self.dbapi = vardbapi(self.root, categories=categories,
+ settings=settings, vartree=self)
+ self.populated = 1
+@@ -2736,6 +2760,10 @@
+ raise
+ except Exception as e:
+ mydir = os.path.join(self.root, VDB_PATH, mycpv)
++
++ if self._kill_eprefix:
++ mydir = os.path.join(self.root, mydir.replace(EPREFIX, ""))
++
+ writemsg(_("\nParse Error reading PROVIDE and USE in '%s'\n") % mydir,
+ noiselevel=-1)
+ if mylines:
+diff -ru prefix-portage-2.2.00.15801.orig/pym/portage/dep/dep_check.py prefix-portage-2.2.00.15801/pym/portage/dep/dep_check.py
+--- prefix-portage-2.2.00.15801.orig/pym/portage/dep/dep_check.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/portage/dep/dep_check.py 2010-03-11 10:40:52 +0100
+@@ -244,6 +244,95 @@
+ return 0
+ return 1
+
++ro_trees={}
++ro_vartrees={}
++ro_selected=[]
++
++def dep_match_readonly_roots(settings, atom, dep_type, parent=None):
++ if len(ro_trees) < len(settings.readonly_roots):
++ # MDUFT: create additional vartrees for every readonly root here.
++ # the ro_vartrees instances are created below as they are needed to
++ # avoid reading vartrees of portage instances which aren't required
++ # while resolving this dependencies.
++ for type in ("DEPEND","RDEPEND", "PDEPEND"):
++ ro_trees[type] = []
++
++ for ro_root, ro_dep_types in settings.readonly_roots.items():
++ if type in ro_dep_types:
++ ro_trees[type].append(ro_root)
++
++ if len(ro_trees) == 0:
++ return []
++
++ matches = []
++
++ for ro_root in ro_trees[dep_type]:
++ if not ro_vartrees.has_key(ro_root):
++ # target_root=ro_root ok? or should it be the real target_root?
++ _tmp_settings = portage.config(config_root=ro_root, target_root=ro_root,
++ config_incrementals=portage.const.INCREMENTALS)
++
++ ro_vartrees[ro_root] = portage.vartree(root=ro_root,
++ categories=_tmp_settings.categories,
++ settings=_tmp_settings, kill_eprefix=True)
++
++ ro_matches = ro_vartrees[ro_root].dbapi.match(atom)
++
++ if ro_matches:
++ ro_host_mismatch = False
++ if dep_type is "RDEPEND":
++ # we need to assure binary compatability, so it needs to be
++ # the same CHOST! But how? for now i cannot do anything...
++ if parent and parent.metadata["CHOST"] != ro_vartrees[ro_root].settings.get("CHOST", ""):
++ # provocate a big fat warning in the list of external packages.
++ ro_host_mismatch = True
++ pass
++
++ matches.append({ "ro_root": ro_root, "atom": atom, "matches": ro_matches,
++ "type": dep_type, "parent": parent, "host_mismatch": ro_host_mismatch })
++
++ return matches
++
++def dep_wordreduce_readonly(reduced, unreduced, settings, dep_type, parent):
++ for mypos, token in enumerate(unreduced):
++ # recurse if it's a list.
++ if isinstance(reduced[mypos], list):
++ reduced[mypos] = dep_wordreduce_readonly(reduced[mypos],
++ unreduced[mypos], settings, dep_type, parent)
++ # do nothing if it's satisfied already.
++ elif not reduced[mypos]:
++ ro_matches = dep_match_readonly_roots(settings, unreduced[mypos], dep_type, parent)
++
++ if ro_matches:
++ # TODO: select a match if there are more than one?
++ # for now, the first match is taken...
++ ro_selected.append(ro_matches[0])
++ reduced[mypos] = True
++
++ return reduced
++
++# this may be better placed somewhere else, but i put it here for now, to
++# keep all functions in the patch on one big heap.
++def readonly_pathmatch_any(settings, path):
++ path = path.lstrip('/')
++ # first try locally, and match that if it exists.
++ if os.path.exists(os.path.join(EPREFIX,path)):
++ return os.path.join(EPREFIX,path)
++
++ # after that try all readonly roots where DEPEND is allowed. this makes
++ # sure that executing binaries is possible from there.
++ for ro_root, ro_deps in settings.readonly_roots.items():
++ if "DEPEND" in ro_deps:
++ print(" --- checking %s --- " % (os.path.join(ro_root,path)))
++ if os.path.exists(os.path.join(ro_root,path)):
++ return os.path.join(ro_root,path)
++ break
++
++ # as a fallback make the string the same as it was originally.
++ # even though this path doesn't exist.
++ return os.path.join(EPREFIX,path)
++
++
+ def dep_zapdeps(unreduced, reduced, myroot, use_binaries=0, trees=None):
+ """
+ Takes an unreduced and reduced deplist and removes satisfied dependencies.
+@@ -501,7 +590,7 @@
+ assert(False) # This point should not be reachable
+
+ def dep_check(depstring, mydbapi, mysettings, use="yes", mode=None, myuse=None,
+- use_cache=1, use_binaries=0, myroot="/", trees=None):
++ use_cache=1, use_binaries=0, myroot="/", trees=None , dep_type=None):
+ """Takes a depend string and parses the condition."""
+ edebug = mysettings.get("PORTAGE_DEBUG", None) == "1"
+ #check_config_instance(mysettings)
+@@ -579,6 +668,14 @@
+ writemsg("mysplit: %s\n" % (mysplit), 1)
+ writemsg("mysplit2: %s\n" % (mysplit2), 1)
+
++ if dep_type is not None:
++ mysplit2=dep_wordreduce_readonly(unreduced=mysplit[:],
++ reduced=mysplit2, settings=mysettings,
++ dep_type=dep_type, parent=trees[myroot].get("disp_parent"))
++
++ writemsg("\n", 1)
++ writemsg("mysplit2 after readonly reduce: %s\n" % (mysplit2), 1)
++
+ try:
+ selected_atoms = dep_zapdeps(mysplit, mysplit2, myroot,
+ use_binaries=use_binaries, trees=trees)
+diff -ru prefix-portage-2.2.00.15801.orig/pym/portage/exception.py prefix-portage-2.2.00.15801/pym/portage/exception.py
+--- prefix-portage-2.2.00.15801.orig/pym/portage/exception.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/portage/exception.py 2010-03-11 10:38:21 +0100
+@@ -128,3 +128,6 @@
+ class UntrustedSignature(SignatureException):
+ """Signature was not certified to the desired security level"""
+
++class InvalidReadonlyERoot(PortageException):
++ """Readonly EROOT definition string in make.conf invalid."""
++
+diff -ru prefix-portage-2.2.00.15801.orig/pym/portage/package/ebuild/config.py prefix-portage-2.2.00.15801/pym/portage/package/ebuild/config.py
+--- prefix-portage-2.2.00.15801.orig/pym/portage/package/ebuild/config.py 2010-03-11 10:39:16 +0100
++++ prefix-portage-2.2.00.15801/pym/portage/package/ebuild/config.py 2010-03-11 10:38:21 +0100
+@@ -427,6 +427,7 @@
+ self.prevmaskdict = copy.deepcopy(clone.prevmaskdict)
+ self.pprovideddict = copy.deepcopy(clone.pprovideddict)
+ self.features = copy.deepcopy(clone.features)
++ self.readonly_roots = copy.deepcopy(clone.readonly_roots)
+
+ self._accept_license = copy.deepcopy(clone._accept_license)
+ self._plicensedict = copy.deepcopy(clone._plicensedict)
+@@ -1017,6 +1018,50 @@
+ _validate_cache_for_unsupported_eapis = False
+ _glep_55_enabled = True
+
++ # expand READONLY_EPREFIX to a list of all readonly portage instances
++ # all the way down to the last one. beware that ATM a deeper instance
++ # in the chain can provide more than the toplevel! this means that
++ # if you only inherit DEPENDS from one instance, that instance may
++ # inherit RDEPENDs from another one, making the top-level instance
++ # inherit RDEPENDs from there too - even if the intermediate prefix
++ # does not do this.
++ self.readonly_roots = {}
++ my_ro_current_instance = config_root
++ my_ro_widest_depset = set(['DEPEND', 'RDEPEND', 'PDEPEND'])
++
++ while True:
++ my_ro_current_make_conf_file = os.path.join(my_ro_current_instance,MAKE_CONF_FILE.lstrip(os.path.sep))
++
++ if os.path.exists(my_ro_current_make_conf_file):
++ my_ro_cfg = getconfig(my_ro_current_make_conf_file, tolerant=1)
++
++ if my_ro_cfg.has_key("READONLY_EPREFIX"):
++ if not my_ro_cfg["READONLY_EPREFIX"].find(":"):
++ raise portage.exception.InvalidReadonlyERoot("ERROR: malformed READONLY_EPREFIX in %s" % (my_ro_current_make_conf_file))
++
++ (my_ro_cfg_root,my_ro_cfg_root_deps) = my_ro_cfg["READONLY_EPREFIX"].rsplit(":",1)
++
++ if not os.path.exists(my_ro_cfg_root):
++ raise portage.exception.InvalidReadonlyERoot("ERROR: malformed READONLY_EPREFIX in %s: path does not exist!" % (my_ro_current_instance))
++
++ if self.readonly_roots.has_key(my_ro_cfg_root):
++ raise portage.exception.InvalidReadonlyERoot("ERROR: circular READONLY_EPREFIX's in %s. %s already checked for %s" % (my_ro_current_make_conf_file, my_ro_cfg_root, self.readonly_roots[my_ro_cfg_root]))
++
++ if my_ro_cfg_root == config_root:
++ raise portage.exception.InvalidReadonlyERoot("ERROR: cannot add this instance as READONLY_EPREFIX in %s." % (my_ro_current_make_conf_file))
++
++ # intersect the widest depset with the current one to strip down
++ # the allowed dependency resolution to not be wider than the
++ # next higher one. this way we can prevent for a given prefix
++ # to resolve RDEPENDs from a prefix with a different CHOST that
++ # is a few levels deeper in the chain.
++ my_ro_widest_depset = set(my_ro_cfg_root_deps.split(",")) & my_ro_widest_depset
++ self.readonly_roots[my_ro_cfg_root] = my_ro_widest_depset
++ my_ro_current_instance = my_ro_cfg_root
++ continue
++
++ break
++
+ for k in self._case_insensitive_vars:
+ if k in self:
+ self[k] = self[k].lower()
+@@ -2574,6 +2619,10 @@
+ if eapi not in ("0", "1", "2", "3", "3_pre2"):
+ mydict.pop("AA", None)
+
++ # populate with PORTAGE_READONLY_EPREFIXES
++ if self.readonly_roots and len(self.readonly_roots) > 0:
++ mydict["PORTAGE_READONLY_EPREFIXES"] = ':'.join(self.readonly_roots)
++
+ # Prefix variables are supported starting with EAPI 3.
+ # but during transition, we just support them anywhere
+ #if phase == 'depend' or eapi in (None, "0", "1", "2"):
diff --git a/sys-apps/portage/files/portage-2.2.01.18213-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.01.18213-ebuildshell.patch
new file mode 100644
index 0000000..59e98af
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.18213-ebuildshell.patch
@@ -0,0 +1,105 @@
+http://bugs.gentoo.org/show_bug.cgi?id=155161
+
+--- portage/bin/ebuild.sh.orig 2010-12-15 11:12:12.466527126 +0100
++++ portage/bin/ebuild.sh 2010-12-15 11:11:04.757062756 +0100
+@@ -59,7 +59,7 @@
+ qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -1765,7 +1765,7 @@
+ filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -1774,8 +1774,10 @@
+ SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
+ SANDBOX_LOG SANDBOX_ON"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! hasq --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+@@ -1805,7 +1807,11 @@
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! hasq --allow-extra-vars $* ; then
++ if hasq --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! hasq --allow-extra-vars $* &&
++ ! hasq --filter-for-subshell $* ; then
+ filtered_vars="
+ ${filtered_vars}
+ ${PORTAGE_SAVED_READONLY_VARS}
+@@ -1936,6 +1942,56 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++call-ebuildshell() {
++ if ! hasq ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ ) > ${T}/ebuildshell-environment
++ chown portage:portage "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown portage:portage "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
diff --git a/sys-apps/portage/files/portage-2.2.01.18826-aix-preservelibs.patch b/sys-apps/portage/files/portage-2.2.01.18826-aix-preservelibs.patch
new file mode 100644
index 0000000..002f11c
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.18826-aix-preservelibs.patch
@@ -0,0 +1,32 @@
+Need to list executables in NEEDED.XCOFF.1 too for preserve-libs.
+
+Do not prepend filenames with '.' twice when calculating the preserve-lib
+helper-filenames. Can't say which commit triggers this problem, as this
+did work before.
+--- bin/misc-functions.sh.orig 2011-06-16 17:15:47 +0200
++++ bin/misc-functions.sh 2011-06-16 17:17:13 +0200
+@@ -1178,7 +1178,9 @@
+ fi
+ prev_FILE=${FILE}
+
+- [[ " ${FLAGS} " == *" SHROBJ "* ]] || continue
++ # shared objects have both EXEC and SHROBJ flags,
++ # while executables have EXEC flag only.
++ [[ " ${FLAGS} " == *" EXEC "* ]] || continue
+
+ # Make sure we disallow insecure RUNPATH's
+ # Don't want paths that point to the tree where the package was built
+--- pym/portage/util/_dyn_libs/LinkageMapXCoff.py.orig 2011-06-17 11:26:45 +0200
++++ pym/portage/util/_dyn_libs/LinkageMapXCoff.py 2011-06-17 11:32:13 +0200
+@@ -255,7 +255,11 @@
+ def as_contentmember(obj):
+ if obj.endswith("]"):
+ if obj.find("/") >= 0:
++ if obj[obj.rfind("/")+1] == ".":
++ return obj
+ return obj[:obj.rfind("/")] + "/." + obj[obj.rfind("/")+1:]
++ if obj[0] == ".":
++ return obj
+ return "." + obj
+ return obj
+
diff --git a/sys-apps/portage/files/portage-2.2.01.18980-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.01.18980-ebuildshell.patch
new file mode 100644
index 0000000..b8911f2
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.18980-ebuildshell.patch
@@ -0,0 +1,103 @@
+--- prefix-portage-2.2.01.18980/bin/ebuild.sh
++++ prefix-portage-2.2.01.18980/bin/ebuild.sh
+@@ -59,7 +59,7 @@
+ qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -1824,7 +1824,7 @@
+ filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -1833,8 +1833,10 @@
+ SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
+ SANDBOX_LOG SANDBOX_ON"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+@@ -1864,7 +1866,11 @@
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ filtered_vars="
+ ${filtered_vars}
+ ${PORTAGE_SAVED_READONLY_VARS}
+@@ -1995,6 +2001,56 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
diff --git a/sys-apps/portage/files/portage-2.2.01.19247-aix-preserve-libs.patch b/sys-apps/portage/files/portage-2.2.01.19247-aix-preserve-libs.patch
new file mode 100644
index 0000000..ecc42fd
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.19247-aix-preserve-libs.patch
@@ -0,0 +1,163 @@
+Drop code identical to and inheritable from LinkageMapELF.
+
+Update code that is duplicated from LinkageMapELF.
+
+Actually query information for /all/ preserved shared objects,
+not the last one only.
+Maybe the KeyError-problem is gone for AIX due to this fix,
+even if that workaround was inherited from LinkageMapELF.
+
+Deal with existing helper files in a binpkg created with 'quickpkg'.
+Eventually improve performance when creating helper files.
+
+--- pym/portage/util/_dyn_libs/LinkageMapXCoff.py.orig 2011-09-14 16:02:34 +0200
++++ pym/portage/util/_dyn_libs/LinkageMapXCoff.py 2011-09-14 16:34:43 +0200
+@@ -71,21 +71,10 @@
+ # filesystem.
+ return os.path.realpath(abs_path)
+ # Return a tuple of the device and inode, as well as the basename,
+- # because of hardlinks the device and inode might be identical.
++ # because of hardlinks (notably for the .libNAME[shr.o] helpers)
++ # the device and inode might be identical.
+ return (object_stat.st_dev, object_stat.st_ino, os.path.basename(abs_path.rstrip(os.sep)))
+
+- def file_exists(self):
+- """
+- Determine if the file for this key exists on the filesystem.
+-
+- @rtype: Boolean
+- @return:
+- 1. True if the file exists.
+- 2. False if the file does not exist or is a broken symlink.
+-
+- """
+- return isinstance(self._key, tuple)
+-
+ class _LibGraphNode(_ObjectKey):
+ __slots__ = ("alt_paths",)
+
+@@ -175,10 +164,9 @@
+ continue
+ plibs.update((x, cpv) for x in items)
+ if plibs:
+- for x in plibs:
+- args = [BASH_BINARY, "-c", ':'
+- + '; member="' + x + '"'
+- + '; archive=${member}'
++ args = [BASH_BINARY , "-c" , ':'
++ + '; for member in "$@"'
++ + '; do archive=${member}'
+ + '; if [[ ${member##*/} == .*"["*"]" ]]'
+ + '; then member=${member%/.*}/${member##*/.}'
+ + '; archive=${member%[*}'
+@@ -195,9 +183,21 @@
+ + '; done'
+ + '; [[ -n ${MEMBER} ]] && MEMBER="[${MEMBER}]"'
+ + '; [[ " ${FLAGS} " == *" SHROBJ "* ]] && soname=${FILE##*/}${MEMBER} || soname='
+- + '; echo "${FORMAT##* }${FORMAT%%-*};${FILE#${ROOT%/}}${MEMBER};${soname};${RUNPATH};${needed}"'
+- + '; [[ -z ${member} && -n ${MEMBER} ]] && echo "${FORMAT##* }${FORMAT%%-*};${FILE#${ROOT%/}};${FILE##*/};;"'
+- ]
++ + '; case ${member:+y}:${MEMBER:+y}'
++ # member requested, member found: show shared archive member
++ + ' in y:y) echo "${FORMAT##* }${FORMAT%%-*};${FILE#${ROOT%/}}${MEMBER};${soname};${RUNPATH};${needed}"'
++ # no member requested, member found: show archive
++ + ' ;; :y) echo "${FORMAT##* }${FORMAT%%-*};${FILE#${ROOT%/}};${FILE##*/};;"'
++ # no member requested, no member found: show standalone shared object
++ + ' ;; : ) echo "${FORMAT##* }${FORMAT%%-*};${FILE#${ROOT%/}};${FILE##*/};${RUNPATH};${needed}"'
++ # member requested, no member found: ignore archive replaced by standalone shared object
++ + ' ;; y: )'
++ + ' ;; esac'
++ + '; done'
++ , 'aixdll-query'
++ ]
++ args.extend(os.path.join(root, x.lstrip("." + os.sep)) \
++ for x in plibs)
+ try:
+ proc = subprocess.Popen(args, stdout=subprocess.PIPE)
+ except EnvironmentError as e:
+@@ -228,17 +228,8 @@
+ owner = plibs.pop(fields[1], None)
+ lines.append((owner, "aixdll-query", ";".join(fields)))
+ proc.wait()
++ proc.stdout.close()
+
+- if plibs:
+- # Preserved libraries that did not appear in the bash
+- # aixdll-query code output. This is known to happen with
+- # statically linked libraries. Generate dummy lines for
+- # these, so we can assume that every preserved library has
+- # an entry in self._obj_properties. This is important in
+- # order to prevent findConsumers from raising an unwanted
+- # KeyError.
+- for x, cpv in plibs.items():
+- lines.append((cpv, "plibs", ";".join(['', x, '', '', ''])))
+ # Share identical frozenset instances when available,
+ # in order to conserve memory.
+ frozensets = {}
+@@ -318,23 +309,4 @@
+ soname_node.providers = tuple(set(soname_node.providers))
+ soname_node.consumers = tuple(set(soname_node.consumers))
+
+- def getSoname(self, obj):
+- """
+- Return the soname associated with an object.
+-
+- @param obj: absolute path to an object
+- @type obj: string (example: '/usr/bin/bar')
+- @rtype: string
+- @return: soname as a string
+-
+- """
+- if not self._libs:
+- self.rebuild()
+- if isinstance(obj, self._ObjectKey):
+- obj_key = obj
+- if obj_key not in self._obj_properties:
+- raise KeyError("%s not in object list" % obj_key)
+- return self._obj_properties[obj_key].soname
+- if obj not in self._obj_key_cache:
+- raise KeyError("%s not in object list" % obj)
+- return self._obj_properties[self._obj_key_cache[obj]].soname
++ pass
+--- bin/misc-functions.sh.orig 2011-09-14 17:53:45 +0200
++++ bin/misc-functions.sh 2011-09-14 18:21:01 +0200
+@@ -1297,7 +1297,7 @@
+ else
+ die "cannot find where to use 'ar' and 'strip' from"
+ fi
+- local archives_members= archives=() chmod400files=()
++ local archives_members= archives=() helperfiles=()
+ local archive_member soname runpath needed archive contentmember
+ while read archive_member; do
+ archive_member=${archive_member#*;${EPREFIX}/} # drop "^type;EPREFIX/"
+@@ -1321,13 +1321,24 @@
+ # portage does os.lstat() on merged files every now
+ # and then, so keep stamp-files for archive members
+ # around to get the preserve-libs feature working.
+- { echo "Please leave this file alone, it is an important helper"
+- echo "for portage to implement the 'preserve-libs' feature on AIX."
+- } > "${ED}${contentmember}" || die "cannot create ${contentmember}"
+- chmod400files[${#chmod400files[@]}]=${ED}${contentmember}
++ helperfiles[${#helperfiles[@]}]=${ED}${contentmember}
+ done < "${PORTAGE_BUILDDIR}"/build-info/NEEDED.XCOFF.1
+- [[ ${#chmod400files[@]} == 0 ]] ||
+- chmod 0400 "${chmod400files[@]}" || die "cannot chmod ${chmod400files[@]}"
++ if [[ ${#helperfiles[@]} > 0 ]]; then
++ rm -f "${helperfiles[@]}" || die "cannot prune ${helperfiles[@]}"
++ local f prev=
++ for f in "${helperfiles[@]}"
++ do
++ if [[ -z ${prev} ]]; then
++ { echo "Please leave this file alone, it is an important helper"
++ echo "for portage to implement the 'preserve-libs' feature on AIX."
++ } > "${f}" || die "cannot create ${f}"
++ chmod 0400 "${f}" || die "cannot chmod ${f}"
++ prev=${f}
++ else
++ ln "${prev}" "${f}" || die "cannot create hardlink ${f}"
++ fi
++ done
++ fi
+
+ local preservemembers libmetadir prunedirs=()
+ local FILE MEMBER FLAGS
diff --git a/sys-apps/portage/files/portage-2.2.01.19247-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.01.19247-ebuildshell.patch
new file mode 100644
index 0000000..8392b12
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.19247-ebuildshell.patch
@@ -0,0 +1,105 @@
+--- bin/ebuild.sh.orig 2011-09-16 15:43:36 +0200
++++ bin/ebuild.sh 2011-09-16 15:51:06 +0200
+@@ -95,7 +95,7 @@
+ qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -466,6 +466,56 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
+--- bin/phase-functions.sh.orig 2011-09-16 15:45:37 +0200
++++ bin/phase-functions.sh 2011-09-16 15:50:10 +0200
+@@ -81,7 +81,7 @@
+ filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -90,8 +90,10 @@
+ SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
+ SANDBOX_LOG SANDBOX_ON"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+@@ -121,7 +123,11 @@
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ filtered_vars="
+ ${filtered_vars}
+ ${PORTAGE_SAVED_READONLY_VARS}
diff --git a/sys-apps/portage/files/portage-2.2.01.19981-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.01.19981-ebuildshell.patch
new file mode 100644
index 0000000..63c9d54
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.19981-ebuildshell.patch
@@ -0,0 +1,105 @@
+--- bin/ebuild.sh.orig 2011-09-16 15:43:36 +0200
++++ bin/ebuild.sh 2011-09-16 15:51:06 +0200
+@@ -95,7 +95,7 @@
+ qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -466,6 +466,56 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
+--- bin/phase-functions.sh.orig 2011-09-16 15:45:37 +0200
++++ bin/phase-functions.sh 2011-09-16 15:50:10 +0200
+@@ -81,7 +81,7 @@
+ filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -90,8 +90,10 @@
+ SANDBOX_DEBUG_LOG SANDBOX_DISABLED SANDBOX_LIB
+ SANDBOX_LOG SANDBOX_ON"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+@@ -121,7 +123,11 @@
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ filtered_vars="
+ ${filtered_vars}
+ ${PORTAGE_SAVED_READONLY_VARS}
diff --git a/sys-apps/portage/files/portage-2.2.01.20020-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.01.20020-ebuildshell.patch
new file mode 100644
index 0000000..03eaa24
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.20020-ebuildshell.patch
@@ -0,0 +1,137 @@
+# HG changeset patch
+# User Fabian Groffen <grobian@gentoo.org>
+# Date 1324637719 -3600
+# Node ID d70f677c2c1293d45e51a7f0e3b97b5e2b2900e7
+# Parent e7a44acf78b8678781b5d24a90d96d1a53601b41
+https://bugs.gentoo.org/155161
+
+FEATURES=ebuildshell emerge xxxxx
+
+results in an interactive shell for each function portage calls from the
+ebuild, where all functionality is available as in the ebuild
+(src_unpack, epatch, etc.). This allows for convenient debugging of
+ebuild issues.
+
+diff -r e7a44acf78b8 -r d70f677c2c12 bin/ebuild.sh
+--- a/bin/ebuild.sh Fri Dec 23 11:24:27 2011 +0100
++++ b/bin/ebuild.sh Fri Dec 23 11:55:19 2011 +0100
+@@ -82,7 +82,7 @@
+ qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -453,6 +453,56 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
+diff -r e7a44acf78b8 -r d70f677c2c12 bin/phase-functions.sh
+--- a/bin/phase-functions.sh Fri Dec 23 11:24:27 2011 +0100
++++ b/bin/phase-functions.sh Fri Dec 23 11:55:19 2011 +0100
+@@ -84,7 +84,7 @@
+ filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -95,8 +95,10 @@
+ # Untrusted due to possible application of package renames to binpkgs
+ local binpkg_untrusted_vars="CATEGORY P PF PN PR PV PVR"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+@@ -126,7 +128,11 @@
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ if [ "${EMERGE_FROM}" = binary ] ; then
+ # preserve additional variables from build time,
+ # while excluding untrusted variables
+diff -r e7a44acf78b8 -r d70f677c2c12 man/make.conf.5
+--- a/man/make.conf.5 Fri Dec 23 11:24:27 2011 +0100
++++ b/man/make.conf.5 Fri Dec 23 11:55:19 2011 +0100
+@@ -287,6 +287,12 @@
+ Use locks to ensure that unsandboxed ebuild phases never execute
+ concurrently. Also see \fIparallel\-install\fR.
+ .TP
++.B ebuildshell
++Drop into an interactive shell for each phase function, meant for
++debugging. Because the shell would normally be used to execute the
++phase function, commands like src_unpack or epatch are available in the
++interactive shell. Use `exit 1` to terminate the merge.
++.TP
+ .B fakeroot
+ Enable fakeroot for the install and package phases when a non-root user runs
+ the \fBebuild\fR(1) command.
diff --git a/sys-apps/portage/files/portage-2.2.01.20239-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.01.20239-ebuildshell.patch
new file mode 100644
index 0000000..9ccc1e5
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.01.20239-ebuildshell.patch
@@ -0,0 +1,148 @@
+# HG changeset patch
+# User Michael Haubenwallner <haubi@gentoo.org>
+# Date 1330634734 -3600
+# Node ID 6780ee2ddb337bbd8b4b2681615de7e78e6fb8c1
+# Parent 04da3d4d44af4fd2096316f8e1bbb7a998011040
+https://bugs.gentoo.org/155161
+
+FEATURES=ebuildshell emerge xxxxx
+
+results in an interactive shell for each function portage calls from the
+ebuild, where all functionality is available as in the ebuild
+(src_unpack, epatch, etc.). This allows for convenient debugging of
+ebuild issues.
+
+diff -r 04da3d4d44af -r 6780ee2ddb33 bin/ebuild.sh
+--- a/bin/ebuild.sh Thu Mar 01 21:31:12 2012 +0100
++++ b/bin/ebuild.sh Thu Mar 01 21:45:34 2012 +0100
+@@ -82,7 +82,7 @@
+ qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -453,6 +453,56 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
+diff -r 04da3d4d44af -r 6780ee2ddb33 bin/phase-functions.sh
+--- a/bin/phase-functions.sh Thu Mar 01 21:31:12 2012 +0100
++++ b/bin/phase-functions.sh Thu Mar 01 21:45:34 2012 +0100
+@@ -84,7 +84,7 @@
+ filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -95,8 +95,10 @@
+ # Untrusted due to possible application of package renames to binpkgs
+ local binpkg_untrusted_vars="CATEGORY P PF PN PR PV PVR"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+@@ -126,7 +128,11 @@
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ if [ "${EMERGE_FROM}" = binary ] ; then
+ # preserve additional variables from build time,
+ # while excluding untrusted variables
+diff -r 04da3d4d44af -r 6780ee2ddb33 man/make.conf.5
+--- a/man/make.conf.5 Thu Mar 01 21:31:12 2012 +0100
++++ b/man/make.conf.5 Thu Mar 01 21:45:34 2012 +0100
+@@ -297,6 +297,12 @@
+ Use locks to ensure that unsandboxed ebuild phases never execute
+ concurrently. Also see \fIparallel\-install\fR.
+ .TP
++.B ebuildshell
++Drop into an interactive shell for each phase function, meant for
++debugging. Because the shell would normally be used to execute the
++phase function, commands like src_unpack or epatch are available in the
++interactive shell. Use `exit 1` to terminate the merge.
++.TP
+ .B fakeroot
+ Enable fakeroot for the install and package phases when a non-root user runs
+ the \fBebuild\fR(1) command.
+diff -r 04da3d4d44af -r 6780ee2ddb33 pym/_emerge/AbstractEbuildProcess.py
+--- a/pym/_emerge/AbstractEbuildProcess.py Thu Mar 01 21:31:12 2012 +0100
++++ b/pym/_emerge/AbstractEbuildProcess.py Thu Mar 01 21:45:34 2012 +0100
+@@ -97,6 +97,7 @@
+ self.fd_pipes = {}
+ null_fd = None
+ if 0 not in self.fd_pipes and \
++ "ebuildshell" not in self.settings.features and \
+ self.phase not in self._phases_interactive_whitelist and \
+ "interactive" not in self.settings.get("PROPERTIES", "").split():
+ null_fd = os.open('/dev/null', os.O_RDONLY)
diff --git a/sys-apps/portage/files/portage-2.2.10.1-case-insensitive-fs.patch b/sys-apps/portage/files/portage-2.2.10.1-case-insensitive-fs.patch
new file mode 100644
index 0000000..7f69cd6
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.10.1-case-insensitive-fs.patch
@@ -0,0 +1,375 @@
+From fc3e0fafac889586ad85b12f414bcd10d30d7021 Mon Sep 17 00:00:00 2001
+From: Zac Medico <zmedico@gentoo.org>
+Date: Thu, 2 Oct 2014 10:57:11 -0700
+Subject: [PATCH] FEATURES=case-insensitive-fs for bug #524236
+
+When case-insensitive-fs is enabled in FEATURES, the dblink.isowner
+method, _owners_db class, and ConfigProtect class will be
+case-insensitive. This causes the collision-protect and unmerge code
+to behave correctly for a case-insensitive file system. If the file
+system is case-insensitive but case-preserving, then case is preserved
+in the CONTENTS data of installed packages.
+
+X-Gentoo-Bug: 524236
+X-Gentoo-Url: https://bugs.gentoo.org/show_bug.cgi?id=524236
+---
+ bin/dispatch-conf | 8 +++++++-
+ bin/etc-update | 14 +++++++++++---
+ bin/portageq | 7 ++++---
+ bin/quickpkg | 4 +++-
+ man/make.conf.5 | 4 ++++
+ pym/_emerge/depgraph.py | 4 +++-
+ pym/portage/_global_updates.py | 4 +++-
+ pym/portage/const.py | 1 +
+ pym/portage/dbapi/vartree.py | 32 +++++++++++++++++++++++++++++++-
+ pym/portage/update.py | 6 ++++--
+ pym/portage/util/__init__.py | 10 +++++++++-
+ 11 files changed, 80 insertions(+), 14 deletions(-)
+
+diff --git a/bin/dispatch-conf b/bin/dispatch-conf
+index fb0a8af..7946415 100755
+--- a/bin/dispatch-conf
++++ b/bin/dispatch-conf
+@@ -29,6 +29,10 @@ from portage.process import find_binary, spawn
+ FIND_EXTANT_CONFIGS = "find '%s' %s -name '._cfg????_%s' ! -name '.*~' ! -iname '.*.bak' -print"
+ DIFF_CONTENTS = "diff -Nu '%s' '%s'"
+
++if "case-insensitive-fs" in portage.settings.features:
++ FIND_EXTANT_CONFIGS = \
++ FIND_EXTANT_CONFIGS.replace("-name '._cfg", "-iname '._cfg")
++
+ # We need a secure scratch dir and python does silly verbose errors on the use of tempnam
+ oldmask = os.umask(0o077)
+ SCRATCH_DIR = None
+@@ -144,7 +148,9 @@ class dispatch:
+ protect_obj = portage.util.ConfigProtect(
+ config_root, config_paths,
+ portage.util.shlex_split(
+- portage.settings.get('CONFIG_PROTECT_MASK', '')))
++ portage.settings.get('CONFIG_PROTECT_MASK', '')),
++ case_insensitive = ("case-insensitive-fs"
++ in portage.settings.features))
+
+ def diff(file1, file2):
+ return diffstatusoutput(DIFF_CONTENTS, file1, file2)
+diff --git a/bin/etc-update b/bin/etc-update
+index 1a99231..c27379b 100755
+--- a/bin/etc-update
++++ b/bin/etc-update
+@@ -67,6 +67,7 @@ scan() {
+ mkdir "${TMP}"/files || die "Failed mkdir command!"
+ count=0
+ input=0
++ local basename
+ local find_opts
+ local path
+
+@@ -75,13 +76,17 @@ scan() {
+
+ if [[ ! -d ${path} ]] ; then
+ [[ ! -f ${path} ]] && continue
+- local my_basename="${path##*/}"
++ basename="${path##*/}"
+ path="${path%/*}"
+- find_opts=( -maxdepth 1 -name "._cfg????_${my_basename}" )
++ find_opts=( -maxdepth 1 )
+ else
++ basename=*
+ # Do not traverse hidden directories such as .svn or .git.
+- find_opts=( -name '.*' -type d -prune -o -name '._cfg????_*' )
++ find_opts=( -name '.*' -type d -prune -o )
+ fi
++ ${case_insensitive} && \
++ find_opts+=( -iname ) || find_opts+=( -name )
++ find_opts+=( "._cfg????_${basename}" )
+ find_opts+=( ! -name '.*~' ! -iname '.*.bak' -print )
+
+ if [ ! -w "${path}" ] ; then
+@@ -623,6 +628,7 @@ ${SET_X} && set -x
+ type -P portageq >/dev/null || die "missing portageq"
+ portage_vars=(
+ CONFIG_PROTECT{,_MASK}
++ FEATURES
+ PORTAGE_CONFIGROOT
+ PORTAGE_INST_{G,U}ID
+ PORTAGE_TMPDIR
+@@ -633,6 +639,8 @@ portage_vars=(
+ eval $(${PORTAGE_PYTHON:+"${PORTAGE_PYTHON}"} "$(type -P portageq)" envvar -v ${portage_vars[@]})
+ export PORTAGE_TMPDIR
+ SCAN_PATHS=${*:-${CONFIG_PROTECT}}
++[[ " ${FEATURES} " == *" case-insensitive-fs "* ]] && \
++ case_insensitive=true || case_insensitive=false
+
+ TMP="${PORTAGE_TMPDIR}/etc-update-$$"
+ trap "die terminated" SIGTERM
+diff --git a/bin/portageq b/bin/portageq
+index 009f116..552cff6 100755
+--- a/bin/portageq
++++ b/bin/portageq
+@@ -379,8 +379,8 @@ def is_protected(argv):
+ protect = portage.util.shlex_split(settings.get("CONFIG_PROTECT", ""))
+ protect_mask = portage.util.shlex_split(
+ settings.get("CONFIG_PROTECT_MASK", ""))
+- protect_obj = ConfigProtect(root, protect, protect_mask)
+-
++ protect_obj = ConfigProtect(root, protect, protect_mask,
++ case_insensitive = ("case-insensitive-fs" in settings.features))
+ if protect_obj.isprotected(f):
+ return 0
+ return 1
+@@ -414,7 +414,8 @@ def filter_protected(argv):
+ protect = portage.util.shlex_split(settings.get("CONFIG_PROTECT", ""))
+ protect_mask = portage.util.shlex_split(
+ settings.get("CONFIG_PROTECT_MASK", ""))
+- protect_obj = ConfigProtect(root, protect, protect_mask)
++ protect_obj = ConfigProtect(root, protect, protect_mask,
++ case_insensitive = ("case-insensitive-fs" in settings.features))
+
+ errors = 0
+
+diff --git a/bin/quickpkg b/bin/quickpkg
+index cf75791..4d6bc87 100755
+--- a/bin/quickpkg
++++ b/bin/quickpkg
+@@ -102,7 +102,9 @@ def quickpkg_atom(options, infos, arg, eout):
+ if not include_config:
+ confprot = ConfigProtect(eroot,
+ shlex_split(settings.get("CONFIG_PROTECT", "")),
+- shlex_split(settings.get("CONFIG_PROTECT_MASK", "")))
++ shlex_split(settings.get("CONFIG_PROTECT_MASK", "")),
++ case_insensitive = ("case-insensitive-fs"
++ in settings.features))
+ def protect(filename):
+ if not confprot.isprotected(filename):
+ return False
+diff --git a/man/make.conf.5 b/man/make.conf.5
+index 84e894b..7b7daa4 100644
+--- a/man/make.conf.5
++++ b/man/make.conf.5
+@@ -265,6 +265,10 @@ Build binary packages for just packages in the system set.
+ Enable a special progress indicator when \fBemerge\fR(1) is calculating
+ dependencies.
+ .TP
++.B case\-insensitive\-fs
++Use case\-insensitive file name comparisions when merging and unmerging
++files.
++.TP
+ .B ccache
+ Enable portage support for the ccache package. If the ccache dir is not
+ present in the user's environment, then portage will default to
+diff --git a/pym/_emerge/depgraph.py b/pym/_emerge/depgraph.py
+index 5180db5..cae8c32 100644
+--- a/pym/_emerge/depgraph.py
++++ b/pym/_emerge/depgraph.py
+@@ -7799,7 +7799,9 @@ class depgraph(object):
+ settings = self._frozen_config.roots[root].settings
+ protect_obj[root] = ConfigProtect(settings["EROOT"], \
+ shlex_split(settings.get("CONFIG_PROTECT", "")),
+- shlex_split(settings.get("CONFIG_PROTECT_MASK", "")))
++ shlex_split(settings.get("CONFIG_PROTECT_MASK", "")),
++ case_insensitive = ("case-insensitive-fs"
++ in settings.features))
+
+ def write_changes(root, changes, file_to_write_to):
+ file_contents = None
+diff --git a/pym/portage/_global_updates.py b/pym/portage/_global_updates.py
+index 17dc080..bb39f7a 100644
+--- a/pym/portage/_global_updates.py
++++ b/pym/portage/_global_updates.py
+@@ -208,7 +208,9 @@ def _do_global_updates(trees, prev_mtimes, quiet=False, if_mtime_changed=True):
+ update_config_files(root,
+ shlex_split(mysettings.get("CONFIG_PROTECT", "")),
+ shlex_split(mysettings.get("CONFIG_PROTECT_MASK", "")),
+- repo_map, match_callback=_config_repo_match)
++ repo_map, match_callback = _config_repo_match,
++ case_insensitive = "case-insensitive-fs"
++ in mysettings.features)
+
+ # The above global updates proceed quickly, so they
+ # are considered a single mtimedb transaction.
+diff --git a/pym/portage/const.py b/pym/portage/const.py
+index acb90f9..5545a84 100644
+--- a/pym/portage/const.py
++++ b/pym/portage/const.py
+@@ -125,6 +125,7 @@ SUPPORTED_FEATURES = frozenset([
+ "buildpkg",
+ "buildsyspkg",
+ "candy",
++ "case-insensitive-fs",
+ "ccache",
+ "cgroup",
+ "chflags",
+diff --git a/pym/portage/dbapi/vartree.py b/pym/portage/dbapi/vartree.py
+index b46ba0b..8a68f4e 100644
+--- a/pym/portage/dbapi/vartree.py
++++ b/pym/portage/dbapi/vartree.py
+@@ -1052,6 +1052,11 @@ class vardbapi(dbapi):
+ def add(self, cpv):
+ eroot_len = len(self._vardb._eroot)
+ contents = self._vardb._dblink(cpv).getcontents()
++
++ if "case-insensitive-fs" in self._vardb.settings.features:
++ contents = dict((k.lower(), v)
++ for k, v in contents.items())
++
+ pkg_hash = self._hash_pkg(cpv)
+ if not contents:
+ # Empty path is a code used to represent empty contents.
+@@ -1189,6 +1194,8 @@ class vardbapi(dbapi):
+ hash_pkg = owners_cache._hash_pkg
+ hash_str = owners_cache._hash_str
+ base_names = self._vardb._aux_cache["owners"]["base_names"]
++ case_insensitive = "case-insensitive-fs" \
++ in vardb.settings.features
+
+ dblink_cache = {}
+
+@@ -1205,6 +1212,8 @@ class vardbapi(dbapi):
+ while path_iter:
+
+ path = path_iter.pop()
++ if case_insensitive:
++ path = path.lower()
+ is_basename = os.sep != path[:1]
+ if is_basename:
+ name = path
+@@ -1236,6 +1245,8 @@ class vardbapi(dbapi):
+
+ if is_basename:
+ for p in dblink(cpv).getcontents():
++ if case_insensitive:
++ p = p.lower()
+ if os.path.basename(p) == name:
+ owners.append((cpv, p[len(root):]))
+ else:
+@@ -1265,8 +1276,12 @@ class vardbapi(dbapi):
+ if not path_list:
+ return
+
++ case_insensitive = "case-insensitive-fs" \
++ in self._vardb.settings.features
+ path_info_list = []
+ for path in path_list:
++ if case_insensitive:
++ path = path.lower()
+ is_basename = os.sep != path[:1]
+ if is_basename:
+ name = path
+@@ -1285,6 +1300,8 @@ class vardbapi(dbapi):
+ for path, name, is_basename in path_info_list:
+ if is_basename:
+ for p in dblnk.getcontents():
++ if case_insensitive:
++ p = p.lower()
+ if os.path.basename(p) == name:
+ search_pkg.results.append((dblnk, p[len(root):]))
+ else:
+@@ -1540,7 +1557,9 @@ class dblink(object):
+ portage.util.shlex_split(
+ self.settings.get("CONFIG_PROTECT", "")),
+ portage.util.shlex_split(
+- self.settings.get("CONFIG_PROTECT_MASK", "")))
++ self.settings.get("CONFIG_PROTECT_MASK", "")),
++ case_insensitive = ("case-insensitive-fs"
++ in self.settings.features))
+
+ return self._protect_obj
+
+@@ -2762,7 +2781,16 @@ class dblink(object):
+ filename.lstrip(os_filename_arg.path.sep)))
+
+ pkgfiles = self.getcontents()
++
++ preserve_case = None
++ if "case-insensitive-fs" in self.settings.features:
++ destfile = destfile.lower()
++ preserve_case = dict((k.lower(), k) for k in pkgfiles)
++ pkgfiles = dict((k.lower(), v) for k, v in pkgfiles.items())
++
+ if pkgfiles and destfile in pkgfiles:
++ if preserve_case is not None:
++ return preserve_case[destfile]
+ return destfile
+ if pkgfiles:
+ basename = os_filename_arg.path.basename(destfile)
+@@ -2855,6 +2883,8 @@ class dblink(object):
+ for p_path in p_path_list:
+ x = os_filename_arg.path.join(p_path, basename)
+ if x in pkgfiles:
++ if preserve_case is not None:
++ return preserve_case[x]
+ return x
+
+ return False
+diff --git a/pym/portage/update.py b/pym/portage/update.py
+index df4e11b..7a71092 100644
+--- a/pym/portage/update.py
++++ b/pym/portage/update.py
+@@ -282,7 +282,8 @@ def parse_updates(mycontent):
+ myupd.append(mysplit)
+ return myupd, errors
+
+-def update_config_files(config_root, protect, protect_mask, update_iter, match_callback = None):
++def update_config_files(config_root, protect, protect_mask, update_iter,
++ match_callback = None, case_insensitive = False):
+ """Perform global updates on /etc/portage/package.*, /etc/portage/profile/package.*,
+ /etc/portage/profile/packages and /etc/portage/sets.
+ config_root - location of files to update
+@@ -406,7 +407,8 @@ def update_config_files(config_root, protect, protect_mask, update_iter, match_c
+ sys.stdout.flush()
+
+ protect_obj = ConfigProtect(
+- config_root, protect, protect_mask)
++ config_root, protect, protect_mask,
++ case_insensitive = case_insensitive)
+ for x in update_files:
+ updating_file = os.path.join(abs_user_config, x)
+ if protect_obj.isprotected(updating_file):
+diff --git a/pym/portage/util/__init__.py b/pym/portage/util/__init__.py
+index 4105c19..707b001 100644
+--- a/pym/portage/util/__init__.py
++++ b/pym/portage/util/__init__.py
+@@ -1555,10 +1555,12 @@ class LazyItemsDict(UserDict):
+ return result
+
+ class ConfigProtect(object):
+- def __init__(self, myroot, protect_list, mask_list):
++ def __init__(self, myroot, protect_list, mask_list,
++ case_insensitive = False):
+ self.myroot = myroot
+ self.protect_list = protect_list
+ self.mask_list = mask_list
++ self.case_insensitive = case_insensitive
+ self.updateprotect()
+
+ def updateprotect(self):
+@@ -1572,6 +1574,8 @@ class ConfigProtect(object):
+ for x in self.protect_list:
+ ppath = normalize_path(
+ os.path.join(self.myroot, x.lstrip(os.path.sep)))
++ if self.case_insensitive:
++ ppath = ppath.lower()
+ try:
+ if stat.S_ISDIR(os.stat(ppath).st_mode):
+ self._dirs.add(ppath)
+@@ -1584,6 +1588,8 @@ class ConfigProtect(object):
+ for x in self.mask_list:
+ ppath = normalize_path(
+ os.path.join(self.myroot, x.lstrip(os.path.sep)))
++ if self.case_insensitive:
++ ppath = ppath.lower()
+ try:
+ """Use lstat so that anything, even a broken symlink can be
+ protected."""
+@@ -1604,6 +1610,8 @@ class ConfigProtect(object):
+ masked = 0
+ protected = 0
+ sep = os.path.sep
++ if self.case_insensitive:
++ obj = obj.lower()
+ for ppath in self.protect:
+ if len(ppath) > masked and obj.startswith(ppath):
+ if ppath in self._dirs:
+--
+1.8.5.5
+
diff --git a/sys-apps/portage/files/portage-2.2.14-ldconfig.patch b/sys-apps/portage/files/portage-2.2.14-ldconfig.patch
new file mode 100644
index 0000000..76fc348
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.14-ldconfig.patch
@@ -0,0 +1,28 @@
+commit 3fb24230a2369513b1f36cba3d772bc517265e81
+Author: Benda Xu <heroxbd@gentoo.org>
+Date: Wed Dec 10 10:45:31 2014 +0900
+
+ In Prefix, let env-update call ldconfig if it exists.
+
+ It does not affect prefix-rpath, and handles prefix-libc(RAP) correctly.
+
+diff --git a/pym/portage/util/env_update.py b/pym/portage/util/env_update.py
+index ace492c..4437881 100644
+--- a/pym/portage/util/env_update.py
++++ b/pym/portage/util/env_update.py
+@@ -306,13 +306,13 @@ def _env_update(makelinks, target_root, prev_mtimes, contents, env,
+ if not libdir_contents_changed:
+ makelinks = False
+
+- ldconfig = "/sbin/ldconfig"
++ ldconfig = eprefix + "/sbin/ldconfig"
+ if "CHOST" in settings and "CBUILD" in settings and \
+ settings["CHOST"] != settings["CBUILD"]:
+ ldconfig = find_binary("%s-ldconfig" % settings["CHOST"])
+
+ # Only run ldconfig as needed
+- if makelinks and ldconfig and not eprefix:
++ if makelinks and ldconfig:
+ # ldconfig has very different behaviour between FreeBSD and Linux
+ if ostype == "Linux" or ostype.lower().endswith("gnu"):
+ # We can't update links if we haven't cleaned other versions first, as
diff --git a/sys-apps/portage/files/portage-2.2.7-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.7-ebuildshell.patch
new file mode 100644
index 0000000..5c8cec8
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.7-ebuildshell.patch
@@ -0,0 +1,158 @@
+diff --git a/bin/ebuild.sh b/bin/ebuild.sh
+index 35f4b91..8e702d0 100755
+--- a/bin/ebuild.sh
++++ b/bin/ebuild.sh
+@@ -90,7 +90,7 @@ __qa_source() {
+ __qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ __call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -467,6 +467,58 @@ if [[ -n ${QA_INTERCEPTORS} ]] ; then
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++__call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | __filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p | grep -v extdebug$"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | __filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ echo "shopt -u extdebug"
++ echo "trap - DEBUG"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=$BASHPID
+ trap 'exit 1' SIGTERM
+diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
+index 711b721..5f3a8a2 100644
+--- a/bin/phase-functions.sh
++++ b/bin/phase-functions.sh
+@@ -87,7 +87,7 @@ PORTAGE_MUTABLE_FILTERED_VARS="AA HOSTNAME"
+ __filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -98,12 +98,14 @@ __filter_readonly_variables() {
+ # Untrusted due to possible application of package renames to binpkgs
+ local binpkg_untrusted_vars="CATEGORY P PF PN PR PV PVR"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+- if ___eapi_has_prefix_variables; then
++ if ___eapi_has_prefix_variables && ! has --filter-for-subshell $* ; then
+ filtered_vars+=" ED EPREFIX EROOT"
+ fi
+
+@@ -123,7 +125,11 @@ __filter_readonly_variables() {
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ if [ "${EMERGE_FROM}" = binary ] ; then
+ # preserve additional variables from build time,
+ # while excluding untrusted variables
+diff --git a/man/make.conf.5 b/man/make.conf.5
+index ab9b44e..45903e3 100644
+--- a/man/make.conf.5
++++ b/man/make.conf.5
+@@ -345,6 +345,12 @@ exist). Also see the related \fIunmerge\-backup\fR feature.
+ Use locks to ensure that unsandboxed ebuild phases never execute
+ concurrently. Also see \fIparallel\-install\fR.
+ .TP
++.B ebuildshell
++Drop into an interactive shell for each phase function, meant for
++debugging. Because the shell would normally be used to execute the
++phase function, commands like src_unpack or epatch are available in the
++interactive shell. Use `exit 1` to terminate the merge.
++.TP
+ .B fakeroot
+ Enable fakeroot for the install and package phases when a non-root user runs
+ the \fBebuild\fR(1) command.
+diff --git a/pym/_emerge/AbstractEbuildProcess.py b/pym/_emerge/AbstractEbuildProcess.py
+index 31127f4..73031d0 100644
+--- a/pym/_emerge/AbstractEbuildProcess.py
++++ b/pym/_emerge/AbstractEbuildProcess.py
+@@ -136,6 +136,7 @@ class AbstractEbuildProcess(SpawnProcess):
+ self.fd_pipes = {}
+ null_fd = None
+ if 0 not in self.fd_pipes and \
++ "ebuildshell" not in self.settings.features and \
+ self.phase not in self._phases_interactive_whitelist and \
+ "interactive" not in self.settings.get("PROPERTIES", "").split():
+ null_fd = os.open('/dev/null', os.O_RDONLY)
+diff --git a/pym/portage/const.py b/pym/portage/const.py
+index 214ede4..725a7d0 100644
+--- a/pym/portage/const.py
++++ b/pym/portage/const.py
+@@ -100,7 +100,7 @@ SUPPORTED_FEATURES = frozenset([
+ "collision-protect", "compress-build-logs", "compressdebug",
+ "compress-index", "config-protect-if-modified",
+ "digest", "distcc", "distcc-pump", "distlocks",
+- "downgrade-backup", "ebuild-locks", "fakeroot",
++ "downgrade-backup", "ebuildshell", "ebuild-locks", "fakeroot",
+ "fail-clean", "force-mirror", "force-prefix", "getbinpkg",
+ "installsources", "ipc-sandbox",
+ "keeptemp", "keepwork", "fixlafiles", "lmirror",
diff --git a/sys-apps/portage/files/portage-2.2.7-macho-relative-install_names.patch b/sys-apps/portage/files/portage-2.2.7-macho-relative-install_names.patch
new file mode 100644
index 0000000..d38d966
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.7-macho-relative-install_names.patch
@@ -0,0 +1,68 @@
+commit e1fbd70801e93a5b77febc6c9e95ad43d0ecabbb
+Author: Fabian Groffen <grobian@gentoo.org>
+Date: Sun Dec 22 14:45:31 2013 +0100
+
+ install_qa_check_macho: allow relative install_names
+
+ relative install_names (@..../) will be used in binaries a lot, and if
+ they are provided as such, there is nothing wrong with it. Since they
+ disallow us to do any checks, we just do the least check we can do,
+ which is for the install_name self-reference. We want to find the
+ library that points to in the install image, if not, it must be wrong.
+
+diff --git a/bin/misc-functions.sh b/bin/misc-functions.sh
+index 129f7d3..83004df 100644
+--- a/bin/misc-functions.sh
++++ b/bin/misc-functions.sh
+@@ -1049,6 +1049,15 @@ install_qa_check_macho() {
+ rm -f "${T}/mach-o.check"
+ fi
+
++ install_name_is_relative() {
++ case $1 in
++ "@executable_path/"*) return 0 ;;
++ "@loader_path"/*) return 0 ;;
++ "@rpath/"*) return 0 ;;
++ *) return 1 ;;
++ esac
++ }
++
+ # While we generate the NEEDED files, check that we don't get kernel
+ # traps at runtime because of broken install_names on Darwin.
+ rm -f "${T}"/.install_name_check_failed
+@@ -1061,6 +1070,17 @@ install_qa_check_macho() {
+ # See if the self-reference install_name points to an existing
+ # and to be installed file. This usually is a symlink for the
+ # major version.
++ if install_name_is_relative ${install_name} ; then
++ # try to locate the library in the installed image
++ local inpath=${install_name#@*/}
++ local libl
++ for libl in $(find "${ED}" -name "${inpath##*/}") ; do
++ if [[ ${libl} == */${inpath} ]] ; then
++ install_name=/${libl#${D}}
++ break
++ fi
++ done
++ fi
+ if [[ ! -e ${D}${install_name} ]] ; then
+ eqawarn "QA Notice: invalid self-reference install_name ${install_name} in ${obj}"
+ # remember we are in an implicit subshell, that's
+@@ -1077,7 +1097,7 @@ install_qa_check_macho() {
+ elif [[ ${lib} == ${S}* ]] ; then
+ eqawarn "QA Notice: install_name references \${S}: ${lib} in ${obj}"
+ touch "${T}"/.install_name_check_failed
+- elif [[ ! -e ${lib} && ! -e ${D}${lib} && ${lib} != "@executable_path/"* && ${lib} != "@loader_path/"* ]] ; then
++ elif ! install_name_is_relative ${lib} && [[ ! -e ${lib} && ! -e ${D}${lib} ]] ; then
+ eqawarn "QA Notice: invalid reference to ${lib} in ${obj}"
+ # remember we are in an implicit subshell, that's
+ # why we touch a file here ... ideally we should be
+@@ -1086,7 +1106,7 @@ install_qa_check_macho() {
+ fi
+ done
+
+- # backwards compatability
++ # backwards compatibility
+ echo "${obj} ${needed}" >> "${PORTAGE_BUILDDIR}"/build-info/NEEDED
+ # what we use
+ echo "${arch};${obj};${install_name};${needed}" >> "${PORTAGE_BUILDDIR}"/build-info/NEEDED.MACHO.3
diff --git a/sys-apps/portage/files/portage-2.2.7-sandbox.patch b/sys-apps/portage/files/portage-2.2.7-sandbox.patch
new file mode 100644
index 0000000..9797d31
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.7-sandbox.patch
@@ -0,0 +1,21 @@
+candidate patch to be included in the next revision
+
+https://bugs.gentoo.org/show_bug.cgi?id=490016
+
+diff --git a/pym/portage/package/ebuild/doebuild.py b/pym/portage/package/ebuild/doebuild.py
+index 691ef97..7a000b1 100644
+--- a/pym/portage/package/ebuild/doebuild.py
++++ b/pym/portage/package/ebuild/doebuild.py
+@@ -1311,10 +1311,8 @@ def _spawn_actionmap(settings):
+ nosandbox = ("sandbox" not in features and \
+ "usersandbox" not in features)
+
+- if not portage.process.sandbox_capable:
+- nosandbox = True
+-
+- if not portage.process.macossandbox_capable:
++ if not (portage.process.sandbox_capable or \
++ portage.process.macossandbox_capable):
+ nosandbox = True
+
+ sesandbox = settings.selinux_enabled() and \
diff --git a/sys-apps/portage/files/portage-2.2.7-shebang-fixes.patch b/sys-apps/portage/files/portage-2.2.7-shebang-fixes.patch
new file mode 100644
index 0000000..afb00c1
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.7-shebang-fixes.patch
@@ -0,0 +1,153 @@
+Hi Fabian,
+
+when /bin/bash is some bash-3.x, things break miserably:
+/tools/gentoo/buildslave/sauxz3-f_pfx-10.0/build/gentoo-prefix/usr/lib/portage/bin/eapi.sh: line 8: syntax error in conditional expression: unexpected token `('
+/tools/gentoo/buildslave/sauxz3-f_pfx-10.0/build/gentoo-prefix/usr/lib/portage/bin/eapi.sh: line 8: syntax error near `^(0'
+/tools/gentoo/buildslave/sauxz3-f_pfx-10.0/build/gentoo-prefix/usr/lib/portage/bin/eapi.sh: line 8: ` [[ ! ${1-${EAPI}} =~ ^(0|1|2|3)$ ]]'
+/tools/gentoo/buildslave/sauxz3-f_pfx-10.0/build/gentoo-prefix/usr/lib/portage/bin/ebuild-helpers/keepdir: line 7: ___eapi_has_prefix_variables: command not found
+
+There are still some scripts in 2.2.7 that need to get the shebangs fixed:
+$ git grep '#!/'
+
+Thanks!
+/haubi/
+---
+ bin/bashrc-functions.sh | 2 +-
+ bin/eapi.sh | 2 +-
+ bin/ebuild-helpers/doheader | 2 +-
+ bin/ebuild-helpers/keepdir | 2 +-
+ bin/ebuild-helpers/newins | 1 -
+ bin/ebuild-helpers/xattr/install | 2 +-
+ bin/helper-functions.sh | 2 +-
+ bin/install.py | 2 +-
+ bin/phase-functions.sh | 2 +-
+ bin/phase-helpers.sh | 2 +-
+ bin/xattr-helper.py | 2 +-
+ misc/emerge-delta-webrsync | 2 +-
+ 12 files changed, 11 insertions(+), 12 deletions(-)
+
+diff --git a/bin/bashrc-functions.sh b/bin/bashrc-functions.sh
+index 69a5eb9..1a92738 100644
+--- a/bin/bashrc-functions.sh
++++ b/bin/bashrc-functions.sh
+@@ -1,4 +1,4 @@
+-#!@PREFIX_PORTAGE_BASH@
++#!@PORTAGE_BASH@
+ # Copyright 1999-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/eapi.sh b/bin/eapi.sh
+index 623b89f..670f884 100644
+--- a/bin/eapi.sh
++++ b/bin/eapi.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@PORTAGE_BASH@
+ # Copyright 2012 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/ebuild-helpers/doheader b/bin/ebuild-helpers/doheader
+index 3795365..5b6b169 100755
+--- a/bin/ebuild-helpers/doheader
++++ b/bin/ebuild-helpers/doheader
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@PORTAGE_BASH@
+ # Copyright 1999-2012 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/ebuild-helpers/keepdir b/bin/ebuild-helpers/keepdir
+index bec2feb..7167981 100755
+--- a/bin/ebuild-helpers/keepdir
++++ b/bin/ebuild-helpers/keepdir
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@PORTAGE_BASH@
+ # Copyright 1999-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/ebuild-helpers/newins b/bin/ebuild-helpers/newins
+index 26dd049..2638a38 100755
+--- a/bin/ebuild-helpers/newins
++++ b/bin/ebuild-helpers/newins
+@@ -1,5 +1,4 @@
+ #!@PORTAGE_BASH@
+-#!/bin/bash
+ # Copyright 1999-2012 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/ebuild-helpers/xattr/install b/bin/ebuild-helpers/xattr/install
+index f51f621..b1d2315 100755
+--- a/bin/ebuild-helpers/xattr/install
++++ b/bin/ebuild-helpers/xattr/install
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@PORTAGE_BASH@
+ # Copyright 2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/helper-functions.sh b/bin/helper-functions.sh
+index c574612..864d5fe 100644
+--- a/bin/helper-functions.sh
++++ b/bin/helper-functions.sh
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@PORTAGE_BASH@
+ # Copyright 1999-2012 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/install.py b/bin/install.py
+index 2c6dfbe..9bd38c7 100755
+--- a/bin/install.py
++++ b/bin/install.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!@PREFIX_PORTAGE_PYTHON@
+ # Copyright 2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
+index 80e7cc6..4650e14 100644
+--- a/bin/phase-functions.sh
++++ b/bin/phase-functions.sh
+@@ -1,4 +1,4 @@
+-#!@PREFIX_PORTAGE_BASH@
++#!@PORTAGE_BASH@
+ # Copyright 1999-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/phase-helpers.sh b/bin/phase-helpers.sh
+index 12238c6..dc20991 100644
+--- a/bin/phase-helpers.sh
++++ b/bin/phase-helpers.sh
+@@ -1,4 +1,4 @@
+-#!@PREFIX_PORTAGE_BASH@
++#!@PORTAGE_BASH@
+ # Copyright 1999-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/bin/xattr-helper.py b/bin/xattr-helper.py
+index a85309f..d6cef4f 100755
+--- a/bin/xattr-helper.py
++++ b/bin/xattr-helper.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python
++#!@PREFIX_PORTAGE_PYTHON@
+ # Copyright 2012-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+
+diff --git a/misc/emerge-delta-webrsync b/misc/emerge-delta-webrsync
+index b16982b..66e9275 100755
+--- a/misc/emerge-delta-webrsync
++++ b/misc/emerge-delta-webrsync
+@@ -1,4 +1,4 @@
+-#!/bin/bash
++#!@PORTAGE_BASH@
+ # Copyright 1999-2013 Gentoo Foundation
+ # Distributed under the terms of the GNU General Public License v2
+ # Author: Brian Harring <ferringb@gentoo.org>, karltk@gentoo.org originally.
+--
+1.8.1.5
+
+
+
diff --git a/sys-apps/portage/files/portage-2.2.8-ebuildshell.patch b/sys-apps/portage/files/portage-2.2.8-ebuildshell.patch
new file mode 100644
index 0000000..82219eb
--- /dev/null
+++ b/sys-apps/portage/files/portage-2.2.8-ebuildshell.patch
@@ -0,0 +1,157 @@
+diff --git a/bin/ebuild.sh b/bin/ebuild.sh
+index 35f4b91..8e702d0 100755
+--- a/bin/ebuild.sh
++++ b/bin/ebuild.sh
+@@ -90,7 +90,7 @@
+ __qa_call() {
+ local shopts=$(shopt) OLDIFS="$IFS"
+ local retval
+- "$@"
++ __call-ebuildshell "$@"
+ retval=$?
+ set +e
+ [[ $shopts != $(shopt) ]] &&
+@@ -467,6 +467,58 @@
+ unset BIN_PATH BIN BODY FUNC_SRC
+ fi
+
++__call-ebuildshell() {
++ if ! has ebuildshell ${FEATURES}; then
++ "$@"
++ return $?
++ fi
++ (
++ umask 002
++ (
++ (
++ set
++ declare -p
++ declare -fp
++ shopt -p
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ export
++ fi
++ ) | __filter_readonly_variables --filter-for-subshell
++ echo 'declare -r $PORTAGE_READONLY_METADATA $PORTAGE_READONLY_VARS'
++ echo "export PS1='EBUILD ${PN} $1 \$ '"
++ echo 'unset ENV'
++ echo "type $1"
++ echo "echo WANTED: $@"
++ echo "trap '"
++ echo "umask 002"
++ echo "("
++ echo " set"
++ echo " declare -p"
++ echo " declare -fp"
++ echo " shopt -p | grep -v extdebug$"
++ if [[ ${BASH_VERSINFO[0]} == 3 ]]; then
++ echo " export"
++ fi
++ echo -n ")"
++ echo -n " | __filter_readonly_variables --filter-metadata"
++ echo " > ${T}/ebuildshell-environment-outcome' 0"
++ echo "shopt -u extdebug"
++ echo "trap - DEBUG"
++ ) > ${T}/ebuildshell-environment
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment" &>/dev/null
++ )
++
++ rm -f "${T}/ebuildshell-environment-outcome" >&/dev/null
++
++ unset BASH_ENV
++ env -i ${BASH} --rcfile "${T}/ebuildshell-environment" -i || die
++
++ chown ${PORTAGE_USER:-portage}:${PORTAGE_GROUP:-portage} "${T}/ebuildshell-environment-outcome" &>/dev/null
++ chmod g+w "${T}/ebuildshell-environment-outcome" &>/dev/null
++ source "${T}/ebuildshell-environment-outcome" &>/dev/null
++}
++
+ # Subshell/helper die support (must export for the die helper).
+ export EBUILD_MASTER_PID=${BASHPID:-$(__bashpid)}
+ trap 'exit 1' SIGTERM
+diff --git a/bin/phase-functions.sh b/bin/phase-functions.sh
+index 711b721..5f3a8a2 100644
+--- a/bin/phase-functions.sh
++++ b/bin/phase-functions.sh
+@@ -87,7 +87,7 @@ PORTAGE_MUTABLE_FILTERED_VARS="AA HOSTNAME"
+ __filter_readonly_variables() {
+ local x filtered_vars
+ local readonly_bash_vars="BASHOPTS BASHPID DIRSTACK EUID
+- FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID"
++ FUNCNAME GROUPS PIPESTATUS PPID SHELLOPTS UID BASH_VERSINFO"
+ local bash_misc_vars="BASH BASH_.* COLUMNS COMP_WORDBREAKS HISTCMD
+ HISTFILE HOSTNAME HOSTTYPE IFS LINENO MACHTYPE OLDPWD
+ OPTERR OPTIND OSTYPE POSIXLY_CORRECT PS4 PWD RANDOM
+@@ -98,12 +98,14 @@ __filter_readonly_variables() {
+ # Untrusted due to possible application of package renames to binpkgs
+ local binpkg_untrusted_vars="CATEGORY P PF PN PR PV PVR"
+ local misc_garbage_vars="_portage_filter_opts"
+- filtered_vars="$readonly_bash_vars $bash_misc_vars
+- $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ filtered_vars="$readonly_bash_vars"
++ if ! has --filter-for-subshell $* ; then
++ filtered_vars="$filtered_vars $bash_misc_vars $PORTAGE_READONLY_VARS $misc_garbage_vars"
++ fi
+
+ # Don't filter/interfere with prefix variables unless they are
+ # supported by the current EAPI.
+- if ___eapi_has_prefix_variables; then
++ if ___eapi_has_prefix_variables && ! has --filter-for-subshell $* ; then
+ filtered_vars+=" ED EPREFIX EROOT"
+ fi
+
+@@ -123,7 +125,11 @@ __filter_readonly_variables() {
+ LC_CTYPE LC_MESSAGES LC_MONETARY
+ LC_NUMERIC LC_PAPER LC_TIME"
+ fi
+- if ! has --allow-extra-vars $* ; then
++ if has --filter-metadata $* ; then
++ filtered_vars="$filtered_vars $PORTAGE_READONLY_METADATA"
++ fi
++ if ! has --allow-extra-vars $* &&
++ ! has --filter-for-subshell $* ; then
+ if [ "${EMERGE_FROM}" = binary ] ; then
+ # preserve additional variables from build time,
+ # while excluding untrusted variables
+diff --git a/man/make.conf.5 b/man/make.conf.5
+index ab9b44e..45903e3 100644
+--- a/man/make.conf.5
++++ b/man/make.conf.5
+@@ -346,6 +346,12 @@
+ Use locks to ensure that unsandboxed ebuild phases never execute
+ concurrently. Also see \fIparallel\-install\fR.
+ .TP
++.B ebuildshell
++Drop into an interactive shell for each phase function, meant for
++debugging. Because the shell would normally be used to execute the
++phase function, commands like src_unpack or epatch are available in the
++interactive shell. Use `exit 1` to terminate the merge.
++.TP
+ .B fakeroot
+ Enable fakeroot for the install and package phases when a non-root user runs
+ the \fBebuild\fR(1) command.
+diff --git a/pym/_emerge/AbstractEbuildProcess.py b/pym/_emerge/AbstractEbuildProcess.py
+index 31127f4..73031d0 100644
+--- a/pym/_emerge/AbstractEbuildProcess.py
++++ b/pym/_emerge/AbstractEbuildProcess.py
+@@ -136,6 +136,7 @@ class AbstractEbuildProcess(SpawnProcess):
+ self.fd_pipes = {}
+ null_fd = None
+ if 0 not in self.fd_pipes and \
++ "ebuildshell" not in self.settings.features and \
+ self.phase not in self._phases_interactive_whitelist and \
+ "interactive" not in self.settings.get("PROPERTIES", "").split():
+ null_fd = os.open('/dev/null', os.O_RDONLY)
+diff --git a/pym/portage/const.py b/pym/portage/const.py
+index 214ede4..725a7d0 100644
+--- a/pym/portage/const.py
++++ b/pym/portage/const.py
+@@ -139,6 +139,7 @@ SUPPORTED_FEATURES = frozenset([
+ "distlocks",
+ "downgrade-backup",
+ "ebuild-locks",
++ "ebuildshell",
+ "fail-clean",
+ "fakeroot",
+ "fixlafiles",
diff --git a/sys-apps/portage/metadata.xml b/sys-apps/portage/metadata.xml
new file mode 100644
index 0000000..34ef584
--- /dev/null
+++ b/sys-apps/portage/metadata.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>prefix</herd>
+ <maintainer><email>grobian@gentoo.org</email></maintainer>
+
+ <use>
+ <flag name="epydoc">Build html API documentation with epydoc.</flag>
+ <flag name="ipc">Use inter-process communication between portage and running ebuilds.</flag>
+ <flag name="less">Pull in sys-apps/less as default pager for etc-update.</flag>
+ <flag name="prefix-chaining">mduft's experimental prefix chaining facilities</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-apps/portage/portage-2.2.10.1-r1.ebuild b/sys-apps/portage/portage-2.2.10.1-r1.ebuild
new file mode 100644
index 0000000..570635f
--- /dev/null
+++ b/sys-apps/portage/portage-2.2.10.1-r1.ebuild
@@ -0,0 +1,592 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: portage-2.2.01.16270.ebuild 58665 2010-09-05 19:54:38Z grobian $
+
+# Require EAPI 2 since we now require at least python-2.6 (for python 3
+# syntax support) which also requires EAPI 2.
+EAPI=3
+PYTHON_COMPAT=(
+ pypy1_9 pypy2_0
+ python3_1 python3_2 python3_3 python3_4
+ python2_6 python2_7
+)
+inherit eutils multilib
+
+DESCRIPTION="Prefix branch of the Portage Package Manager, used in Gentoo Prefix"
+HOMEPAGE="http://www.gentoo.org/proj/en/gentoo-alt/prefix/"
+LICENSE="GPL-2"
+KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+IUSE="build doc epydoc +ipc linguas_ru pypy2_0 python2 python3 selinux xattr prefix-chaining"
+
+for _pyimpl in ${PYTHON_COMPAT[@]} ; do
+ IUSE+=" python_targets_${_pyimpl}"
+done
+unset _pyimpl
+
+# Import of the io module in python-2.6 raises ImportError for the
+# thread module if threading is disabled.
+python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
+ !pypy2_0? ( !python2? ( !python3? (
+ || ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
+ ) ) )
+ pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
+ python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
+python_dep="${python_dep_ssl//\[ssl\]}"
+python_dep="${python_dep//,ssl}"
+python_dep="${python_dep//ssl,}"
+
+python_dep="${python_dep}
+ python_targets_pypy1_9? ( dev-python/pypy:1.9 )
+ python_targets_pypy2_0? ( dev-python/pypy:2.0 )
+ python_targets_python2_6? ( dev-lang/python:2.6 )
+ python_targets_python2_7? ( dev-lang/python:2.7 )
+ python_targets_python3_1? ( dev-lang/python:3.1 )
+ python_targets_python3_2? ( dev-lang/python:3.2 )
+ python_targets_python3_3? ( dev-lang/python:3.3 )
+ python_targets_python3_4? ( dev-lang/python:3.4 )
+"
+
+# The pysqlite blocker is for bug #282760.
+# make-3.82 is for bug #455858
+DEPEND="${python_dep}
+ >=sys-devel/make-3.82
+ >=sys-apps/sed-4.0.5 sys-devel/patch
+ doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
+ epydoc? ( >=dev-python/epydoc-2.0 !<=dev-python/pysqlite-2.4.1 )"
+# Require sandbox-2.2 for bug #288863.
+# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
+# quite slow, so it's not considered in the dependencies as an alternative to
+# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
+# for now, don't pull in xattr deps for other kernels.
+# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
+# For compgen, require bash[readline] (bug #445576).
+# bash-4.1 necessary for redirect_alloc_fd, which fails on non-Linux if bash
+# doesn't have a builtin for finding a random filedescriptor
+RDEPEND="${python_dep}
+ !build? ( >=sys-apps/sed-4.0.5
+ || ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-4.1 ) )
+ >=app-admin/eselect-1.2
+ || ( ${python_dep_ssl} dev-python/python-mhash )
+ )
+ elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
+ elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
+ kernel_HPUX? ( !hppa-hpux? ( >=app-misc/pax-utils-0.1.19 ) )
+ kernel_AIX? ( >=sys-apps/aix-miscutils-0.1.1634 )
+ xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
+ selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
+ !<app-shells/bash-3.2_p17
+ !prefix? ( !<app-admin/logrotate-3.8.0 )"
+PDEPEND="
+ !build? (
+ >=net-misc/rsync-2.6.4
+ userland_GNU? ( >=sys-apps/coreutils-6.4 )
+ )"
+# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
+# NOTE: FEATURES=installsources requires debugedit and rsync
+
+SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives http://dev.gentoo.org/~grobian/distfiles"
+
+prefix_src_archives() {
+ local x y
+ for x in ${@}; do
+ for y in ${SRC_ARCHIVES}; do
+ echo ${y}/${x}
+ done
+ done
+}
+
+PV_PL="2.1.2"
+PATCHVER_PL=""
+TARBALL_PV="${PV}"
+SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
+ $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
+
+PATCHVER=
+[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
+if [ -n "${PATCHVER}" ]; then
+ SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
+ $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
+fi
+
+S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
+S_PL="${WORKDIR}"/${PN}-${PV_PL}
+
+compatible_python_is_selected() {
+ [[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
+}
+
+current_python_has_xattr() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ [[ $("${PYTHON}" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
+ "${PYTHON}" -c 'import xattr' 2>/dev/null
+}
+
+call_with_python_impl() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ env EPYTHON=${EPYTHON} "$@"
+}
+
+get_python_interpreter() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1 python
+ case "${impl}" in
+ python*)
+ python=${impl/_/.}
+ ;;
+ pypy*)
+ python=${impl/_/.}
+ python=${python/pypy/pypy-c}
+ ;;
+ *)
+ die "Unrecognized python target: ${impl}"
+ esac
+ echo ${python}
+}
+
+get_python_sitedir() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1
+ local site_dir=/usr/$(get_libdir)/${impl/_/.}/site-packages
+ [[ -d ${EROOT}${site_dir} ]] || \
+ ewarn "site-packages dir missing for ${impl}: ${EROOT}${site_dir}"
+ echo "${site_dir}"
+}
+
+python_compileall() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local d=${EPREFIX}$1 PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ local d_image=${D}${d#/}
+ [[ -d ${d_image} ]] || die "directory does not exist: ${d_image}"
+ case "${EPYTHON}" in
+ python*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ # Note: Using -OO breaks emaint, since it requires __doc__,
+ # and __doc__ is None when -OO is used.
+ "${PYTHON}" -O -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ pypy*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ *)
+ die "Unrecognized EPYTHON value: ${EPYTHON}"
+ esac
+}
+
+pkg_setup() {
+ if use python2 && use python3 ; then
+ ewarn "Both python2 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python3 ; then
+ ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python2 ; then
+ ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python2"
+ fi
+ if ! use pypy2_0 && ! use python2 && ! use python3 && \
+ ! compatible_python_is_selected ; then
+ ewarn "Attempting to select a compatible default python interpreter"
+ local x success=0
+ for x in "${EPREFIX}"/usr/bin/python2.* ; do
+ x=${x#${EPREFIX}/usr/bin/python2.}
+ if [[ $x -ge 6 ]] 2>/dev/null ; then
+ eselect python set python2.$x
+ if compatible_python_is_selected ; then
+ elog "Default python interpreter is now set to python-2.$x"
+ success=1
+ break
+ fi
+ fi
+ done
+ if [ $success != 1 ] ; then
+ eerror "Unable to select a compatible default python interpreter!"
+ die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)."
+ fi
+ fi
+
+ # We use EPYTHON to designate the active python interpreter,
+ # but we only export when needed, via call_with_python_impl.
+ EPYTHON=python
+ export -n EPYTHON
+ if use python3; then
+ EPYTHON=python3
+ elif use python2; then
+ EPYTHON=python2
+ elif use pypy2_0; then
+ EPYTHON=pypy-c2.0
+ fi
+}
+
+src_prepare() {
+ if [ -n "${PATCHVER}" ] ; then
+ if [[ -L $S/bin/ebuild-helpers/portageq ]] ; then
+ rm "$S/bin/ebuild-helpers/portageq" \
+ || die "failed to remove portageq helper symlink"
+ fi
+ epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
+ fi
+
+ use prefix-chaining && epatch "${FILESDIR}"/${PN}-2.2.00.15801-prefix-chaining.patch
+ epatch "${FILESDIR}"/${PN}-2.2.8-ebuildshell.patch # 155161
+ # use pool of servers
+ sed -i \
+ -e 's/prefix.gentooexperimental.org/rsync.prefix.bitzolder.nl/' \
+ bin/emerge-webrsync cnf/make.conf.example cnf/repos.conf
+
+ # temp workaround to be able to upgrade to 2.2.14
+ epatch "${FILESDIR}"/${P}-case-insensitive-fs.patch # 524236
+ sed -i \
+ -e 's/force-prefix/force-prefix case-insensitive-fs/' \
+ cnf/make.globals
+
+ if ! use ipc ; then
+ einfo "Disabling ipc..."
+ sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
+ -i pym/_emerge/AbstractEbuildProcess.py || \
+ die "failed to patch AbstractEbuildProcess.py"
+ fi
+
+ if use xattr && use kernel_linux ; then
+ einfo "Adding FEATURES=xattr to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ local set_shebang=
+ if use python3; then
+ set_shebang=python3
+ elif use python2; then
+ set_shebang=python2
+ elif use pypy2_0; then
+ set_shebang=pypy-c2.0
+ fi
+ if [[ -n ${set_shebang} ]] ; then
+ einfo "Converting shebangs for ${set_shebang}..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!${EPREFIX}/usr/bin/python"* ]] ; then
+ sed -i -e "1s:python:${set_shebang}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+ fi
+
+ # "native" Prefix still uses configure
+ if use !prefix && [[ -n ${EPREFIX} ]] ; then
+ einfo "Setting portage.const.EPREFIX ..."
+ sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
+ -i pym/portage/const.py || \
+ die "Failed to patch portage.const.EPREFIX"
+
+ einfo "Prefixing shebangs ..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
+ sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+
+ einfo "Adding FEATURES=force-prefix to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ if use !prefix ; then
+ cd "${S}/cnf" || die
+ if [ -f "make.conf.${ARCH}".diff ]; then
+ patch make.conf "make.conf.${ARCH}".diff || \
+ die "Failed to patch make.conf.example"
+ else
+ eerror ""
+ eerror "Portage does not have an arch-specific configuration for this arch."
+ eerror "Please notify the arch maintainer about this issue. Using generic."
+ eerror ""
+ fi
+ fi
+}
+
+src_configure() {
+ if use prefix ; then
+ local extrapath="/usr/bin:/bin"
+ # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
+ # tend not to update that often, as long as we are a separate ebuild
+ # we can assume when unset, it's time for some older trick
+ if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
+ PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
+ fi
+ # lazy check, but works for now
+ if [[ ${PORTAGE_ROOT_USER} == "root" ]] ; then
+ # we need this for e.g. mtree on FreeBSD (and Darwin) which is in
+ # /usr/sbin
+ extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
+ fi
+
+ econf \
+ --with-portage-user="${PORTAGE_USER:-portage}" \
+ --with-portage-group="${PORTAGE_GROUP:-portage}" \
+ --with-root-user="${PORTAGE_ROOT_USER}" \
+ --with-offset-prefix="${EPREFIX}" \
+ --with-extra-path="${extrapath}" \
+ || die "econf failed"
+ else
+ default
+ fi
+}
+
+src_compile() {
+ if use prefix ; then
+ emake || die "emake failed"
+ fi
+
+ if use doc; then
+ call_with_python_impl \
+ emake docbook || die
+ fi
+
+ if use epydoc; then
+ einfo "Generating api docs"
+ call_with_python_impl \
+ emake epydoc || die
+ fi
+}
+
+src_test() {
+ # make files executable, in case they were created by patch
+ find bin -type f | xargs chmod +x
+ call_with_python_impl \
+ emake test || die
+}
+
+src_install() {
+ local portage_base="/usr/lib/portage"
+
+ emake DESTDIR="${D}" install || die "make install failed."
+ dodir /usr/lib/portage/bin
+
+ if use userland_GNU; then
+ rm "${ED}"${portage_base}/bin/ebuild-helpers/bsd/sed || die "Failed to remove sed wrapper"
+ fi
+
+ use doc && dohtml -r "${S}"/doc/*
+ use epydoc && dohtml -r "${WORKDIR}"/api
+ dodir /etc/portage
+ keepdir /etc/portage
+
+ # Use dodoc for compression, since the Makefile doesn't do that.
+ dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
+
+ # Allow external portage API consumers to import portage python modules
+ # (this used to be done with PYTHONPATH setting in /etc/env.d).
+ # For each of PYTHON_TARGETS, install a tree of *.py symlinks in
+ # site-packages, and compile with the corresponding interpreter.
+ local impl files mod_dir dest_mod_dir python relative_path x
+ for impl in "${PYTHON_COMPAT[@]}" ; do
+ use "python_targets_${impl}" || continue
+ if use build && [[ ${ROOT} == / &&
+ ! -x ${EPREFIX}/usr/bin/$(get_python_interpreter ${impl}) ]] ; then
+ # Tolerate --nodeps at beginning of stage1 for catalyst
+ ewarn "skipping python_targets_${impl}, interpreter not found"
+ continue
+ fi
+ while read -r mod_dir ; do
+ cd "${ED}/usr/lib/portage/pym/${mod_dir}" || die
+ files=$(echo *.py)
+ if [ -z "${files}" ] || [ "${files}" = "*.py" ]; then
+ # __pycache__ directories contain no py files
+ continue
+ fi
+ dest_mod_dir=$(get_python_sitedir ${impl})/${mod_dir}
+ dodir "${dest_mod_dir}" || die
+ relative_path=../../../lib/portage/pym/${mod_dir}
+ x=/${mod_dir}
+ while [ -n "${x}" ] ; do
+ relative_path=../${relative_path}
+ x=${x%/*}
+ done
+ for x in ${files} ; do
+ dosym "${relative_path}/${x}" \
+ "${dest_mod_dir}/${x}" || die
+ done
+ done < <(cd "${ED}"/usr/lib/portage/pym || die ; find * -type d ! -path "portage/tests*")
+ cd "${S}" || die
+ EPYTHON=$(get_python_interpreter ${impl}) \
+ python_compileall "$(get_python_sitedir ${impl})"
+ done
+
+ # Compile /usr/lib/portage/pym with the active interpreter, since portage
+ # internal commands force this directory to the beginning of sys.path.
+ python_compileall /usr/lib/portage/pym
+}
+
+pkg_preinst() {
+ if [[ $ROOT == / ]] ; then
+ # Run some minimal tests as a sanity check.
+ local test_runner=$(find "$ED" -name runTests)
+ if [[ -n $test_runner && -x $test_runner ]] ; then
+ einfo "Running preinst sanity tests..."
+ "$test_runner" || die "preinst sanity tests failed"
+ fi
+ fi
+
+ if use xattr && ! current_python_has_xattr ; then
+ ewarn "For optimal performance in xattr handling, install"
+ ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
+ ewarn "enable USE=python3 for $CATEGORY/$PN."
+ fi
+
+ has_version "<=${CATEGORY}/${PN}-2.2.00.13346"
+ EAPIPREFIX_UPGRADE=$?
+
+ if has_version "<${CATEGORY}/${PN}-2.2.7-r1" ; then
+ REPOS_CONF_UPGRADE=true
+ REPOS_CONF_SYNC=
+ type -P portageq >/dev/null 2>&1 && \
+ REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC)
+ fi
+}
+
+new_config_protect() {
+ # Generate a ._cfg file even if the target file
+ # does not exist, ensuring that the user will
+ # notice the config change.
+ local basename=${1##*/}
+ local dirname=${1%/*}
+ local i=0
+ while true ; do
+ local filename=$(
+ echo -n "${dirname}/._cfg"
+ printf "%04d" ${i}
+ echo -n "_${basename}"
+ )
+ [[ -e ${filename} ]] || break
+ (( i++ ))
+ done
+ echo "${filename}"
+}
+
+pkg_postinst() {
+
+ if [[ -n ${REPOS_CONF_UPGRADE} ]] ; then
+ einfo "Generating repos.conf"
+ local repo_name=
+ [[ -f ${PORTDIR}/profiles/repo_name ]] && \
+ repo_name=$(< "${PORTDIR}/profiles/repo_name")
+ if [[ -z ${REPOS_CONF_SYNC} ]] ; then
+ REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf")
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* }
+ fi
+ local sync_type=
+ [[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git
+
+ if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then
+ sync_type=cvs
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://}
+ fi
+
+ cat <<-EOF > "${T}/repos.conf"
+ [DEFAULT]
+ main-repo = ${repo_name:-gentoo}
+
+ [${repo_name:-gentoo}]
+ location = ${PORTDIR:-${EPREFIX}/usr/portage}
+ sync-type = ${sync_type:-rsync}
+ sync-uri = ${REPOS_CONF_SYNC}
+ EOF
+
+ [[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf"
+
+ local dest=${EROOT:-${ROOT}}etc/portage/repos.conf
+ if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then
+ dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf
+ fi
+ # Don't install the config update if the desired repos.conf directory
+ # and config file exist, since users may accept it blindly and break
+ # their config (bug #478726).
+ [[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \
+ mv "${T}/repos.conf" "$(new_config_protect "${dest}")"
+
+ if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then
+ einfo "Generating make.conf PORTDIR setting for backward compatibility"
+ for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do
+ [[ -e ${dest} ]] && break
+ done
+ [[ -d ${dest} ]] && dest=${dest}/portdir.conf
+ rm -rf "${T}/make.conf"
+ [[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf"
+ cat <<-EOF >> "${T}/make.conf"
+
+ # Set PORTDIR for backward compatibility with various tools:
+ # gentoo-bashcomp - bug #478444
+ # euse - bug #474574
+ # euses and ufed - bug #478318
+ PORTDIR="${EPREFIX}/usr/portage"
+ EOF
+ mkdir -p "${dest%/*}"
+ mv "${T}/make.conf" "$(new_config_protect "${dest}")"
+ fi
+ fi
+
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ local didwork=
+ [[ ! -e "${EROOT}"var/lib/portage/preserved_libs_registry ]] && for cpv in */*/NEEDED ; do
+ if [[ ${CHOST} == *-darwin* && ! -f ${cpv}.MACHO.3 ]] ; then
+ while read line; do
+ scanmacho -BF "%a;%F;%S;%n" ${line% *} >> "${cpv}".MACHO.3
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ elif [[ ${CHOST} != *-darwin* && ${CHOST} != *-interix* && ! -f ${cpv}.ELF.2 ]] ; then
+ while read line; do
+ filename=${line% *}
+ needed=${line#* }
+ newline=$(scanelf -BF "%a;%F;%S;$needed;%r" $filename)
+ echo "${newline:3}" >> "${cpv}".ELF.2
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ fi
+ [[ ${didwork} == yes ]] && \
+ einfo "converting NEEDED files to new syntax, please wait"
+ done
+ popd > /dev/null
+
+ if [[ ${EAPIPREFIX_UPGRADE} == 0 ]] ; then
+ local eapi
+ einfo 'removing EAPI="prefix" legacy from your vdb, please wait'
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ for cpv in */* ; do
+ [[ ${cpv##*/} == "-MERGING-"* ]] && continue
+ # remove "prefix" from EAPI file
+ eapi=$(<"${cpv}"/EAPI)
+ eapi=${eapi/prefix/}
+ eapi=${eapi# }
+ eapi=${eapi:-0}
+ echo ${eapi} > "${cpv}"/EAPI
+ # remove "prefix" from EAPI in stored environment
+ bzcat "${cpv}"/environment.bz2 \
+ | sed -e "s/EAPI=\([\"']\)prefix [0-9][\"']/EAPI=\1${eapi}\1/" \
+ | bzip2 -9 > "${cpv}"/environment2.bz2 \
+ && mv -f "${cpv}"/environment{2,}.bz2
+ # remove "prefix" from the stored ebuild
+ sed -i -e "s/^EAPI=.*$/EAPI=${eapi}/" "${cpv}/${cpv##*/}.ebuild"
+ done
+ popd > /dev/null
+ fi
+}
diff --git a/sys-apps/portage/portage-2.2.10.1.ebuild b/sys-apps/portage/portage-2.2.10.1.ebuild
new file mode 100644
index 0000000..8431971
--- /dev/null
+++ b/sys-apps/portage/portage-2.2.10.1.ebuild
@@ -0,0 +1,586 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: portage-2.2.01.16270.ebuild 58665 2010-09-05 19:54:38Z grobian $
+
+# Require EAPI 2 since we now require at least python-2.6 (for python 3
+# syntax support) which also requires EAPI 2.
+EAPI=3
+PYTHON_COMPAT=(
+ pypy1_9 pypy2_0
+ python3_1 python3_2 python3_3 python3_4
+ python2_6 python2_7
+)
+inherit eutils multilib
+
+DESCRIPTION="Prefix branch of the Portage Package Manager, used in Gentoo Prefix"
+HOMEPAGE="http://www.gentoo.org/proj/en/gentoo-alt/prefix/"
+LICENSE="GPL-2"
+KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+IUSE="build doc epydoc +ipc linguas_ru pypy2_0 python2 python3 selinux xattr prefix-chaining"
+
+for _pyimpl in ${PYTHON_COMPAT[@]} ; do
+ IUSE+=" python_targets_${_pyimpl}"
+done
+unset _pyimpl
+
+# Import of the io module in python-2.6 raises ImportError for the
+# thread module if threading is disabled.
+python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
+ !pypy2_0? ( !python2? ( !python3? (
+ || ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
+ ) ) )
+ pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
+ python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
+python_dep="${python_dep_ssl//\[ssl\]}"
+python_dep="${python_dep//,ssl}"
+python_dep="${python_dep//ssl,}"
+
+python_dep="${python_dep}
+ python_targets_pypy1_9? ( dev-python/pypy:1.9 )
+ python_targets_pypy2_0? ( dev-python/pypy:2.0 )
+ python_targets_python2_6? ( dev-lang/python:2.6 )
+ python_targets_python2_7? ( dev-lang/python:2.7 )
+ python_targets_python3_1? ( dev-lang/python:3.1 )
+ python_targets_python3_2? ( dev-lang/python:3.2 )
+ python_targets_python3_3? ( dev-lang/python:3.3 )
+ python_targets_python3_4? ( dev-lang/python:3.4 )
+"
+
+# The pysqlite blocker is for bug #282760.
+# make-3.82 is for bug #455858
+DEPEND="${python_dep}
+ >=sys-devel/make-3.82
+ >=sys-apps/sed-4.0.5 sys-devel/patch
+ doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
+ epydoc? ( >=dev-python/epydoc-2.0 !<=dev-python/pysqlite-2.4.1 )"
+# Require sandbox-2.2 for bug #288863.
+# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
+# quite slow, so it's not considered in the dependencies as an alternative to
+# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
+# for now, don't pull in xattr deps for other kernels.
+# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
+# For compgen, require bash[readline] (bug #445576).
+# bash-4.1 necessary for redirect_alloc_fd, which fails on non-Linux if bash
+# doesn't have a builtin for finding a random filedescriptor
+RDEPEND="${python_dep}
+ !build? ( >=sys-apps/sed-4.0.5
+ || ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-4.1 ) )
+ >=app-admin/eselect-1.2
+ || ( ${python_dep_ssl} dev-python/python-mhash )
+ )
+ elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
+ elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
+ kernel_HPUX? ( !hppa-hpux? ( >=app-misc/pax-utils-0.1.19 ) )
+ kernel_AIX? ( >=sys-apps/aix-miscutils-0.1.1634 )
+ xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
+ selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
+ !<app-shells/bash-3.2_p17
+ !prefix? ( !<app-admin/logrotate-3.8.0 )"
+PDEPEND="
+ !build? (
+ >=net-misc/rsync-2.6.4
+ userland_GNU? ( >=sys-apps/coreutils-6.4 )
+ )"
+# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
+# NOTE: FEATURES=installsources requires debugedit and rsync
+
+SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives http://dev.gentoo.org/~grobian/distfiles"
+
+prefix_src_archives() {
+ local x y
+ for x in ${@}; do
+ for y in ${SRC_ARCHIVES}; do
+ echo ${y}/${x}
+ done
+ done
+}
+
+PV_PL="2.1.2"
+PATCHVER_PL=""
+TARBALL_PV="${PV}"
+SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
+ $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
+
+PATCHVER=
+[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
+if [ -n "${PATCHVER}" ]; then
+ SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
+ $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
+fi
+
+S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
+S_PL="${WORKDIR}"/${PN}-${PV_PL}
+
+compatible_python_is_selected() {
+ [[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
+}
+
+current_python_has_xattr() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ [[ $("${PYTHON}" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
+ "${PYTHON}" -c 'import xattr' 2>/dev/null
+}
+
+call_with_python_impl() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ env EPYTHON=${EPYTHON} "$@"
+}
+
+get_python_interpreter() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1 python
+ case "${impl}" in
+ python*)
+ python=${impl/_/.}
+ ;;
+ pypy*)
+ python=${impl/_/.}
+ python=${python/pypy/pypy-c}
+ ;;
+ *)
+ die "Unrecognized python target: ${impl}"
+ esac
+ echo ${python}
+}
+
+get_python_sitedir() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1
+ local site_dir=/usr/$(get_libdir)/${impl/_/.}/site-packages
+ [[ -d ${EROOT}${site_dir} ]] || \
+ ewarn "site-packages dir missing for ${impl}: ${EROOT}${site_dir}"
+ echo "${site_dir}"
+}
+
+python_compileall() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local d=${EPREFIX}$1 PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ local d_image=${D}${d#/}
+ [[ -d ${d_image} ]] || die "directory does not exist: ${d_image}"
+ case "${EPYTHON}" in
+ python*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ # Note: Using -OO breaks emaint, since it requires __doc__,
+ # and __doc__ is None when -OO is used.
+ "${PYTHON}" -O -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ pypy*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ *)
+ die "Unrecognized EPYTHON value: ${EPYTHON}"
+ esac
+}
+
+pkg_setup() {
+ if use python2 && use python3 ; then
+ ewarn "Both python2 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python3 ; then
+ ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python2 ; then
+ ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python2"
+ fi
+ if ! use pypy2_0 && ! use python2 && ! use python3 && \
+ ! compatible_python_is_selected ; then
+ ewarn "Attempting to select a compatible default python interpreter"
+ local x success=0
+ for x in "${EPREFIX}"/usr/bin/python2.* ; do
+ x=${x#${EPREFIX}/usr/bin/python2.}
+ if [[ $x -ge 6 ]] 2>/dev/null ; then
+ eselect python set python2.$x
+ if compatible_python_is_selected ; then
+ elog "Default python interpreter is now set to python-2.$x"
+ success=1
+ break
+ fi
+ fi
+ done
+ if [ $success != 1 ] ; then
+ eerror "Unable to select a compatible default python interpreter!"
+ die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)."
+ fi
+ fi
+
+ # We use EPYTHON to designate the active python interpreter,
+ # but we only export when needed, via call_with_python_impl.
+ EPYTHON=python
+ export -n EPYTHON
+ if use python3; then
+ EPYTHON=python3
+ elif use python2; then
+ EPYTHON=python2
+ elif use pypy2_0; then
+ EPYTHON=pypy-c2.0
+ fi
+}
+
+src_prepare() {
+ if [ -n "${PATCHVER}" ] ; then
+ if [[ -L $S/bin/ebuild-helpers/portageq ]] ; then
+ rm "$S/bin/ebuild-helpers/portageq" \
+ || die "failed to remove portageq helper symlink"
+ fi
+ epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
+ fi
+
+ use prefix-chaining && epatch "${FILESDIR}"/${PN}-2.2.00.15801-prefix-chaining.patch
+ epatch "${FILESDIR}"/${PN}-2.2.8-ebuildshell.patch # 155161
+ # use pool of servers
+ sed -i \
+ -e 's/prefix.gentooexperimental.org/rsync.prefix.bitzolder.nl/' \
+ bin/emerge-webrsync cnf/make.conf.example cnf/repos.conf
+
+ if ! use ipc ; then
+ einfo "Disabling ipc..."
+ sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
+ -i pym/_emerge/AbstractEbuildProcess.py || \
+ die "failed to patch AbstractEbuildProcess.py"
+ fi
+
+ if use xattr && use kernel_linux ; then
+ einfo "Adding FEATURES=xattr to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ local set_shebang=
+ if use python3; then
+ set_shebang=python3
+ elif use python2; then
+ set_shebang=python2
+ elif use pypy2_0; then
+ set_shebang=pypy-c2.0
+ fi
+ if [[ -n ${set_shebang} ]] ; then
+ einfo "Converting shebangs for ${set_shebang}..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!${EPREFIX}/usr/bin/python"* ]] ; then
+ sed -i -e "1s:python:${set_shebang}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+ fi
+
+ # "native" Prefix still uses configure
+ if use !prefix && [[ -n ${EPREFIX} ]] ; then
+ einfo "Setting portage.const.EPREFIX ..."
+ sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
+ -i pym/portage/const.py || \
+ die "Failed to patch portage.const.EPREFIX"
+
+ einfo "Prefixing shebangs ..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
+ sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+
+ einfo "Adding FEATURES=force-prefix to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ if use !prefix ; then
+ cd "${S}/cnf" || die
+ if [ -f "make.conf.${ARCH}".diff ]; then
+ patch make.conf "make.conf.${ARCH}".diff || \
+ die "Failed to patch make.conf.example"
+ else
+ eerror ""
+ eerror "Portage does not have an arch-specific configuration for this arch."
+ eerror "Please notify the arch maintainer about this issue. Using generic."
+ eerror ""
+ fi
+ fi
+}
+
+src_configure() {
+ if use prefix ; then
+ local extrapath="/usr/bin:/bin"
+ # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
+ # tend not to update that often, as long as we are a separate ebuild
+ # we can assume when unset, it's time for some older trick
+ if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
+ PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
+ fi
+ # lazy check, but works for now
+ if [[ ${PORTAGE_ROOT_USER} == "root" ]] ; then
+ # we need this for e.g. mtree on FreeBSD (and Darwin) which is in
+ # /usr/sbin
+ extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
+ fi
+
+ econf \
+ --with-portage-user="${PORTAGE_USER:-portage}" \
+ --with-portage-group="${PORTAGE_GROUP:-portage}" \
+ --with-root-user="${PORTAGE_ROOT_USER}" \
+ --with-offset-prefix="${EPREFIX}" \
+ --with-extra-path="${extrapath}" \
+ || die "econf failed"
+ else
+ default
+ fi
+}
+
+src_compile() {
+ if use prefix ; then
+ emake || die "emake failed"
+ fi
+
+ if use doc; then
+ call_with_python_impl \
+ emake docbook || die
+ fi
+
+ if use epydoc; then
+ einfo "Generating api docs"
+ call_with_python_impl \
+ emake epydoc || die
+ fi
+}
+
+src_test() {
+ # make files executable, in case they were created by patch
+ find bin -type f | xargs chmod +x
+ call_with_python_impl \
+ emake test || die
+}
+
+src_install() {
+ local portage_base="/usr/lib/portage"
+
+ emake DESTDIR="${D}" install || die "make install failed."
+ dodir /usr/lib/portage/bin
+
+ if use userland_GNU; then
+ rm "${ED}"${portage_base}/bin/ebuild-helpers/bsd/sed || die "Failed to remove sed wrapper"
+ fi
+
+ use doc && dohtml -r "${S}"/doc/*
+ use epydoc && dohtml -r "${WORKDIR}"/api
+ dodir /etc/portage
+ keepdir /etc/portage
+
+ # Use dodoc for compression, since the Makefile doesn't do that.
+ dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
+
+ # Allow external portage API consumers to import portage python modules
+ # (this used to be done with PYTHONPATH setting in /etc/env.d).
+ # For each of PYTHON_TARGETS, install a tree of *.py symlinks in
+ # site-packages, and compile with the corresponding interpreter.
+ local impl files mod_dir dest_mod_dir python relative_path x
+ for impl in "${PYTHON_COMPAT[@]}" ; do
+ use "python_targets_${impl}" || continue
+ if use build && [[ ${ROOT} == / &&
+ ! -x ${EPREFIX}/usr/bin/$(get_python_interpreter ${impl}) ]] ; then
+ # Tolerate --nodeps at beginning of stage1 for catalyst
+ ewarn "skipping python_targets_${impl}, interpreter not found"
+ continue
+ fi
+ while read -r mod_dir ; do
+ cd "${ED}/usr/lib/portage/pym/${mod_dir}" || die
+ files=$(echo *.py)
+ if [ -z "${files}" ] || [ "${files}" = "*.py" ]; then
+ # __pycache__ directories contain no py files
+ continue
+ fi
+ dest_mod_dir=$(get_python_sitedir ${impl})/${mod_dir}
+ dodir "${dest_mod_dir}" || die
+ relative_path=../../../lib/portage/pym/${mod_dir}
+ x=/${mod_dir}
+ while [ -n "${x}" ] ; do
+ relative_path=../${relative_path}
+ x=${x%/*}
+ done
+ for x in ${files} ; do
+ dosym "${relative_path}/${x}" \
+ "${dest_mod_dir}/${x}" || die
+ done
+ done < <(cd "${ED}"/usr/lib/portage/pym || die ; find * -type d ! -path "portage/tests*")
+ cd "${S}" || die
+ EPYTHON=$(get_python_interpreter ${impl}) \
+ python_compileall "$(get_python_sitedir ${impl})"
+ done
+
+ # Compile /usr/lib/portage/pym with the active interpreter, since portage
+ # internal commands force this directory to the beginning of sys.path.
+ python_compileall /usr/lib/portage/pym
+}
+
+pkg_preinst() {
+ if [[ $ROOT == / ]] ; then
+ # Run some minimal tests as a sanity check.
+ local test_runner=$(find "$ED" -name runTests)
+ if [[ -n $test_runner && -x $test_runner ]] ; then
+ einfo "Running preinst sanity tests..."
+ "$test_runner" || die "preinst sanity tests failed"
+ fi
+ fi
+
+ if use xattr && ! current_python_has_xattr ; then
+ ewarn "For optimal performance in xattr handling, install"
+ ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
+ ewarn "enable USE=python3 for $CATEGORY/$PN."
+ fi
+
+ has_version "<=${CATEGORY}/${PN}-2.2.00.13346"
+ EAPIPREFIX_UPGRADE=$?
+
+ if has_version "<${CATEGORY}/${PN}-2.2.7-r1" ; then
+ REPOS_CONF_UPGRADE=true
+ REPOS_CONF_SYNC=
+ type -P portageq >/dev/null 2>&1 && \
+ REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC)
+ fi
+}
+
+new_config_protect() {
+ # Generate a ._cfg file even if the target file
+ # does not exist, ensuring that the user will
+ # notice the config change.
+ local basename=${1##*/}
+ local dirname=${1%/*}
+ local i=0
+ while true ; do
+ local filename=$(
+ echo -n "${dirname}/._cfg"
+ printf "%04d" ${i}
+ echo -n "_${basename}"
+ )
+ [[ -e ${filename} ]] || break
+ (( i++ ))
+ done
+ echo "${filename}"
+}
+
+pkg_postinst() {
+
+ if [[ -n ${REPOS_CONF_UPGRADE} ]] ; then
+ einfo "Generating repos.conf"
+ local repo_name=
+ [[ -f ${PORTDIR}/profiles/repo_name ]] && \
+ repo_name=$(< "${PORTDIR}/profiles/repo_name")
+ if [[ -z ${REPOS_CONF_SYNC} ]] ; then
+ REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf")
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* }
+ fi
+ local sync_type=
+ [[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git
+
+ if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then
+ sync_type=cvs
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://}
+ fi
+
+ cat <<-EOF > "${T}/repos.conf"
+ [DEFAULT]
+ main-repo = ${repo_name:-gentoo}
+
+ [${repo_name:-gentoo}]
+ location = ${PORTDIR:-${EPREFIX}/usr/portage}
+ sync-type = ${sync_type:-rsync}
+ sync-uri = ${REPOS_CONF_SYNC}
+ EOF
+
+ [[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf"
+
+ local dest=${EROOT:-${ROOT}}etc/portage/repos.conf
+ if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then
+ dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf
+ fi
+ # Don't install the config update if the desired repos.conf directory
+ # and config file exist, since users may accept it blindly and break
+ # their config (bug #478726).
+ [[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \
+ mv "${T}/repos.conf" "$(new_config_protect "${dest}")"
+
+ if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then
+ einfo "Generating make.conf PORTDIR setting for backward compatibility"
+ for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do
+ [[ -e ${dest} ]] && break
+ done
+ [[ -d ${dest} ]] && dest=${dest}/portdir.conf
+ rm -rf "${T}/make.conf"
+ [[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf"
+ cat <<-EOF >> "${T}/make.conf"
+
+ # Set PORTDIR for backward compatibility with various tools:
+ # gentoo-bashcomp - bug #478444
+ # euse - bug #474574
+ # euses and ufed - bug #478318
+ PORTDIR="${EPREFIX}/usr/portage"
+ EOF
+ mkdir -p "${dest%/*}"
+ mv "${T}/make.conf" "$(new_config_protect "${dest}")"
+ fi
+ fi
+
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ local didwork=
+ [[ ! -e "${EROOT}"var/lib/portage/preserved_libs_registry ]] && for cpv in */*/NEEDED ; do
+ if [[ ${CHOST} == *-darwin* && ! -f ${cpv}.MACHO.3 ]] ; then
+ while read line; do
+ scanmacho -BF "%a;%F;%S;%n" ${line% *} >> "${cpv}".MACHO.3
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ elif [[ ${CHOST} != *-darwin* && ${CHOST} != *-interix* && ! -f ${cpv}.ELF.2 ]] ; then
+ while read line; do
+ filename=${line% *}
+ needed=${line#* }
+ newline=$(scanelf -BF "%a;%F;%S;$needed;%r" $filename)
+ echo "${newline:3}" >> "${cpv}".ELF.2
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ fi
+ [[ ${didwork} == yes ]] && \
+ einfo "converting NEEDED files to new syntax, please wait"
+ done
+ popd > /dev/null
+
+ if [[ ${EAPIPREFIX_UPGRADE} == 0 ]] ; then
+ local eapi
+ einfo 'removing EAPI="prefix" legacy from your vdb, please wait'
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ for cpv in */* ; do
+ [[ ${cpv##*/} == "-MERGING-"* ]] && continue
+ # remove "prefix" from EAPI file
+ eapi=$(<"${cpv}"/EAPI)
+ eapi=${eapi/prefix/}
+ eapi=${eapi# }
+ eapi=${eapi:-0}
+ echo ${eapi} > "${cpv}"/EAPI
+ # remove "prefix" from EAPI in stored environment
+ bzcat "${cpv}"/environment.bz2 \
+ | sed -e "s/EAPI=\([\"']\)prefix [0-9][\"']/EAPI=\1${eapi}\1/" \
+ | bzip2 -9 > "${cpv}"/environment2.bz2 \
+ && mv -f "${cpv}"/environment{2,}.bz2
+ # remove "prefix" from the stored ebuild
+ sed -i -e "s/^EAPI=.*$/EAPI=${eapi}/" "${cpv}/${cpv##*/}.ebuild"
+ done
+ popd > /dev/null
+ fi
+}
diff --git a/sys-apps/portage/portage-2.2.14.ebuild b/sys-apps/portage/portage-2.2.14.ebuild
new file mode 100644
index 0000000..90bc410
--- /dev/null
+++ b/sys-apps/portage/portage-2.2.14.ebuild
@@ -0,0 +1,583 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: portage-2.2.01.16270.ebuild 58665 2010-09-05 19:54:38Z grobian $
+
+# Require EAPI 2 since we now require at least python-2.6 (for python 3
+# syntax support) which also requires EAPI 2.
+EAPI=3
+PYTHON_COMPAT=(
+ pypy1_9 pypy2_0
+ python3_1 python3_2 python3_3 python3_4
+ python2_6 python2_7
+)
+inherit eutils multilib
+
+DESCRIPTION="Prefix branch of the Portage Package Manager, used in Gentoo Prefix"
+HOMEPAGE="http://www.gentoo.org/proj/en/gentoo-alt/prefix/"
+LICENSE="GPL-2"
+KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+IUSE="build doc epydoc +ipc linguas_ru pypy2_0 python2 python3 selinux xattr prefix-chaining"
+
+for _pyimpl in ${PYTHON_COMPAT[@]} ; do
+ IUSE+=" python_targets_${_pyimpl}"
+done
+unset _pyimpl
+
+# Import of the io module in python-2.6 raises ImportError for the
+# thread module if threading is disabled.
+python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
+ !pypy2_0? ( !python2? ( !python3? (
+ || ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
+ ) ) )
+ pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
+ python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
+python_dep="${python_dep_ssl//\[ssl\]}"
+python_dep="${python_dep//,ssl}"
+python_dep="${python_dep//ssl,}"
+
+python_dep="${python_dep}
+ python_targets_pypy1_9? ( dev-python/pypy:1.9 )
+ python_targets_pypy2_0? ( dev-python/pypy:2.0 )
+ python_targets_python2_6? ( dev-lang/python:2.6 )
+ python_targets_python2_7? ( dev-lang/python:2.7 )
+ python_targets_python3_1? ( dev-lang/python:3.1 )
+ python_targets_python3_2? ( dev-lang/python:3.2 )
+ python_targets_python3_3? ( dev-lang/python:3.3 )
+ python_targets_python3_4? ( dev-lang/python:3.4 )
+"
+
+# The pysqlite blocker is for bug #282760.
+# make-3.82 is for bug #455858
+DEPEND="${python_dep}
+ >=sys-devel/make-3.82
+ >=sys-apps/sed-4.0.5 sys-devel/patch
+ doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
+ epydoc? ( >=dev-python/epydoc-2.0 !<=dev-python/pysqlite-2.4.1 )"
+# Require sandbox-2.2 for bug #288863.
+# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
+# quite slow, so it's not considered in the dependencies as an alternative to
+# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
+# for now, don't pull in xattr deps for other kernels.
+# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
+# For compgen, require bash[readline] (bug #445576).
+# bash-4.1 necessary for redirect_alloc_fd, which fails on non-Linux if bash
+# doesn't have a builtin for finding a random filedescriptor
+RDEPEND="${python_dep}
+ !build? ( >=sys-apps/sed-4.0.5
+ || ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-4.1 ) )
+ >=app-admin/eselect-1.2
+ || ( ${python_dep_ssl} dev-python/python-mhash )
+ )
+ elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
+ elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
+ kernel_HPUX? ( !hppa-hpux? ( >=app-misc/pax-utils-0.1.19 ) )
+ kernel_AIX? ( >=sys-apps/aix-miscutils-0.1.1634 )
+ xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
+ selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
+ !<app-shells/bash-3.2_p17
+ !prefix? ( !<app-admin/logrotate-3.8.0 )"
+PDEPEND="
+ !build? (
+ >=net-misc/rsync-2.6.4
+ userland_GNU? ( >=sys-apps/coreutils-6.4 )
+ )"
+# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
+# NOTE: FEATURES=installsources requires debugedit and rsync
+
+SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives http://dev.gentoo.org/~grobian/distfiles"
+
+prefix_src_archives() {
+ local x y
+ for x in ${@}; do
+ for y in ${SRC_ARCHIVES}; do
+ echo ${y}/${x}
+ done
+ done
+}
+
+PV_PL="2.1.2"
+PATCHVER_PL=""
+TARBALL_PV="${PV}"
+SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
+ $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
+
+PATCHVER=
+[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
+if [ -n "${PATCHVER}" ]; then
+ SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
+ $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
+fi
+
+S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
+S_PL="${WORKDIR}"/${PN}-${PV_PL}
+
+compatible_python_is_selected() {
+ [[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
+}
+
+current_python_has_xattr() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ [[ $("${PYTHON}" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
+ "${PYTHON}" -c 'import xattr' 2>/dev/null
+}
+
+call_with_python_impl() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ env EPYTHON=${EPYTHON} "$@"
+}
+
+get_python_interpreter() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1 python
+ case "${impl}" in
+ python*)
+ python=${impl/_/.}
+ ;;
+ pypy*)
+ python=${impl/_/.}
+ python=${python/pypy/pypy-c}
+ ;;
+ *)
+ die "Unrecognized python target: ${impl}"
+ esac
+ echo ${python}
+}
+
+get_python_sitedir() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1
+ local site_dir=/usr/$(get_libdir)/${impl/_/.}/site-packages
+ [[ -d ${EROOT}${site_dir} ]] || \
+ ewarn "site-packages dir missing for ${impl}: ${EROOT}${site_dir}"
+ echo "${site_dir}"
+}
+
+python_compileall() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local d=${EPREFIX}$1 PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ local d_image=${D}${d#/}
+ [[ -d ${d_image} ]] || die "directory does not exist: ${d_image}"
+ case "${EPYTHON}" in
+ python*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ # Note: Using -OO breaks emaint, since it requires __doc__,
+ # and __doc__ is None when -OO is used.
+ "${PYTHON}" -O -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ pypy*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ *)
+ die "Unrecognized EPYTHON value: ${EPYTHON}"
+ esac
+}
+
+pkg_setup() {
+ if use python2 && use python3 ; then
+ ewarn "Both python2 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python3 ; then
+ ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python2 ; then
+ ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python2"
+ fi
+ if ! use pypy2_0 && ! use python2 && ! use python3 && \
+ ! compatible_python_is_selected ; then
+ ewarn "Attempting to select a compatible default python interpreter"
+ local x success=0
+ for x in "${EPREFIX}"/usr/bin/python2.* ; do
+ x=${x#${EPREFIX}/usr/bin/python2.}
+ if [[ $x -ge 6 ]] 2>/dev/null ; then
+ eselect python set python2.$x
+ if compatible_python_is_selected ; then
+ elog "Default python interpreter is now set to python-2.$x"
+ success=1
+ break
+ fi
+ fi
+ done
+ if [ $success != 1 ] ; then
+ eerror "Unable to select a compatible default python interpreter!"
+ die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)."
+ fi
+ fi
+
+ # We use EPYTHON to designate the active python interpreter,
+ # but we only export when needed, via call_with_python_impl.
+ EPYTHON=python
+ export -n EPYTHON
+ if use python3; then
+ EPYTHON=python3
+ elif use python2; then
+ EPYTHON=python2
+ elif use pypy2_0; then
+ EPYTHON=pypy-c2.0
+ fi
+}
+
+src_prepare() {
+ if [ -n "${PATCHVER}" ] ; then
+ if [[ -L $S/bin/ebuild-helpers/portageq ]] ; then
+ rm "$S/bin/ebuild-helpers/portageq" \
+ || die "failed to remove portageq helper symlink"
+ fi
+ epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
+ fi
+
+ use prefix-chaining && epatch "${FILESDIR}"/${PN}-2.2.00.15801-prefix-chaining.patch
+ epatch "${FILESDIR}"/${PN}-2.2.8-ebuildshell.patch # 155161
+ epatch "${FILESDIR}"/${PN}-2.2.14-ldconfig.patch # 532100
+
+ if ! use ipc ; then
+ einfo "Disabling ipc..."
+ sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
+ -i pym/_emerge/AbstractEbuildProcess.py || \
+ die "failed to patch AbstractEbuildProcess.py"
+ fi
+
+ if use xattr && use kernel_linux ; then
+ einfo "Adding FEATURES=xattr to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ local set_shebang=
+ if use python3; then
+ set_shebang=python3
+ elif use python2; then
+ set_shebang=python2
+ elif use pypy2_0; then
+ set_shebang=pypy-c2.0
+ fi
+ if [[ -n ${set_shebang} ]] ; then
+ einfo "Converting shebangs for ${set_shebang}..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!${EPREFIX}/usr/bin/python"* ]] ; then
+ sed -i -e "1s:python:${set_shebang}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+ fi
+
+ # "native" Prefix still uses configure
+ if use !prefix && [[ -n ${EPREFIX} ]] ; then
+ einfo "Setting portage.const.EPREFIX ..."
+ sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
+ -i pym/portage/const.py || \
+ die "Failed to patch portage.const.EPREFIX"
+
+ einfo "Prefixing shebangs ..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
+ sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+
+ einfo "Adding FEATURES=force-prefix to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ if use !prefix ; then
+ cd "${S}/cnf" || die
+ if [ -f "make.conf.${ARCH}".diff ]; then
+ patch make.conf "make.conf.${ARCH}".diff || \
+ die "Failed to patch make.conf.example"
+ else
+ eerror ""
+ eerror "Portage does not have an arch-specific configuration for this arch."
+ eerror "Please notify the arch maintainer about this issue. Using generic."
+ eerror ""
+ fi
+ fi
+}
+
+src_configure() {
+ if use prefix ; then
+ local extrapath="/usr/bin:/bin"
+ # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
+ # tend not to update that often, as long as we are a separate ebuild
+ # we can assume when unset, it's time for some older trick
+ if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
+ PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
+ fi
+ # lazy check, but works for now
+ if [[ ${PORTAGE_ROOT_USER} == "root" ]] ; then
+ # we need this for e.g. mtree on FreeBSD (and Darwin) which is in
+ # /usr/sbin
+ extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
+ fi
+
+ econf \
+ --with-portage-user="${PORTAGE_USER:-portage}" \
+ --with-portage-group="${PORTAGE_GROUP:-portage}" \
+ --with-root-user="${PORTAGE_ROOT_USER}" \
+ --with-offset-prefix="${EPREFIX}" \
+ --with-extra-path="${extrapath}" \
+ || die "econf failed"
+ else
+ default
+ fi
+}
+
+src_compile() {
+ if use prefix ; then
+ emake || die "emake failed"
+ fi
+
+ if use doc; then
+ call_with_python_impl \
+ emake docbook || die
+ fi
+
+ if use epydoc; then
+ einfo "Generating api docs"
+ call_with_python_impl \
+ emake epydoc || die
+ fi
+}
+
+src_test() {
+ # make files executable, in case they were created by patch
+ find bin -type f | xargs chmod +x
+ call_with_python_impl \
+ emake test || die
+}
+
+src_install() {
+ local portage_base="/usr/lib/portage"
+
+ emake DESTDIR="${D}" install || die "make install failed."
+ dodir /usr/lib/portage/bin
+
+ if use userland_GNU; then
+ rm "${ED}"${portage_base}/bin/ebuild-helpers/bsd/sed || die "Failed to remove sed wrapper"
+ fi
+
+ use doc && dohtml -r "${S}"/doc/*
+ use epydoc && dohtml -r "${WORKDIR}"/api
+ dodir /etc/portage
+ keepdir /etc/portage
+
+ # Use dodoc for compression, since the Makefile doesn't do that.
+ dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
+
+ # Allow external portage API consumers to import portage python modules
+ # (this used to be done with PYTHONPATH setting in /etc/env.d).
+ # For each of PYTHON_TARGETS, install a tree of *.py symlinks in
+ # site-packages, and compile with the corresponding interpreter.
+ local impl files mod_dir dest_mod_dir python relative_path x
+ for impl in "${PYTHON_COMPAT[@]}" ; do
+ use "python_targets_${impl}" || continue
+ if use build && [[ ${ROOT} == / &&
+ ! -x ${EPREFIX}/usr/bin/$(get_python_interpreter ${impl}) ]] ; then
+ # Tolerate --nodeps at beginning of stage1 for catalyst
+ ewarn "skipping python_targets_${impl}, interpreter not found"
+ continue
+ fi
+ while read -r mod_dir ; do
+ cd "${ED}/usr/lib/portage/pym/${mod_dir}" || die
+ files=$(echo *.py)
+ if [ -z "${files}" ] || [ "${files}" = "*.py" ]; then
+ # __pycache__ directories contain no py files
+ continue
+ fi
+ dest_mod_dir=$(get_python_sitedir ${impl})/${mod_dir}
+ dodir "${dest_mod_dir}" || die
+ relative_path=../../../lib/portage/pym/${mod_dir}
+ x=/${mod_dir}
+ while [ -n "${x}" ] ; do
+ relative_path=../${relative_path}
+ x=${x%/*}
+ done
+ for x in ${files} ; do
+ dosym "${relative_path}/${x}" \
+ "${dest_mod_dir}/${x}" || die
+ done
+ done < <(cd "${ED}"/usr/lib/portage/pym || die ; find * -type d ! -path "portage/tests*")
+ cd "${S}" || die
+ EPYTHON=$(get_python_interpreter ${impl}) \
+ python_compileall "$(get_python_sitedir ${impl})"
+ done
+
+ # Compile /usr/lib/portage/pym with the active interpreter, since portage
+ # internal commands force this directory to the beginning of sys.path.
+ python_compileall /usr/lib/portage/pym
+}
+
+pkg_preinst() {
+ if [[ $ROOT == / ]] ; then
+ # Run some minimal tests as a sanity check.
+ local test_runner=$(find "$ED" -name runTests)
+ if [[ -n $test_runner && -x $test_runner ]] ; then
+ einfo "Running preinst sanity tests..."
+ "$test_runner" || die "preinst sanity tests failed"
+ fi
+ fi
+
+ if use xattr && ! current_python_has_xattr ; then
+ ewarn "For optimal performance in xattr handling, install"
+ ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
+ ewarn "enable USE=python3 for $CATEGORY/$PN."
+ fi
+
+ has_version "<=${CATEGORY}/${PN}-2.2.00.13346"
+ EAPIPREFIX_UPGRADE=$?
+
+ if has_version "<${CATEGORY}/${PN}-2.2.7-r1" ; then
+ REPOS_CONF_UPGRADE=true
+ REPOS_CONF_SYNC=
+ type -P portageq >/dev/null 2>&1 && \
+ REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC)
+ fi
+}
+
+new_config_protect() {
+ # Generate a ._cfg file even if the target file
+ # does not exist, ensuring that the user will
+ # notice the config change.
+ local basename=${1##*/}
+ local dirname=${1%/*}
+ local i=0
+ while true ; do
+ local filename=$(
+ echo -n "${dirname}/._cfg"
+ printf "%04d" ${i}
+ echo -n "_${basename}"
+ )
+ [[ -e ${filename} ]] || break
+ (( i++ ))
+ done
+ echo "${filename}"
+}
+
+pkg_postinst() {
+
+ if [[ -n ${REPOS_CONF_UPGRADE} ]] ; then
+ einfo "Generating repos.conf"
+ local repo_name=
+ [[ -f ${PORTDIR}/profiles/repo_name ]] && \
+ repo_name=$(< "${PORTDIR}/profiles/repo_name")
+ if [[ -z ${REPOS_CONF_SYNC} ]] ; then
+ REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf")
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* }
+ fi
+ local sync_type=
+ [[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git
+
+ if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then
+ sync_type=cvs
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://}
+ fi
+
+ cat <<-EOF > "${T}/repos.conf"
+ [DEFAULT]
+ main-repo = ${repo_name:-gentoo}
+
+ [${repo_name:-gentoo}]
+ location = ${PORTDIR:-${EPREFIX}/usr/portage}
+ sync-type = ${sync_type:-rsync}
+ sync-uri = ${REPOS_CONF_SYNC}
+ EOF
+
+ [[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf"
+
+ local dest=${EROOT:-${ROOT}}etc/portage/repos.conf
+ if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then
+ dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf
+ fi
+ # Don't install the config update if the desired repos.conf directory
+ # and config file exist, since users may accept it blindly and break
+ # their config (bug #478726).
+ [[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \
+ mv "${T}/repos.conf" "$(new_config_protect "${dest}")"
+
+ if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then
+ einfo "Generating make.conf PORTDIR setting for backward compatibility"
+ for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do
+ [[ -e ${dest} ]] && break
+ done
+ [[ -d ${dest} ]] && dest=${dest}/portdir.conf
+ rm -rf "${T}/make.conf"
+ [[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf"
+ cat <<-EOF >> "${T}/make.conf"
+
+ # Set PORTDIR for backward compatibility with various tools:
+ # gentoo-bashcomp - bug #478444
+ # euse - bug #474574
+ # euses and ufed - bug #478318
+ PORTDIR="${EPREFIX}/usr/portage"
+ EOF
+ mkdir -p "${dest%/*}"
+ mv "${T}/make.conf" "$(new_config_protect "${dest}")"
+ fi
+ fi
+
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ local didwork=
+ [[ ! -e "${EROOT}"var/lib/portage/preserved_libs_registry ]] && for cpv in */*/NEEDED ; do
+ if [[ ${CHOST} == *-darwin* && ! -f ${cpv}.MACHO.3 ]] ; then
+ while read line; do
+ scanmacho -BF "%a;%F;%S;%n" ${line% *} >> "${cpv}".MACHO.3
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ elif [[ ${CHOST} != *-darwin* && ${CHOST} != *-interix* && ! -f ${cpv}.ELF.2 ]] ; then
+ while read line; do
+ filename=${line% *}
+ needed=${line#* }
+ newline=$(scanelf -BF "%a;%F;%S;$needed;%r" $filename)
+ echo "${newline:3}" >> "${cpv}".ELF.2
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ fi
+ [[ ${didwork} == yes ]] && \
+ einfo "converting NEEDED files to new syntax, please wait"
+ done
+ popd > /dev/null
+
+ if [[ ${EAPIPREFIX_UPGRADE} == 0 ]] ; then
+ local eapi
+ einfo 'removing EAPI="prefix" legacy from your vdb, please wait'
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ for cpv in */* ; do
+ [[ ${cpv##*/} == "-MERGING-"* ]] && continue
+ # remove "prefix" from EAPI file
+ eapi=$(<"${cpv}"/EAPI)
+ eapi=${eapi/prefix/}
+ eapi=${eapi# }
+ eapi=${eapi:-0}
+ echo ${eapi} > "${cpv}"/EAPI
+ # remove "prefix" from EAPI in stored environment
+ bzcat "${cpv}"/environment.bz2 \
+ | sed -e "s/EAPI=\([\"']\)prefix [0-9][\"']/EAPI=\1${eapi}\1/" \
+ | bzip2 -9 > "${cpv}"/environment2.bz2 \
+ && mv -f "${cpv}"/environment{2,}.bz2
+ # remove "prefix" from the stored ebuild
+ sed -i -e "s/^EAPI=.*$/EAPI=${eapi}/" "${cpv}/${cpv##*/}.ebuild"
+ done
+ popd > /dev/null
+ fi
+}
diff --git a/sys-apps/portage/portage-2.2.8.ebuild b/sys-apps/portage/portage-2.2.8.ebuild
new file mode 100644
index 0000000..462a348
--- /dev/null
+++ b/sys-apps/portage/portage-2.2.8.ebuild
@@ -0,0 +1,585 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id: portage-2.2.01.16270.ebuild 58665 2010-09-05 19:54:38Z grobian $
+
+# Require EAPI 2 since we now require at least python-2.6 (for python 3
+# syntax support) which also requires EAPI 2.
+EAPI=3
+PYTHON_COMPAT=(
+ pypy1_9 pypy2_0
+ python3_1 python3_2 python3_3 python3_4
+ python2_6 python2_7
+)
+inherit eutils multilib
+
+DESCRIPTION="Prefix branch of the Portage Package Manager, used in Gentoo Prefix"
+HOMEPAGE="http://www.gentoo.org/proj/en/gentoo-alt/prefix/"
+LICENSE="GPL-2"
+KEYWORDS="~ppc-aix ~x64-freebsd ~x86-freebsd ~hppa-hpux ~ia64-hpux ~x86-interix ~amd64-linux ~ia64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~m68k-mint ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
+SLOT="0"
+IUSE="build doc epydoc +ipc linguas_ru pypy2_0 python2 python3 selinux xattr prefix-chaining"
+
+for _pyimpl in ${PYTHON_COMPAT[@]} ; do
+ IUSE+=" python_targets_${_pyimpl}"
+done
+unset _pyimpl
+
+# Import of the io module in python-2.6 raises ImportError for the
+# thread module if threading is disabled.
+python_dep_ssl="python3? ( =dev-lang/python-3*[ssl] )
+ !pypy2_0? ( !python2? ( !python3? (
+ || ( >=dev-lang/python-2.7[ssl] dev-lang/python:2.6[threads,ssl] )
+ ) ) )
+ pypy2_0? ( !python2? ( !python3? ( dev-python/pypy:2.0[bzip2,ssl] ) ) )
+ python2? ( !python3? ( || ( dev-lang/python:2.7[ssl] dev-lang/python:2.6[ssl,threads] ) ) )"
+python_dep="${python_dep_ssl//\[ssl\]}"
+python_dep="${python_dep//,ssl}"
+python_dep="${python_dep//ssl,}"
+
+python_dep="${python_dep}
+ python_targets_pypy1_9? ( dev-python/pypy:1.9 )
+ python_targets_pypy2_0? ( dev-python/pypy:2.0 )
+ python_targets_python2_6? ( dev-lang/python:2.6 )
+ python_targets_python2_7? ( dev-lang/python:2.7 )
+ python_targets_python3_1? ( dev-lang/python:3.1 )
+ python_targets_python3_2? ( dev-lang/python:3.2 )
+ python_targets_python3_3? ( dev-lang/python:3.3 )
+ python_targets_python3_4? ( dev-lang/python:3.4 )
+"
+
+# The pysqlite blocker is for bug #282760.
+# make-3.82 is for bug #455858
+DEPEND="${python_dep}
+ >=sys-devel/make-3.82
+ >=sys-apps/sed-4.0.5 sys-devel/patch
+ doc? ( app-text/xmlto ~app-text/docbook-xml-dtd-4.4 )
+ epydoc? ( >=dev-python/epydoc-2.0 !<=dev-python/pysqlite-2.4.1 )"
+# Require sandbox-2.2 for bug #288863.
+# For xattr, we can spawn getfattr and setfattr from sys-apps/attr, but that's
+# quite slow, so it's not considered in the dependencies as an alternative to
+# to python-3.3 / pyxattr. Also, xattr support is only tested with Linux, so
+# for now, don't pull in xattr deps for other kernels.
+# For whirlpool hash, require python[ssl] or python-mhash (bug #425046).
+# For compgen, require bash[readline] (bug #445576).
+# bash-4.1 necessary for redirect_alloc_fd, which fails on non-Linux if bash
+# doesn't have a builtin for finding a random filedescriptor
+RDEPEND="${python_dep}
+ !build? ( >=sys-apps/sed-4.0.5
+ || ( >=app-shells/bash-4.2_p37[readline] ( <app-shells/bash-4.2_p37 >=app-shells/bash-4.1 ) )
+ >=app-admin/eselect-1.2
+ || ( ${python_dep_ssl} dev-python/python-mhash )
+ )
+ elibc_FreeBSD? ( !prefix? ( sys-freebsd/freebsd-bin ) )
+ elibc_glibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ elibc_uclibc? ( !prefix? ( >=sys-apps/sandbox-2.2 ) )
+ kernel_linux? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_SunOS? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_FreeBSD? ( >=app-misc/pax-utils-0.1.17 )
+ kernel_Darwin? ( >=app-misc/pax-utils-0.1.18 )
+ kernel_HPUX? ( !hppa-hpux? ( >=app-misc/pax-utils-0.1.19 ) )
+ kernel_AIX? ( >=sys-apps/aix-miscutils-0.1.1634 )
+ xattr? ( kernel_linux? ( || ( >=dev-lang/python-3.3_pre20110902 dev-python/pyxattr ) ) )
+ selinux? ( || ( >=sys-libs/libselinux-2.0.94[python] <sys-libs/libselinux-2.0.94 ) )
+ !<app-shells/bash-3.2_p17
+ !prefix? ( !<app-admin/logrotate-3.8.0 )"
+PDEPEND="
+ !build? (
+ >=net-misc/rsync-2.6.4
+ userland_GNU? ( >=sys-apps/coreutils-6.4 )
+ )"
+# coreutils-6.4 rdep is for date format in emerge-webrsync #164532
+# NOTE: FEATURES=installsources requires debugedit and rsync
+
+SRC_ARCHIVES="http://dev.gentoo.org/~zmedico/portage/archives http://dev.gentoo.org/~grobian/distfiles"
+
+prefix_src_archives() {
+ local x y
+ for x in ${@}; do
+ for y in ${SRC_ARCHIVES}; do
+ echo ${y}/${x}
+ done
+ done
+}
+
+PV_PL="2.1.2"
+PATCHVER_PL=""
+TARBALL_PV="${PV}"
+SRC_URI="mirror://gentoo/prefix-${PN}-${TARBALL_PV}.tar.bz2
+ $(prefix_src_archives prefix-${PN}-${TARBALL_PV}.tar.bz2)"
+
+PATCHVER=
+[[ $TARBALL_PV = $PV ]] || PATCHVER=$PV
+if [ -n "${PATCHVER}" ]; then
+ SRC_URI="${SRC_URI} mirror://gentoo/${PN}-${PATCHVER}.patch.bz2
+ $(prefix_src_archives ${PN}-${PATCHVER}.patch.bz2)"
+fi
+
+S="${WORKDIR}"/prefix-${PN}-${TARBALL_PV}
+S_PL="${WORKDIR}"/${PN}-${PV_PL}
+
+compatible_python_is_selected() {
+ [[ $("${EPREFIX}/usr/bin/python" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x2060000 and "good" or "bad")') = good ]]
+}
+
+current_python_has_xattr() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ [[ $("${PYTHON}" -c 'import sys ; sys.stdout.write(sys.hexversion >= 0x3030000 and "yes" or "no")') = yes ]] || \
+ "${PYTHON}" -c 'import xattr' 2>/dev/null
+}
+
+call_with_python_impl() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ env EPYTHON=${EPYTHON} "$@"
+}
+
+get_python_interpreter() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1 python
+ case "${impl}" in
+ python*)
+ python=${impl/_/.}
+ ;;
+ pypy*)
+ python=${impl/_/.}
+ python=${python/pypy/pypy-c}
+ ;;
+ *)
+ die "Unrecognized python target: ${impl}"
+ esac
+ echo ${python}
+}
+
+get_python_sitedir() {
+ [ $# -eq 1 ] || die "expected 1 argument, got $#: $*"
+ local impl=$1
+ local site_dir=/usr/$(get_libdir)/${impl/_/.}/site-packages
+ [[ -d ${EROOT}${site_dir} ]] || \
+ ewarn "site-packages dir missing for ${impl}: ${EROOT}${site_dir}"
+ echo "${site_dir}"
+}
+
+python_compileall() {
+ [[ ${EPYTHON} ]] || die 'No Python implementation set (EPYTHON is null).'
+ local d=${EPREFIX}$1 PYTHON=${EPREFIX}/usr/bin/${EPYTHON}
+ local d_image=${D}${d#/}
+ [[ -d ${d_image} ]] || die "directory does not exist: ${d_image}"
+ case "${EPYTHON}" in
+ python*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ # Note: Using -OO breaks emaint, since it requires __doc__,
+ # and __doc__ is None when -OO is used.
+ "${PYTHON}" -O -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ pypy*)
+ "${PYTHON}" -m compileall -q -f -d "${d}" "${d_image}" || die
+ ;;
+ *)
+ die "Unrecognized EPYTHON value: ${EPYTHON}"
+ esac
+}
+
+pkg_setup() {
+ if use python2 && use python3 ; then
+ ewarn "Both python2 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python3 ; then
+ ewarn "Both pypy2_0 and python3 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python3."
+ fi
+ if use pypy2_0 && use python2 ; then
+ ewarn "Both pypy2_0 and python2 USE flags are enabled, but only one"
+ ewarn "can be in the shebangs. Using python2"
+ fi
+ if ! use pypy2_0 && ! use python2 && ! use python3 && \
+ ! compatible_python_is_selected ; then
+ ewarn "Attempting to select a compatible default python interpreter"
+ local x success=0
+ for x in "${EPREFIX}"/usr/bin/python2.* ; do
+ x=${x#${EPREFIX}/usr/bin/python2.}
+ if [[ $x -ge 6 ]] 2>/dev/null ; then
+ eselect python set python2.$x
+ if compatible_python_is_selected ; then
+ elog "Default python interpreter is now set to python-2.$x"
+ success=1
+ break
+ fi
+ fi
+ done
+ if [ $success != 1 ] ; then
+ eerror "Unable to select a compatible default python interpreter!"
+ die "This version of portage requires at least python-2.6 to be selected as the default python interpreter (see \`eselect python --help\`)."
+ fi
+ fi
+
+ # We use EPYTHON to designate the active python interpreter,
+ # but we only export when needed, via call_with_python_impl.
+ EPYTHON=python
+ export -n EPYTHON
+ if use python3; then
+ EPYTHON=python3
+ elif use python2; then
+ EPYTHON=python2
+ elif use pypy2_0; then
+ EPYTHON=pypy-c2.0
+ fi
+}
+
+src_prepare() {
+ if [ -n "${PATCHVER}" ] ; then
+ if [[ -L $S/bin/ebuild-helpers/portageq ]] ; then
+ rm "$S/bin/ebuild-helpers/portageq" \
+ || die "failed to remove portageq helper symlink"
+ fi
+ epatch "${WORKDIR}/${PN}-${PATCHVER}.patch"
+ fi
+
+ use prefix-chaining && epatch "${FILESDIR}"/${PN}-2.2.00.15801-prefix-chaining.patch
+ epatch "${FILESDIR}"/${PN}-2.2.8-ebuildshell.patch # 155161
+
+ if ! use ipc ; then
+ einfo "Disabling ipc..."
+ sed -e "s:_enable_ipc_daemon = True:_enable_ipc_daemon = False:" \
+ -i pym/_emerge/AbstractEbuildProcess.py || \
+ die "failed to patch AbstractEbuildProcess.py"
+ fi
+
+ if use xattr && use kernel_linux ; then
+ einfo "Adding FEATURES=xattr to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} xattr"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ local set_shebang=
+ if use python3; then
+ set_shebang=python3
+ elif use python2; then
+ set_shebang=python2
+ elif use pypy2_0; then
+ set_shebang=pypy-c2.0
+ fi
+ if [[ -n ${set_shebang} ]] ; then
+ einfo "Converting shebangs for ${set_shebang}..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!${EPREFIX}/usr/bin/python"* ]] ; then
+ sed -i -e "1s:python:${set_shebang}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+ fi
+
+ # "native" Prefix still uses configure
+ if use !prefix && [[ -n ${EPREFIX} ]] ; then
+ einfo "Setting portage.const.EPREFIX ..."
+ sed -e "s|^\(SANDBOX_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/sandbox\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(FAKEROOT_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/bin/fakeroot\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(BASH_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/bash\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(MOVE_BINARY[[:space:]]*=[[:space:]]*\"\)\(/bin/mv\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(PRELINK_BINARY[[:space:]]*=[[:space:]]*\"\)\(/usr/sbin/prelink\"\)|\\1${EPREFIX}\\2|" \
+ -e "s|^\(EPREFIX[[:space:]]*=[[:space:]]*\"\).*|\\1${EPREFIX}\"|" \
+ -i pym/portage/const.py || \
+ die "Failed to patch portage.const.EPREFIX"
+
+ einfo "Prefixing shebangs ..."
+ while read -r -d $'\0' ; do
+ local shebang=$(head -n1 "$REPLY")
+ if [[ ${shebang} == "#!"* && ! ${shebang} == "#!${EPREFIX}/"* ]] ; then
+ sed -i -e "1s:.*:#!${EPREFIX}${shebang:2}:" "$REPLY" || \
+ die "sed failed"
+ fi
+ done < <(find . -type f -print0)
+
+ einfo "Adding FEATURES=force-prefix to make.globals ..."
+ echo -e '\nFEATURES="${FEATURES} force-prefix"' >> cnf/make.globals \
+ || die "failed to append to make.globals"
+ fi
+
+ if use !prefix ; then
+ cd "${S}/cnf" || die
+ if [ -f "make.conf.${ARCH}".diff ]; then
+ patch make.conf "make.conf.${ARCH}".diff || \
+ die "Failed to patch make.conf.example"
+ else
+ eerror ""
+ eerror "Portage does not have an arch-specific configuration for this arch."
+ eerror "Please notify the arch maintainer about this issue. Using generic."
+ eerror ""
+ fi
+ fi
+}
+
+src_configure() {
+ if use prefix ; then
+ local extrapath="/usr/bin:/bin"
+ # ok, we can't rely on PORTAGE_ROOT_USER being there yet, as people
+ # tend not to update that often, as long as we are a separate ebuild
+ # we can assume when unset, it's time for some older trick
+ if [[ -z ${PORTAGE_ROOT_USER} ]] ; then
+ PORTAGE_ROOT_USER=$(python -c 'from portage.const import rootuser; print rootuser')
+ fi
+ # lazy check, but works for now
+ if [[ ${PORTAGE_ROOT_USER} == "root" ]] ; then
+ # we need this for e.g. mtree on FreeBSD (and Darwin) which is in
+ # /usr/sbin
+ extrapath="/usr/sbin:/usr/bin:/sbin:/bin"
+ fi
+
+ econf \
+ --with-portage-user="${PORTAGE_USER:-portage}" \
+ --with-portage-group="${PORTAGE_GROUP:-portage}" \
+ --with-root-user="${PORTAGE_ROOT_USER}" \
+ --with-offset-prefix="${EPREFIX}" \
+ --with-extra-path="${extrapath}" \
+ || die "econf failed"
+ else
+ default
+ fi
+}
+
+src_compile() {
+ if use prefix ; then
+ emake || die "emake failed"
+ fi
+
+ if use doc; then
+ call_with_python_impl \
+ emake docbook || die
+ fi
+
+ if use epydoc; then
+ einfo "Generating api docs"
+ call_with_python_impl \
+ emake epydoc || die
+ fi
+}
+
+src_test() {
+ # make files executable, in case they were created by patch
+ find bin -type f | xargs chmod +x
+ call_with_python_impl \
+ emake test || die
+}
+
+src_install() {
+ local portage_base="/usr/lib/portage"
+
+ emake DESTDIR="${D}" install || die "make install failed."
+ dodir /usr/lib/portage/bin
+
+ if use userland_GNU; then
+ rm "${ED}"${portage_base}/bin/ebuild-helpers/bsd/sed || die "Failed to remove sed wrapper"
+ fi
+
+ exeinto ${portage_base}/pym/portage/tests
+ doexe "${S}"/pym/portage/tests/runTests
+
+ use doc && dohtml -r "${S}"/doc/*
+ use epydoc && dohtml -r "${WORKDIR}"/api
+ dodir /etc/portage
+ keepdir /etc/portage
+
+ # Use dodoc for compression, since the Makefile doesn't do that.
+ dodoc "${S}"/{ChangeLog,NEWS,RELEASE-NOTES} || die
+
+ # Allow external portage API consumers to import portage python modules
+ # (this used to be done with PYTHONPATH setting in /etc/env.d).
+ # For each of PYTHON_TARGETS, install a tree of *.py symlinks in
+ # site-packages, and compile with the corresponding interpreter.
+ local impl files mod_dir dest_mod_dir python relative_path x
+ for impl in "${PYTHON_COMPAT[@]}" ; do
+ use "python_targets_${impl}" || continue
+ if use build && [[ ${ROOT} == / &&
+ ! -x ${EPREFIX}/usr/bin/$(get_python_interpreter ${impl}) ]] ; then
+ # Tolerate --nodeps at beginning of stage1 for catalyst
+ ewarn "skipping python_targets_${impl}, interpreter not found"
+ continue
+ fi
+ while read -r mod_dir ; do
+ cd "${ED}/usr/lib/portage/pym/${mod_dir}" || die
+ files=$(echo *.py)
+ if [ -z "${files}" ] || [ "${files}" = "*.py" ]; then
+ # __pycache__ directories contain no py files
+ continue
+ fi
+ dest_mod_dir=$(get_python_sitedir ${impl})/${mod_dir}
+ dodir "${dest_mod_dir}" || die
+ relative_path=../../../lib/portage/pym/${mod_dir}
+ x=/${mod_dir}
+ while [ -n "${x}" ] ; do
+ relative_path=../${relative_path}
+ x=${x%/*}
+ done
+ for x in ${files} ; do
+ dosym "${relative_path}/${x}" \
+ "${dest_mod_dir}/${x}" || die
+ done
+ done < <(cd "${ED}"/usr/lib/portage/pym || die ; find * -type d ! -path "portage/tests*")
+ cd "${S}" || die
+ EPYTHON=$(get_python_interpreter ${impl}) \
+ python_compileall "$(get_python_sitedir ${impl})"
+ done
+
+ # Compile /usr/lib/portage/pym with the active interpreter, since portage
+ # internal commands force this directory to the beginning of sys.path.
+ python_compileall /usr/lib/portage/pym
+}
+
+pkg_preinst() {
+ if [[ $ROOT == / ]] ; then
+ # Run some minimal tests as a sanity check.
+ local test_runner=$(find "$ED" -name runTests)
+ if [[ -n $test_runner && -x $test_runner ]] ; then
+ einfo "Running preinst sanity tests..."
+ "$test_runner" || die "preinst sanity tests failed"
+ fi
+ fi
+
+ if use xattr && ! current_python_has_xattr ; then
+ ewarn "For optimal performance in xattr handling, install"
+ ewarn "dev-python/pyxattr, or install >=dev-lang/python-3.3 and"
+ ewarn "enable USE=python3 for $CATEGORY/$PN."
+ fi
+
+ has_version "<=${CATEGORY}/${PN}-2.2.00.13346"
+ EAPIPREFIX_UPGRADE=$?
+
+ if has_version "<${CATEGORY}/${PN}-2.2.7-r1" ; then
+ REPOS_CONF_UPGRADE=true
+ REPOS_CONF_SYNC=
+ type -P portageq >/dev/null 2>&1 && \
+ REPOS_CONF_SYNC=$("$(type -P portageq)" envvar SYNC)
+ fi
+}
+
+new_config_protect() {
+ # Generate a ._cfg file even if the target file
+ # does not exist, ensuring that the user will
+ # notice the config change.
+ local basename=${1##*/}
+ local dirname=${1%/*}
+ local i=0
+ while true ; do
+ local filename=$(
+ echo -n "${dirname}/._cfg"
+ printf "%04d" ${i}
+ echo -n "_${basename}"
+ )
+ [[ -e ${filename} ]] || break
+ (( i++ ))
+ done
+ echo "${filename}"
+}
+
+pkg_postinst() {
+
+ if ${REPOS_CONF_UPGRADE} ; then
+ einfo "Generating repos.conf"
+ local repo_name=
+ [[ -f ${PORTDIR}/profiles/repo_name ]] && \
+ repo_name=$(< "${PORTDIR}/profiles/repo_name")
+ if [[ -z ${REPOS_CONF_SYNC} ]] ; then
+ REPOS_CONF_SYNC=$(grep "^sync-uri =" "${EROOT:-${ROOT}}usr/share/portage/config/repos.conf")
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC##* }
+ fi
+ local sync_type=
+ [[ ${REPOS_CONF_SYNC} == git://* ]] && sync_type=git
+
+ if [[ ${REPOS_CONF_SYNC} == cvs://* ]]; then
+ sync_type=cvs
+ REPOS_CONF_SYNC=${REPOS_CONF_SYNC#cvs://}
+ fi
+
+ cat <<-EOF > "${T}/repos.conf"
+ [DEFAULT]
+ main-repo = ${repo_name:-gentoo}
+
+ [${repo_name:-gentoo}]
+ location = ${PORTDIR:-${EPREFIX}/usr/portage}
+ sync-type = ${sync_type:-rsync}
+ sync-uri = ${REPOS_CONF_SYNC}
+ EOF
+
+ [[ ${sync_type} == cvs ]] && echo "sync-cvs-repo = $(<"${PORTDIR}/CVS/Repository")" >> "${T}/repos.conf"
+
+ local dest=${EROOT:-${ROOT}}etc/portage/repos.conf
+ if [[ ! -f ${dest} ]] && mkdir -p "${dest}" 2>/dev/null ; then
+ dest=${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf
+ fi
+ # Don't install the config update if the desired repos.conf directory
+ # and config file exist, since users may accept it blindly and break
+ # their config (bug #478726).
+ [[ -e ${EROOT:-${ROOT}}etc/portage/repos.conf/${repo_name:-gentoo}.conf ]] || \
+ mv "${T}/repos.conf" "$(new_config_protect "${dest}")"
+
+ if [[ ${PORTDIR} == ${EPREFIX}/usr/portage ]] ; then
+ einfo "Generating make.conf PORTDIR setting for backward compatibility"
+ for dest in "${EROOT:-${ROOT}}etc/make.conf" "${EROOT:-${ROOT}}etc/portage/make.conf" ; do
+ [[ -e ${dest} ]] && break
+ done
+ [[ -d ${dest} ]] && dest=${dest}/portdir.conf
+ rm -rf "${T}/make.conf"
+ [[ -f ${dest} ]] && cat "${dest}" > "${T}/make.conf"
+ cat <<-EOF >> "${T}/make.conf"
+
+ # Set PORTDIR for backward compatibility with various tools:
+ # gentoo-bashcomp - bug #478444
+ # euse - bug #474574
+ # euses and ufed - bug #478318
+ PORTDIR="${EPREFIX}/usr/portage"
+ EOF
+ mkdir -p "${dest%/*}"
+ mv "${T}/make.conf" "$(new_config_protect "${dest}")"
+ fi
+ fi
+
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ local didwork=
+ [[ ! -e "${EROOT}"var/lib/portage/preserved_libs_registry ]] && for cpv in */*/NEEDED ; do
+ if [[ ${CHOST} == *-darwin* && ! -f ${cpv}.MACHO.3 ]] ; then
+ while read line; do
+ scanmacho -BF "%a;%F;%S;%n" ${line% *} >> "${cpv}".MACHO.3
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ elif [[ ${CHOST} != *-darwin* && ${CHOST} != *-interix* && ! -f ${cpv}.ELF.2 ]] ; then
+ while read line; do
+ filename=${line% *}
+ needed=${line#* }
+ newline=$(scanelf -BF "%a;%F;%S;$needed;%r" $filename)
+ echo "${newline:3}" >> "${cpv}".ELF.2
+ done < "${cpv}"
+ [[ -z ${didwork} ]] \
+ && didwork=yes \
+ || didwork=already
+ fi
+ [[ ${didwork} == yes ]] && \
+ einfo "converting NEEDED files to new syntax, please wait"
+ done
+ popd > /dev/null
+
+ if [[ ${EAPIPREFIX_UPGRADE} == 0 ]] ; then
+ local eapi
+ einfo 'removing EAPI="prefix" legacy from your vdb, please wait'
+ pushd "${EROOT}var/db/pkg" > /dev/null
+ for cpv in */* ; do
+ [[ ${cpv##*/} == "-MERGING-"* ]] && continue
+ # remove "prefix" from EAPI file
+ eapi=$(<"${cpv}"/EAPI)
+ eapi=${eapi/prefix/}
+ eapi=${eapi# }
+ eapi=${eapi:-0}
+ echo ${eapi} > "${cpv}"/EAPI
+ # remove "prefix" from EAPI in stored environment
+ bzcat "${cpv}"/environment.bz2 \
+ | sed -e "s/EAPI=\([\"']\)prefix [0-9][\"']/EAPI=\1${eapi}\1/" \
+ | bzip2 -9 > "${cpv}"/environment2.bz2 \
+ && mv -f "${cpv}"/environment{2,}.bz2
+ # remove "prefix" from the stored ebuild
+ sed -i -e "s/^EAPI=.*$/EAPI=${eapi}/" "${cpv}/${cpv##*/}.ebuild"
+ done
+ popd > /dev/null
+ fi
+}