diff options
author | Benda Xu <heroxbd@gentoo.org> | 2014-12-10 19:11:39 +0900 |
---|---|---|
committer | Benda Xu <heroxbd@gentoo.org> | 2014-12-10 19:12:31 +0900 |
commit | 6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d (patch) | |
tree | 2ee2c82172e26bfd274eaf2c3745154fae00fd3f | |
parent | sys-libs/glibc: specify rootsbindir (diff) | |
download | heroxbd-6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d.tar.gz heroxbd-6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d.tar.bz2 heroxbd-6ae8a5e1cb096ca7ccce9f02c462dd5181f1120d.zip |
sys-apps/portage: track for bug 532100, call ldconfig via env-update
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 +} |