]> git.donarmstrong.com Git - dak.git/blobdiff - dak/generate_releases.py
test_gpg.py: also check signature timestamp
[dak.git] / dak / generate_releases.py
index a86c33ce33090def79074f93bbd80135030f0f43..ce8f12815009a70a0ea9cb4e77eda77564c197de 100755 (executable)
@@ -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)