c db-shell show db config in a usable form for psql
c NAME show option NAME as set in configuration table
+ keyring / k:
+ k list-all list all keyrings
+ k list-binary list all keyrings with a NULL source acl
+ k list-source list all keyrings with a non NULL source acl
+
architecture / a:
a list show a list of architectures
a rm ARCH remove an architecture (will only work if
################################################################################
+def show_keyring(command):
+ args = [str(x) for x in command]
+ cnf = utils.get_conf()
+
+ die_arglen(args, 2, "E: keyring needs at least a command")
+
+ mode = args[1].lower()
+
+ d = DBConn()
+
+ q = d.session().query(Keyring).filter(Keyring.active == True)
+
+ if mode == 'list-all':
+ pass
+ elif mode == 'list-binary':
+ q = q.filter(Keyring.default_source_acl_id == None)
+ elif mode == 'list-source':
+ q = q.filter(Keyring.default_source_acl_id != None)
+ else:
+ die("E: keyring command unknown")
+
+ for k in q.all():
+ print k.keyring_name
+
+dispatch['keyring'] = show_keyring
+dispatch['k'] = show_keyring
+
+################################################################################
+
def main():
"""Perform administrative work on the dak database"""
global dryrun
('Codename', 'codename') )
# A "Sub" Release file has slightly different fields
- subattribs = ( ('Origin', 'origin'),
+ subattribs = ( ('Archive', 'suite_name'),
+ ('Origin', 'origin'),
('Label', 'label'),
- ('Archive', 'suite_name'),
('Version', 'version') )
# Boolean stuff. If we find it true in database, write out "yes" into the release file
out.write("Description: %s\n" % suite.description)
for comp in components:
- for dirpath, dirnames, filenames in os.walk("%sdists/%s/%s" % (cnf["Dir::Root"], suite.suite_name, comp), topdown=True):
+ for dirpath, dirnames, filenames in os.walk("%sdists/%s/%s%s" % (cnf["Dir::Root"], suite.suite_name, suite_suffix, comp), topdown=True):
if not re_gensubrelease.match(dirpath):
continue
subfile = os.path.join(dirpath, "Release")
- subrel = open(subfile, "w")
+ subrel = open(subfile + '.new', "w")
for key, dbfield in subattribs:
if getattr(suite, dbfield) is not None:
subrel.write("%s: yes\n" % (key))
subrel.write("Component: %s%s\n" % (suite_suffix, comp))
+
+ # Urgh, but until we have all the suite/component/arch stuff in the DB,
+ # this'll have to do
+ arch = os.path.split(dirpath)[-1]
+ if arch.startswith('binary-'):
+ arch = arch[7:]
+
+ subrel.write("Architecture: %s\n" % (arch))
subrel.close()
+ os.rename(subfile + '.new', subfile)
+
# Now that we have done the groundwork, we want to get off and add the files with
# their checksums to the main Release file
oldcwd = os.getcwd()
file=${file##*/}
# First we want to see if we recognize the filename. The buildd people have
# to follow a certain schema:
- # architecture_builddname.YEAR-MONTH-DAY_HOUR:MINUTE.key
- if [[ $file =~ (.*)_(.*).([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}:[0-9]{2}).key ]]; then
+ # architecture_builddname.YEAR-MONTH-DAY_HOURMINUTE.key
+ if [[ $file =~ (.*)_(.*).([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}[0-9]{2}).key ]]; then
ARCH=${BASH_REMATCH[1]}
BUILDD=${BASH_REMATCH[2]}
# Right now timestamp is unused
# We need to check for the amount of keys
ARCHKEYRING="${base}/${ARCH}/keyring.gpg"
- KEYNO=$(gpg ${DEFGPGOPT} --keyring "${ARCHKEYRING}" --with-colons --list-keys "buildd_${ARCH}-${BUILDD}@buildd.debian.org" | grep -c '^pub:')
+ KEYNO=$(gpg ${DEFGPGOPT} --keyring "${ARCHKEYRING}" --with-colons --list-keys "buildd_${ARCH}-${BUILDD}@buildd.debian.org" | grep -c '^pub:' || /bin/true )
if [ ${KEYNO} -gt 2 ]; then
DATE=$(date -Is)
mv "${INCOMING}/${file}" "${ERRORS}/toomany.${file}.${DATE}"
export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
. $SCRIPTVARS
-umask 027
-
# And use one locale, no matter what the caller has set
export LANG=C
export LC_ALL=C
for arch in $archs; do
if [ -f ${base}/${arch}/keyring.gpg ]; then
- cp -al ${base}/${arch}/keyring.gpg ${TARGET}/keyrings/buildd-${arch}-keyring.gpg
- chmod 0644 ${TARGET}/keyrings/buildd-${arch}-keyring.gpg
+ cp -afl ${base}/${arch}/keyring.gpg ${TARGET}/buildd-keyrings/buildd-${arch}-keyring.gpg
+ chmod 0644 ${TARGET}/buildd-keyrings/buildd-${arch}-keyring.gpg
fi
done
cd ${TARGET}
-sha512sum keyrings/* > sha512sums
+sha512sum buildd-keyrings/* > sha512sums
rm -f ${TARGET}/sha512sums.txt
-SIGNINGKEY=$(dak admin c signingkeyids)
+SIGNINGKEY=B1326A8D
GNUPGHOME=${GNUPGHOME} gpg --no-options --batch --no-tty --armour --default-key ${SIGNINGKEY} --clearsign -o "${TARGET}/sha512sums.txt" "${TARGET}/sha512sums"
rm -f ${TARGET}/sha512sums
file=${file##*/}
# First we want to see if we recognize the filename. The buildd people have
# to follow a certain schema:
- # architecture_builddname.YEAR-MONTH-DAY_HOUR:MINUTE.del
- if [[ $file =~ (.*)_(.*).([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}:[0-9]{2}).del ]]; then
+ # architecture_builddname.YEAR-MONTH-DAY_HOURMINUTE.del
+ if [[ $file =~ (.*)_(.*).([0-9]{4}-[0-9]{2}-[0-9]{2}_[0-9]{2}[0-9]{2}).del ]]; then
ARCH=${BASH_REMATCH[1]}
BUILDD=${BASH_REMATCH[2]}
# Right now timestamp is unused
ARCHKEYRING="${base}/${ARCH}/keyring.gpg"
# Is the key in there?
- KEYNO=$(gpg ${DEFGPGOPT} --keyring "${ARCHKEYRING}" --with-colons --list-keys ${KEYID} | grep -c '^pub:')
+ KEYNO=$(gpg ${DEFGPGOPT} --keyring "${ARCHKEYRING}" --with-colons --list-keys ${KEYID} | grep -c '^pub:' || /bin/true )
if [ $KEYNO -eq 1 ]; then
# Right, exactly one there, lets get rid of it
#!/bin/bash
#
-# $Id: ddtp_i18n_check.sh 1670 2009-03-31 20:57:49Z nekral-guest $
+# $Id: ddtp_i18n_check.sh 2535 2011-02-19 14:20:52Z nekral-guest $
#
-# Copyright (C) 2008, Felipe Augusto van de Wiel <faw@funlabs.org>
+# Copyright (C) 2008, 2011 Felipe Augusto van de Wiel <faw@funlabs.org>
# Copyright (C) 2008, 2009 Nicolas François <nicolas.francois@centraliens.net>
#
# This program is free software; you can redistribute it and/or modify
# files.
DRY_RUN=0
+# When GEN_IDX=1, we create the Index files. There is a runtime option
+# to not create/generate the Index file.
+GEN_IDX=1
+
dists_parent_dir=""
# If no argument indicates the PACKAGES_LISTS_DIR then use '.'
PACKAGES_LISTS_DIR=""
echo " --debug Debug mode: do not stop after the first error" >&2
echo " --dry-run Do not generate the compressed version of the " >&2
echo " Translation files">&2
+ echo " --no-index Do not generate the Index files" >&2
exit 1
}
"--dry-run")
DRY_RUN=1
;;
+ "--no-index")
+ GEN_IDX=0
+ ;;
"-*")
usage
;;
usage
fi
-#STABLE="lenny"
+#STABLE="squeeze"
TESTING="wheezy"
UNSTABLE="sid"
# Original SHA256SUMS, generated by i18n.debian.net
-SHA256SUMS="SHA256SUMS"
+CHECKSUMS="SHA256SUMS"
# DAK Timestamp
TIMESTAMP="timestamp"
# These special files must exist on the top of dists_parent_dir
-SPECIAL_FILES="$SHA256SUMS $TIMESTAMP $TIMESTAMP.gpg"
+SPECIAL_FILES="$CHECKSUMS $TIMESTAMP $TIMESTAMP.gpg"
# Temporary working directory. We need a full path to reduce the
-# complexity of checking SHA256SUMS and cleaning/removing TMPDIR
+# complexity of checking CHECKSUMS and cleaning/removing TMPDIR
TEMP_WORK_DIR=$(mktemp -d -t ddtp_dinstall_tmpdir.XXXXXX)
cd "$TEMP_WORK_DIR"
TMP_WORK_DIR=$(pwd)
trap_exit () {
rm -rf "$TMP_WORK_DIR"
rm -f "$dists_parent_dir"/dists/*/main/i18n/Translation-*.bz2
+ rm -f "$dists_parent_dir"/dists/*/main/i18n/Index
exit 1
}
trap trap_exit EXIT HUP INT QUIT TERM
fi
done
-# Comparing SHA256SUMS
-# We don use -c because a file could exist in the directory tree and not in
-# the SHA256SUMS, so we sort the existing SHA256SUMS and we create a new one
+# Comparing CHECKSUMS
+# We don't use -c because a file could exist in the directory tree and not in
+# the CHECKSUMS, so we sort the existing CHECKSUMS and we create a new one
# already sorted, if cmp fails then files are different and we don't want to
# continue.
cd "$dists_parent_dir"
-find dists -type f -print0 |xargs --null sha256sum > "$TMP_WORK_DIR/$SHA256SUMS.new"
-sort "$SHA256SUMS" > "$TMP_WORK_DIR/$SHA256SUMS.sorted"
-sort "$TMP_WORK_DIR/$SHA256SUMS.new" > "$TMP_WORK_DIR/$SHA256SUMS.new.sorted"
-if ! cmp --quiet "$TMP_WORK_DIR/$SHA256SUMS.sorted" "$TMP_WORK_DIR/$SHA256SUMS.new.sorted"; then
- echo "Failed to compare the SHA256SUMS, they are not identical!" >&2
- diff -au "$TMP_WORK_DIR/$SHA256SUMS.sorted" "$TMP_WORK_DIR/$SHA256SUMS.new.sorted" >&2
+find dists -type f -print0 |xargs --null sha256sum > "$TMP_WORK_DIR/$CHECKSUMS.new"
+sort "$CHECKSUMS" > "$TMP_WORK_DIR/$CHECKSUMS.sorted"
+sort "$TMP_WORK_DIR/$CHECKSUMS.new" > "$TMP_WORK_DIR/$CHECKSUMS.new.sorted"
+if ! cmp --quiet "$TMP_WORK_DIR/$CHECKSUMS.sorted" "$TMP_WORK_DIR/$CHECKSUMS.new.sorted"; then
+ echo "Failed to compare the $CHECKSUMS, they are not identical!" >&2
+ diff -au "$TMP_WORK_DIR/$CHECKSUMS.sorted" "$TMP_WORK_DIR/$CHECKSUMS.new.sorted" >&2
exit 1
fi
cd "$OLDPWD"
if ! is_dirname_okay "$f"; then
echo "Wrong directory name: $f" >&2
exit 1
+ else
+ # If the directory name is OK, and if it's name is i18n
+ # and GEN_IDX is enabled, we generate the header of the
+ # Index file
+ if [ "$(basename $f)" = "i18n" -a "$GEN_IDX" = "1" ];
+ then
+ echo "SHA1:" > "$f/Index"
+ fi
fi
elif [ -f "$f" ]; then
# If $f is in $SPECIAL_FILES, we skip to the next loop because
# Now generate the compressed files
bzip2 "$f"
fi
+
+ # Create Index
+ if [ "$GEN_IDX" = "1" ]; then
+ fbz=${f}.bz2
+ IDX=$(dirname $f)
+ tf_name=$(basename $fbz)
+ tf_sha1=$(sha1sum $fbz)
+ tf_size=$(du $fbz)
+ printf ' %s % 7s %s\n' "${tf_sha1% *}" \
+ "${tf_size% *}" "${tf_name}" >> "$IDX/Index"
+ fi
else
echo "Neither a file or directory: $f" >&2
exit 1
# names of the keyring files
@keyrings = ( "/srv/keyring.debian.org/keyrings/debian-keyring.gpg",
- "/srv/keyring.debian.org/keyrings/debian-maintainers.gpg" );
+ "/srv/keyring.debian.org/keyrings/debian-maintainers.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-alpha-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-armel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-arm-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hppa-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hurd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-ia64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mipsel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mips-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-powerpc-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-s390-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-sparc-keyring.gpg");
# our log file
$logfile = "$queued_dir/log";
$statusdelay = 30;
# names of the keyring files
-@keyrings = ( "/srv/backports-master.debian.org/keyrings/keyring.gpg" );
+@keyrings = ( "/srv/backports-master.debian.org/keyrings/keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-alpha-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-armel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-arm-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hppa-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hurd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-ia64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mipsel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mips-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-powerpc-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-s390-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-sparc-keyring.gpg");
# our log file
$logfile = "$queued_dir/log";
$statusdelay = 30;
# names of the keyring files
-@keyrings = ( "/srv/keyring.debian.org/keyrings/debian-keyring.gpg" );
+@keyrings = ( "/srv/keyring.debian.org/keyrings/debian-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-alpha-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-armel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-arm-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hppa-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hurd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-ia64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mipsel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mips-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-powerpc-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-s390-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-sparc-keyring.gpg");
# our log file
$logfile = "$queued_dir/log";
# names of the keyring files
@keyrings = ( "/srv/keyring.debian.org/keyrings/debian-keyring.gpg",
- "/srv/keyring.debian.org/keyrings/debian-maintainers.gpg" );
+ "/srv/keyring.debian.org/keyrings/debian-maintainers.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-alpha-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-armel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-arm-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hppa-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-hurd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-ia64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-amd64-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-kfreebsd-i386-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mipsel-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-mips-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-powerpc-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-s390-keyring.gpg",
+ "/srv/keyring.debian.org/keyrings/buildd-keyrings/buildd-sparc-keyring.gpg");
# our log file
$logfile = "$queued_dir/log";