X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=dak%2Fgenerate_releases.py;h=ce8f12815009a70a0ea9cb4e77eda77564c197de;hb=fa727dcf0058058565278421d16ea75c156e7fa3;hp=a86c33ce33090def79074f93bbd80135030f0f43;hpb=36f2e4eed512ab916efac0dc2ecb6dc0d503397b;p=dak.git diff --git a/dak/generate_releases.py b/dak/generate_releases.py index a86c33ce..ce8f1281 100755 --- a/dak/generate_releases.py +++ b/dak/generate_releases.py @@ -38,6 +38,7 @@ import time import gzip import bz2 import apt_pkg +import subprocess from tempfile import mkstemp, mkdtemp import commands from sqlalchemy.orm import object_session @@ -48,6 +49,7 @@ from daklib.dak_exceptions import * from daklib.dbconn import * from daklib.config import Config from daklib.dakmultiprocessing import DakProcessPool, PROC_STATUS_SUCCESS +import daklib.daksubprocess ################################################################################ Logger = None #: Our logging object @@ -83,7 +85,7 @@ def sign_release_dir(suite, dirname): if cnf.has_key("Dinstall::SigningPubKeyring"): keyring += " --keyring \"%s\"" % cnf["Dinstall::SigningPubKeyring"] - arguments = "--no-options --batch --no-tty --armour" + arguments = "--no-options --batch --no-tty --armour --personal-digest-preferences=SHA256" relname = os.path.join(dirname, 'Release') @@ -104,6 +106,16 @@ def sign_release_dir(suite, dirname): os.system("gpg %s %s %s --clearsign <%s >>%s" % (keyring, defkeyid, arguments, relname, inlinedest)) +class XzFile(object): + def __init__(self, filename, mode='r'): + self.filename = filename + def read(self): + cmd = ("xz", "-d") + with open(self.filename, 'r') as stdin: + process = daklib.daksubprocess.Popen(cmd, stdin=stdin, stdout=subprocess.PIPE) + (stdout, stderr) = process.communicate() + return stdout + class ReleaseWriter(object): def __init__(self, suite): self.suite = suite @@ -242,6 +254,8 @@ class ReleaseWriter(object): uncompnotseen[filename[:-3]] = (gzip.GzipFile, filename) elif entry.endswith(".bz2") and entry[:-4] not in uncompnotseen.keys(): uncompnotseen[filename[:-4]] = (bz2.BZ2File, filename) + elif entry.endswith(".xz") and entry[:-3] not in uncompnotseen.keys(): + uncompnotseen[filename[:-3]] = (XzFile, filename) fileinfo[filename]['len'] = len(contents)