Python 3 fixes and cleanups
This commit is contained in:
parent
01d8877519
commit
1ac94e65d9
|
@ -278,7 +278,7 @@ class BinariesCheck(AbstractCheck.AbstractCheck):
|
|||
multi_pkg = False
|
||||
srpm = pkg[rpm.RPMTAG_SOURCERPM]
|
||||
if srpm:
|
||||
res = srcname_regex.search(Pkg.b2s(srpm))
|
||||
res = srcname_regex.search(srpm)
|
||||
if res:
|
||||
multi_pkg = (pkg.name != res.group(1))
|
||||
|
||||
|
|
|
@ -626,7 +626,7 @@ class FilesCheck(AbstractCheck.AbstractCheck):
|
|||
elif not install_info_regex.search(postin):
|
||||
printError(pkg, 'postin-without-install-info', f)
|
||||
|
||||
preun = b2s(pkg[rpm.RPMTAG_PREUN]) or \
|
||||
preun = pkg[rpm.RPMTAG_PREUN] or \
|
||||
pkg.scriptprog(rpm.RPMTAG_PREUNPROG)
|
||||
if not postun and not preun:
|
||||
printError(pkg,
|
||||
|
|
|
@ -59,14 +59,14 @@ class InitScriptCheck(AbstractCheck.AbstractCheck):
|
|||
printError(pkg, 'init-script-name-with-dot', fname)
|
||||
|
||||
# check chkconfig call in %post and %preun
|
||||
postin = Pkg.b2s(pkg[rpm.RPMTAG_POSTIN]) or \
|
||||
postin = pkg[rpm.RPMTAG_POSTIN] or \
|
||||
pkg.scriptprog(rpm.RPMTAG_POSTINPROG)
|
||||
if not postin:
|
||||
printError(pkg, 'init-script-without-chkconfig-postin', fname)
|
||||
elif not chkconfig_regex.search(postin):
|
||||
printError(pkg, 'postin-without-chkconfig', fname)
|
||||
|
||||
preun = Pkg.b2s(pkg[rpm.RPMTAG_PREUN]) or \
|
||||
preun = pkg[rpm.RPMTAG_PREUN] or \
|
||||
pkg.scriptprog(rpm.RPMTAG_PREUNPROG)
|
||||
if not preun:
|
||||
printError(pkg, 'init-script-without-chkconfig-preun', fname)
|
||||
|
|
|
@ -198,14 +198,14 @@ class MenuCheck(AbstractCheck.AbstractCheck):
|
|||
printError(pkg, 'menu-in-wrong-dir', fname)
|
||||
|
||||
if menus:
|
||||
postin = Pkg.b2s(pkg[rpm.RPMTAG_POSTIN]) or \
|
||||
postin = pkg[rpm.RPMTAG_POSTIN] or \
|
||||
pkg.scriptprog(rpm.RPMTAG_POSTINPROG)
|
||||
if not postin:
|
||||
printError(pkg, 'menu-without-postin')
|
||||
elif not update_menus_regex.search(postin):
|
||||
printError(pkg, 'postin-without-update-menus')
|
||||
|
||||
postun = Pkg.b2s(pkg[rpm.RPMTAG_POSTUN]) or \
|
||||
postun = pkg[rpm.RPMTAG_POSTUN] or \
|
||||
pkg.scriptprog(rpm.RPMTAG_POSTUNPROG)
|
||||
if not postun:
|
||||
printError(pkg, 'menu-without-postun')
|
||||
|
|
34
Pkg.py
34
Pkg.py
|
@ -62,6 +62,17 @@ PREREQ_FLAG = (rpm.RPMSENSE_PREREQ or 64) | \
|
|||
rpm.RPMSENSE_SCRIPT_PREUN | \
|
||||
rpm.RPMSENSE_SCRIPT_POSTUN
|
||||
|
||||
SCRIPT_TAGS = [
|
||||
(rpm.RPMTAG_PREIN, rpm.RPMTAG_PREINPROG, '%pre'),
|
||||
(rpm.RPMTAG_POSTIN, rpm.RPMTAG_POSTINPROG, '%post'),
|
||||
(rpm.RPMTAG_PREUN, rpm.RPMTAG_PREUNPROG, '%preun'),
|
||||
(rpm.RPMTAG_POSTUN, rpm.RPMTAG_POSTUNPROG, '%postun'),
|
||||
(rpm.RPMTAG_TRIGGERSCRIPTS, rpm.RPMTAG_TRIGGERSCRIPTPROG, '%trigger'),
|
||||
(rpm.RPMTAG_PRETRANS, rpm.RPMTAG_PRETRANSPROG, '%pretrans'),
|
||||
(rpm.RPMTAG_POSTTRANS, rpm.RPMTAG_POSTTRANSPROG, '%posttrans'),
|
||||
(rpm.RPMTAG_VERIFYSCRIPT, rpm.RPMTAG_VERIFYSCRIPTPROG, '%verifyscript'),
|
||||
]
|
||||
|
||||
var_regex = re.compile('^(.*)\${?(\w+)}?(.*)$')
|
||||
|
||||
|
||||
|
@ -511,7 +522,12 @@ class Pkg:
|
|||
else:
|
||||
if key in (rpm.RPMTAG_VERSION, rpm.RPMTAG_RELEASE, rpm.RPMTAG_ARCH,
|
||||
rpm.RPMTAG_GROUP, rpm.RPMTAG_BUILDHOST,
|
||||
rpm.RPMTAG_LICENSE):
|
||||
rpm.RPMTAG_LICENSE, rpm.RPMTAG_CHANGELOGNAME,
|
||||
rpm.RPMTAG_CHANGELOGTEXT, rpm.RPMTAG_SUMMARY,
|
||||
rpm.RPMTAG_DESCRIPTION, rpm.RPMTAG_HEADERI18NTABLE,
|
||||
rpm.RPMTAG_PACKAGER, rpm.RPMTAG_SOURCERPM) \
|
||||
or key in (x[0] for x in SCRIPT_TAGS) \
|
||||
or key in (x[1] for x in SCRIPT_TAGS):
|
||||
val = b2s(val)
|
||||
return val
|
||||
|
||||
|
@ -573,7 +589,7 @@ class Pkg:
|
|||
# LANGUAGE trumps other env vars per GNU gettext docs, see also #166
|
||||
orig = os.environ.get('LANGUAGE')
|
||||
os.environ['LANGUAGE'] = lang
|
||||
ret = b2s(self[tag])
|
||||
ret = self[tag]
|
||||
if orig is not None:
|
||||
os.environ['LANGUAGE'] = orig
|
||||
return ret
|
||||
|
@ -666,8 +682,8 @@ class Pkg:
|
|||
self.dirName() or '/', pkgfile.name.lstrip('/')))
|
||||
pkgfile.flags = flags[idx]
|
||||
pkgfile.mode = modes[idx]
|
||||
pkgfile.user = users[idx]
|
||||
pkgfile.group = groups[idx]
|
||||
pkgfile.user = b2s(users[idx])
|
||||
pkgfile.group = b2s(groups[idx])
|
||||
pkgfile.linkto = links[idx] and safe_normpath(links[idx])
|
||||
pkgfile.size = sizes[idx]
|
||||
pkgfile.md5 = md5s[idx]
|
||||
|
@ -676,7 +692,7 @@ class Pkg:
|
|||
pkgfile.inode = inodes[idx]
|
||||
pkgfile.requires = parse_deps(requires[idx])
|
||||
pkgfile.provides = parse_deps(provides[idx])
|
||||
pkgfile.lang = langs[idx]
|
||||
pkgfile.lang = b2s(langs[idx])
|
||||
pkgfile.magic = magics[idx]
|
||||
if not pkgfile.magic and _magic:
|
||||
pkgfile.magic = _magic.file(pkgfile.path)
|
||||
|
@ -846,11 +862,11 @@ class Pkg:
|
|||
interpreter arguments, if any."""
|
||||
prog = self[which]
|
||||
if prog is None:
|
||||
prog = b''
|
||||
prog = ""
|
||||
elif isinstance(prog, (list, tuple)):
|
||||
# http://rpm.org/ticket/847#comment:2
|
||||
prog = b' '.join(prog)
|
||||
return b2s(prog)
|
||||
prog = "".join(prog)
|
||||
return prog
|
||||
|
||||
|
||||
def getInstalledPkgs(name):
|
||||
|
@ -879,7 +895,7 @@ class InstalledPkg(Pkg):
|
|||
if not mi:
|
||||
raise KeyError(name)
|
||||
try:
|
||||
hdr = mi.next()
|
||||
hdr = next(mi)
|
||||
except StopIteration:
|
||||
raise KeyError(name)
|
||||
|
||||
|
|
13
PostCheck.py
13
PostCheck.py
|
@ -61,17 +61,6 @@ for p in prereq_assoc:
|
|||
# pychecker fix
|
||||
del p
|
||||
|
||||
script_tags = [
|
||||
(rpm.RPMTAG_PREIN, rpm.RPMTAG_PREINPROG, '%pre'),
|
||||
(rpm.RPMTAG_POSTIN, rpm.RPMTAG_POSTINPROG, '%post'),
|
||||
(rpm.RPMTAG_PREUN, rpm.RPMTAG_PREUNPROG, '%preun'),
|
||||
(rpm.RPMTAG_POSTUN, rpm.RPMTAG_POSTUNPROG, '%postun'),
|
||||
(rpm.RPMTAG_TRIGGERSCRIPTS, rpm.RPMTAG_TRIGGERSCRIPTPROG, '%trigger'),
|
||||
(rpm.RPMTAG_PRETRANS, rpm.RPMTAG_PRETRANSPROG, '%pretrans'),
|
||||
(rpm.RPMTAG_POSTTRANS, rpm.RPMTAG_POSTTRANSPROG, '%posttrans'),
|
||||
(rpm.RPMTAG_VERIFYSCRIPT, rpm.RPMTAG_VERIFYSCRIPTPROG, '%verifyscript'),
|
||||
]
|
||||
|
||||
|
||||
def incorrect_shell_script(prog, shellscript):
|
||||
return check_syntax_script(prog, '-n', shellscript)
|
||||
|
@ -105,7 +94,7 @@ class PostCheck(AbstractCheck.AbstractCheck):
|
|||
prereq = [x[0] for x in pkg.prereq()]
|
||||
files = pkg.files()
|
||||
|
||||
for tag in script_tags:
|
||||
for tag in Pkg.SCRIPT_TAGS:
|
||||
script = pkg[tag[0]]
|
||||
|
||||
if not isinstance(script, list):
|
||||
|
|
11
TagsCheck.py
11
TagsCheck.py
|
@ -547,7 +547,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
|
|||
|
||||
def check(self, pkg):
|
||||
|
||||
packager = Pkg.b2s(pkg[rpm.RPMTAG_PACKAGER])
|
||||
packager = pkg[rpm.RPMTAG_PACKAGER]
|
||||
if packager:
|
||||
self._unexpanded_macros(pkg, 'Packager', packager)
|
||||
if Config.getOption('Packager') and \
|
||||
|
@ -684,10 +684,8 @@ class TagsCheck(AbstractCheck.AbstractCheck):
|
|||
ignored_words.update((x[0] for x in pkg.obsoletes()))
|
||||
|
||||
langs = pkg[rpm.RPMTAG_HEADERI18NTABLE]
|
||||
if langs:
|
||||
langs = [Pkg.b2s(x) for x in langs]
|
||||
|
||||
summary = Pkg.b2s(pkg[rpm.RPMTAG_SUMMARY])
|
||||
summary = pkg[rpm.RPMTAG_SUMMARY]
|
||||
if summary:
|
||||
if not langs:
|
||||
self._unexpanded_macros(pkg, 'Summary', summary)
|
||||
|
@ -697,7 +695,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
|
|||
else:
|
||||
printError(pkg, 'no-summary-tag')
|
||||
|
||||
description = Pkg.b2s(pkg[rpm.RPMTAG_DESCRIPTION])
|
||||
description = pkg[rpm.RPMTAG_DESCRIPTION]
|
||||
if description:
|
||||
if not langs:
|
||||
self._unexpanded_macros(pkg, '%description', description)
|
||||
|
@ -726,8 +724,7 @@ class TagsCheck(AbstractCheck.AbstractCheck):
|
|||
if not changelog:
|
||||
printError(pkg, 'no-changelogname-tag')
|
||||
else:
|
||||
changelog = [Pkg.b2s(x) for x in changelog]
|
||||
clt = [Pkg.b2s(x) for x in pkg[rpm.RPMTAG_CHANGELOGTEXT]]
|
||||
clt = pkg[rpm.RPMTAG_CHANGELOGTEXT]
|
||||
if use_version_in_changelog:
|
||||
ret = changelog_version_regex.search(changelog[0])
|
||||
if not ret and clt:
|
||||
|
|
Loading…
Reference in New Issue