From 0dcb48e043aa584d7d7e80c5a1885aee1c6ad63e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ville=20Skytt=C3=A4?= Date: Wed, 21 Jan 2009 23:01:18 +0000 Subject: [PATCH] Move default rpm groups loading to Pkg, call it only once. git-svn-id: svn+ssh://rpmlint.zarb.org/home/projects/rpmlint/svn/trunk@1496 9bc8b190-ac0f-0410-8968-dc7d1f502856 --- Pkg.py | 18 ++++++++++++++++++ SpecCheck.py | 3 +-- TagsCheck.py | 3 +-- Util.py | 20 -------------------- 4 files changed, 20 insertions(+), 24 deletions(-) delete mode 100644 Util.py diff --git a/Pkg.py b/Pkg.py index 19646d79..8e1ad6f6 100644 --- a/Pkg.py +++ b/Pkg.py @@ -161,6 +161,24 @@ def mktemp(): tmpfile = os.fdopen(tmpfd, 'w') return tmpfile, tmpname +def get_default_valid_rpmgroups(filename = ""): + """ Get the default rpm group from filename, or from the rpm package if no + filename is given""" + groups = [] + if not filename: + p = InstalledPkg('rpm') + filename = filter(lambda x: x.endswith('/GROUPS'), p.files().keys())[0] + if filename and os.path.exists(filename): + fobj = open(filename) + try: + groups = fobj.read().strip().splitlines() + finally: + fobj.close() + if not 'Development/Debug' in groups: + groups.append('Development/Debug') + groups.sort() + return groups + # classes representing package class Pkg: diff --git a/SpecCheck.py b/SpecCheck.py index 6e9caeb2..8eb02ccf 100644 --- a/SpecCheck.py +++ b/SpecCheck.py @@ -8,12 +8,12 @@ ############################################################################# from Filter import * -from Util import get_default_valid_rpmgroups import AbstractCheck import Pkg import re import sys import Config +from TagsCheck import VALID_GROUPS # Don't check for hardcoded library paths in biarch packages DEFAULT_BIARCH_PACKAGES = '^(gcc|glibc)' @@ -22,7 +22,6 @@ DEFAULT_BIARCH_PACKAGES = '^(gcc|glibc)' # their noarch files in /usr/lib//*, or packages that can't # be installed on biarch systems DEFAULT_HARDCODED_LIB_PATH_EXCEPTIONS = '/lib/(modules|cpp|perl5|rpm|hotplug|firmware)($|[\s/,])' -VALID_GROUPS = Config.getOption('ValidGroups', get_default_valid_rpmgroups()) patch_regex = re.compile("^Patch(\d*)\s*:\s*([^\s]+)", re.IGNORECASE) applied_patch_regex = re.compile("^%patch(\d*)") applied_patch_p_regex = re.compile("\s-P\s+(\d+)\\b") diff --git a/TagsCheck.py b/TagsCheck.py index ed8dd3ab..7a898780 100644 --- a/TagsCheck.py +++ b/TagsCheck.py @@ -8,7 +8,6 @@ ############################################################################# from Filter import * -from Util import get_default_valid_rpmgroups import AbstractCheck import FilesCheck import Pkg @@ -371,7 +370,7 @@ BAD_WORDS = { DEFAULT_INVALID_REQUIRES = ('^is$', '^not$', '^owned$', '^by$', '^any$', '^package$', '^libsafe\.so\.') -VALID_GROUPS = Config.getOption('ValidGroups', get_default_valid_rpmgroups()) +VALID_GROUPS = Config.getOption('ValidGroups', Pkg.get_default_valid_rpmgroups()) VALID_LICENSES = Config.getOption('ValidLicenses', DEFAULT_VALID_LICENSES) INVALID_REQUIRES = map(lambda x: re.compile(x), Config.getOption('InvalidRequires', DEFAULT_INVALID_REQUIRES)) packager_regex = re.compile(Config.getOption('Packager')) diff --git a/Util.py b/Util.py deleted file mode 100644 index 01dad505..00000000 --- a/Util.py +++ /dev/null @@ -1,20 +0,0 @@ -import Pkg -import os.path - -def get_default_valid_rpmgroups(filename = ""): - """ Get the default rpm group from filename, or from rpm package if no - filename is given""" - groups = [] - if not filename: - p = Pkg.InstalledPkg('rpm') - filename = filter(lambda x: x.endswith('/GROUPS'), p.files().keys())[0] - if filename and os.path.exists(filename): - fobj = open(filename) - try: - groups = fobj.read().strip().splitlines() - finally: - fobj.close() - if not 'Development/Debug' in groups: - groups.append('Development/Debug') - groups.sort() - return groups