X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Fchecks.py;h=3e7a73d4fdc2b2797bef281a298c9d3c86e5b3cc;hb=91b516fcb3c1d1e9e591d95bff213a0554c54946;hp=3a6c78244224cbfab2696d386a6bb4f01a7723fc;hpb=25b7ccdf77eb39d59c48cf9b37ab32222a818522;p=dak.git diff --git a/daklib/checks.py b/daklib/checks.py index 3a6c7824..3e7a73d4 100644 --- a/daklib/checks.py +++ b/daklib/checks.py @@ -328,7 +328,7 @@ class BinaryTimestampCheck(Check): def check(self, upload): cnf = Config() future_cutoff = time.time() + cnf.find_i('Dinstall::FutureTimeTravelGrace', 24*3600) - past_cutoff = time.mktime(time.strptime(cnf.find('Dinstall::PastCutoffYear', '1984'), '%Y')) + past_cutoff = time.mktime(time.strptime(cnf.find('Dinstall::PastCutoffYear', '1975'), '%Y')) class TarTime(object): def __init__(self): @@ -336,9 +336,9 @@ class BinaryTimestampCheck(Check): self.past_files = dict() def callback(self, member, data): if member.mtime > future_cutoff: - future_files[member.name] = member.mtime + self.future_files[member.name] = member.mtime elif member.mtime < past_cutoff: - past_files[member.name] = member.mtime + self.past_files[member.name] = member.mtime def format_reason(filename, direction, files): reason = "{0}: has {1} file(s) with a timestamp too far in the {2}:\n".format(filename, len(files), direction) @@ -375,7 +375,10 @@ class SourceCheck(Check): version = control['Version'] if is_orig: - version = re_field_version_upstream.match(version).group('upstream') + upstream_match = re_field_version_upstream.match(version) + if not upstream_match: + raise Reject('{0}: Source package includes upstream tarball, but {0} has no Debian revision.'.format(filename, version)) + version = upstream_match.group('upstream') version_match = re_field_version.match(version) version_without_epoch = version_match.group('without_epoch') if match.group('version') != version_without_epoch: @@ -440,7 +443,7 @@ class ACLCheck(Check): .filter(DBBinary.package == binary_name) for binary in binaries: if binary.source.source != upload.changes.changes['Source']: - return True, binary, binary.source.source + return True, binary.package, binary.source.source return False, None, None def _check_acl(self, session, upload, acl): @@ -638,11 +641,14 @@ class LintianCheck(Check): changespath = os.path.join(upload.directory, changes.filename) try: - if cnf.unprivgroup: - cmd = "sudo -H -u {0} -- /usr/bin/lintian --show-overrides --tags-from-file {1} {2}".format(cnf.unprivgroup, temp_filename, changespath) - else: - cmd = "/usr/bin/lintian --show-overrides --tags-from-file {0} {1}".format(temp_filename, changespath) - result, output = commands.getstatusoutput(cmd) + cmd = [] + + user = cnf.get('Dinstall::UnprivUser') or None + if user is not None: + cmd.extend(['sudo', '-H', '-u', user]) + + cmd.extend(['LINTIAN_COLL_UNPACKED_SKIP_SIG=1', '/usr/bin/lintian', '--show-overrides', '--tags-from-file', temp_filename, changespath]) + result, output = commands.getstatusoutput(" ".join(cmd)) finally: os.unlink(temp_filename)