X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=daklib%2Farchive.py;h=13cec358f58693578c14f89066533131503808dc;hb=cb66f3a8fedf2f54e77b351dcdc4eda750ca2a11;hp=aeca0a006e2a9b33a0db2e002443501ee6560212;hpb=ea17e27345ee692a78f80b0a3717444a37c775b9;p=dak.git diff --git a/daklib/archive.py b/daklib/archive.py index aeca0a00..13cec358 100644 --- a/daklib/archive.py +++ b/daklib/archive.py @@ -618,11 +618,12 @@ class ArchiveUpload(object): cnf = Config() session = self.transaction.session - self.directory = tempfile.mkdtemp(dir=cnf.get('Dir::TempPath')) + (None, self.directory) = utils.temp_dirname(parent=cnf.get('Dir::TempPath'), + mode=0o2750, cnf.unprivgroup) 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) - fs.copy(src, dst) + fs.copy(src, dst, mode=0o640) self.changes = upload.Changes(self.directory, self.original_changes.filename, self.keyrings) @@ -631,7 +632,7 @@ class ArchiveUpload(object): dst = os.path.join(self.directory, f.filename) if not os.path.exists(src): continue - fs.copy(src, dst) + fs.copy(src, dst, mode=0o640) source = self.changes.source if source is not None: @@ -1023,8 +1024,9 @@ class ArchiveUpload(object): package, version, archext = parts arch, ext = archext.split('.', 1) - rule = automatic_byhand_packages.get(package) - if rule is None: + try: + rule = automatic_byhand_packages.subtree(package) + except KeyError: remaining.append(f) continue