From f621e9c5e7f685956da4e4cf8f69f880ed5df0ee Mon Sep 17 00:00:00 2001 From: Zac Medico Date: Wed, 26 Apr 2006 22:10:16 +0000 Subject: Make fetchlist_dict an optional parameter in the Manifest constructor since it's required only for generation of a Manifest (not needed for parsing and checking sums). svn path=/main/trunk/; revision=3245 --- bin/emerge | 9 +++++---- bin/repoman | 4 +--- pym/portage.py | 14 ++++++-------- pym/portage_manifest.py | 10 +++++++--- 4 files changed, 19 insertions(+), 18 deletions(-) diff --git a/bin/emerge b/bin/emerge index d172af69c..fc3677ee5 100755 --- a/bin/emerge +++ b/bin/emerge @@ -789,10 +789,11 @@ class search: myebuild = portage.portdb.findname(mycpv) pkgdir = os.path.dirname(myebuild) import portage_manifest - mf = portage_manifest.Manifest(pkgdir, - portage.FetchlistDict(pkgdir, portage.settings, portage.portdb), - portage.settings["DISTDIR"]) - mysum[0] = mf.getDistfilesSize(mf.fetchlist_dict[mycpv]) + mf = portage_manifest.Manifest( + pkgdir, portage.settings["DISTDIR"]) + fetchlist = portage.portdb.getfetchlist(mycpv, + mysettings=portage.settings, all=True) + mysum[0] = mf.getDistfilesSize(fetchlist) mystr = str(mysum[0]/1024) mycount=len(mystr) while (mycount > 3): diff --git a/bin/repoman b/bin/repoman index 9cbe8b68a..03bc5ee1f 100755 --- a/bin/repoman +++ b/bin/repoman @@ -799,9 +799,7 @@ for x in scanlist: repoman_settings["O"] = checkdir portage.digestgen([], repoman_settings, manifestonly=1, myportdb=portage.portdb) - mf = Manifest(checkdir, - portage.FetchlistDict(checkdir, repoman_settings, portage.portdb), - repoman_settings["DISTDIR"]) + mf = Manifest(checkdir, repoman_settings["DISTDIR"]) mydigests=mf.getTypeDigests("DIST") myfiles_all = [] diff --git a/pym/portage.py b/pym/portage.py index c5b5fdccb..334a8f58c 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -2150,7 +2150,8 @@ def digestgen(myarchives, mysettings, overwrite=1, manifestonly=0, myportdb=None writemsg("Warning: myportdb not specified to digestgen\n") global portdb myportdb = portdb - mf = Manifest(mysettings["O"], FetchlistDict(mysettings["O"], mysettings, myportdb), mysettings["DISTDIR"]) + mf = Manifest(mysettings["O"], mysettings["DISTDIR"], + fetchlist_dict=FetchlistDict(mysettings["O"], mysettings, myportdb)) writemsg(">>> Creating Manifest for %s\n" % mysettings["O"]) try: mf.create(assumeDistfileHashes=True, requiredDistfiles=myarchives) @@ -2178,10 +2179,8 @@ def digestParseFile(myfilename, mysettings=None): if mysettings is None: global settings mysettings = config(clone=settings) - global portdb - mf = Manifest(pkgdir, FetchlistDict(pkgdir, mysettings, portdb), mysettings["DISTDIR"]) - return mf.getDigests() + return Manifest(pkgdir, mysettings["DISTDIR"]).getDigests() # 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? @@ -2237,8 +2236,7 @@ def digestcheck(myfiles, mysettings, strict=0, justmanifest=0): writemsg("!!! Manifest file not found: '%s'\n" % manifest_path) if strict: return 0 - global portdb - mf = Manifest(pkgdir, FetchlistDict(pkgdir, mysettings, portdb), mysettings["DISTDIR"]) + mf = Manifest(pkgdir, mysettings["DISTDIR"]) try: writemsg_stdout(">>> checking ebuild checksums\n") mf.checkTypeHashes("EBUILD") @@ -4905,7 +4903,7 @@ class portdbapi(dbapi): # returns a filename:size dictionnary of remaining downloads myebuild = self.findname(mypkg) pkgdir = os.path.dirname(myebuild) - mf = Manifest(pkgdir, FetchlistDict(pkgdir, self.mysettings, self), self.mysettings["DISTDIR"]) + mf = Manifest(pkgdir, self.mysettings["DISTDIR"]) checksums = mf.getDigests() if not checksums: if debug: print "[empty/missing/bad digest]: "+mypkg @@ -4948,7 +4946,7 @@ class portdbapi(dbapi): myuri, myfiles = self.getfetchlist(mypkg, useflags=useflags, mysettings=mysettings, all=all) myebuild = self.findname(mypkg) pkgdir = os.path.dirname(myebuild) - mf = Manifest(pkgdir, FetchlistDict(pkgdir, self.mysettings, self), self.mysettings["DISTDIR"]) + mf = Manifest(pkgdir, self.mysettings["DISTDIR"]) mysums = mf.getDigests() failures = {} diff --git a/pym/portage_manifest.py b/pym/portage_manifest.py index 1ca793c80..1a6780a51 100644 --- a/pym/portage_manifest.py +++ b/pym/portage_manifest.py @@ -98,10 +98,13 @@ class Manifest2Entry(ManifestEntry): class Manifest(object): parsers = (parseManifest2, parseManifest1) - def __init__(self, pkgdir, fetchlist_dict, distdir, manifest1_compat=True, from_scratch=False): + def __init__(self, pkgdir, distdir, fetchlist_dict=None, + 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) """ + Do not parse Manifest file if from_scratch == True (only for internal use) + The fetchlist_dict parameter is required only for generation of + a Manifest (not needed for parsing and checking sums).""" self.pkgdir = pkgdir.rstrip(os.sep) + os.sep self.fhashdict = {} self.hashes = portage_const.MANIFEST2_HASH_FUNCTIONS[:] @@ -405,7 +408,8 @@ class Manifest(object): distfilehashes = self.fhashdict["DIST"] else: distfilehashes = {} - self.__init__(self.pkgdir, self.fetchlist_dict, self.distdir, from_scratch=True) + self.__init__(self.pkgdir, self.distdir, + fetchlist_dict=self.fetchlist_dict, from_scratch=True) for pkgdir, pkgdir_dirs, pkgdir_files in os.walk(self.pkgdir): break for f in pkgdir_files: -- cgit v1.2.3-1-g7c22