import os, config, string, urllib, re, rpm
from common import fileexists, noarchcachedir
from baseftptree import BasePkg, BaseFtpTree
-errnum=0
+from sign import is_signed
-quietmode=False
+errnum = 0
+quietmode = False
class SomeError(Exception):
def __init__(self):
def testmove(self, dsttree):
self.__checkbuild(self.marked4moving)
self.__checkarchs(dsttree, self.marked4moving)
+
+ self.__checksigns(dsttree, self.marked4moving, test = True)
self.__rmolderfromsrc(test = True)
self.__rmotherfromdst(dsttree, test = True)
if self.do_checkbuild:
self.__checkbuild(self.marked4moving)
bailoutonerror()
+
self.__checkarchs(dsttree, self.marked4moving)
bailoutonerror()
+
+ self.__checksigns(dsttree, self.marked4moving)
+ bailoutonerror()
+
self.__rmolderfromsrc()
self.__rmotherfromdst(dsttree)
def rpmfiles(self):
if self.do_checkbuild:
self.__checkbuild(self.marked4moving)
- bailoutonerror()
files = []
for pkg in self.marked4moving:
return False
return filter(filter_older_pkgs, self.__find_other_pkgs(pkg, self))
+ def __checksigns(self, tree, pkgs, test = False):
+ """
+ Checks if pkgs in tree are all signed.
+
+ in case of test = true, error flag is set for unsigned packages
+ """
+ if not tree.treename in config.signed_trees:
+ return
+
+ for pkg in pkgs:
+ unsigned = 0
+ for file in pkg.rpmfiles():
+ if not is_signed(file):
+ unsigned += 1;
+
+ if unsigned != 0:
+ if test == True:
+ if not quietmode:
+ pkg.warning('%d files not signed' % unsigned)
+ else:
+ pkg.error('%d files not signed' % unsigned)