From 8643d2cd327cdb609e147a48775a3832fd5fc282 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Sun, 9 Jan 2011 15:25:39 +0000 Subject: [PATCH] - non-integer build check test on testmvpkg Changed files: modules/ftptree.py -> 1.46 --- modules/ftptree.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/modules/ftptree.py b/modules/ftptree.py index e45645d..486d484 100644 --- a/modules/ftptree.py +++ b/modules/ftptree.py @@ -90,6 +90,21 @@ class Pkg(BasePkg): pkg = nvr.split('-')[:-2] return pkg[-1] == 'debuginfo' + # returns true if package build is integer + def is_release(self): + """ + To account Release tags with subver macros, we consider integer release + if it contains odd number of dots: + + 1 -> True + 0.1 -> False + 0.%{subver}.%{rel}, %{rel} = 1 -> 0.20010.1 -> True + 0.%{subver}.%{rel}, %{rel} = 0.1 -> 0.20010.0.1 -> False + """ + # count elements by splitting by dot + parts = self.release.split('.') + return len(parts) % 2 == 1 + def mark4moving(self): if not self.marked4moving: # Only one pkg in this pool can be marked for moving @@ -280,6 +295,7 @@ class FtpTree(BaseFtpTree): self.__checksigns(dsttree, self.marked4moving, test = True) self.__checkforobsoletes(dsttree, self.marked4moving, test = True) + self.__checkforrelease(dsttree, self.marked4moving, test = True) self.__rmolderfromsrc(test = True) self.__rmotherfromdst(dsttree, test = True, archivetree = archivetree) @@ -502,3 +518,15 @@ class FtpTree(BaseFtpTree): p = findbyname(item) if p: pkg.warning('obsoletes %s (via %s) in dest tree, perhaps you want rmpkg' % (p,pn)) + + def __checkforrelease(self, tree, pkgs, test = False): + """ + Checks queue file if package release is non integer. + + """ + if test != True: + return + + for pkg in pkgs: + if not pkg.is_release(): + pkg.warning('non-integer release: %s' % pkg.release) -- 2.44.0