X-Git-Url: https://git.decadent.org.uk/gitweb/?a=blobdiff_plain;f=ziyi;h=a3af2789e531cd14456682791fa5aa4356804e22;hb=d0a891d7eb8d79b747f031392dd29de3acd68d84;hp=72c3f428d940b80945b7bbd325e2fe3a78d0265c;hpb=9206877b2e652ff6b88e3d992205270c45600c5c;p=dak.git diff --git a/ziyi b/ziyi index 72c3f428..a3af2789 100755 --- a/ziyi +++ b/ziyi @@ -2,8 +2,8 @@ # Create all the Release files -# Copyright (C) 2001 Anthony Towns -# $Id: ziyi,v 1.16 2002-01-12 16:33:23 ajt Exp $ +# Copyright (C) 2001, 2002 Anthony Towns +# $Id: ziyi,v 1.22 2002-06-08 00:18:47 troup 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,14 +23,16 @@ ################################################################################ -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 ################################################################################ Cnf = None projectB = None +out = None +AptCnf = None ################################################################################ @@ -83,14 +85,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] @@ -133,9 +135,6 @@ def main (): if not suites: suites = Cnf.SubTree("Suite").List() - def real_arch(x): - return x != "source" and x != "all" - for suite in suites: print "Processing: " + suite SuiteBlock = Cnf.SubTree("Suite::" + suite) @@ -157,21 +156,15 @@ def main (): notautomatic = "" if SuiteBlock.has_key("Components"): - components = SuiteBlock.SubTree("Components").List() + components = SuiteBlock.ValueList("Components") else: components = [] - nonus = 1 - if components != []: - for c in components: - if string.find(c, "non-US/") != 0: - nonus = 0 - else: - nonus = 0 - if nonus: - longsuite = suite + "/non-US" - else: - longsuite = suite + suite_suffix = Cnf.Find("Dinstall::SuiteSuffix"); + if components and suite_suffix: + longsuite = suite + "/" + suite_suffix; + else: + longsuite = suite; tree = SuiteBlock.get("Tree", "dists/%s" % (longsuite)) @@ -183,8 +176,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 +189,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(utils.real_arch, SuiteBlock.ValueList("Architectures"))))) + if components: out.write("Components: %s\n" % (string.join(components))) out.write("Description: %s\n" % (SuiteBlock["Description"])) @@ -212,7 +205,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,30 +218,28 @@ def main (): rel = "%s/%s/Release" % (sec, arch) else: rel = "%s/binary-%s/Release" % (sec, arch) - relpath = Cnf["Dir::RootDir"]+tree+"/"+rel - - if os.path.exists(relpath): - try: - os.unlink(relpath) - release = open(relpath, "w") - #release = open(string.replace(longsuite,"/","_") + "_" + arch + "_" + sec + "_Release", "w") - except IOError: - print "Couldn't write to " + relpath - else: - release.write("Archive: %s\n" % (suite)) - if version != "": - release.write("Version: %s\n" % (version)) - if nonus: - release.write("Component: non-US/%s\n" % (sec)) - else: - release.write("Component: %s\n" % (sec)) - release.write("Origin: %s\n" % (origin)) - release.write("Label: %s\n" % (label)) - if notautomatic != "": - release.write("NotAutomatic: %s\n" % (notautomatic)) - release.write("Architecture: %s\n" % (arch)) - release.close() - files.append(rel) + relpath = Cnf["Dir::Root"]+tree+"/"+rel + + try: + release = open(relpath, "w") + #release = open(string.replace(longsuite,"/","_") + "_" + arch + "_" + sec + "_Release", "w") + except IOError: + utils.fubar("Couldn't write to " + relpath); + + release.write("Archive: %s\n" % (suite)) + if version != "": + release.write("Version: %s\n" % (version)) + if suite_suffix: + release.write("Component: %s/%s\n" % (suite_suffix,sec)); + else: + release.write("Component: %s\n" % (sec)); + release.write("Origin: %s\n" % (origin)) + release.write("Label: %s\n" % (label)) + if notautomatic != "": + release.write("NotAutomatic: %s\n" % (notautomatic)) + release.write("Architecture: %s\n" % (arch)) + release.close() + files.append(rel) if AptCnf.has_key("tree::%s/main" % (tree)): sec = string.split(AptCnf["tree::%s/main::Sections" % (tree)])[0] @@ -285,16 +276,16 @@ def main (): else: signkeyids = [""] - dest = Cnf["Dir::RootDir"] + tree + "/Release.gpg" + 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" % + os.system("gpg %s %s %s --detach-sign <%s >>%s" % (keyring, defkeyid, arguments, - Cnf["Dir::RootDir"] + tree + "/Release", dest)) + Cnf["Dir::Root"] + tree + "/Release", dest)) #######################################################################################