From: Michael Tremer Date: Sat, 26 Feb 2011 00:08:16 +0000 (+0100) Subject: Add UUID information to every package. X-Git-Tag: 0.9.3~117 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1317485db2de5e01a26885f32e82e5a22e598e6d;p=pakfire.git Add UUID information to every package. --- diff --git a/pakfire/constants.py b/pakfire/constants.py index 0d3bc9b51..794197fa6 100644 --- a/pakfire/constants.py +++ b/pakfire/constants.py @@ -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" diff --git a/pakfire/database.py b/pakfire/database.py index bcc6efd3f..50416d6a0 100644 --- a/pakfire/database.py +++ b/pakfire/database.py @@ -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 diff --git a/pakfire/packages/base.py b/pakfire/packages/base.py index e5ea12834..6389b6325 100644 --- a/pakfire/packages/base.py +++ b/pakfire/packages/base.py @@ -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. diff --git a/pakfire/packages/installed.py b/pakfire/packages/installed.py index a41bf40eb..60792c717 100644 --- a/pakfire/packages/installed.py +++ b/pakfire/packages/installed.py @@ -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) diff --git a/pakfire/packages/packager.py b/pakfire/packages/packager.py index e43b3d6c1..d9f7ec8d3 100644 --- a/pakfire/packages/packager.py +++ b/pakfire/packages/packager.py @@ -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)