From: Zac Medico Date: Tue, 11 Apr 2006 01:37:51 +0000 (-0000) Subject: Fix FetchlistDict so usage of global portdb leaves portdb.porttrees intact. X-Git-Tag: v2.1_pre9~49 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=80b45c986dcf8eeb4ffe3e110239fc64b3211282;p=portage.git Fix FetchlistDict so usage of global portdb leaves portdb.porttrees intact. svn path=/main/trunk/; revision=3119 --- diff --git a/pym/portage.py b/pym/portage.py index 2d4963da0..367f43544 100644 --- a/pym/portage.py +++ b/pym/portage.py @@ -2103,9 +2103,9 @@ def digestParseFile(myfilename,mysettings=None,db=None): 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]) + pkgdir = os.sep + os.sep.join(mysplit[:-1]).strip(os.sep) if db is None: db = portagetree().dbapi @@ -6360,13 +6360,17 @@ class FetchlistDict(UserDict.DictMixin): self.pkgdir = pkgdir self.cp = os.sep.join(pkgdir.split(os.sep)[-2:]) self.settings = settings - self.db = portagetree().dbapi - porttree = os.sep + os.path.normpath(os.path.dirname(os.path.dirname(pkgdir))).strip(os.sep) - # This ensures that the fetchlist comes from the correct portage tree. - self.db.porttrees = [porttree] + self.porttrees = [os.path.dirname(os.path.dirname(pkgdir))] def __getitem__(self, pkg_key): """Returns the complete fetch list for a given package.""" - return self.db.getfetchlist(pkg_key, mysettings=self.settings, all=True)[1] + 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()