[Yum-devel] [PATCH 1/3] Add .base_package_name, which parses .sourcerpm or uses .name

Tim Lauridsen tim.lauridsen at googlemail.com
Sun Oct 18 06:22:21 UTC 2009


On 10/18/2009 06:11 AM, James Antill wrote:
>   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)
>    

ACK

Tim


More information about the Yum-devel mailing list