From: Michael Tremer Date: Thu, 7 Oct 2010 17:58:28 +0000 (+0200) Subject: naoki: Speed up dependency resolution. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9f359e81999bf939bfb1f31aa1a17e00580b3670;p=ipfire-3.x.git naoki: Speed up dependency resolution. --- diff --git a/naoki/packages.py b/naoki/packages.py index 5c8e137f3..f38afec43 100644 --- a/naoki/packages.py +++ b/naoki/packages.py @@ -236,6 +236,9 @@ class BinaryPackage(Package): key, val = m.groups() self._info[key] = val.strip("\"") + self.__dependencies = self.get_dependencies() + self.__provides = self.get_provides() + def extract(self, path): logging.debug("Extracting %s to %s" % (self, path)) @@ -261,6 +264,9 @@ class BinaryPackage(Package): return self._info["PKG_NAME"] def get_dependencies(self): + if hasattr(self, "__dependencies"): + return self.__dependencies + objects = self._info.get("PKG_DEPS", "").split() # Compatibility to older package format @@ -269,6 +275,9 @@ class BinaryPackage(Package): return [dependencies.Dependency(o, origin=self) for o in objects] def get_provides(self): + if hasattr(self, "__provides"): + return self.__provides + return [dependencies.Provides(p, origin=self) \ for p in self._info.get("PKG_PROVIDES", "").split()]