summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2006-04-18 18:54:08 +0000
committerZac Medico <zmedico@gentoo.org>2006-04-18 18:54:08 +0000
commit171896e16a629bb1f43a22bf64e9906a7ff45fae (patch)
tree84af584787d3e6f5888891895bc097d864301f42 /sys-apps
parentMoved games-strategy/dominions2-demo-bin to games-strategy/dominions2-demo (diff)
downloadhistorical-171896e16a629bb1f43a22bf64e9906a7ff45fae.tar.gz
historical-171896e16a629bb1f43a22bf64e9906a7ff45fae.tar.bz2
historical-171896e16a629bb1f43a22bf64e9906a7ff45fae.zip
remove 2.1_pre8
Package-Manager: portage-2.1_pre9-r1
Diffstat (limited to 'sys-apps')
-rw-r--r--sys-apps/portage/Manifest63
-rw-r--r--sys-apps/portage/files/2.1/pre8/1000_r3120_fetchlist_dict.patch45
-rw-r--r--sys-apps/portage/files/2.1/pre8/1010_r3123_manifest2_fixes.patch502
-rw-r--r--sys-apps/portage/files/2.1/pre8/1020_r3118_bug_121368.patch102
-rw-r--r--sys-apps/portage/files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch14
-rw-r--r--sys-apps/portage/files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch44
-rw-r--r--sys-apps/portage/files/2.1/pre8/1050_r3133_lazy_items.patch109
-rw-r--r--sys-apps/portage/files/2.1/pre8/1060_r3134_porttrees_realpath.patch32
-rw-r--r--sys-apps/portage/files/2.1/pre8/1070_r3136_bug_129737_digest.patch122
-rw-r--r--sys-apps/portage/files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch84
-rw-r--r--sys-apps/portage/files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch38
-rw-r--r--sys-apps/portage/files/2.1/pre8/1100_r3143_lazy_autouse.patch45
-rw-r--r--sys-apps/portage/files/2.1/pre8/1110_r3147_bug_129852_chflags.patch49
-rw-r--r--sys-apps/portage/files/digest-portage-2.1_pre8-r53
-rw-r--r--sys-apps/portage/portage-2.1_pre8-r5.ebuild206
15 files changed, 3 insertions, 1455 deletions
diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest
index 77c3f2928a53..8e217daf8820 100644
--- a/sys-apps/portage/Manifest
+++ b/sys-apps/portage/Manifest
@@ -9,54 +9,6 @@ AUX 2.0.51.22-fixes.patch 10579 RMD160 aecbf663449b7b6c5fc8f4f343c30c1de7515fb3
MD5 bb9cb80f927bcc2b9e0f512d8a200e18 files/2.0.51.22-fixes.patch 10579
RMD160 aecbf663449b7b6c5fc8f4f343c30c1de7515fb3 files/2.0.51.22-fixes.patch 10579
SHA256 a6ae22f6513e9c5160204d9ba2ca8bab00091a88089139ff64bee68aaf63a95c files/2.0.51.22-fixes.patch 10579
-AUX 2.1/pre8/1000_r3120_fetchlist_dict.patch 2079 RMD160 3a86d6aef67777758f5452c3078cbd916edc8834 SHA1 96aa06088a7d3d61fa6d24bd4070b5fc9d3d85d1 SHA256 ec8ef0efb78635d7a3e7d48c78a4ae99150961dfc2bd9ca00292c16dc15eca93 size 2079
-MD5 3bffa6baf64a802c2fd737042a2188f6 files/2.1/pre8/1000_r3120_fetchlist_dict.patch 2079
-RMD160 3a86d6aef67777758f5452c3078cbd916edc8834 files/2.1/pre8/1000_r3120_fetchlist_dict.patch 2079
-SHA256 ec8ef0efb78635d7a3e7d48c78a4ae99150961dfc2bd9ca00292c16dc15eca93 files/2.1/pre8/1000_r3120_fetchlist_dict.patch 2079
-AUX 2.1/pre8/1010_r3123_manifest2_fixes.patch 19724 RMD160 0776528fa65acd80005ed93ad91e0e53b70481df SHA1 5991f55e71786294efeff24cb903a22bcce26c46 SHA256 22200a6cd6f0b89853b123bc7b58f740076da2730a0dde925b48006d0107eade size 19724
-MD5 2fff7bb3831c27d79fd1e6c8564ccd04 files/2.1/pre8/1010_r3123_manifest2_fixes.patch 19724
-RMD160 0776528fa65acd80005ed93ad91e0e53b70481df files/2.1/pre8/1010_r3123_manifest2_fixes.patch 19724
-SHA256 22200a6cd6f0b89853b123bc7b58f740076da2730a0dde925b48006d0107eade files/2.1/pre8/1010_r3123_manifest2_fixes.patch 19724
-AUX 2.1/pre8/1020_r3118_bug_121368.patch 3018 RMD160 56df7b20c98e633b06052db8c84ff4acd010cc12 SHA1 e585a08fead71838c1193bda52cad618ab3fc32b SHA256 10b4252b68fda34ac7eec6e4ff6ded6a2f81d4c6a054c762c4f1638ec5fbedcb size 3018
-MD5 772ad5a8c6447be04c5fbf699f1c1cde files/2.1/pre8/1020_r3118_bug_121368.patch 3018
-RMD160 56df7b20c98e633b06052db8c84ff4acd010cc12 files/2.1/pre8/1020_r3118_bug_121368.patch 3018
-SHA256 10b4252b68fda34ac7eec6e4ff6ded6a2f81d4c6a054c762c4f1638ec5fbedcb files/2.1/pre8/1020_r3118_bug_121368.patch 3018
-AUX 2.1/pre8/1030_r3128_bug_129559_qmerge.patch 654 RMD160 fe8e6faceb5b69d04ee30ef362fa716607850e12 SHA1 6c383ffd4b38fa2168b53ecc9f2a465d53d9c5e4 SHA256 e6bed8b5d689671d66f4ee3afd4bd5f7f1f924a8f81c4f737d4e489b458c3ff6 size 654
-MD5 bfa31a5b4165482fc7c4871c2e61e928 files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch 654
-RMD160 fe8e6faceb5b69d04ee30ef362fa716607850e12 files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch 654
-SHA256 e6bed8b5d689671d66f4ee3afd4bd5f7f1f924a8f81c4f737d4e489b458c3ff6 files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch 654
-AUX 2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch 1370 RMD160 20901b3656786c4f192525291c323261e49afa14 SHA1 af37fecc32ad2604f92a8de1a9467c5d97d7c096 SHA256 c3eb5624244cf050e925b2d01476410882ab5c9b2c9f9555e4199de25577398b size 1370
-MD5 b06e293b746cf3cedb1effe3ab51ffdc files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch 1370
-RMD160 20901b3656786c4f192525291c323261e49afa14 files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch 1370
-SHA256 c3eb5624244cf050e925b2d01476410882ab5c9b2c9f9555e4199de25577398b files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch 1370
-AUX 2.1/pre8/1050_r3133_lazy_items.patch 3766 RMD160 d6223519af5a4a7fb041b49a678dde3b5694e744 SHA1 c4f8765aa205166b1f646ef328d7991cf312b3b4 SHA256 d7af60ef8da89890f7a011164ffcf286e142afb8226125fcde8eeec84e2333fa size 3766
-MD5 244bd6ad17632f3df3c162b8505af765 files/2.1/pre8/1050_r3133_lazy_items.patch 3766
-RMD160 d6223519af5a4a7fb041b49a678dde3b5694e744 files/2.1/pre8/1050_r3133_lazy_items.patch 3766
-SHA256 d7af60ef8da89890f7a011164ffcf286e142afb8226125fcde8eeec84e2333fa files/2.1/pre8/1050_r3133_lazy_items.patch 3766
-AUX 2.1/pre8/1060_r3134_porttrees_realpath.patch 1213 RMD160 c12fbc6371e54bed6d66ec0dbb5f84cbabaa4e01 SHA1 321a9ba4bcdcbfce5dc567265d3b082469598be4 SHA256 2a4791b39a31b24d1528dffdb0cab881498bd2adc086d7bb855d784b05513859 size 1213
-MD5 a26d166a4a05117b2e1a2bea6c42fc60 files/2.1/pre8/1060_r3134_porttrees_realpath.patch 1213
-RMD160 c12fbc6371e54bed6d66ec0dbb5f84cbabaa4e01 files/2.1/pre8/1060_r3134_porttrees_realpath.patch 1213
-SHA256 2a4791b39a31b24d1528dffdb0cab881498bd2adc086d7bb855d784b05513859 files/2.1/pre8/1060_r3134_porttrees_realpath.patch 1213
-AUX 2.1/pre8/1070_r3136_bug_129737_digest.patch 4901 RMD160 d69ccbfdad9c54f922f29c97eae259acf98c1dc6 SHA1 b1e4656e8feac4a0710890e274ee175e05e3f577 SHA256 e09ad443a4c6891402911684a0f0130f17ff140bd183cfcb73af95c271118605 size 4901
-MD5 5c07be9a6099524a45f115bb05a833de files/2.1/pre8/1070_r3136_bug_129737_digest.patch 4901
-RMD160 d69ccbfdad9c54f922f29c97eae259acf98c1dc6 files/2.1/pre8/1070_r3136_bug_129737_digest.patch 4901
-SHA256 e09ad443a4c6891402911684a0f0130f17ff140bd183cfcb73af95c271118605 files/2.1/pre8/1070_r3136_bug_129737_digest.patch 4901
-AUX 2.1/pre8/1080_r3142_bug_129839_digestcheck.patch 2654 RMD160 930006a48b0642479b89a42e8c88a480b32c1bf6 SHA1 23b9d35c3d4f0fe720bbcd7c00c9198b475d05e3 SHA256 c1cf2c48259f66abc66c4cc3ce6d20e0fdc07e9928f87ec26cd63b81fbe94aeb size 2654
-MD5 bdacda32332e7948f31ea0b9ef4f8541 files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch 2654
-RMD160 930006a48b0642479b89a42e8c88a480b32c1bf6 files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch 2654
-SHA256 c1cf2c48259f66abc66c4cc3ce6d20e0fdc07e9928f87ec26cd63b81fbe94aeb files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch 2654
-AUX 2.1/pre8/1090_r3146_bug_129720_slot_collision.patch 1345 RMD160 1b4c60a473dee75a18ac14a74451068734300a40 SHA1 fde246d030dd17c61454002380adbf19515d4d73 SHA256 ba54714b979b74d69293b0cd4403616dd063acfc7eb692cc012930d126f353e4 size 1345
-MD5 f25cfae0c0e5981f96487c681170aa97 files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch 1345
-RMD160 1b4c60a473dee75a18ac14a74451068734300a40 files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch 1345
-SHA256 ba54714b979b74d69293b0cd4403616dd063acfc7eb692cc012930d126f353e4 files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch 1345
-AUX 2.1/pre8/1100_r3143_lazy_autouse.patch 1758 RMD160 8c18a2faba386b8b7a30b5addf9985b9c0411a12 SHA1 d505d6516b9d4c1a55e7fb4bfaf9e0422e15df65 SHA256 30ce27fe8a9f02774f710644bca683a7f215deef74c8bb7058746dcd391492f7 size 1758
-MD5 2a88d6293035092334f6b93879ea58ea files/2.1/pre8/1100_r3143_lazy_autouse.patch 1758
-RMD160 8c18a2faba386b8b7a30b5addf9985b9c0411a12 files/2.1/pre8/1100_r3143_lazy_autouse.patch 1758
-SHA256 30ce27fe8a9f02774f710644bca683a7f215deef74c8bb7058746dcd391492f7 files/2.1/pre8/1100_r3143_lazy_autouse.patch 1758
-AUX 2.1/pre8/1110_r3147_bug_129852_chflags.patch 2103 RMD160 54fac3375570f932382cca054d0d53339e4a010b SHA1 1c84c96a3ab188baac573422ededb44af48f5f9d SHA256 d89f1bfd4219b88db35615a152313ddfd30e0919d6aa19cc96452e83aa33f6e2 size 2103
-MD5 54ad16e4fe36ca1496668b245b8f822c files/2.1/pre8/1110_r3147_bug_129852_chflags.patch 2103
-RMD160 54fac3375570f932382cca054d0d53339e4a010b files/2.1/pre8/1110_r3147_bug_129852_chflags.patch 2103
-SHA256 d89f1bfd4219b88db35615a152313ddfd30e0919d6aa19cc96452e83aa33f6e2 files/2.1/pre8/1110_r3147_bug_129852_chflags.patch 2103
AUX 2.1/pre9/1000_r3171_readDigests.patch 832 RMD160 f7651885f6d7bcabaf4e55205f7d3a6e8745d4eb SHA1 ee3734080508cd029309a2ee06a18c25193af806 SHA256 9fade3a954517d8fb3889cbb2ef9806fa555eb19027af44e2f1fdccf74e757de size 832
MD5 8ac999b2be9fc08e60876a33a9b18bbd files/2.1/pre9/1000_r3171_readDigests.patch 832
RMD160 f7651885f6d7bcabaf4e55205f7d3a6e8745d4eb files/2.1/pre9/1000_r3171_readDigests.patch 832
@@ -150,7 +102,6 @@ DIST portage-2.0.53.tar.bz2 234679 RMD160 c4e8716bdc37bc2611e49b261ac82627aa3e63
DIST portage-2.0.54.tar.bz2 234784 RMD160 26c724df242a7d0c44d7fd06067bfcdbc4e3556b SHA256 69075ab4599958c4f7c7a932b95dcd77efa1b3c46ac28acb577284bc48a1db06 size 234784
DIST portage-2.1_pre3.tar.bz2 248017 RMD160 f66dd69c5b24517169da7783a2621a2149a98cc7 SHA256 63ce5fab0986c4ecefa78d1e70e3b9474128ddd66a2c4ae44da17929ebc0089c size 248017
DIST portage-2.1_pre7.tar.bz2 256493 RMD160 543c4090ee7ade75d8005962b55ebbcf57dfd0b5 SHA256 14a49c685002c7e9bb39bb0b59310eef3f4509448549977d2c2e718894a4092d size 256493
-DIST portage-2.1_pre8.tar.bz2 258150 RMD160 4cfb15ee4fcddae8b53166a810649a98349591ea SHA256 b5c2d9c0af4f392b3b8e0325ad6b76d908c11ddb32019117155fb4c2ef1a6804 size 258150
DIST portage-2.1_pre9.tar.bz2 260738 RMD160 6a31123ff904395c5d22f631241293e808b5f94f SHA256 aef6464ee7bb732038e31250252d544c81ad642691ee78fb2f90074b92c9d726 size 260738
DIST portage-patches-2.0.54-1.tar.bz2 4398 RMD160 8b7520b99aec0cb53a117b46345a720f5c7a68c0 SHA256 50a8c9a618ab0e15237a638635318f97f7c56c307d2d1abaeba12d34733ce08a size 4398
EBUILD portage-2.0.51.22-r3.ebuild 5796 RMD160 3bdf43216d1d70e8547bac9637a394dbcd9a7bd2 SHA1 b88b2898eb5ba5b4471a10f8fa82df9b8dc747f0 SHA256 f634d807fcc92500d9acc3dd5d79aadd2f565dbf1ee64a0f75a3543e2a372e25 size 5796
@@ -177,10 +128,6 @@ EBUILD portage-2.1_pre7-r5.ebuild 5990 RMD160 2b36bc22a0b19f920e856d3113131ca374
MD5 6ef8ace6b92df29e8a3f528127f48c06 portage-2.1_pre7-r5.ebuild 5990
RMD160 2b36bc22a0b19f920e856d3113131ca374d57a85 portage-2.1_pre7-r5.ebuild 5990
SHA256 bd7a99b01a04e444fd5870628ee4c83e3864ec72c3baa9483e1d7d3ad1f46073 portage-2.1_pre7-r5.ebuild 5990
-EBUILD portage-2.1_pre8-r5.ebuild 6045 RMD160 e44e649b4206638d14257a3180fc11291dca3671 SHA1 736fda744552ebf35c13371d6f3b5165de81e666 SHA256 fa54eb89f5290e7f63f135cb44eeaf549537f50012ed13c186c624a6fec9b33a size 6045
-MD5 751726b14e0c73ae4d7e0dd2756d2e20 portage-2.1_pre8-r5.ebuild 6045
-RMD160 e44e649b4206638d14257a3180fc11291dca3671 portage-2.1_pre8-r5.ebuild 6045
-SHA256 fa54eb89f5290e7f63f135cb44eeaf549537f50012ed13c186c624a6fec9b33a portage-2.1_pre8-r5.ebuild 6045
EBUILD portage-2.1_pre9-r1.ebuild 5674 RMD160 db40ad0d3f1c7c57cb18bc8da8728926e88d608f SHA1 63ba7511a3c0f8096a9e91ad5be61df40c63b33f SHA256 82e6c71192ba782338400bc82c7ff7f50c12d5bc8ab574ef468e31b750cf06b0 size 5674
MD5 f813d6a35fabe4949695410b0098a6d2 portage-2.1_pre9-r1.ebuild 5674
RMD160 db40ad0d3f1c7c57cb18bc8da8728926e88d608f portage-2.1_pre9-r1.ebuild 5674
@@ -217,10 +164,6 @@ MD5 6aebb952d3a284aa4f52d7e5dc7791de files/digest-portage-2.1_pre7-r5 253
RMD160 437829798fb49cf829eadb8dd84fd8353eb4fdb1 files/digest-portage-2.1_pre7-r5 253
SHA256 f96288447c0bb578ae0fb80a0169df536c3421f00df4dd8a83d2e910ca489fb5 files/digest-portage-2.1_pre7-r5 253
size 253 files/digest-portage-2.1_pre7-r5 253
-MD5 30b312b7ad9b1270598fc43f9c20b280 files/digest-portage-2.1_pre8-r5 253
-RMD160 eb295a54bb4f738705344007c0b7eec28e5558e0 files/digest-portage-2.1_pre8-r5 253
-SHA256 83c6db289e1011b461ee5ceaaf93e155749fd49a63e4f6963033d15dfb22f0c0 files/digest-portage-2.1_pre8-r5 253
-size 253 files/digest-portage-2.1_pre8-r5 253
MD5 67e276de13aafcdf016b324e9d982c77 files/digest-portage-2.1_pre9-r1 253
RMD160 e92a9e761f9f33a96978374a38b340bfd66e26cb files/digest-portage-2.1_pre9-r1 253
SHA256 6f2bd6c793f88f16cbcc260b5c1393a38b40579b04ee2f1776dc046664126bab files/digest-portage-2.1_pre9-r1 253
@@ -228,7 +171,7 @@ size 253 files/digest-portage-2.1_pre9-r1 253
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
-iD8DBQFERTMY/ejvha5XGaMRAqGjAKCpF6CHZf145obfp5PlDcJlE4Pd9QCg2jFp
-+0OAQI5NVrH/IkaGZSoCsY4=
-=uGtr
+iD8DBQFERTXS/ejvha5XGaMRAtoWAKDmMoWQ3NaVBUTTrG20o4VKDuGySgCdFoZk
+sogF8/PdJRsLxcYUGaX6sEs=
+=9NaB
-----END PGP SIGNATURE-----
diff --git a/sys-apps/portage/files/2.1/pre8/1000_r3120_fetchlist_dict.patch b/sys-apps/portage/files/2.1/pre8/1000_r3120_fetchlist_dict.patch
deleted file mode 100644
index 1d8961d23d98..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1000_r3120_fetchlist_dict.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -6379,6 +6344,41 @@
- "Is this a regular package (does it have a CATEGORY file? A dblink can be virtual *and* regular)"
- return os.path.exists(self.dbdir+"/CATEGORY")
-
-+class FetchlistDict(UserDict.DictMixin):
-+ """This provide a mapping interface to retrieve fetch lists. It's used
-+ to allow portage_manifest.Manifest to access fetch lists via a standard
-+ mapping interface rather than use the dbapi directly."""
-+ def __init__(self, pkgdir, settings):
-+ """pkgdir is a directory containing ebuilds and settings is passed into
-+ portdbapi.getfetchlist for __getitem__ calls."""
-+ self.pkgdir = pkgdir
-+ self.cp = os.sep.join(pkgdir.split(os.sep)[-2:])
-+ self.settings = settings
-+ self.porttrees = [os.path.dirname(os.path.dirname(pkgdir))]
-+ def __getitem__(self, pkg_key):
-+ """Returns the complete fetch list for a given package."""
-+ global portdb # has the global auxdb caches
-+ all_trees = portdb.porttrees
-+ # This ensures that the fetchlist comes from the correct portage tree.
-+ portdb.porttrees = self.porttrees
-+ fetchlist = portdb.getfetchlist(pkg_key, mysettings=self.settings, all=True)[1]
-+ # XXX The db is global so we restore it's trees back to their original state.
-+ portdb.porttrees = all_trees
-+ return fetchlist
-+ def has_key(self, pkg_key):
-+ """Returns true if the given package exists within pkgdir."""
-+ return pkg_key in self.keys()
-+ def keys(self):
-+ """Returns keys for all packages within pkgdir"""
-+ global portdb # has the global auxdb caches
-+ all_trees = portdb.porttrees
-+ # This ensures that the key list comes from the correct portage tree.
-+ portdb.porttrees = self.porttrees
-+ mykeys = portdb.cp_list(self.cp)
-+ # XXX The db is global so we restore it's trees back to their original state.
-+ portdb.porttrees = all_trees
-+ return mykeys
-+
- def cleanup_pkgmerge(mypkg,origdir):
- shutil.rmtree(settings["PORTAGE_TMPDIR"]+"/binpkgs/"+mypkg)
- if os.path.exists(settings["PORTAGE_TMPDIR"]+"/portage/"+mypkg+"/temp/environment"):
diff --git a/sys-apps/portage/files/2.1/pre8/1010_r3123_manifest2_fixes.patch b/sys-apps/portage/files/2.1/pre8/1010_r3123_manifest2_fixes.patch
deleted file mode 100644
index af768d94329d..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1010_r3123_manifest2_fixes.patch
+++ /dev/null
@@ -1,502 +0,0 @@
-=== modified file 'bin/repoman'
---- bin/repoman
-+++ bin/repoman
-@@ -795,7 +795,9 @@
- fails["CVS/Entries.IO_error"].append(checkdir+"/files/CVS/Entries")
- continue
-
-- mf=Manifest(checkdir, db=portage.db["/"]["porttree"].dbapi, mysettings=repoman_settings)
-+ mf = Manifest(checkdir,
-+ portage.FetchlistDict(checkdir, repoman_settings),
-+ repoman_settings["DISTDIR"])
- mydigests=mf.getTypeDigests("DIST")
- myfiles_all = []
-
-@@ -878,6 +880,8 @@
- if y == "CVS":
- continue
- for z in os.listdir(checkdir+"/files/"+y):
-+ if z == "CVS":
-+ continue
- filesdirlist.append(y+"/"+z)
- # current policy is no files over 20k, this is the check.
- elif mystat.st_size > 20480:
-@@ -1613,8 +1617,8 @@
- if "sign" in portage.features:
- mydone=[]
- if repolevel==3: # In a package dir
-- repoman_settings["O"]="./"
-- while(gpgsign(repoman_settings["O"]+"/Manifest")):
-+ repoman_settings["O"] = "."
-+ while(gpgsign(os.path.join(repoman_settings["O"], "Manifest"))):
- portage.writemsg("!!! YOU MUST sign the Manifest.\n")
- portage.writemsg("!!! You can also disable this for the time being by removing FEATURES='sign'")
- time.sleep(3)
-@@ -1626,8 +1630,8 @@
- if xs[0] in mydone:
- continue
- mydone.append(xs[0])
-- repoman_settings["O"]="./"+xs[0]
-- while(gpgsign(repoman_settings["O"]+"/Manifest")):
-+ repoman_settings["O"] = os.path.join(".", xs[0])
-+ while(gpgsign(os.path.join(repoman_settings["O"], "Manifest"))):
- portage.writemsg("!!! YOU MUST sign the Manifest.\n")
- portage.writemsg("!!! You can also disable this for the time being by removing FEATURES='sign'")
- time.sleep(3)
-@@ -1640,8 +1644,8 @@
- if string.join(xs[:2],"/") in mydone:
- continue
- mydone.append(string.join(xs[:2],"/"))
-- repoman_settings["O"]="./"+string.join(xs[:2],"/")
-- while(gpgsign(repoman_settings["O"]+"/Manifest")):
-+ repoman_settings["O"] = os.path.join(".", xs[0], xs[1])
-+ while(gpgsign(os.path.join(repoman_settings["O"], "Manifest"))):
- portage.writemsg("!!! YOU MUST sign the Manifest.\n")
- portage.writemsg("!!! You can also disable this for the time being by removing FEATURES='sign'")
- time.sleep(3)
-
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -30,6 +30,7 @@
- import commands
- from time import sleep
- from random import shuffle
-+ import UserDict
- except ImportError, e:
- sys.stderr.write("\n\n")
- sys.stderr.write("!!! Failed to complete python imports. These are internal modules for\n")
-@@ -2058,7 +2059,7 @@
- return 0
- return 1
-
--def digestgen(myarchives,mysettings,db=None,overwrite=1,manifestonly=0):
-+def digestgen(myarchives, mysettings, overwrite=1, manifestonly=0):
- """generates digest file if missing. Assumes all files are available. If
- overwrite=0, the digest will only be created if it doesn't already exist.
- DEPRECATED: this now only is a compability wrapper for
-@@ -2069,26 +2070,16 @@
- # (e.g. cvs stuff should be in ebuild(1) and/or repoman)
- # TODO: error/exception handling
-
-- if db is None:
-- db = portagetree().dbapi
--
-- mf = Manifest(mysettings["O"], db, mysettings)
-+ global settings
-+ mf = Manifest(mysettings["O"], FetchlistDict(mysettings["O"], mysettings), mysettings["DISTDIR"])
-+ mf.create(assumeDistfileHashes=True)
- for f in myarchives:
- # the whole type evaluation is only for the case that myarchives isn't a
- # DIST file as create() determines the type on its own
-- mytype = mf.guessType(f)
-- if mytype == "AUX":
-- f = f[5:]
-- elif mytype is None:
-- continue
-- myrealtype = mf.findFile(f)
-- if myrealtype != None:
-- mytype = myrealtype
- writemsg(">>> Creating Manifest for %s\n" % mysettings["O"])
-- mf.create(assumeDistfileHashes=True)
- try:
- writemsg(">>> Adding digests for file %s\n" % f)
-- mf.updateFileHashes(mytype, f, checkExisting=False, reuseExisting=not os.path.exists(os.path.join(mysettings["DISTDIR"], f)))
-+ mf.updateHashesGuessType(f, checkExisting=False, reuseExisting=not os.path.exists(os.path.join(mysettings["DISTDIR"], f)))
- except portage_exception.FileNotFound, e:
- writemsg("!!! File %s doesn't exist, can't update Manifest\n" % str(e))
- return 0
-@@ -2098,7 +2089,7 @@
-
- return 1
-
--def digestParseFile(myfilename,mysettings=None,db=None):
-+def digestParseFile(myfilename, mysettings=None):
- """(filename) -- Parses a given file for entries matching:
- <checksumkey> <checksum_hex_string> <filename> <filesize>
- Ignores lines that don't start with a valid checksum identifier
-@@ -2109,48 +2100,17 @@
-
- mysplit = myfilename.split(os.sep)
- if mysplit[-2] == "files" and mysplit[-1].startswith("digest-"):
-- pkgdir = os.sep+os.sep.join(mysplit[:-2])
-+ pkgdir = os.sep + os.sep.join(mysplit[:-2]).strip(os.sep)
- elif mysplit[-1] == "Manifest":
-- pkgdir = os.sep+os.sep.join(mysplit[:-1])
--
-- if db is None:
-- db = portagetree().dbapi
-+ pkgdir = os.sep + os.sep.join(mysplit[:-1]).strip(os.sep)
-+
- if mysettings is None:
-+ global settings
- mysettings = config(clone=settings)
-
-- mf = Manifest(pkgdir, db, mysettings)
-+ mf = Manifest(pkgdir, FetchlistDict(pkgdir, mysettings), mysettings["DISTDIR"])
-
- return mf.getDigests()
--
-- #########################################
-- # Old code that's replaced by the above #
-- #########################################
--
-- if not os.path.exists(myfilename):
-- return None
-- mylines = portage_util.grabfile(myfilename, compat_level=1)
--
-- mydigests={}
-- for x in mylines:
-- myline=string.split(x)
-- if len(myline) < 4:
-- #invalid line
-- continue
-- if myline[0] not in portage_checksum.get_valid_checksum_keys():
-- continue
-- mykey = myline.pop(0)
-- myhash = myline.pop(0)
-- mysize = long(myline.pop())
-- myfn = string.join(myline, " ")
-- if myfn not in mydigests:
-- mydigests[myfn] = {}
-- mydigests[myfn][mykey] = myhash
-- if "size" in mydigests[myfn]:
-- if mydigests[myfn]["size"] != mysize:
-- raise portage_exception.DigestException, "Conflicting sizes in digest: %(filename)s" % {"filename":myfilename}
-- else:
-- mydigests[myfn]["size"] = mysize
-- return mydigests
-
- # XXXX strict was added here to fix a missing name error.
- # XXXX It's used below, but we're not paying attention to how we get it?
-@@ -2194,15 +2154,13 @@
- return 1
-
-
--def digestcheck(myfiles, mysettings, strict=0, justmanifest=0, db=None):
-+def digestcheck(myfiles, mysettings, strict=0, justmanifest=0):
- """Verifies checksums. Assumes all files have been downloaded.
- DEPRECATED: this is now only a compability wrapper for
- portage_manifest.Manifest()."""
-
- pkgdir = mysettings["O"]
-- if db is None:
-- db = portagetree().dbapi
-- mf = Manifest(pkgdir, db, mysettings)
-+ mf = Manifest(pkgdir, FetchlistDict(pkgdir, mysettings), mysettings["DISTDIR"])
- try:
- if strict:
- print ">>> checking ebuild checksums",
-@@ -2750,6 +2708,28 @@
- if need_distfiles and not fetch(fetchme, mysettings, listonly=listonly, fetchonly=fetchonly):
- return 1
-
-+ if mydo=="fetch" and listonly:
-+ return 0
-+
-+ if "digest" in features:
-+ #generate digest if it doesn't exist.
-+ if mydo=="digest":
-+ return (not digestgen(aalist,mysettings,overwrite=1))
-+ else:
-+ digestgen(aalist,mysettings,overwrite=0)
-+ elif mydo=="digest":
-+ #since we are calling "digest" directly, recreate the digest even if it already exists
-+ return (not digestgen(aalist,mysettings,overwrite=1))
-+ if mydo=="manifest":
-+ return (not digestgen(aalist,mysettings,overwrite=1,manifestonly=1))
-+
-+ # See above comment about fetching only when needed
-+ if not digestcheck(checkme, mysettings, ("strict" in features), (mydo not in ["digest","fetch","unpack"] and settings["PORTAGE_CALLER"] == "ebuild" and "noauto" in features)):
-+ return 1
-+
-+ if mydo=="fetch":
-+ return 0
-+
- # inefficient. improve this logic via making actionmap easily searchable to see if we're in the chain of what
- # will be executed, either that or forced N doebuild calls instead of a single set of phase calls.
- if (mydo not in ("setup", "clean", "postinst", "preinst", "prerm", "fetch", "digest", "manifest") and
-@@ -2774,28 +2754,6 @@
- except OSError:
- print "!!! Failed symlinking in '%s' to ebuild distdir" % file
- raise
--
-- if mydo=="fetch" and listonly:
-- return 0
--
-- if "digest" in features:
-- #generate digest if it doesn't exist.
-- if mydo=="digest":
-- return (not digestgen(aalist,mysettings,overwrite=1))
-- else:
-- digestgen(aalist,mysettings,overwrite=0)
-- elif mydo=="digest":
-- #since we are calling "digest" directly, recreate the digest even if it already exists
-- return (not digestgen(aalist,mysettings,overwrite=1))
-- if mydo=="manifest":
-- return (not digestgen(aalist,mysettings,overwrite=1,manifestonly=1))
--
-- # See above comment about fetching only when needed
-- if not digestcheck(checkme, mysettings, ("strict" in features), (mydo not in ["digest","fetch","unpack"] and settings["PORTAGE_CALLER"] == "ebuild" and "noauto" in features)):
-- return 1
--
-- if mydo=="fetch":
-- return 0
-
- #initial dep checks complete; time to process main commands
-
-=== modified file 'pym/portage_checksum.py'
---- pym/portage_checksum.py
-+++ pym/portage_checksum.py
-@@ -94,7 +94,9 @@
- if mydict["size"] != mysize:
- return False,("Filesize does not match recorded size", mysize, mydict["size"])
- except OSError, e:
-- return False, str(e)
-+ if e.errno == errno.ENOENT:
-+ raise portage_exception.FileNotFound(filename)
-+ return False, (str(e), None, None)
- for x in mydict.keys():
- if x == "size":
- continue
-
-=== modified file 'pym/portage_manifest.py'
---- pym/portage_manifest.py
-+++ pym/portage_manifest.py
-@@ -3,8 +3,9 @@
- # $Header: $
-
- import errno, os, sets
--
--import portage, portage_exception, portage_versions, portage_const
-+from itertools import imap
-+
-+import portage_exception, portage_versions, portage_const
- from portage_checksum import *
- from portage_exception import *
- from portage_util import write_atomic
-@@ -25,11 +26,11 @@
- return not (filename in ["CVS", ".svn", "files", "Manifest"] or filename.endswith(".ebuild"))
-
- class Manifest(object):
-- def __init__(self, pkgdir, db, mysettings, manifest1_compat=True, from_scratch=False):
-- """ create new Manifest instance for package in pkgdir, using db and mysettings for metadata lookups,
-+ def __init__(self, pkgdir, fetchlist_dict, distdir, manifest1_compat=True, from_scratch=False):
-+ """ create new Manifest instance for package in pkgdir
- and add compability entries for old portage versions if manifest1_compat == True.
- Do not parse Manifest file if from_scratch == True (only for internal use) """
-- self.pkgdir = pkgdir+os.sep
-+ self.pkgdir = pkgdir.rstrip(os.sep) + os.sep
- self.fhashdict = {}
- self.hashes = portage_const.MANIFEST2_HASH_FUNCTIONS[:]
- self.hashes.append("size")
-@@ -41,12 +42,8 @@
- if not from_scratch:
- self._read()
- self.compat = manifest1_compat
-- self.db = db
-- self.mysettings = mysettings
-- if mysettings.has_key("PORTAGE_ACTUAL_DISTDIR"):
-- self.distdir = mysettings["PORTAGE_ACTUAL_DISTDIR"]
-- else:
-- self.distdir = mysettings["DISTDIR"]
-+ self.fetchlist_dict = fetchlist_dict
-+ self.distdir = distdir
-
- def guessType(self, filename):
- """ Perform a best effort guess of which type the given filename is, avoid using this if possible """
-@@ -79,9 +76,11 @@
- def _readDigests(self):
- """ Parse old style digest files for this Manifest instance """
- mycontent = ""
-- for d in portage.listdir(os.path.join(self.pkgdir, "files"), filesonly=True, recursive=False):
-+ for d in os.listdir(os.path.join(self.pkgdir, "files")):
- if d.startswith("digest-"):
-- mycontent += open(os.path.join(self.pkgdir, "files", d), "r").read()
-+ f = open(os.path.join(self.pkgdir, "files", d), "r")
-+ mycontent += f.read()
-+ f.close()
- return mycontent
-
- def _read(self):
-@@ -124,7 +123,7 @@
-
- def _writeDigests(self, force=False):
- """ Create old style digest files for this Manifest instance """
-- cpvlist = [os.path.join(self.pkgdir.rstrip(os.sep).split(os.sep)[-2], x[:-7]) for x in portage.listdir(self.pkgdir) if x.endswith(".ebuild")]
-+ cpvlist = [os.path.join(self._pkgdir_category(), x[:-7]) for x in os.listdir(self.pkgdir) if x.endswith(".ebuild")]
- rval = []
- try:
- os.makedirs(os.path.join(self.pkgdir, "files"))
-@@ -134,7 +133,7 @@
- else:
- raise
- for cpv in cpvlist:
-- dname = os.path.join(self.pkgdir, "files", "digest-"+portage.catsplit(cpv)[1])
-+ dname = os.path.join(self.pkgdir, "files", "digest-%s" % self._catsplit(cpv)[1])
- distlist = self._getCpvDistfiles(cpv)
- update_digest = True
- if not force:
-@@ -194,7 +193,7 @@
- mylines = []
- for dname in digests:
- myhashes = perform_multiple_checksums(dname, portage_const.MANIFEST1_HASH_FUNCTIONS+["size"])
-- for h in myhashes.keys():
-+ for h in myhashes:
- mylines.append((" ".join([h, str(myhashes[h]), os.path.join("files", os.path.basename(dname)), str(myhashes["size"])])))
- fd.write("\n".join(mylines))
- fd.write("\n")
-@@ -258,7 +257,7 @@
- self.fhashdict[ftype][fname] = {}
- if hashdict != None:
- self.fhashdict[ftype][fname].update(hashdict)
-- if not portage_const.MANIFEST2_REQUIRED_HASH in self.fhashdict[ftype][fname].keys():
-+ if not portage_const.MANIFEST2_REQUIRED_HASH in self.fhashdict[ftype][fname]:
- self.updateFileHashes(ftype, fname)
-
- def removeFile(self, ftype, fname):
-@@ -267,7 +266,7 @@
-
- def hasFile(self, ftype, fname):
- """ Return wether the Manifest contains an entry for the given type,filename pair """
-- return (fname in self.fhashdict[ftype].keys())
-+ return (fname in self.fhashdict[ftype])
-
- def findFile(self, fname):
- """ Return entrytype of the given file if present in Manifest or None if not present """
-@@ -286,8 +285,10 @@
- distfilehashes = self.fhashdict["DIST"]
- else:
- distfilehashes = {}
-- self.__init__(self.pkgdir, self.db, self.mysettings, from_scratch=True)
-- for f in portage.listdir(self.pkgdir, filesonly=True, recursive=False):
-+ self.__init__(self.pkgdir, self.fetchlist_dict, self.distdir, from_scratch=True)
-+ for pkgdir, pkgdir_dirs, pkgdir_files in os.walk(self.pkgdir):
-+ break
-+ for f in pkgdir_files:
- if f.endswith(".ebuild"):
- mytype = "EBUILD"
- elif manifest2MiscfileFilter(f):
-@@ -295,11 +296,18 @@
- else:
- continue
- self.fhashdict[mytype][f] = perform_multiple_checksums(self.pkgdir+f, self.hashes)
-- for f in portage.listdir(self.pkgdir+"files", filesonly=True, recursive=True):
-+ recursive_files = []
-+ cut_len = len(os.path.join(self.pkgdir, "files") + os.sep)
-+ for parentdir, dirs, files in os.walk(os.path.join(self.pkgdir, "files")):
-+ for f in files:
-+ full_path = os.path.join(parentdir, f)
-+ recursive_files.append(full_path[cut_len:])
-+ for f in recursive_files:
- if not manifest2AuxfileFilter(f):
- continue
-- self.fhashdict["AUX"][f] = perform_multiple_checksums(self.pkgdir+"files"+os.sep+f, self.hashes)
-- cpvlist = [os.path.join(self.pkgdir.rstrip(os.sep).split(os.sep)[-2], x[:-7]) for x in portage.listdir(self.pkgdir) if x.endswith(".ebuild")]
-+ self.fhashdict["AUX"][f] = perform_multiple_checksums(
-+ os.path.join(self.pkgdir, "files", f.lstrip(os.sep)), self.hashes)
-+ cpvlist = [os.path.join(self._pkgdir_category(), x[:-7]) for x in os.listdir(self.pkgdir) if x.endswith(".ebuild")]
- distlist = []
- for cpv in cpvlist:
- distlist.extend(self._getCpvDistfiles(cpv))
-@@ -307,11 +315,14 @@
- fname = os.path.join(self.distdir, f)
- if os.path.exists(fname):
- self.fhashdict["DIST"][f] = perform_multiple_checksums(fname, self.hashes)
-- elif assumeDistfileHashes and f in distfilehashes.keys():
-+ elif assumeDistfileHashes and f in distfilehashes:
- self.fhashdict["DIST"][f] = distfilehashes[f]
- else:
- raise FileNotFound(fname)
--
-+
-+ def _pkgdir_category(self):
-+ return self.pkgdir.rstrip(os.sep).split(os.sep)[-2]
-+
- def _getAbsname(self, ftype, fname):
- if ftype == "DIST":
- absname = os.path.join(self.distdir, fname)
-@@ -326,7 +337,7 @@
- self.checkTypeHashes(t, ignoreMissingFiles=ignoreMissingFiles)
-
- def checkTypeHashes(self, idtype, ignoreMissingFiles=False):
-- for f in self.fhashdict[idtype].keys():
-+ for f in self.fhashdict[idtype]:
- self.checkFileHashes(idtype, f, ignoreMissing=ignoreMissingFiles)
-
- def checkFileHashes(self, ftype, fname, ignoreMissing=False):
-@@ -343,7 +354,7 @@
- self.checkTypeHashes("AUX", ignoreMissingFiles=False)
- if checkMiscfiles:
- self.checkTypeHashes("MISC", ignoreMissingFiles=False)
-- ebuildname = portage.catsplit(cpv)[1]+".ebuild"
-+ ebuildname = "%s.ebuild" % self._catsplit(cpv)[1]
- self.checkFileHashes("EBUILD", ebuildname, ignoreMissing=False)
- if checkDistfiles:
- if onlyDistfiles:
-@@ -352,26 +363,26 @@
-
- def _getCpvDistfiles(self, cpv):
- """ Get a list of all DIST files associated to the given cpv """
-- return self.db.getfetchlist(cpv, mysettings=self.mysettings, all=True)[1]
-+ return self.fetchlist_dict[cpv]
-
- def updateFileHashes(self, ftype, fname, checkExisting=True, ignoreMissing=True, reuseExisting=False):
- """ Regenerate hashes for the given file """
- if checkExisting:
-- self.checkFileHashes(fname)
-+ self.checkFileHashes(ftype, fname, ignoreMissing=ignoreMissing)
- if not ignoreMissing and not self.fhashdict[ftype].has_key(fname):
- raise FileNotInManifestException(fname)
- if not self.fhashdict[ftype].has_key(fname):
- self.fhashdict[ftype][fname] = {}
- myhashkeys = list(self.hashes)
- if reuseExisting:
-- for k in [h for h in self.fhashdict[ftype][fname].keys() if h in myhashkeys]:
-+ for k in [h for h in self.fhashdict[ftype][fname] if h in myhashkeys]:
- myhashkeys.remove(k)
- myhashes = perform_multiple_checksums(self._getAbsname(ftype, fname), myhashkeys)
- self.fhashdict[ftype][fname].update(myhashes)
-
- def updateTypeHashes(self, idtype, checkExisting=False, ignoreMissingFiles=True):
- """ Regenerate all hashes for all files of the given type """
-- for fname in self.fhashdict[idtype].keys():
-+ for fname in self.fhashdict[idtype]:
- self.updateFileHashes(idtype, fname, checkExisting)
-
- def updateAllHashes(self, checkExisting=False, ignoreMissingFiles=True):
-@@ -384,10 +395,23 @@
- files)."""
- self.updateTypeHashes("AUX", ignoreMissingFiles=ignoreMissingFiles)
- self.updateTypeHashes("MISC", ignoreMissingFiles=ignoreMissingFiles)
-- ebuildname = portage.catsplit(cpv)[1]+".ebuild"
-+ ebuildname = "%s.ebuild" % self._catsplit(cpv)[1]
- self.updateFileHashes("EBUILD", ebuildname, ignoreMissingFiles=ignoreMissingFiles)
- for f in self._getCpvDistfiles(cpv):
- self.updateFileHashes("DIST", f, ignoreMissingFiles=ignoreMissingFiles)
-+
-+ def updateHashesGuessType(self, fname, *args, **kwargs):
-+ """ Regenerate hashes for the given file (guesses the type and then
-+ calls updateFileHashes)."""
-+ mytype = self.guessType(fname)
-+ if mytype == "AUX":
-+ fname = fname[len("files" + os.sep):]
-+ elif mytype is None:
-+ return
-+ myrealtype = self.findFile(fname)
-+ if myrealtype is not None:
-+ mytype = myrealtype
-+ return self.updateFileHashes(mytype, fname, *args, **kwargs)
-
- def getFileData(self, ftype, fname, key):
- """ Return the value of a specific (type,filename,key) triple, mainly useful
-@@ -410,3 +434,8 @@
- elif len(mysplit) > 4 and mysplit[0] in portage_const.MANIFEST2_IDENTIFIERS and ((len(mysplit) - 3) % 2) == 0 and not 2 in rVal:
- rVal.append(2)
- return rVal
-+
-+ def _catsplit(self, pkg_key):
-+ """Split a category and package, returning a list of [cat, pkg].
-+ This is compatible with portage.catsplit()"""
-+ return pkg_key.split("/", 1)
-
diff --git a/sys-apps/portage/files/2.1/pre8/1020_r3118_bug_121368.patch b/sys-apps/portage/files/2.1/pre8/1020_r3118_bug_121368.patch
deleted file mode 100644
index efdac4703c33..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1020_r3118_bug_121368.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-=== modified file 'bin/misc-functions.sh'
---- bin/misc-functions.sh
-+++ bin/misc-functions.sh
-@@ -184,77 +184,27 @@
- unset INSTALLTOD
- fi
-
-- # dumps perms to stdout. if error, no perms dumped.
-- function stat_perms() {
-- local f
-- # only define do_stat if it hasn't been already
-- if ! type -p do_stat &> /dev/null; then
-- if ! type -p stat &>/dev/null; then
-- do_stat() {
-- # Generic version -- Octal result
-- python -c "import os,stat; print '%o' % os.stat('$1')[stat.ST_MODE]"
-- }
-- else
-- if [ "${USERLAND}" == "BSD" ] || [ "${USERLAND}" == "Darwin" ]; then
-- do_stat() {
-- # BSD version -- Octal result
-- $(type -p stat) -f '%p' "$1"
-- }
-- else
-- do_stat() {
-- # Linux version -- Hex result converted to Octal
-- f=$($(type -p stat) -c '%f' "$1") || return $?
-- printf '%o' "0x$f"
-- }
-- fi
-- fi
-- fi
--
-- f=$(do_stat "$@") || return
-- f="${f:2:4}"
-- echo $f
-- }
--
-- local file s
-- local count=0
-- find "${D}/" -user portage | while read file; do
-- count=$(( $count + 1 ))
-- if [ -L "${file}" ]; then
-- lchown ${PORTAGE_INST_UID:-0} "${file}"
-- else
-- s=$(stat_perms "$file")
-- if [ -z "${s}" ]; then
-- ewarn "failed stat_perm'ing $file. User intervention during install isn't wise..."
-- continue
-- fi
-- chown ${PORTAGE_INST_UID:-0} "$file"
-- chmod "$s" "$file"
-- fi
-- done
-- if (( $count > 0 )); then
-- ewarn "$count files were installed with user portage!"
-- fi
--
-- count=0
-- find "${D}/" -group portage | while read file; do
-- count=$(( $count + 1 ))
-- if [ -L "${file}" ]; then
-- lchgrp ${PORTAGE_INST_GID:-0} "${file}"
-- else
-- s=$(stat_perms "$file")
-- if [ -z "${s}" ]; then
-- echo "failed stat_perm'ing '$file' . User intervention during install isn't wise..."
-- continue
-- fi
-- chgrp ${PORTAGE_INST_GID:-0} "$file"
-- chmod "$s" "$file"
-- fi
-- done
-- if (( $count > 0 )); then
-- ewarn "$count files were installed with group portage!"
-- fi
--
-- unset -f stat_perms
-+ local file="${T}/find-portage-log"
-+ local count=$(find "${D}"/ -user portage | wc -l)
-+ if [[ ${count} -gt 0 ]] ; then
-+ ewarn "${count} files were installed with user portage!"
-+ find "${D}"/ -xtype l -user portage -print0 > "${file}"
-+ [[ -s ${file} ]] && cat "${file}" | xargs -0 chown -h ${PORTAGE_INST_UID:-0}
-+ find "${D}"/ -user portage -print0 > "${file}"
-+ [[ -s ${file} ]] && cat "${file}" | xargs -0 chown ${PORTAGE_INST_UID:-0}
-+ rm -f "${file}"
-+ fi
-+
-+ count=$(find "${D}"/ -group portage | wc -l)
-+ if [[ ${count} -gt 0 ]] ; then
-+ ewarn "${count} files were installed with group portage!"
-+
-+ find "${D}"/ -xtype l -group portage -print0 > "${file}"
-+ [[ -s ${file} ]] && cat "${file}" | xargs -0 chgrp -h ${PORTAGE_INST_GID:-0}
-+ find "${D}"/ -group portage -print0 > "${file}"
-+ [[ -s ${file} ]] && cat "${file}" | xargs -0 chgrp ${PORTAGE_INST_GID:-0}
-+ rm -f "${file}"
-+ fi
-
- # Portage regenerates this on the installed system.
- if [ -f "${D}/usr/share/info/dir.gz" ]; then
diff --git a/sys-apps/portage/files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch b/sys-apps/portage/files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch
deleted file mode 100644
index 8ed07a48e2ff..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1030_r3128_bug_129559_qmerge.patch
+++ /dev/null
@@ -1,14 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -2715,6 +2715,9 @@
- if not os.path.exists(mysettings["PORTAGE_BUILDDIR"]+"/.installed"):
- print "!!! mydo=qmerge, but install phase hasn't been ran"
- sys.exit(1)
-+ # qmerge is a special phase that implies noclean.
-+ if "noclean" not in mysettings.features:
-+ mysettings.features.append("noclean")
- #qmerge is specifically not supposed to do a runtime dep check
- return merge(mysettings["CATEGORY"],mysettings["PF"],mysettings["D"],mysettings["PORTAGE_BUILDDIR"]+"/build-info",myroot,mysettings,myebuild=mysettings["EBUILD"],mytree=tree)
- elif mydo=="merge":
-
diff --git a/sys-apps/portage/files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch b/sys-apps/portage/files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch
deleted file mode 100644
index 6fa539fdf458..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1040_r3126_bug_129244_ebuild_phase.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-=== modified file 'bin/ebuild.sh'
---- bin/ebuild.sh
-+++ bin/ebuild.sh
-@@ -11,6 +11,8 @@
- SANDBOX_PREDICT="${SANDBOX_PREDICT}:${PORTAGE_GPG_DIR}"
- fi
-
-+declare -rx EBUILD_PHASE
-+
- if [ "$*" != "depend" ] && [ "$*" != "clean" ] && [ "$*" != "nofetch" ]; then
- if [ -f "${T}/environment" ]; then
- source "${T}/environment" &>/dev/null
-@@ -20,8 +22,6 @@
- if [ -n "$#" ]; then
- ARGS="${*}"
- fi
--
--declare -rx EBUILD_PHASE="$*"
-
- # Prevent aliases from causing portage to act inappropriately.
- # Make sure it's before everything so we don't mess aliases that follow.
-
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -2197,7 +2197,9 @@
- if retval:
- return retval
- kwargs = actionmap[mydo]["args"]
-+ mysettings["EBUILD_PHASE"] = mydo
- phase_retval = spawn(actionmap[mydo]["cmd"] % mydo, mysettings, debug=debug, logfile=logfile, **kwargs)
-+ del mysettings["EBUILD_PHASE"]
- if phase_retval == os.EX_OK:
- if mydo == "install":
- mycommand = " ".join([MISC_SH_BINARY, "install_qa_check"])
-@@ -2246,6 +2246,8 @@
- # XXX: that creates a deadlock... Really need to isolate that.
- mysettings.reset(use_cache=use_cache)
- mysettings.setcpv(mycpv,use_cache=use_cache)
-+
-+ mysettings["EBUILD_PHASE"] = mydo
-
- if debug: # Otherwise it overrides emerge's settings.
- # We have no other way to set debug... debug can't be passed in
diff --git a/sys-apps/portage/files/2.1/pre8/1050_r3133_lazy_items.patch b/sys-apps/portage/files/2.1/pre8/1050_r3133_lazy_items.patch
deleted file mode 100644
index be4ab3562912..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1050_r3133_lazy_items.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -6551,28 +6551,23 @@
- return settings.getvirtuals(myroot)
-
- def do_vartree(mysettings):
-- class LazyVirtualsDict(dict):
-+ class LazyVirtualsItem(object):
- def __init__(self, myroot):
-- super(LazyVirtualsDict, self).__init__()
-- self.myroot = myroot
-- self["virtuals"] = None
-- def __getitem__(self, key):
-- if "virtuals" == key:
-- if "virtuals" in self:
-- virtuals = super(LazyVirtualsDict, self).__getitem__("virtuals")
-- if virtuals is not None:
-- return virtuals
-- else:
-- global settings
-- virtuals = settings.getvirtuals(self.myroot)
-- self["virtuals"] = virtuals
-- return virtuals
-- return super(LazyVirtualsDict, self).__getitem__(key)
-+ self._myroot = myroot
-+ self._virtuals = None
-+ def __call__(self):
-+ if self._virtuals is None:
-+ global settings
-+ self._virtuals = settings.getvirtuals(self._myroot)
-+ return self._virtuals
-+
- global db, root
-- db["/"] = LazyVirtualsDict("/")
-+ db["/"] = portage_util.LazyItemsDict()
-+ db["/"].addLazyItem("virtuals", LazyVirtualsItem("/"))
- db["/"]["vartree"] = vartree("/")
- if root!="/":
-- db[root] = LazyVirtualsDict(root)
-+ db[root] = portage_util.LazyItemsDict()
-+ db[root].addLazyItem("virtuals", LazyVirtualsItem(root))
- db[root]["vartree"] = vartree(root)
- #We need to create the vartree first, then load our settings, and then set up our other trees
-
-@@ -6886,11 +6881,25 @@
- global_updates()
-
- #continue setting up other trees
-+class LazyBintreeItem(object):
-+ """This class implements lazy construction of db[root]["bintree"]."""
-+ def __init__(self, myroot):
-+ self._myroot = myroot
-+ self._bintree = None
-+ def __call__(self):
-+ if self._bintree is None:
-+ global settings
-+ self._bintree = binarytree(self._myroot, settings["PKGDIR"])
-+ # The binarytree likely needs to be populated now, so we
-+ # do it now to make sure that all method calls are safe.
-+ self._bintree.populate()
-+ return self._bintree
-+
- db["/"]["porttree"] = portagetree("/")
--db["/"]["bintree"] = binarytree("/", settings["PKGDIR"])
-+db["/"].addLazyItem("bintree", LazyBintreeItem("/"))
- if root!="/":
- db[root]["porttree"] = portagetree(root)
-- db[root]["bintree"] = binarytree(root, settings["PKGDIR"])
-+ db[root].addLazyItem("bintree", LazyBintreeItem(root))
-
- profileroots = [settings["PORTDIR"]+"/profiles/"]
- for x in settings["PORTDIR_OVERLAY"].split():
-
-=== modified file 'pym/portage_util.py'
---- pym/portage_util.py
-+++ pym/portage_util.py
-@@ -710,3 +710,30 @@
- raise
- perms_modified = apply_permissions(dir_path, *args, **kwargs)
- return created_dir or perms_modified
-+
-+class LazyItemsDict(dict):
-+ """A mapping object that behaves like a standard dict except that it allows
-+ for lazy initialization of values via callable objects. Lazy items can be
-+ overwritten and deleted just as normal items."""
-+ def __init__(self):
-+ dict.__init__(self)
-+ self.lazy_items = {}
-+ def addLazyItem(self, item_key, value_callable):
-+ """Add a lazy item for the given key. When the item is requested,
-+ value_callable will be called with no arguments."""
-+ self.lazy_items[item_key] = value_callable
-+ # make it show up in self.keys(), etc...
-+ dict.__setitem__(self, item_key, None)
-+ def __getitem__(self, item_key):
-+ if item_key in self.lazy_items:
-+ return self.lazy_items[item_key]()
-+ else:
-+ return dict.__getitem__(self, item_key)
-+ def __setitem__(self, item_key, value):
-+ if item_key in self.lazy_items:
-+ del self.lazy_items[item_key]
-+ dict.__setitem__(self, item_key, value)
-+ def __delitem__(self, item_key):
-+ if item_key in self.lazy_items:
-+ del self.lazy_items[item_key]
-+ dict.__delitem__(self, item_key)
-
diff --git a/sys-apps/portage/files/2.1/pre8/1060_r3134_porttrees_realpath.patch b/sys-apps/portage/files/2.1/pre8/1060_r3134_porttrees_realpath.patch
deleted file mode 100644
index 7e479cc8518b..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1060_r3134_porttrees_realpath.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -4511,7 +4511,7 @@
- self.manifestVerifier = portage_gpg.FileChecker(self.mysettings["PORTAGE_GPG_DIR"], "gentoo.gpg", minimumTrust=self.manifestVerifyLevel)
-
- #self.root=settings["PORTDIR"]
-- self.porttree_root = porttree_root
-+ self.porttree_root = os.path.realpath(porttree_root)
-
- self.depcachedir = self.mysettings.depcachedir[:]
-
-@@ -4532,7 +4532,8 @@
- self.xcache={}
- self.frozen=0
-
-- self.porttrees=[self.porttree_root]+self.mysettings["PORTDIR_OVERLAY"].split()
-+ self.porttrees = [self.porttree_root] + \
-+ [os.path.realpath(t) for t in self.mysettings["PORTDIR_OVERLAY"].split()]
- self.auxdbmodule = self.mysettings.load_best_module("portdbapi.auxdbmodule")
- self.auxdb = {}
-
-@@ -6275,7 +6276,7 @@
- self.pkgdir = pkgdir
- self.cp = os.sep.join(pkgdir.split(os.sep)[-2:])
- self.settings = settings
-- self.porttrees = [os.path.dirname(os.path.dirname(pkgdir))]
-+ self.porttrees = [os.path.realpath(os.path.dirname(os.path.dirname(pkgdir)))]
- def __getitem__(self, pkg_key):
- """Returns the complete fetch list for a given package."""
- global portdb # has the global auxdb caches
-
diff --git a/sys-apps/portage/files/2.1/pre8/1070_r3136_bug_129737_digest.patch b/sys-apps/portage/files/2.1/pre8/1070_r3136_bug_129737_digest.patch
deleted file mode 100644
index 87b7dc7f8032..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1070_r3136_bug_129737_digest.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -2060,33 +2060,20 @@
- return 1
-
- def digestgen(myarchives, mysettings, overwrite=1, manifestonly=0):
-- """generates digest file if missing. Assumes all files are available. If
-- overwrite=0, the digest will only be created if it doesn't already exist.
-+ """Generates a digest file if missing. Assumes all files are available.
- DEPRECATED: this now only is a compability wrapper for
-- portage_manifest.Manifest()"""
--
-- # NOTE: manifestonly is useless with manifest2 and therefore ignored
-- # NOTE: the old code contains a lot of crap that should really be elsewhere
-- # (e.g. cvs stuff should be in ebuild(1) and/or repoman)
-- # TODO: error/exception handling
--
-+ portage_manifest.Manifest()
-+ NOTE: manifestonly and overwrite are useless with manifest2 and
-+ are therefore ignored."""
- global settings
- mf = Manifest(mysettings["O"], FetchlistDict(mysettings["O"], mysettings), mysettings["DISTDIR"])
-- mf.create(assumeDistfileHashes=True)
-- for f in myarchives:
-- # the whole type evaluation is only for the case that myarchives isn't a
-- # DIST file as create() determines the type on its own
-- writemsg(">>> Creating Manifest for %s\n" % mysettings["O"])
-- try:
-- writemsg(">>> Adding digests for file %s\n" % f)
-- mf.updateHashesGuessType(f, checkExisting=False, reuseExisting=not os.path.exists(os.path.join(mysettings["DISTDIR"], f)))
-- except portage_exception.FileNotFound, e:
-- writemsg("!!! File %s doesn't exist, can't update Manifest\n" % str(e))
-- return 0
-- # NOTE: overwrite=0 is only used by emerge --digest, not sure we wanna keep that
-- if overwrite or not os.path.exists(mf.getFullname()):
-- mf.write(sign=False)
--
-+ writemsg(">>> Creating Manifest for %s\n" % mysettings["O"])
-+ try:
-+ mf.create(assumeDistfileHashes=True, requiredDistfiles=myarchives)
-+ except portage_exception.FileNotFound, e:
-+ writemsg("!!! File %s doesn't exist, can't update Manifest\n" % str(e))
-+ return 0
-+ mf.write(sign=False)
- return 1
-
- def digestParseFile(myfilename, mysettings=None):
-
-=== modified file 'pym/portage_manifest.py'
---- pym/portage_manifest.py
-+++ pym/portage_manifest.py
-@@ -3,7 +3,8 @@
- # $Header: $
-
- import errno, os, sets
--from itertools import imap
-+if not hasattr(__builtins__, "set"):
-+ from sets import Set as set
-
- import portage_exception, portage_versions, portage_const
- from portage_checksum import *
-@@ -135,6 +136,15 @@
- for cpv in cpvlist:
- dname = os.path.join(self.pkgdir, "files", "digest-%s" % self._catsplit(cpv)[1])
- distlist = self._getCpvDistfiles(cpv)
-+ have_all_checksums = True
-+ for f in distlist:
-+ if f not in self.fhashdict["DIST"] or len(self.fhashdict["DIST"][f]) == 0:
-+ have_all_checksums = False
-+ break
-+ if not have_all_checksums:
-+ # We don't have all the required checksums to generate a proper
-+ # digest, so we have to skip this cpv.
-+ continue
- update_digest = True
- if not force:
- try:
-@@ -275,10 +285,13 @@
- return t
- return None
-
-- def create(self, checkExisting=False, assumeDistfileHashes=True):
-+ def create(self, checkExisting=False, assumeDistfileHashes=True, requiredDistfiles=None):
- """ Recreate this Manifest from scratch, not using any existing checksums
- (exception: if assumeDistfileHashes is true then existing DIST checksums are
-- reused if the file doesn't exist in DISTDIR."""
-+ reused if the file doesn't exist in DISTDIR. The requiredDistfiles
-+ parameter specifies a list of distfiles to raise a FileNotFound
-+ exception for (if no file or existing checksums are available), and
-+ defaults to all distfiles when not specified."""
- if checkExisting:
- self.checkAllHashes()
- if assumeDistfileHashes:
-@@ -308,18 +321,21 @@
- self.fhashdict["AUX"][f] = perform_multiple_checksums(
- os.path.join(self.pkgdir, "files", f.lstrip(os.sep)), self.hashes)
- cpvlist = [os.path.join(self._pkgdir_category(), x[:-7]) for x in os.listdir(self.pkgdir) if x.endswith(".ebuild")]
-- distlist = []
-+ distlist = set()
- for cpv in cpvlist:
-- distlist.extend(self._getCpvDistfiles(cpv))
-+ distlist.update(self._getCpvDistfiles(cpv))
-+ if requiredDistfiles is None or len(requiredDistfiles) == 0:
-+ # repoman passes in an empty list, which implies that all distfiles
-+ # are required.
-+ requiredDistfiles = distlist.copy()
- for f in distlist:
- fname = os.path.join(self.distdir, f)
- if os.path.exists(fname):
- self.fhashdict["DIST"][f] = perform_multiple_checksums(fname, self.hashes)
- elif assumeDistfileHashes and f in distfilehashes:
- self.fhashdict["DIST"][f] = distfilehashes[f]
-- else:
-- raise FileNotFound(fname)
--
-+ elif f in requiredDistfiles:
-+ raise FileNotFound(fname)
- def _pkgdir_category(self):
- return self.pkgdir.rstrip(os.sep).split(os.sep)[-2]
-
-
diff --git a/sys-apps/portage/files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch b/sys-apps/portage/files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch
deleted file mode 100644
index cc3a4dcb2177..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1080_r3142_bug_129839_digestcheck.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -2163,33 +2163,31 @@
- """Verifies checksums. Assumes all files have been downloaded.
- DEPRECATED: this is now only a compability wrapper for
- portage_manifest.Manifest()."""
--
-+ if not strict:
-+ return 1
- pkgdir = mysettings["O"]
-+ manifest_path = os.path.join(pkgdir, "Manifest")
-+ if not os.path.exists(manifest_path):
-+ writemsg("!!! Manifest file not found: '%s'\n" % manifest_path)
-+ if strict:
-+ return 0
- mf = Manifest(pkgdir, FetchlistDict(pkgdir, mysettings), mysettings["DISTDIR"])
- try:
-- if strict:
-- print ">>> checking ebuild checksums",
-- mf.checkTypeHashes("EBUILD")
-- print ":-)"
-- print ">>> checking auxfile checksums",
-- mf.checkTypeHashes("AUX")
-- print ":-)"
-- print ">>> checking miscfile checksums",
-- mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
-- print ":-)"
-+ writemsg_stdout(">>> checking ebuild checksums\n")
-+ mf.checkTypeHashes("EBUILD")
-+ writemsg_stdout(">>> checking auxfile checksums\n")
-+ mf.checkTypeHashes("AUX")
-+ writemsg_stdout(">>> checking miscfile checksums\n")
-+ mf.checkTypeHashes("MISC", ignoreMissingFiles=True)
-+ writemsg_stdout(">>> checking distfiles checksums\n")
- for f in myfiles:
-- if f.startswith("files/"):
-- f = f[5:]
-- print ">>> checking %s checksums" % f,
-- mf.checkFileHashes(mf.findFile(f), f)
-- print ":-)"
-+ mf.checkFileHashes(mf.findFile(f), f)
- except portage_exception.DigestException, e:
-- print e.value
-- print red("!!! ")+"Digest verification failed:"
-- print red("!!! ")+" "+e.value[0]
-- print red("!!! ")+"Reason: "+e.value[1]
-- print red("!!! ")+"Got: "+str(e.value[2])
-- print red("!!! ")+"Expected: "+str(e.value[3])
-+ writemsg("!!! Digest verification failed:\n")
-+ writemsg("!!! %s\n" % e.value[0])
-+ writemsg("!!! Reason: %s\n" % e.value[1])
-+ writemsg("!!! Got: %s\n" % e.value[2])
-+ writemsg("!!! Expected: %s\n" % e.value[3])
- return 0
- return 1
-
-
-=== modified file 'pym/portage_manifest.py'
---- pym/portage_manifest.py
-+++ pym/portage_manifest.py
-@@ -86,11 +86,16 @@
-
- def _read(self):
- """ Parse Manifest file for this instance """
-- if not os.path.exists(self.getFullname()):
-- return
-- fd = open(self.getFullname(), "r")
-- mylines = fd.readlines()
-- fd.close()
-+ mylines = []
-+ try:
-+ fd = open(self.getFullname(), "r")
-+ mylines.extend(fd.readlines())
-+ fd.close()
-+ except (OSError, IOError), e:
-+ if e.errno == errno.ENOENT:
-+ pass
-+ else:
-+ raise
- mylines.extend(self._readDigests().split("\n"))
- self._parseDigests(mylines, myhashdict=self.fhashdict)
-
-
diff --git a/sys-apps/portage/files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch b/sys-apps/portage/files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch
deleted file mode 100644
index a3e0fa87c315..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1090_r3146_bug_129720_slot_collision.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -2312,6 +2312,7 @@
- if mysplit is None:
- writemsg("!!! Error: PF is null '%s'; exiting.\n" % mypv)
- return 1
-+ slot = mysettings["SLOT"]
- if mydo != "depend":
- # XXX: We're doing a little hack here to curtain the gvisible locking
- # XXX: that creates a deadlock... Really need to isolate that.
-@@ -2319,6 +2320,7 @@
- mysettings.setcpv(mycpv,use_cache=use_cache)
-
- mysettings["EBUILD_PHASE"] = mydo
-+ mysettings["SLOT"] = slot
-
- if debug: # Otherwise it overrides emerge's settings.
- # We have no other way to set debug... debug can't be passed in
-@@ -2365,8 +2367,6 @@
- mysettings["PVR"]=mysplit[1]
- else:
- mysettings["PVR"]=mysplit[1]+"-"+mysplit[2]
--
-- mysettings["SLOT"]=""
-
- if mysettings.has_key("PATH"):
- mysplit=string.split(mysettings["PATH"],":")
-@@ -5797,7 +5797,7 @@
- myslot = self.settings["SLOT"]
- for v in otherversions:
- # only allow versions with same slot to overwrite files
-- if myslot == db[self.myroot]["vartree"].dbapi.aux_get(self.mycpv, ["SLOT"])[0]:
-+ if myslot == db[self.myroot]["vartree"].dbapi.aux_get("/".join((self.cat, v)), ["SLOT"])[0]:
- mypkglist.append(dblink(self.cat,v,destroot,self.settings))
-
- print green("*")+" checking "+str(len(myfilelist))+" files for package collisions"
-
diff --git a/sys-apps/portage/files/2.1/pre8/1100_r3143_lazy_autouse.patch b/sys-apps/portage/files/2.1/pre8/1100_r3143_lazy_autouse.patch
deleted file mode 100644
index f49ab5eb23a7..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1100_r3143_lazy_autouse.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -1402,8 +1402,20 @@
- if mykey=="USE":
- mydbs=self.uvlist
- # XXX Global usage of db... Needs to go away somehow.
-+ global db, root
- if "auto" in self["USE_ORDER"].split(":") and db.has_key(root) and db[root].has_key("vartree"):
-- self.configdict["auto"]["USE"]=autouse(db[root]["vartree"],use_cache=use_cache)
-+ class LazyAutouse(object):
-+ def __init__(self, *pargs, **kwargs):
-+ self._use = None
-+ self._pargs = pargs
-+ self._kwargs = kwargs
-+ def __call__(self):
-+ if self._use is None:
-+ global db, root
-+ self._use = autouse(db[root]["vartree"], *self._pargs, **self._kwargs)
-+ return self._use
-+ self.configdict["auto"] = portage_util.LazyItemsDict(self.configdict["auto"])
-+ self.configdict["auto"].addLazyItem("USE", LazyAutouse(use_cache=use_cache))
- else:
- self.configdict["auto"]["USE"]=""
- else:
-
-=== modified file 'pym/portage_util.py'
---- pym/portage_util.py
-+++ pym/portage_util.py
-@@ -715,9 +715,13 @@
- """A mapping object that behaves like a standard dict except that it allows
- for lazy initialization of values via callable objects. Lazy items can be
- overwritten and deleted just as normal items."""
-- def __init__(self):
-+ def __init__(self, initial_items=None):
- dict.__init__(self)
- self.lazy_items = {}
-+ if initial_items is not None:
-+ self.update(initial_items)
-+ if isinstance(initial_items, LazyItemsDict):
-+ self.lazy_items.update(initial_items.lazy_items)
- def addLazyItem(self, item_key, value_callable):
- """Add a lazy item for the given key. When the item is requested,
- value_callable will be called with no arguments."""
-
diff --git a/sys-apps/portage/files/2.1/pre8/1110_r3147_bug_129852_chflags.patch b/sys-apps/portage/files/2.1/pre8/1110_r3147_bug_129852_chflags.patch
deleted file mode 100644
index 7474279b7f23..000000000000
--- a/sys-apps/portage/files/2.1/pre8/1110_r3147_bug_129852_chflags.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-=== modified file 'pym/portage.py'
---- pym/portage.py
-+++ pym/portage.py
-@@ -2850,12 +2850,13 @@
- if bsd_chflags:
- # Check that we can actually unset schg etc flags...
- # Clear the flags on source and destination; we'll reinstate them after merging
-- if(destexists):
-+ if destexists and sflags != 0:
- if bsd_chflags.lchflags(dest, 0) < 0:
- writemsg("!!! Couldn't clear flags on file being merged: \n ")
- # We might have an immutable flag on the parent dir; save and clear.
- pflags=bsd_chflags.lgetflags(os.path.dirname(dest))
-- bsd_chflags.lchflags(os.path.dirname(dest), 0)
-+ if pflags != 0:
-+ bsd_chflags.lchflags(os.path.dirname(dest), 0)
-
- # Don't bother checking the return value here; if it fails then the next line will catch it.
- bsd_chflags.lchflags(src, 0)
-@@ -2891,7 +2892,8 @@
- lchown(dest,sstat[stat.ST_UID],sstat[stat.ST_GID])
- if bsd_chflags:
- # Restore the flags we saved before moving
-- if bsd_chflags.lchflags(dest, sflags) < 0 or bsd_chflags.lchflags(os.path.dirname(dest), pflags) < 0:
-+ if (sflags != 0 and bsd_chflags.lchflags(dest, sflags) < 0) or \
-+ (pflags and bsd_chflags.lchflags(os.path.dirname(dest), pflags) < 0):
- writemsg("!!! Couldn't restore flags ("+str(flags)+") on " + dest+":\n")
- writemsg("!!! %s\n" % str(e))
- return None
-@@ -2973,7 +2975,8 @@
-
- if bsd_chflags:
- # Restore the flags we saved before moving
-- if bsd_chflags.lchflags(dest, sflags) < 0 or bsd_chflags.lchflags(os.path.dirname(dest), pflags) < 0:
-+ if (sflags != 0 and bsd_chflags.lchflags(dest, sflags) < 0) or \
-+ (pflags and bsd_chflags.lchflags(os.path.dirname(dest), pflags) < 0):
- writemsg("!!! Couldn't restore flags ("+str(sflags)+") on " + dest+":\n")
- return None
-
-@@ -6111,7 +6114,7 @@
- if bsd_chflags:
- # Save then clear flags on dest.
- dflags=bsd_chflags.lgetflags(mydest)
-- if(bsd_chflags.lchflags(mydest, 0)<0):
-+ if dflags != 0 and bsd_chflags.lchflags(mydest, 0) < 0:
- writemsg("!!! Couldn't clear flags on '"+mydest+"'.\n")
-
- if not os.access(mydest, os.W_OK):
-
diff --git a/sys-apps/portage/files/digest-portage-2.1_pre8-r5 b/sys-apps/portage/files/digest-portage-2.1_pre8-r5
deleted file mode 100644
index 0766c33a8e88..000000000000
--- a/sys-apps/portage/files/digest-portage-2.1_pre8-r5
+++ /dev/null
@@ -1,3 +0,0 @@
-MD5 9e46a3fdb720c1d746525f82e74c3eaa portage-2.1_pre8.tar.bz2 258150
-RMD160 4cfb15ee4fcddae8b53166a810649a98349591ea portage-2.1_pre8.tar.bz2 258150
-SHA256 b5c2d9c0af4f392b3b8e0325ad6b76d908c11ddb32019117155fb4c2ef1a6804 portage-2.1_pre8.tar.bz2 258150
diff --git a/sys-apps/portage/portage-2.1_pre8-r5.ebuild b/sys-apps/portage/portage-2.1_pre8-r5.ebuild
deleted file mode 100644
index a01b13f1167e..000000000000
--- a/sys-apps/portage/portage-2.1_pre8-r5.ebuild
+++ /dev/null
@@ -1,206 +0,0 @@
-# Copyright 1999-2006 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/portage-2.1_pre8-r5.ebuild,v 1.2 2006/04/16 20:10:25 blubb Exp $
-
-inherit toolchain-funcs
-
-DESCRIPTION="The Portage Package Management System. The primary package management and distribution system for Gentoo."
-HOMEPAGE="http://www.gentoo.org/"
-SRC_URI="mirror://gentoo/${PN}-${PV}.tar.bz2 http://dev.gentoo.org/~zmedico/portage/archives/${PN}-${PV}.tar.bz2"
-LICENSE="GPL-2"
-
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc-macos ~ppc64 ~s390 ~sh ~sparc ~x86 ~x86-fbsd"
-
-SLOT="0"
-IUSE="build doc selinux"
-DEPEND=">=dev-lang/python-2.3"
-RDEPEND="!build? ( >=sys-apps/sed-4.0.5 \
- dev-python/python-fchksum \
- >=dev-lang/python-2.3 \
- userland_GNU? ( sys-apps/debianutils ) \
- >=app-shells/bash-2.05a ) \
- elibc_glibc? ( sys-apps/sandbox )
- elibc_uclibc? ( sys-apps/sandbox )
- !userland_Darwin? ( >=app-misc/pax-utils-0.1.10 )
- selinux? ( >=dev-python/python-selinux-2.15 ) \
- doc? ( app-portage/portage-manpages )
- >=dev-python/pycrypto-2.0.1-r4"
-
-PROVIDE="virtual/portage"
-
-S=${WORKDIR}/${PN}-${PV}
-
-portage_docs() {
- einfo ""
- einfo "For help with using portage please consult the Gentoo Handbook"
- einfo "at http://www.gentoo.org/doc/en/handbook/handbook-x86.xml?part=3"
- einfo ""
-}
-
-src_unpack() {
- unpack ${A}
- cd "${S}"
- local my_patches="1000_r3120_fetchlist_dict.patch
- 1010_r3123_manifest2_fixes.patch
- 1020_r3118_bug_121368.patch
- 1030_r3128_bug_129559_qmerge.patch
- 1040_r3126_bug_129244_ebuild_phase.patch
- 1050_r3133_lazy_items.patch
- 1060_r3134_porttrees_realpath.patch
- 1070_r3136_bug_129737_digest.patch
- 1080_r3142_bug_129839_digestcheck.patch
- 1090_r3146_bug_129720_slot_collision.patch
- 1100_r3143_lazy_autouse.patch
- 1110_r3147_bug_129852_chflags.patch"
- local patches_dir="${PV%_*}/${PV/*_}"
- for patch_name in ${my_patches}; do
- einfo "Applying ${patch_name} ..."
- patch -p0 --no-backup-if-mismatch < \
- "${FILESDIR}"/${patches_dir}/${patch_name} >/dev/null || \
- die "Failed to apply patch"
- done
- if [ "${PR}" != "r0" ]; then
- einfo "Setting portage.VERSION to ${PVR} ..."
- sed -i "s/^VERSION=.*/VERSION=\"${PVR}\"/" pym/portage.py || \
- die "Failed to patch portage.VERSION"
- fi
-}
-
-src_compile() {
- python -O -c "import compileall; compileall.compile_dir('${S}/pym')"
-
- cd "${S}"/src
- $(tc-getCC) ${CFLAGS} ${LDFLAGS} -o tbz2tool tbz2tool.c || \
- die "Failed to build tbz2tool"
-
- if ! use userland_Darwin; then
- cd "${S}"/src/python-missingos
- chmod +x setup.py
- ./setup.py build || die "Failed to build missingos module"
- fi
-
- if use elibc_FreeBSD; then
- cd "${S}"/src/bsd-flags
- chmod +x setup.py
- ./setup.py build || die "Failed to install bsd-chflags module"
- fi
-}
-
-src_install() {
- cd "${S}"/cnf
- insinto /etc
- doins etc-update.conf dispatch-conf.conf make.globals
- if [ -f "make.conf.${ARCH}".diff ]; then
- patch make.conf "make.conf.${ARCH}".diff || \
- die "Failed to patch make.conf.example"
- newins make.conf 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 ""
- newins make.conf make.conf.example
- fi
-
- if ! use userland_Darwin; then
- cd "${S}"/src/python-missingos
- ./setup.py install --root ${D} || \
- die "Failed to install missingos module"
- fi
-
- if use elibc_FreeBSD; then
- cd "${S}"/src/bsd-flags
- ./setup.py install --root ${D} || \
- die "Failed to install bsd-chflags module"
- fi
-
- dodir /usr/lib/portage/bin
- exeinto /usr/lib/portage/bin
- cd "${S}"/bin
- doexe *
- doexe "${S}"/src/tbz2tool
- dosym newins /usr/lib/portage/bin/donewins
-
- for mydir in pym pym/cache pym/elog_modules; do
- dodir /usr/lib/portage/${mydir}
- insinto /usr/lib/portage/${mydir}
- cd "${S}"/${mydir}
- doins *.py *.pyo
- done
-
- doman "${S}"/man/*.[0-9]
- dodoc "${S}"/ChangeLog
- dodoc "${S}"/NEWS
- dodoc "${S}"/RELEASE-NOTES
-
- dodir /usr/bin
- for x in ebuild emerge portageq repoman tbz2tool xpak; do
- dosym ../lib/portage/bin/${x} /usr/bin/${x}
- done
-
- dodir /usr/sbin
- local my_syms="archive-conf
- dispatch-conf
- emaint
- emerge-webrsync
- env-update
- etc-update
- fixpackages
- quickpkg
- regenworld"
- for x in ${my_syms}; do
- dosym ../lib/portage/bin/${x} /usr/sbin/${x}
- done
-
- dodir /etc/portage
- keepdir /etc/portage
-
- doenvd "${FILESDIR}"/05portage.envd
-}
-
-pkg_preinst() {
- if has livecvsportage ${FEATURES} && [ "${ROOT}" = "/" ]; then
- rm -rf ${IMAGE}/usr/lib/portage/pym/*
- mv ${IMAGE}/usr/lib/portage/bin/tbz2tool ${T}
- rm -rf ${IMAGE}/usr/lib/portage/bin/*
- mv ${T}/tbz2tool ${IMAGE}/usr/lib/portage/bin/
- else
- for mydir in pym pym/cache pym/elog_modules; do
- rm /usr/lib/portage/${mydir}/*.pyc >& /dev/null
- rm /usr/lib/portage/${mydir}/*.pyo >& /dev/null
- done
- fi
-}
-
-pkg_postinst() {
- local x
-
- if [ ! -f "${ROOT}/var/lib/portage/world" ] &&
- [ -f ${ROOT}/var/cache/edb/world ] &&
- [ ! -h ${ROOT}/var/cache/edb/world ]; then
- mv ${ROOT}/var/cache/edb/world ${ROOT}/var/lib/portage/world
- ln -s ../../lib/portage/world /var/cache/edb/world
- fi
-
- for x in ${ROOT}etc/._cfg????_make.globals; do
- # Overwrite the globals file automatically.
- [ -e "${x}" ] && mv -f "${x}" "${ROOT}etc/make.globals"
- done
-
- ewarn "This series contains a completely rewritten caching framework."
- ewarn "If you are using any cache modules (such as the CDB cache"
- ewarn "module) portage will not work until they have been disabled."
- echo
- einfo "The default cache format has changed between 2.0.x and 2.1"
- einfo "versions. If you have upgraded from 2.0.x, before using"
- einfo "emerge, run \`emerge --metadata\` to restore portage's local"
- einfo "cache."
- echo
- einfo "Flag ordering has changed for \`emerge --pretend --verbose\`."
- einfo "Add EMERGE_DEFAULT_OPTS=\"--alphabetical\" to /etc/make.conf"
- einfo "to restore the previous ordering."
- echo
- einfo "See NEWS and RELEASE-NOTES for further changes."
-
- portage_docs
-}