From: Joerg Jaspert Date: Mon, 21 Feb 2011 21:12:55 +0000 (+0100) Subject: generate-releases X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=e3d8cb7bce30c76d6133ab04ce9b01804944d5cb generate-releases add a list of hashes for generate-release with the suite names they are for remove the double indirection with print_HASH_files, directly call print_hash_files and use the hashfuncs dict to know which hash function to call Signed-off-by: Joerg Jaspert --- diff --git a/config/backports/dak.conf b/config/backports/dak.conf index c79533d6..83ed508a 100644 --- a/config/backports/dak.conf +++ b/config/backports/dak.conf @@ -432,3 +432,25 @@ Changelogs { Export "/srv/backports-master.debian.org/export/changelogs"; } + +Generate-Releases +{ + MD5 + { + lenny-backports; + lenny-backports-sloppy; + squeeze-backports; + }; + SHA1 + { + lenny-backports; + lenny-backports-sloppy; + squeeze-backports; + }; + SHA256 + { + lenny-backports; + lenny-backports-sloppy; + squeeze-backports; + }; +} diff --git a/config/debian-security/dak.conf b/config/debian-security/dak.conf index 1d9b1e65..c42eba9f 100644 --- a/config/debian-security/dak.conf +++ b/config/debian-security/dak.conf @@ -440,3 +440,25 @@ Changelogs { Export "/srv/security-master.debian.org/export/changelogs"; } + +Generate-Releases +{ + MD5 + { + oldstable; + stable; + testing; + }; + SHA1 + { + oldstable; + stable; + testing; + }; + SHA256 + { + oldstable; + stable; + testing; + }; +} diff --git a/config/debian/dak.conf b/config/debian/dak.conf index e6567d9a..ffb049b0 100644 --- a/config/debian/dak.conf +++ b/config/debian/dak.conf @@ -525,3 +525,38 @@ Changelogs Britney "/srv/ftp-master.debian.org/ftp/dists/testing/ChangeLog"; Export "/srv/ftp-master.debian.org/export/changelogs"; } + +Generate-Releases +{ + MD5 + { + oldstable; + oldstable-proposed-updates; + proposed-updates; + stable; + }; + SHA1 + { + oldstable; + oldstable-proposed-updates; + proposed-updates; + squeeze-updates; + stable; + testing; + testing-proposed-updates; + unstable; + experimental; + }; + SHA256 + { + oldstable; + oldstable-proposed-updates; + proposed-updates; + squeeze-updates; + stable; + testing; + testing-proposed-updates; + unstable; + experimental; + }; +} diff --git a/dak/generate_releases.py b/dak/generate_releases.py index 5644b957..3d42c51c 100755 --- a/dak/generate_releases.py +++ b/dak/generate_releases.py @@ -108,6 +108,10 @@ def compressnames (tree,type,file): decompressors = { 'zcat' : gzip.GzipFile, 'bzip2' : bz2.BZ2File } +hashfuncs = { 'MD5' : apt_pkg.md5sum, + 'SHA1' : apt_pkg.sha1sum, + 'SHA256' : apt_pkg.sha256sum } + def print_hash_files (tree, files, hashop): path = Cnf["Dir::Root"] + tree + "/" for name in files: @@ -120,12 +124,12 @@ def print_hash_files (tree, files, hashop): (cat, ext, name) = (name[1:j], name[j+1:k], name[k+1:]) file_handle = decompressors[ cat ]( "%s%s%s" % (path, name, ext) ) contents = file_handle.read() - hashvalue = hashop(contents) + hashvalue = hashfuncs[ hashop ](contents) hashlen = len(contents) else: try: file_handle = utils.open_file(path + name) - hashvalue = hashop(file_handle) + hashvalue = hashfuncs[ hashop ](file_handle) hashlen = os.stat(path + name).st_size except: raise @@ -141,12 +145,6 @@ def print_hash_files (tree, files, hashop): else: out.write(" %s %8d %s\n" % (hashvalue, hashlen, name)) -def print_sha1_files (tree, files): - print_hash_files (tree, files, apt_pkg.sha1sum) - -def print_sha256_files (tree, files): - print_hash_files (tree, files, apt_pkg.sha256sum) - def write_release_file (relpath, suite, component, origin, label, arch, version="", suite_suffix="", notautomatic="", butautomaticupgrades=""): try: if os.access(relpath, os.F_OK): @@ -368,10 +366,10 @@ def main (): else: print "ALERT: no tree/bindirectory for %s" % (tree) - out.write("SHA1:\n") - print_sha1_files(tree, files) - out.write("SHA256:\n") - print_sha256_files(tree, files) + for hashvalue in cnf.SubTree("Generate-Releases").List(): + if suite in [ i.lower() for i in cnf.ValueList("Generate-Releases::%s" % (hashvalue)) ]: + out.write("%s:\n" % (hashvalue)) + print_hash_files(tree, files, hashvalue) out.close() if Cnf.has_key("Dinstall::SigningKeyring"):