]> git.decadent.org.uk Git - dak.git/commitdiff
Merge branch 'master' into dbtests
authorTorsten Werner <twerner@debian.org>
Sat, 12 Feb 2011 15:24:15 +0000 (16:24 +0100)
committerTorsten Werner <twerner@debian.org>
Sat, 12 Feb 2011 15:24:15 +0000 (16:24 +0100)
12 files changed:
config/backports/cron.daily
config/backports/cron.dinstall
config/backports/dak.conf
config/backports/dinstall.functions
config/debian/cron.dinstall
config/debian/dinstall.functions
dak/dakdb/update42.py [new file with mode: 0755]
dak/generate_packages_sources.py
dak/generate_releases.py
dak/update_db.py
daklib/dbconn.py
scripts/nfu/get-w-b-db

index 3fcde2c06cd0ee2058f6a7060c61ae1b5df2ecfc..9175222337df86b37a47f68d1590a5b491ecffdb 100755 (executable)
@@ -13,7 +13,7 @@ dak clean-suites -m 10000
 dak clean-queues
 
 # Send a report on NEW/BYHAND packages
-dak queue-report | mail -e -s "NEW and BYHAND on $(date +%D)" team@backports.debian.org
+dak queue-report -d new,proposedupdates | mail -e -s "NEW and BYHAND on $(date +%D)" team@backports.debian.org
 # and one on crufty packages
 
 dak cruft-report > $webdir/cruft-report-daily.txt
index c2a5b32298345fee2dcd05c10af918fdf97a5b46..634ef1d979e287113359524248562c0567f57de7 100755 (executable)
@@ -189,6 +189,14 @@ stage $GO
 lockfile "$LOCK_ACCEPTED"
 lockfile "$LOCK_NEW"
 
+GO=(
+    FUNC="punew"
+    TIME="p-u-new"
+    ARGS="proposedupdates"
+    ERR="false"
+)
+stage $GO
+
 GO=(
     FUNC="newstage"
     TIME="newstage"
index ffa728b56f58afda730eaca19be4e023aec86bff..8bde62390dac12fdb133bc8296a01d5b982a05d8 100644 (file)
@@ -254,7 +254,6 @@ SuiteMappings
  "map lenny-bpo-sloppy lenny-backports-sloppy";
  "map squeeze squeeze-backports";
  "map squeeze-bpo squeeze-backports";
- "map lenny-backports proposed-updates";
 };
 
 Architectures
