]> git.ipfire.org Git - pakfire.git/commitdiff
Add UUID information to every package.
authorMichael Tremer <michael.tremer@ipfire.org>
Sat, 26 Feb 2011 00:08:16 +0000 (01:08 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Sat, 26 Feb 2011 00:10:22 +0000 (01:10 +0100)
pakfire/constants.py
pakfire/database.py
pakfire/packages/base.py
pakfire/packages/installed.py
pakfire/packages/packager.py

index 0d3bc9b51ae626c12bcbae819c7a533f49d5d136..794197fa6195b40ada05c15a68f2c9ff8eeeccff 100644 (file)
@@ -72,6 +72,7 @@ PKG_NAME="%(name)s"
 PKG_VER="%(version)s"
 PKG_REL="%(release)s"
 PKG_EPOCH="%(epoch)s"
+PKG_UUID="%(package_uuid)s"
 
 PKG_GROUP="%(group)s"
 PKG_ARCH="%(arch)s"
index bcc6efd3f0bedeb1261320e7ab05276213c3c02e..50416d6a001215e70142a3a226e3f64ac84cea72 100644 (file)
@@ -95,6 +95,7 @@ class PackageDatabase(Database):
                                license         TEXT,
                                summary         TEXT,
                                description     TEXT,
+                               uuid            TEXT,
                                build_id        TEXT,
                                build_host      TEXT,
                                build_date      INTEGER
@@ -170,10 +171,11 @@ class RemotePackageDatabase(PackageDatabase):
                                license,
                                summary,
                                description,
+                               uuid,
                                build_id,
                                build_host,
                                build_date
-                       ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""",
+                       ) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)""",
                        (
                                pkg.name,
                                pkg.epoch,
@@ -190,6 +192,7 @@ class RemotePackageDatabase(PackageDatabase):
                                pkg.license,
                                pkg.summary,
                                pkg.description,
+                               pkg.uuid,
                                pkg.build_id,
                                pkg.build_host,
                                pkg.build_date
index e5ea128342ed15b960afbf94054a37f280b0078f..6389b63256895d47f94bc31a9aa34f74923bb06c 100644 (file)
@@ -64,6 +64,7 @@ class Package(object):
                        caption = ""
 
                if long:
+                       items.append((_("UUID"), self.uuid))
                        items.append((_("Build ID"), self.build_id))
                        items.append((_("Build date"), self.build_date))
                        items.append((_("Build host"), self.build_host))
@@ -227,6 +228,10 @@ class Package(object):
 
                return int(build_time)
 
+       @property
+       def uuid(self):
+               return self.metadata.get("PKG_UUID", None)
+
        @property
        def _provides(self):
                # Make package identifyable by its name and version/release tuples.
index a41bf40ebe8df7df08340067bd7a31161e8a7596..60792c717e2473b3e7b0914a4a322b8b2bf3daf4 100644 (file)
@@ -91,6 +91,10 @@ class DatabasePackage(Package):
        def build_id(self):
                return self.metadata.get("build_id")
 
+       @property
+       def uuid(self):
+               return self.metadata.get("uuid")
+
        @property
        def size(self):
                return self.metadata.get("size", 0)
index e43b3d6c199702e603f3fa153208f8d069ea893c..d9f7ec8d37cc9cf927f619becb0c12ec815d1c22 100644 (file)
@@ -9,6 +9,7 @@ import shutil
 import sys
 import tarfile
 import tempfile
+import uuid
 import xattr
 
 from pakfire.constants import *
@@ -192,6 +193,7 @@ class Packager(object):
                # Store meta information
                self.info = {
                        "package_format" : PACKAGE_FORMAT,
+                       "package_uuid" : uuid.uuid4(),
                }
                self.info.update(self.pkg.info)
                self.info.update(self.pakfire.distro.info)