[Yum-devel] [PATCH 1/3] Add .base_package_name, which parses .sourcerpm or uses .name
James Antill
james at and.org
Sun Oct 18 04:11:38 UTC 2009
This is added to RpmBase, so we can do it for installed pkgs too, we
could move it even higher as it only actually needs .name to work.
Also get rid of an extra .isSrpm() call.
---
yum/packages.py | 20 +++++++++++++++++++-
1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/yum/packages.py b/yum/packages.py
index bb0e7ca..71430fd 100644
--- a/yum/packages.py
+++ b/yum/packages.py
@@ -488,6 +488,25 @@ class RpmBase(object):
changelog = property(fget=lambda self: self.returnChangelog())
EVR = property(fget=lambda self: self.returnEVR())
+ def _getBaseName(self):
+ """ Return the "base name" of the package, atm. we can only look at
+ the sourcerpm. """
+ if hasattr(self, '_base_package_name_ret'):
+ return self._base_package_name_ret
+
+ if hasattr(self, 'sourcerpm') and self.sourcerpm:
+ (n, v, r, e, a) = rpmUtils.miscutils.splitFilename(self.sourcerpm)
+ if n != self.name:
+ self._base_package_name_ret = n
+ return n
+
+ # If there is no sourcerpm, or sourcerpm == us, use .name
+ self._base_package_name_ret = self.name
+ return self._base_package_name_ret
+
+ base_package_name = property(fget=lambda self: self._getBaseName())
+
+
class PackageEVR:
"""
@@ -1570,7 +1589,6 @@ class YumLocalPackage(YumHeaderPackage):
self.pkgtup = (self.name, self.arch, self.epoch, self.ver, self.rel)
self._hdrstart = None
self._hdrend = None
- self.arch = self.isSrpm()
self.checksum_type = misc._default_checksums[0]
# these can be set by callers that need these features (ex: createrepo)
--
1.6.2.5
More information about the Yum-devel
mailing list