summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZac Medico <zmedico@gentoo.org>2008-10-26 18:55:43 +0000
committerZac Medico <zmedico@gentoo.org>2008-10-26 18:55:43 +0000
commit6a712f2323e968c5e8decb9b5ebf93c66915538d (patch)
tree42f7f4afe8ae9ab3c75218cc8e179f3b430af5cb /sys-apps
parentBug #238498 - Remove the manifest221 script which is no longer supported. (diff)
downloadgentoo-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/Manifest9
-rw-r--r--sys-apps/portage/files/manifest221283
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)