X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=410e9cabd7eabbcdc2d2ac243ed45faf0edc088f;hb=a3ccb2a6bc6424d94c15822c070803ba695c9def;hp=e2b3a17a5ccf10c6e69d1492d760c6480dab1976;hpb=e6b1c633b7127f1d2ef938b7ea2181ce9e184906;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index e2b3a17a..410e9cab 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -636,8 +636,9 @@ class ArchiveUpload(object): cnf = Config() session = self.transaction.session + group = cnf.get('Dinstall::UnprivGroup') or None self.directory = utils.temp_dirname(parent=cnf.get('Dir::TempPath'), - mode=0o2750, group=cnf.unprivgroup) + mode=0o2750, group=group) with FilesystemTransaction() as fs: src = os.path.join(self.original_directory, self.original_changes.filename) dst = os.path.join(self.directory, self.original_changes.filename) @@ -667,7 +668,7 @@ class ArchiveUpload(object): try: db_file = self.transaction.get_file(f, source.dsc['Source'], check_hashes=False) db_archive_file = session.query(ArchiveFile).filter_by(file=db_file).first() - fs.copy(db_archive_file.path, dst, symlink=True) + fs.copy(db_archive_file.path, dst, mode=0o640) except KeyError: # Ignore if get_file could not find it. Upload will # probably be rejected later. @@ -717,7 +718,7 @@ class ArchiveUpload(object): elif rtype == "reject": rejected = fields[1] if suite_name == rejected: - self.reject_reasons.append('Uploads to {0} are not accepted.'.format(suite)) + raise checks.Reject('Uploads to {0} are not accepted.'.format(rejected)) ## XXX: propup-version and map-unreleased not yet implemented return suite_name @@ -1060,14 +1061,26 @@ class ArchiveUpload(object): remaining = [] for f in byhand: - parts = f.filename.split('_', 2) - if len(parts) != 3: - print "W: unexpected byhand filename {0}. No automatic processing.".format(f.filename) - remaining.append(f) - continue + if '_' in f.filename: + parts = f.filename.split('_', 2) + if len(parts) != 3: + print "W: unexpected byhand filename {0}. No automatic processing.".format(f.filename) + remaining.append(f) + continue + + package, version, archext = parts + arch, ext = archext.split('.', 1) + else: + parts = f.filename.split('.') + if len(parts) < 2: + print "W: unexpected byhand filename {0}. No automatic processing.".format(f.filename) + remaining.append(f) + continue - package, version, archext = parts - arch, ext = archext.split('.', 1) + package = parts[0] + version = '0' + arch = 'all' + ext = parts[-1] try: rule = automatic_byhand_packages.subtree(package) @@ -1075,7 +1088,9 @@ class ArchiveUpload(object): remaining.append(f) continue - if rule['Source'] != self.changes.source_name or rule['Section'] != f.section or rule['Extension'] != ext: + if rule['Source'] != self.changes.source_name \ + or rule['Section'] != f.section \ + or ('Extension' in rule and rule['Extension'] != ext): remaining.append(f) continue