]> git.ipfire.org Git - pakfire.git/commitdiff
Add some auto-requirements to all packages to identify them.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Feb 2011 21:58:52 +0000 (22:58 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 19 Feb 2011 21:59:34 +0000 (22:59 +0100)
pakfire/depsolve.py
pakfire/packages/base.py
pakfire/packages/binary.py
pakfire/packages/installed.py

index 5bac3cb981861b7822890d71f0f235f000668296..cdbe40c1560cfa28179e1abd2351c87450b2d8ee 100644 (file)
@@ -149,7 +149,6 @@ class DependencySet(object):
                        logging.info(" --> Adding package to dependency set: %s" % pkg.friendly_name)
                self.__packages.append(pkg)
 
-               self.add_provides(pkg.name, pkg)
                for prov in pkg.provides:
                        self.add_provides(prov, pkg)
 
index 5a562c3f0f0522bee4a0c36505189dab1066e4f6..d9be6c4b78e5b9097fc869dfd89b99670bd1b0f0 100644 (file)
@@ -190,6 +190,17 @@ class Package(object):
        def build_id(self):
                return self.metadata.get("BUILD_ID")
 
+       @property
+       def _provides(self):
+               # Make package identifyable by its name and version/release tuples.
+               provides = [
+                       self.name,
+                       "%s=%s-%s" % (self.name, self.version, self.release),
+                       "%s=%s:%s-%s" % (self.name, self.epoch, self.version, self.release),
+               ]
+
+               return provides
+
        ### methods ###
 
        def does_provide(self, requires):
index cb32737959d949a7945dd13f47e4e49c922eaa40..c58b2df3280f0c7889a56956d7dd243b1c7c97b7 100644 (file)
@@ -26,7 +26,14 @@ class BinaryPackage(FilePackage):
 
        @property
        def provides(self):
-               return self.metadata.get("PKG_PROVIDES").split()
+               provides = self.metadata.get("PKG_PROVIDES").split()
+
+               # Add autoprovides
+               for prov in self._provides:
+                       if not prov in provides:
+                               provides.append(prov)
+
+               return provides
 
        @property
        def conflicts(self):
index 54381bdd507fb4a51223900126f9d1ab869cbf2f..8b727baaa7a0d33e225d58213fa4822cc296d9e5 100644 (file)
@@ -86,12 +86,14 @@ class DatabasePackage(Package):
 
        @property
        def provides(self):
-               provides = self.metadata.get("provides")
-               
-               if provides:
-                       return provides.split()
+               provides = self.metadata.get("provides", "").split()
 
-               return []
+               # Add autoprovides
+               for prov in self._provides:
+                       if not prov in provides:
+                               provides.append(prov)
+
+               return provides
 
        @property
        def requires(self):