]> git.decadent.org.uk Git - dak.git/blobdiff - ziyi
fix to match new katie.conf format
[dak.git] / ziyi
diff --git a/ziyi b/ziyi
index b129a888a14a0560843d4879e89e6761d782f4c9..bd08efc05e7240e32612fa2008d4c5f1930a9ea9 100755 (executable)
--- a/ziyi
+++ b/ziyi
@@ -2,8 +2,8 @@
 
 # Create all the Release files
 
-# Copyright (C) 2001  Anthony Towns <ajt@debian.org>
-# $Id: ziyi,v 1.15 2001-12-18 16:26:12 ajt Exp $
+# Copyright (C) 2001, 2002  Anthony Towns <ajt@debian.org>
+# $Id: ziyi,v 1.20 2002-05-15 05:43:34 ajt Exp $
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -23,8 +23,8 @@
 
 ################################################################################
 
-import pg, sys, os, popen2, tempfile, stat, string, time
-import utils, db_access
+import sys, os, popen2, tempfile, stat, string, time
+import utils
 import apt_pkg
 
 ################################################################################
@@ -83,14 +83,14 @@ def create_temp_file (cmd):
     return (size, f)
 
 def print_md5sha_files (tree, files, hashop):
-    path = Cnf["Dir::RootDir"] + tree + "/"
+    path = Cnf["Dir::Root"] + tree + "/"
     for name in files:
         try:
            if name[0] == "<":
                j = string.index(name, "/")
                k = string.index(name, ">")
                (cat, ext, name) = (name[1:j], name[j+1:k], name[k+1:])
-               (size, file_handle) = create_temp_file("%s %s%s%s" % 
+               (size, file_handle) = create_temp_file("%s %s%s%s" %
                    (cat, path, name, ext))
            else:
                size = os.stat(path + name)[stat.ST_SIZE]
@@ -157,19 +157,28 @@ def main ():
            notautomatic = ""
 
        if SuiteBlock.has_key("Components"):
-           components = SuiteBlock.SubTree("Components").List()
+           components = SuiteBlock.ValueList("Components")
        else:
            components = []
 
        nonus = 1
-       if components != []:
+       if components:
            for c in components:
                if string.find(c, "non-US/") != 0:
                    nonus = 0
        else:
            nonus = 0
+
+       if not nonus and  string.find(codename, "/updates") > 0:
+           security = 1
+       else:
+           security = 0
+
        if nonus:
            longsuite = suite + "/non-US"
+       elif security:
+           suite = suite + "/updates"
+           longsuite = suite
        else:
            longsuite = suite
 
@@ -183,8 +192,8 @@ def main ():
            print "ALERT: suite %s not in apt.conf, nor untouchable!" % (suite)
            continue
 
-       print Cnf["Dir::RootDir"] + tree + "/Release"
-       out = open(Cnf["Dir::RootDir"] + tree + "/Release", "w")
+       print Cnf["Dir::Root"] + tree + "/Release"
+       out = open(Cnf["Dir::Root"] + tree + "/Release", "w")
 
        out.write("Origin: %s\n" % (origin))
        out.write("Label: %s\n" % (label))
@@ -196,8 +205,8 @@ def main ():
        out.write("Date: %s\n" % (time.strftime("%a, %d %b %Y %H:%M:%S UTC", time.gmtime(time.time()))))
        if notautomatic != "":
            out.write("NotAutomatic: %s\n" % (notautomatic))
-       out.write("Architectures: %s\n" % (string.join(filter(real_arch, SuiteBlock.SubTree("Architectures").List()))))
-       if components != []:
+       out.write("Architectures: %s\n" % (string.join(filter(real_arch, SuiteBlock.ValueList("Architectures")))))
+       if components:
             out.write("Components: %s\n" % (string.join(components)))
 
        out.write("Description: %s\n" % (SuiteBlock["Description"]))
@@ -212,7 +221,7 @@ def main ():
                            files.append(file)
                    else:
                        disks = "%s/disks-%s" % (sec, arch)
-                       diskspath = Cnf["Dir::RootDir"]+tree+"/"+disks
+                       diskspath = Cnf["Dir::Root"]+tree+"/"+disks
                        if os.path.exists(diskspath):
                            for dir in os.listdir(diskspath):
                                if os.path.exists("%s/%s/md5sum.txt" % (diskspath, dir)):
@@ -225,7 +234,7 @@ def main ():
                        rel = "%s/%s/Release" % (sec, arch)
                    else:
                        rel = "%s/binary-%s/Release" % (sec, arch)
-                   relpath = Cnf["Dir::RootDir"]+tree+"/"+rel
+                   relpath = Cnf["Dir::Root"]+tree+"/"+rel
 
                    if os.path.exists(relpath):
                        try:
@@ -275,15 +284,26 @@ def main ():
 
        out.close()
        if Cnf.has_key("Dinstall::SigningKeyring"):
-           dest = Cnf["Dir::RootDir"] + tree + "/Release.gpg"
-           if os.path.exists(dest):
-               os.unlink(dest)
            keyring = "--secret-keyring \"%s\"" % Cnf["Dinstall::SigningKeyring"]
            if Cnf.has_key("Dinstall::SigningPubKeyring"):
                keyring = keyring + " --keyring \"%s\"" % Cnf["Dinstall::SigningPubKeyring"]
 
-           os.system("gpg %s --no-options --batch --no-tty --armour --detach-sign <%s --output=%s" % (keyring,
-               Cnf["Dir::RootDir"] + tree + "/Release", dest))
+           arguments = "--no-options --batch --no-tty --armour"
+           if Cnf.has_key("Dinstall::SigningKeyIds"):
+               signkeyids = string.split(Cnf["Dinstall::SigningKeyIds"])
+           else:
+               signkeyids = [""]
+
+           dest = Cnf["Dir::Root"] + tree + "/Release.gpg"
+           if os.path.exists(dest):
+               os.unlink(dest)
+
+           for keyid in signkeyids:
+               if keyid != "": defkeyid = "--default-key %s" % keyid
+               else: defkeyid = ""
+               os.system("gpg %s %s %s --detach-sign <%s >>%s" %
+                       (keyring, defkeyid, arguments,
+                       Cnf["Dir::Root"] + tree + "/Release", dest))
 
 #######################################################################################