index d8ca5172c968af9e9e29e842db01be1c65aec7f2..27854f8b66eaf2dde60b547318dd23ce4bba6780 100644 (file)
@@ -83,7 +83,7 @@ function updates() {
 # Process (oldstable)-proposed-updates "NEW" queue
 function punew_do() {
     date -u -R >> REPORT
-    dak process-policy $1 | tee -a REPORT | mail -e -s "NEW changes in $1" debian-release@lists.debian.org
+    dak process-policy $1 | tee -a REPORT | mail -e -s "NEW changes in $1" team@backports.debian.org
     echo >> REPORT
 }
 function punew() {
index d66e2348093906cddbee525710896863d2321d36..6f7cf0d877b878e4cb2608ae42f096295e2d52f5 100755 (executable)
@@ -159,7 +159,7 @@ state "Startup"
 
 lockfile -l 3600 "${LOCK_DAILY}"
 trap onerror ERR
-trap cleanup EXIT TERM HUP INT QUIT
+trap remove_daily_lock EXIT TERM HUP INT QUIT
 
 touch "${LOCK_BRITNEY}"
 
@@ -205,6 +205,7 @@ stage $GO
 
 lockfile "$LOCK_ACCEPTED"
 lockfile "$LOCK_NEW"
+trap remove_all_locks EXIT TERM HUP INT QUIT
 
 GO=(
     FUNC="punew"
@@ -381,7 +382,8 @@ GO=(
 )
 stage $GO
 
-remove_locks
+remove_all_locks
+trap - EXIT TERM HUP INT QUIT
 
 ts "locked part finished"
 state "postlock"
index 1834841b74b1ad04505b0aca1e093f63d92af4eb..be4ed572dd687f3a53bf48289f41cd8ec95dff2f 100644 (file)
@@ -4,14 +4,14 @@ function ts() {
         echo "Archive maintenance timestamp ($1): $(date +%H:%M:%S)"
 }
 
-# Remove all locks
-function remove_locks() {
-    rm -f $LOCK_DAILY $LOCK_ACCEPTED $LOCK_NEW
+# Remove daily lock
+function remove_daily_lock() {
+    rm -f $LOCK_DAILY
 }
 
-# trap handler for cleaning up on signal / error
-function cleanup() {
-    remove_locks
+# Remove all locks
+function remove_all_locks() {
+    rm -f $LOCK_DAILY $LOCK_ACCEPTED $LOCK_NEW
 }
 
 # If we error out this one is called, *FOLLOWED* by cleanup above
diff --git a/dak/dakdb/update42.py b/dak/dakdb/update42.py
new file mode 100755 (executable)
index 0000000..48bc9d6
--- /dev/null
@@ -0,0 +1,49 @@
+#!/usr/bin/env python
+# coding=utf8
+
+"""
+Add "ButAutomaticUpgrades" field to the suite table
+
+@contact: Debian FTP Master <ftpmaster@debian.org>
+@copyright: 2011 Joerg Jaspert <joerg@debian.org>
+@license: GNU General Public License version 2 or later
+"""
+
+# 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
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+################################################################################
+
+import psycopg2
+from daklib.dak_exceptions import DBUpdateError
+from socket import gethostname;
+
+################################################################################
+def do_update(self):
+    """
+    Add "ButAutomaticUpgrades" field to the suite table
+    """
+    print __doc__
+    try:
+        c = self.db.cursor()
+
+        c.execute("ALTER TABLE suite ADD COLUMN butautomaticupgrades BOOLEAN NOT NULL DEFAULT FALSE;")
+        c.execute("ALTER TABLE suite ADD CONSTRAINT bau_needs_na_set CHECK (not butautomaticupgrades or notautomatic);")
+
+        c.execute("UPDATE config SET value = '42' WHERE name = 'db_revision'")
+        self.db.commit()
+
+    except psycopg2.ProgrammingError, msg:
+        self.db.rollback()
+        raise DBUpdateError, 'Unable to apply update 42, rollback issued. Error message : %s' % (str(msg))
index f1d07fab5779325d29b0293747d9ef4624cf1ba6..fe2a4ed5ecc9e651655a1b0a0cb090ea7c30c5c0 100755 (executable)
@@ -284,6 +284,32 @@ tree "dists/proposed-updates/main"
    Packages::Extensions ".udeb";
    Contents " ";
 };
+"""
+    apt_trees["oldstable-proposed-updates"]="""
+tree "dists/oldstable-proposed-updates"
+{
+   FileList "/srv/ftp-master.debian.org/database/dists/oldstable-proposed-updates_$(SECTION)_binary-$(ARCH).list";
+   SourceFileList "/srv/ftp-master.debian.org/database/dists/oldstable-proposed-updates_$(SECTION)_source.list";
+   Sections "main contrib non-free";
+   Architectures "%(arch)s";
+   BinOverride "override.lenny.$(SECTION)";
+   ExtraOverride "override.lenny.extra.$(SECTION)";
+   SrcOverride "override.lenny.$(SECTION).src";
+   Contents " ";
+};
+"""
+    apt_trees["di"]["oldstable-proposed-updates"]="""
+tree "dists/oldstable-proposed-updates/main"
+{
+   FileList "/srv/ftp-master.debian.org/database/dists/oldstable-proposed-updates_main_$(SECTION)_binary-$(ARCH).list";
+   Sections "debian-installer";
+   Architectures "%(arch)s";
+   BinOverride "override.lenny.main.$(SECTION)";
+   SrcOverride "override.lenny.main.src";
+   BinCacheDB "packages-debian-installer-$(ARCH).db";
+   Packages::Extensions ".udeb";
+   Contents " ";
+};
 """
 
     cnf = Config()
index 4004662035ceb9abd89fa034bceab82c864537f4..2e28fb28e39207ea21bcb6bd05dd762ea3157c80 100755 (executable)
@@ -150,7 +150,7 @@ def print_sha1_files (tree, files):
 def print_sha256_files (tree, files):
     print_md5sha_files (tree, files, apt_pkg.sha256sum)
 
-def write_release_file (relpath, suite, component, origin, label, arch, version="", suite_suffix="", notautomatic=""):
+def write_release_file (relpath, suite, component, origin, label, arch, version="", suite_suffix="", notautomatic="", butautomaticupgrades=""):
     try:
         if os.access(relpath, os.F_OK):
             if os.stat(relpath).st_nlink > 1:
@@ -172,6 +172,8 @@ def write_release_file (relpath, suite, component, origin, label, arch, version=
     release.write("Label: %s\n" % (label))
     if notautomatic != "":
         release.write("NotAutomatic: %s\n" % (notautomatic))
+    if butautomaticupgrades != "":
+        release.write("ButAutomaticUpgrades: %s\n" % (butautomaticupgrades))
     release.write("Architecture: %s\n" % (arch))
     release.close()
 
@@ -237,6 +239,11 @@ def main ():
         else:
             notautomatic = ""
 
+        if suiteobj.butautomaticupgrades:
+            butautomaticupgrades = "yes"
+        else:
+            butautomaticupgrades = ""
+
         if SuiteBlock.has_key("Components"):
             components = SuiteBlock.ValueList("Components")
         else:
@@ -277,6 +284,8 @@ def main ():
 
         if notautomatic != "":
             out.write("NotAutomatic: %s\n" % (notautomatic))
+        if butautomaticupgrades != "":
+            out.write("ButAutomaticUpgrades: %s\n" % (butautomaticupgrades))
         out.write("Architectures: %s\n" % (" ".join([a.arch_string for a in architectures])))
         if components:
             out.write("Components: %s\n" % (" ".join(components)))
@@ -322,7 +331,7 @@ def main ():
                     else:
                         rel = "%s/binary-%s/Release" % (sec, arch)
                     relpath = Cnf["Dir::Root"]+tree+"/"+rel
-                    write_release_file(relpath, suite, sec, origin, label, arch, version, suite_suffix, notautomatic)
+                    write_release_file(relpath, suite, sec, origin, label, arch, version, suite_suffix, notautomatic, butautomaticupgrades)
                     files.append(rel)
                 gen_i18n_index(files, tree, sec)
 
@@ -337,7 +346,7 @@ def main ():
                         if arch != "source":  # always true
                             rel = "%s/%s/binary-%s/Release" % (dis, sec, arch)
                             relpath = Cnf["Dir::Root"]+tree+"/"+rel
-                            write_release_file(relpath, suite, dis, origin, label, arch, version, suite_suffix, notautomatic)
+                            write_release_file(relpath, suite, dis, origin, label, arch, version, suite_suffix, notautomatic, butautomaticupgrades)
                             files.append(rel)
                             for cfile in compressnames("tree::%s/%s" % (tree,dis),
                                 "Packages",
index 7aa7c6d65530df97d98801b1fd7d02262c2af6b0..928396c531d702e252f2da63f59df5795d24fab4 100755 (executable)
@@ -45,7 +45,7 @@ from daklib.dak_exceptions import DBUpdateError
 ################################################################################
 
 Cnf = None
-required_database_schema = 41
+required_database_schema = 42
 
 ################################################################################
 
index 14ed7faaa9ed9c8f5763294745a15f323fd28699..94884d5c6f1f92216ed878815673085e5049a795 100755 (executable)
@@ -2906,8 +2906,8 @@ class DBConn(object):
             # The following tables have primary keys but sqlalchemy
             # version 0.5 fails to reflect them correctly with database
             # versions before upgrade #41.
-            #'changes',
-            #'build_queue_files',
+            'changes',
+            'build_queue_files',
         )
 
         tables_no_primary = (
@@ -2921,8 +2921,8 @@ class DBConn(object):
             'suite_build_queue_copy',
             'udeb_contents',
             # see the comment above
-            'changes',
-            'build_queue_files',
+            #'changes',
+            #'build_queue_files',
         )
 
         views = (
index ae8fb1b990a64b22d527c8c60e183dce0d562057..57afc92cfbe0de7da171c79aeb3c6a47ac3851a8 100755 (executable)
@@ -31,9 +31,7 @@ export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
 
 # For debugging, you can override the path using
 # the WB_DB_DIR enviroment variable
-if [ -z "$WB_DB_DIR" ]; then
-       WB_DB_DIR=${scriptdir}/nfu
-fi
+WB_DB_DIR=${WB_DB_DIR:-${scriptdir}/nfu}
 
 for arch in $(dak admin s-a list-arch unstable); do
     wget -q http://buildd.debian.org/stats/$arch-all.txt -O ${WB_DB_DIR}/${arch}-all.txt