diff options
author | 2008-10-26 18:55:43 +0000 | |
---|---|---|
committer | 2008-10-26 18:55:43 +0000 | |
commit | 6a712f2323e968c5e8decb9b5ebf93c66915538d (patch) | |
tree | 42f7f4afe8ae9ab3c75218cc8e179f3b430af5cb /sys-apps | |
parent | Bug #238498 - Remove the manifest221 script which is no longer supported. (diff) | |
download | gentoo-2-6a712f2323e968c5e8decb9b5ebf93c66915538d.tar.gz gentoo-2-6a712f2323e968c5e8decb9b5ebf93c66915538d.tar.bz2 gentoo-2-6a712f2323e968c5e8decb9b5ebf93c66915538d.zip |
Bug #238498 - Remove the manifest221 script which is no longer supported.
(Portage version: 2.2_rc12_p11725/cvs/Linux 2.6.27-1022-x86-64 i686)
(Signed Manifest commit)
Diffstat (limited to 'sys-apps')
-rw-r--r-- | sys-apps/portage/Manifest | 9 | ||||
-rw-r--r-- | sys-apps/portage/files/manifest221 | 283 |
2 files changed, 4 insertions, 288 deletions
diff --git a/sys-apps/portage/Manifest b/sys-apps/portage/Manifest index 6e7bd18c8ecd..fd7bb8503182 100644 --- a/sys-apps/portage/Manifest +++ b/sys-apps/portage/Manifest @@ -3,7 +3,6 @@ Hash: SHA1 AUX 05portage.envd 34 RMD160 014194a1786a0983a8ba91c3924b798f353c330d SHA1 2af2c9a7ce535c36749dfe81b6555426225620e2 SHA256 dbe8db19d03b39ad2b7f9f6dfcd24c615a14886b3fe6d5ce4dd88bac27c0e225 AUX README.RESCUE 137 RMD160 b8d015f266501fd1f57c91899c6815de9f9d5685 SHA1 cfc8fcf81921e265f40b47644916331e0b8f18b9 SHA256 69bea0c755eab59b6b4d90838b8551744f0b0c8eeac170b1cd13a71ee83f9ac4 -AUX manifest221 8642 RMD160 2d57f86637c14e3f2b407ac4d5afe02f10236360 SHA1 b083ff9b73d82f3231a6331914cea4c5dec171bc SHA256 8210bae20c7ec8df5bafc063ef3ef854695594fb04f7afa04258b383cf03954b DIST portage-2.1.1-r2.patch.bz2 5263 RMD160 6b749c6700784ea1ecc615b7b3ed39eade28e489 SHA1 4eaedfedf867346d67744d95d5cb3ad5b0da4417 SHA256 4d2bc33b66c6354f008d798507137a347e35ef7448a10ef17e5108160acb0414 DIST portage-2.1.1.tar.bz2 297006 RMD160 489e6c3e82527917f5308fdbff1c9add1a03f254 SHA1 6fdcb9897cef7f48d98829ab96caf37e31bd14a2 SHA256 3a5da4bb41ca8495f2673178f120622d8d923d8117b8744921418af5843c0389 DIST portage-2.1.4.4.patch.bz2 15469 RMD160 c5fb833e97f4fced0d9c4b72056693f4b092fa51 SHA1 ebed38fd327e06c36d4b68a82ae205b65a7f1ebc SHA256 f832e388fe308f398597a0d0c5a0918898b7f06c9f146e7b105de40cff235803 @@ -23,12 +22,12 @@ EBUILD portage-2.1.4.5.ebuild 8040 RMD160 844d2958f6544f7411f052c4102b4ce2e0acab EBUILD portage-2.1.5.6.ebuild 8087 RMD160 4f60a69a380686583acb4de33c3d71abcaf9e304 SHA1 8998bc2244a040e23e6fc97dcd3135c2a46fdbb5 SHA256 c6af288fa2fa1636e41121f29a6b9cddd5ee42b00c6e4ae97ad5ecaa1cb74265 EBUILD portage-2.2_rc11.ebuild 8927 RMD160 ee96d1e7b738d043ed4057ca92b7b3d26046b8ef SHA1 651d3f1bdced242ad391136d954fb2be0d7c1941 SHA256 0112fbda4c52d33827a3ea9c1dd1a04a2447aaaa2f40e1cd67c81eca2440378d EBUILD portage-2.2_rc12.ebuild 8927 RMD160 a67aebf37c8f65941d77300f10f499d046118b5e SHA1 b5617b57c8082a084a9b750f222558c005899ddd SHA256 948e968e35e49459411919a3a9b398c3fc444ca34afbdcdf4f10b95d42a5490b -MISC ChangeLog 17954 RMD160 d8bf1a298f141c78dc798ec77c187b6825d73de9 SHA1 b29dda05317e518ed62d84dc14a626d5935be4ee SHA256 eb13aa8a126f019f865487f5335251f837410dc537b642a852d555e5dfcf61b6 +MISC ChangeLog 18098 RMD160 4040f5155c1d2485bb2e9d1e828b2fa0c5083467 SHA1 d6aa4e9c5e5e897e7525d0478061177c3af38718 SHA256 d5c128dac98e1d22fe2cd1141dfc705be1a4449c5ae591f4fb0e3ce23149c6ae MISC metadata.xml 365 RMD160 f4900ef937d765e123eca2314d4570aa51cba27c SHA1 29e235a40e6f70005374a6f5c4d9dd2eb0eac3cf SHA256 475a792c24a7db2ae5fab7fb108bf39af08c272d03d87ef942883b297de95d6a -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.9 (GNU/Linux) -iEYEARECAAYFAkkEuZUACgkQ/ejvha5XGaPeNACfWWnpH0zv3P7BQzRh5AV+7NBW -/nIAoJkd5vO3qaC99Tt9UV1rw1mRysBD -=7cHa +iEYEARECAAYFAkkEvTcACgkQ/ejvha5XGaPzxACgq9TdcmSmGDwrEEg+G8Rmr/e/ +AjYAoLX4WMytnPeUDvu27qA4f/azw+m7 +=Z22G -----END PGP SIGNATURE----- diff --git a/sys-apps/portage/files/manifest221 b/sys-apps/portage/files/manifest221 deleted file mode 100644 index 8362c13228f0..000000000000 --- a/sys-apps/portage/files/manifest221 +++ /dev/null @@ -1,283 +0,0 @@ -#!/usr/bin/env python -# Copyright 1999-2008 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/sys-apps/portage/files/manifest221,v 1.1 2008/01/16 01:36:43 zmedico Exp $ - -try: - from portage.exception import InvalidDependString - from portage import checksum as portage_checksum - from portage import dep as portage_dep -except ImportError: - from portage_exception import InvalidDependString - import portage_checksum - import portage_dep -import portage - -import os -from os.path import join -from os.path import sep -import re -import stat -import sys -import UserDict - -if portage.vercmp('2.1_pre0', portage.VERSION) < 0: - # these are supported by portage 2.0.x - hash_names = ['SHA1', 'MD5'] -else: - hash_names = [name for name in \ - portage_checksum.get_valid_checksum_keys() if name != 'size'] -hash_names.sort() - -class DistfilesDict(UserDict.DictMixin): - def __init__(self, portdb, cp): - self.cp = cp - self.db = portdb - def __getitem__(self, cpv): - """Returns the complete fetch list for a given package.""" - try: - return self._getfetchlist(cpv) - except KeyError: - # aux_get error / corruption - return [] - def __contains__(self, cpv): - return cpv in self.keys() - def has_key(self, cpv): - """Returns true if the given package exists within pkgdir.""" - return cpv in self - def keys(self): - """Returns keys for all packages within pkgdir""" - return self.db.cp_list(self.cp) - def _getfetchlist(self, cpv): - """ - In old versions of portage portdbapi.getfetchlist() calls sys.exit() - if there is an aux_get() failure and this is triggered by ebuilds that - have multiple version suffixes. So, we have our own implementation. - """ - uris = self.db.aux_get(cpv, ["SRC_URI"])[0] - uris = portage_dep.paren_reduce(uris) - uris = portage_dep.use_reduce(uris, matchall=1) - uris = portage.flatten(uris) - files = [] - for x in uris: - x = os.path.basename(x) - if not x in files: - files.append(x) - return files - -class Manifest: - _dist_re = re.compile(r'^DIST (\S+) (\d+)( \w+ \w+)* (%s) [\w]+( \w+ \w+)*$' % '|'.join(hash_names)) - - def __init__(self, filename): - self.filename = filename - self.digests = {} - self.lines = open(filename).readlines() - digests = self.digests - dist_re = self._dist_re - for line in self.lines: - match = dist_re.match(line) - if match is None: - continue - distfile = match.group(1) - size = match.group(2) - digest_dict = {'size':size} - digest_tokens = line[match.end(2):].split() - for i in xrange(len(digest_tokens)/2): - digest_dict[digest_tokens[2*i]] = digest_tokens[2*i+1] - digests[distfile] = digest_dict - -class DigestFile: - digest_re = re.compile(r'^(%s) (\w+) (\w+) (\d+)$' % '|'.join(hash_names)) - - def __init__(self, filename): - self.filename = filename - self.digests = {} - digests = self.digests - digest_re = self.digest_re - for line in open(filename): - match = digest_re.match(line) - if match is None: - continue - hash_name = match.group(1) - hash_value = match.group(2) - dist_file = match.group(3) - size = match.group(4) - dist_dict = digests.get(dist_file) - if dist_dict is None: - dist_dict = {} - digests[dist_file] = dist_dict - dist_dict['size'] = size - dist_dict[hash_name] = hash_value - -def write_atomic(file_path, content): - temp_filename = "%s.%d" % (file_path, os.getpid()) - f = open(temp_filename, 'w') - try: - f.write(content) - f.close() - os.rename(temp_filename, file_path) - except EnvironmentError: - try: - os.unlink(temp_filename) - except EnvironmentError: - pass - -def manifest221(debug=False, pretend=False): - portdb = portage.portdb - settings = portage.settings - del portdb.porttrees[1:] - - for cp in portdb.cp_all(): - cat, pn = portage.catsplit(cp) - pkgdir = join(portdb.porttree_root, cp) - if not os.path.isdir(pkgdir): - # cp_all() returns invalid things like app-accessibility/metadata.xml - continue - distfiles_dict = DistfilesDict(portdb, cp) - manifest_filename = join(portdb.porttree_root, cp, 'Manifest') - manifest = Manifest(manifest_filename) - filesdir = join(pkgdir, 'files') - try: - filesdir_list = os.listdir(filesdir) - except OSError: - filesdir_list = [] - digest_filename_re = re.compile(r'digest-%s-[\S]*' % re.escape(pn)) - all_m1_digests = {} - for filename in filesdir_list: - if digest_filename_re.match(filename) is None: - continue - digest_file = DigestFile(join(filesdir, filename)) - all_m1_digests.update(digest_file.digests) - - written_files = [] - for cpv, distfiles in distfiles_dict.iteritems(): - distfiles.sort() - write = False - for distfile in distfiles: - m2_digests = manifest.digests.get(distfile) - if m2_digests is None: - continue - m1_digests = all_m1_digests.get(distfile) - for hash_name in hash_names: - if hash_name in m2_digests and \ - (not m1_digests or hash_name not in m1_digests): - write = True - break - cat, pf = portage.catsplit(cpv) - digest_filename = join(filesdir, 'digest-%s' % pf) - if not os.path.exists(digest_filename): - # portage-2.0.x does not tolerate a missing digest file, - # even when the package has no distfiles - write = True - if write: - written_files.append(digest_filename) - if pretend: - if debug and not os.path.isdir(filesdir): - print 'os.mkdir("%s")' % filesdir - if debug: - print 'open("%s", "w")' % digest_filename - if not pretend: - try: - os.mkdir(filesdir) - except OSError: - pass - f = open(digest_filename, 'w') - for distfile in distfiles: - m2_digests = manifest.digests.get(distfile) - m1_digests = all_m1_digests.get(distfile) - combined_digests = {} - if m1_digests is not None: - combined_digests.update(m1_digests) - if m2_digests is not None: - combined_digests.update(m2_digests) - size = combined_digests.get('size') - if size is None: - continue - for hash_name in hash_names: - hash_value = combined_digests.get(hash_name) - if hash_value is None: - continue - tokens = [hash_name, hash_value, distfile, size] - if debug: - print 'f.write("%s")' % ' '.join(tokens) - if not pretend: - f.write(' '.join(tokens) + '\n') - if not pretend: - f.close() - if written_files: - digest_line_re = re.compile( - r'[\w]+ [\w]+ (files/digest-%s-[\S]*) [\d]+$' % re.escape(pn)) - new_lines = [line for line in manifest.lines \ - if digest_line_re.match(line) is None] - - for cpv, distfiles in distfiles_dict.iteritems(): - cat, pf = portage.catsplit(cpv) - relative_filename = join('files', 'digest-%s' % pf) - full_filename = join(pkgdir, relative_filename) - if not distfiles and not os.path.exists(full_filename): - # the file is allowed to be missing in this case - continue - for hash_name in hash_names: - hash_func = getattr(portage_checksum, - hash_name.lower() + 'hash', None) - if hash_func is None: - continue - try: - hash_value, size = portage_checksum.perform_checksum( - full_filename, hash_function=hash_func) - except TypeError: - # portage 2.0.x and 2.1.x are not api compatible here - hash_value, size = portage_checksum.perform_checksum( - full_filename, hashname=hash_name) - tokens = [hash_name, hash_value, relative_filename, str(size)] - new_lines.append(' '.join(tokens) + '\n') - if debug: - print "open('%s', 'w')" % manifest_filename - if not pretend: - write_atomic(manifest_filename, ''.join(new_lines)) - -def main(): - # optparse requires >=python-2.3 so parse the options manually. - usage = "usage: %s" % os.path.basename(sys.argv[0]) - pretend = False - debug = False - quiet = False - help = False - for x in sys.argv[1:]: - if x in ("-p", "--pretend"): - pretend = True - elif x in ("-d", "--debug"): - debug = True - elif x in ("-q", "--quiet"): - quiet = True - elif x in ("-h", "--help"): - help = True - - if help: - print usage - print - print "Convert the current portage tree from Manifest2" - print "format to Manifest1 format so that it is suitable" - print "for use by 2.0.x versions of portage. The resulting" - print "tree will have both Manifest2 and Manifest1." - return - - if not quiet: - print - print "Note: It is normal to receive 'aux_get' error message for some" - print " packages. These messages can be ignored as long as they do" - print " not apply to packages that are needed to upgrade portage." - print - print "Converting Manifest2 to Manifest1. Please wait..." - - manifest221(debug=debug, pretend=pretend) - - if not quiet: - print "Done." - -if __name__ == '__main__': - try: - main() - except KeyboardInterrupt: - print "Interrupted." - sys.exit(1) |