From 5c639db805cf981f01f106aa875efb7e72d39ee8 Mon Sep 17 00:00:00 2001 From: Marcus Huewe Date: Sun, 27 Jan 2019 15:39:07 +0100 Subject: [PATCH] ArchQuery.epoch should never return None Returning None breaks ArchQuery.vercmp. Returning b'0' is ok because an epoch, if present, is always supposed to be an integer (at least in a "valid" arch package (see scripts/libmakepkg/lint_pkgbuild/epoch.sh.in in the pacman sources)). Hence, if we compare the epoch of a package, which has no explicit epoch set, with the epoch of a package, which has an explicit epoch set, we always have a <= relation. --- osc/util/archquery.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/osc/util/archquery.py b/osc/util/archquery.py index e5ecbe46..f5e3585e 100644 --- a/osc/util/archquery.py +++ b/osc/util/archquery.py @@ -66,12 +66,12 @@ class ArchQuery(packagequery.PackageQuery, packagequery.PackageQueryResult): return None def epoch(self): - pkgver = self.fields['pkgver'][0] if 'pkgver' in self.fields else None - if pkgver != None: + pkgver = self.fields.get('pkgver', [b''])[0] + if pkgver: m = re.match(r'([0-9])+:', pkgver) if m: return m.group(1) - return None + return b'0' def arch(self): return self.fields['arch'][0] if 'arch' in self.fields else None