Revert back to using portdbapi.getFetchMap() since the Package class
authorZac Medico <zmedico@gentoo.org>
Mon, 16 Aug 2010 13:50:44 +0000 (06:50 -0700)
committerZac Medico <zmedico@gentoo.org>
Mon, 16 Aug 2010 13:50:44 +0000 (06:50 -0700)
doesn't cache SRC_URI.

pym/_emerge/EbuildFetcher.py

index 800aefd13819bc981bcaa5d62de146fd25fe2b69..7f5bc6df40cf5f34dc2a42875cabed2b4c3e00d2 100644 (file)
@@ -10,7 +10,6 @@ from portage import _unicode_encode
 from portage import _unicode_decode
 import codecs
 from portage.elog.messages import eerror
-from portage.dbapi.porttree import _parse_uri_map
 from portage.util import writemsg_stdout
 from portage.util._pty import _create_pty_or_pipe
 
@@ -27,7 +26,7 @@ class EbuildFetcher(SpawnProcess):
                        raise AssertionError("ebuild not found for '%s'" % self.pkg.cpv)
 
                try:
-                       uri_map = self._get_uri_map()
+                       uri_map = self._get_uri_map(portdb, ebuild_path)
                except portage.exception.InvalidDependString as e:
                        msg_lines = []
                        msg = "Fetch failed for '%s' due to invalid SRC_URI: %s" % \
@@ -94,14 +93,16 @@ class EbuildFetcher(SpawnProcess):
                self.env = fetch_env
                SpawnProcess._start(self)
 
-       def _get_uri_map(self):
+       def _get_uri_map(self, portdb, ebuild_path):
                """
-               This can raise InvalidDependString from _parse_uri_map().
+               This can raise InvalidDependString from portdbapi.getFetchMap().
                """
+               pkgdir = os.path.dirname(ebuild_path)
+               mytree = os.path.dirname(os.path.dirname(pkgdir))
                use = None
                if not self.fetchall:
                        use = self.pkg.use.enabled
-               return _parse_uri_map(self.pkg.cpv, self.pkg.metadata, use=use)
+               return portdb.getFetchMap(self.pkg.cpv, useflags=use, mytree=mytree)
 
        def _prefetch_size_ok(self, uri_map, settings, ebuild_path):
                pkgdir = os.path.dirname(ebuild_path)