]> git.decadent.org.uk Git - dak.git/commitdiff
Merge branch 'master' into auto-decruft-passive
authorNiels Thykier <niels@thykier.net>
Thu, 11 Jun 2015 11:36:04 +0000 (13:36 +0200)
committerNiels Thykier <niels@thykier.net>
Thu, 11 Jun 2015 11:36:04 +0000 (13:36 +0200)
Conflicts:
dak/generate_filelist.py

82 files changed:
config/debian-security/cron.unchecked
config/debian-security/dak.conf
config/debian/cron.dinstall
config/debian/dak.conf
config/debian/dinstall.functions
dak/dak.py
dak/dakdb/update1.py [deleted file]
dak/dakdb/update10.py [deleted file]
dak/dakdb/update11.py [deleted file]
dak/dakdb/update12.py [deleted file]
dak/dakdb/update13.py [deleted file]
dak/dakdb/update14.py [deleted file]
dak/dakdb/update15.py [deleted file]
dak/dakdb/update16.py [deleted file]
dak/dakdb/update17.py [deleted file]
dak/dakdb/update18.py [deleted file]
dak/dakdb/update19.py [deleted file]
dak/dakdb/update2.py [deleted file]
dak/dakdb/update20.py [deleted file]
dak/dakdb/update21.py [deleted file]
dak/dakdb/update22.py [deleted file]
dak/dakdb/update23.py [deleted file]
dak/dakdb/update24.py [deleted file]
dak/dakdb/update25.py [deleted file]
dak/dakdb/update26.py [deleted file]
dak/dakdb/update27.py [deleted file]
dak/dakdb/update28.py [deleted file]
dak/dakdb/update29.py [deleted file]
dak/dakdb/update3.py [deleted file]
dak/dakdb/update30.py [deleted file]
dak/dakdb/update31.py [deleted file]
dak/dakdb/update32.py [deleted file]
dak/dakdb/update33.py [deleted file]
dak/dakdb/update34.py [deleted file]
dak/dakdb/update35.py [deleted file]
dak/dakdb/update36.py [deleted file]
dak/dakdb/update37.py [deleted file]
dak/dakdb/update38.py [deleted file]
dak/dakdb/update39.py [deleted file]
dak/dakdb/update4.py [deleted file]
dak/dakdb/update40.py [deleted file]
dak/dakdb/update41.py [deleted file]
dak/dakdb/update42.py [deleted file]
dak/dakdb/update43.py [deleted file]
dak/dakdb/update44.py [deleted file]
dak/dakdb/update45.py [deleted file]
dak/dakdb/update46.py [deleted file]
dak/dakdb/update47.py [deleted file]
dak/dakdb/update48.py [deleted file]
dak/dakdb/update49.py [deleted file]
dak/dakdb/update5.py [deleted file]
dak/dakdb/update50.py [deleted file]
dak/dakdb/update51.py [deleted file]
dak/dakdb/update52.py [deleted file]
dak/dakdb/update53.py [deleted file]
dak/dakdb/update54.py [deleted file]
dak/dakdb/update55.py [deleted file]
dak/dakdb/update56.py [deleted file]
dak/dakdb/update57.py [deleted file]
dak/dakdb/update58.py [deleted file]
dak/dakdb/update59.py [deleted file]
dak/dakdb/update6.py [deleted file]
dak/dakdb/update60.py [deleted file]
dak/dakdb/update61.py [deleted file]
dak/dakdb/update62.py [deleted file]
dak/dakdb/update63.py [deleted file]
dak/dakdb/update64.py [deleted file]
dak/dakdb/update65.py [deleted file]
dak/dakdb/update66.py [deleted file]
dak/dakdb/update67.py [deleted file]
dak/dakdb/update68.py [deleted file]
dak/dakdb/update7.py [deleted file]
dak/dakdb/update8.py [deleted file]
dak/dakdb/update9.py [deleted file]
dak/generate_packages_sources.py [deleted file]
dak/new_security_install.py
daklib/holding.py [deleted file]
daklib/lists.py [deleted file]
daklib/queue.py
docs/README.config
docs/README.stable-point-release
setup/dak-minimal.conf.template

index fc0f5b5ce59f557bfc191a6d7f164f19fb5df52a..7e2bb29ae4b3a5b5ec52e32dd58d6c9617d6fe28 100755 (executable)
@@ -85,7 +85,6 @@ ${scriptsdir}/update-buildd-archive ${base}/build-queues ${incoming}/debian-secu
 if [ "x${dopolicy}x" = "xtruex" ]; then
     # We had something approved from a policy queue, push out new archive
     dak dominate
-    #dak generate-filelist
     cd $configdir
     $configdir/map.sh
     dak generate-packages-sources2 -a security
index 901f9ac54cb833ec248637c59e5ab7739d177f96..e1869d3ba0986f2f96bdc589f6d208cc1a94ab75 100644 (file)
@@ -154,7 +154,6 @@ Dir
   Override "/srv/security-master.debian.org/scripts/override/";
   Upload "/srv/queued/ftpmaster/";
   TempPath "/srv/security-master.debian.org/tmp";
-  Holding "/srv/security-master.debian.org/queue/holding/";
   Done "/srv/security-master.debian.org/queue/done/";
   Reject "/srv/security-master.debian.org/queue/reject/";
 
index 701754caf722f02355d0deea8555d9df96cf89c6..311207af96fa99efae11ea755f516bac3b164fd8 100755 (executable)
@@ -251,14 +251,6 @@ GO=(
 )
 stage $GO
 
-GO=(
-    FUNC="filelist"
-    TIME="generate-filelist"
-    ARGS=""
-    ERR=""
-)
-#stage $GO
-
 GO=(
     FUNC="fingerprints"
     TIME="import-keyring"
index cf0ef40d8eda4f51b7c5dc75014730b6a2cc74ca..e5b696accc0874a0ddde2281a894f17ae2451e48 100644 (file)
@@ -221,7 +221,6 @@ Dir
   UrgencyLog "/srv/release.debian.org/britney/input/urgencies/";
   TempPath "/srv/ftp-master.debian.org/tmp/";
   BTSVersionTrack "/srv/ftp-master.debian.org/queue/bts_version_track/";
-  Holding "/srv/ftp-master.debian.org/queue/holding/";
   Done "/srv/ftp-master.debian.org/queue/done/";
   Reject "/srv/ftp-master.debian.org/queue/reject/";
 };
index 51ac4b97609503ba5db64acaeb62b179d5d72945..f1693a3292fffc7ae1d3a8f0be97b301c2ef6a84 100644 (file)
@@ -107,11 +107,6 @@ function dominate() {
     dak dominate
 }
 
-function filelist() {
-    log "Generating file lists for apt-ftparchive"
-    dak generate-filelist
-}
-
 function fingerprints() {
     log "Updating fingerprints"
     dak import-keyring -L /srv/keyring.debian.org/keyrings/debian-keyring.gpg
index 18be3cefc015764464ca38b57297f31be5ec6619..c6c979a72e0f6f944ac17734318821faaab96785 100755 (executable)
@@ -84,14 +84,10 @@ def init():
          "export a suite to a flat directory structure"),
         ("make-pkg-file-mapping",
          "Generate package <-> file mapping"),
-        ("generate-filelist",
-         "Generate file lists for apt-ftparchive"),
         ("generate-releases",
          "Generate Release files"),
-        ("generate-packages-sources",
-         "Generate Packages/Sources files"),
         ("generate-packages-sources2",
-         "Generate Packages/Sources files [directly from database]"),
+         "Generate Packages/Sources files"),
         ("contents",
          "Generate content files"),
         ("metadata",
diff --git a/dak/dakdb/update1.py b/dak/dakdb/update1.py
deleted file mode 100644 (file)
index 2194276..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Saner DM db schema
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@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
-
-################################################################################
-
-# <tomv_w> really, if we want to screw ourselves, let's find a better way.
-# <Ganneff> rm -rf /srv/ftp.debian.org
-
-################################################################################
-
-import psycopg2
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding DM fields to database"
-
-    try:
-        c = self.db.cursor()
-        c.execute("ALTER TABLE source ADD COLUMN dm_upload_allowed BOOLEAN DEFAULT 'no' NOT NULL;")
-        c.execute("ALTER TABLE keyrings ADD COLUMN debian_maintainer BOOLEAN DEFAULT 'false' NOT NULL;")
-
-        print "Migrating DM data to source table. This might take some time ..."
-
-        c.execute("UPDATE source SET dm_upload_allowed = 't' WHERE id IN (SELECT source FROM src_uploaders);")
-        c.execute("UPDATE config SET value = '1' WHERE name = 'db_revision'")
-
-        print "Migrating DM uids to normal uids"
-        c.execute("SELECT uid FROM uid WHERE uid  LIKE 'dm:%'")
-        rows = c.fetchall()
-        for r in rows:
-            uid = r[0]
-            c.execute("UPDATE uid SET uid = '%s' WHERE uid = '%s'" % (uid[3:], uid))
-
-        self.db.commit()
-
-        print "IMPORTANT: Set the debian_maintainer flag in the config file for keyrings that are DMs!"
-        print "           Failure to do so will result in DM's having full upload abilities!"
-        print "REMINDER: Remember to run the updated byhand-dm crontab to update Debian Maintainer information"
-        print ""
-        print "Pausing for five seconds ..."
-        time.sleep (5)
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy DM table updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update10.py b/dak/dakdb/update10.py
deleted file mode 100644 (file)
index 31c70d3..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add constraints to src_uploaders
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-
-################################################################################
-
-# <mhy> oh no, Ganneff has just corrected my english
-
-################################################################################
-
-import psycopg2
-import time
-from daklib.dak_exceptions import DBUpdateError
-from daklib.utils import get_conf
-
-################################################################################
-
-def do_update(self):
-    print "Add constraints to src_uploaders"
-    Cnf = get_conf()
-
-    try:
-        c = self.db.cursor()
-        # Deal with out-of-date src_uploaders entries
-        c.execute("DELETE FROM src_uploaders WHERE source NOT IN (SELECT id FROM source)")
-        c.execute("DELETE FROM src_uploaders WHERE maintainer NOT IN (SELECT id FROM maintainer)")
-        # Add constraints
-        c.execute("ALTER TABLE src_uploaders ADD CONSTRAINT src_uploaders_maintainer FOREIGN KEY (maintainer) REFERENCES maintainer(id) ON DELETE CASCADE")
-        c.execute("ALTER TABLE src_uploaders ADD CONSTRAINT src_uploaders_source FOREIGN KEY (source) REFERENCES source(id) ON DELETE CASCADE")
-        c.execute("UPDATE config SET value = '10' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update11.py b/dak/dakdb/update11.py
deleted file mode 100644 (file)
index 17001d3..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding process-new comments to the DB
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding process-new comments to the DB"
-
-    try:
-        c = self.db.cursor()
-        c.execute("""CREATE TABLE new_comments (
-                      id SERIAL PRIMARY KEY NOT NULL,
-                      package TEXT NOT NULL,
-                      version TEXT NOT NULL,
-                      comment TEXT NOT NULL,
-                      author TEXT NOT NULL
-                   )""")
-
-        c.execute("GRANT SELECT ON new_comments TO ftptrainee;")
-        c.execute("GRANT INSERT ON new_comments TO ftptrainee;")
-        c.execute("GRANT UPDATE ON new_comments TO ftptrainee;")
-        c.execute("GRANT SELECT ON new_comments TO ftpteam;")
-        c.execute("GRANT INSERT ON new_comments TO ftpteam;")
-        c.execute("GRANT UPDATE ON new_comments TO ftpteam;")
-        c.execute("GRANT ALL ON new_comments TO ftpmaster;")
-
-        c.execute("UPDATE config SET value = '11' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new comments update, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update12.py b/dak/dakdb/update12.py
deleted file mode 100644 (file)
index 21d44a4..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding a date field to the process-new notes
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding a date field to the process-new notes"
-
-    try:
-        c = self.db.cursor()
-        c.execute("ALTER TABLE new_comments ADD COLUMN notedate TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()")
-
-        c.execute("UPDATE config SET value = '12' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new update 12, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update13.py b/dak/dakdb/update13.py
deleted file mode 100644 (file)
index 1696e75..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding a trainee field to the process-new notes
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding a trainee field to the process-new notes"
-
-    try:
-        c = self.db.cursor()
-        c.execute("ALTER TABLE new_comments ADD COLUMN trainee BOOLEAN NOT NULL DEFAULT false")
-
-        c.execute("UPDATE config SET value = '13' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new update 13, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update14.py b/dak/dakdb/update14.py
deleted file mode 100644 (file)
index 575e5d2..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Make sure we always have primary keys
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding primary keys to various tables"
-
-    try:
-        c = self.db.cursor()
-        c.execute("ALTER TABLE content_associations ADD PRIMARY KEY (id)")
-        c.execute("ALTER TABLE override ADD PRIMARY KEY (suite, component, package, type)")
-        c.execute("ALTER TABLE pending_content_associations ADD PRIMARY KEY (id)")
-        c.execute("ALTER TABLE queue_build ADD PRIMARY KEY (suite, queue, filename)")
-        c.execute("ALTER TABLE suite_architectures ADD PRIMARY KEY (suite, architecture)")
-
-        c.execute("UPDATE config SET value = '14' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new update 14, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update15.py b/dak/dakdb/update15.py
deleted file mode 100644 (file)
index 7d6b52e..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding table for allowed source formats
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Raphael Hertzog <hertzog@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding tables listing allowed source formats"
-
-    try:
-        c = self.db.cursor()
-        c.execute("""
-            CREATE TABLE src_format (
-                    id SERIAL PRIMARY KEY,
-                    format_name TEXT NOT NULL,
-                    UNIQUE (format_name)
-            )
-        """)
-        c.execute("INSERT INTO src_format (format_name) VALUES('1.0')")
-        c.execute("INSERT INTO src_format (format_name) VALUES('3.0 (quilt)')")
-        c.execute("INSERT INTO src_format (format_name) VALUES('3.0 (native)')")
-
-        c.execute("""
-            CREATE TABLE suite_src_formats (
-                    suite INT4 NOT NULL REFERENCES suite(id),
-                    src_format INT4 NOT NULL REFERENCES src_format(id),
-                    PRIMARY KEY (suite, src_format)
-            )
-        """)
-
-        print "Authorize format 1.0 on all suites by default"
-        c.execute("SELECT id FROM suite")
-        suites = c.fetchall()
-        c.execute("SELECT id FROM src_format WHERE format_name = '1.0'")
-        formats = c.fetchall()
-        for s in suites:
-            for f in formats:
-                c.execute("INSERT INTO suite_src_formats (suite, src_format) VALUES(%s, %s)", (s[0], f[0]))
-
-        print "Authorize all other formats on tpu, unstable & experimental by default"
-        c.execute("SELECT id FROM suite WHERE suite_name IN ('testing-proposed-updates', 'unstable', 'experimental')")
-        suites = c.fetchall()
-        c.execute("SELECT id FROM src_format WHERE format_name != '1.0'")
-        formats = c.fetchall()
-        for s in suites:
-            for f in formats:
-                c.execute("INSERT INTO suite_src_formats (suite, src_format) VALUES(%s, %s)", (s[0], f[0]))
-
-        c.execute("UPDATE config SET value = '15' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply source format update 15, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update16.py b/dak/dakdb/update16.py
deleted file mode 100644 (file)
index 6cd6dc4..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding tables for key-based ACLs and blocks
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding tables for handling key-based ACLs and upload blocks"
-
-    try:
-        c = self.db.cursor()
-
-        # Fix up some older table permissions
-        c.execute("GRANT SELECT ON src_format TO public")
-        c.execute("GRANT ALL ON src_format TO ftpmaster")
-        c.execute("GRANT USAGE ON src_format_id_seq TO ftpmaster")
-
-        c.execute("GRANT SELECT ON suite_src_formats TO public")
-        c.execute("GRANT ALL ON suite_src_formats TO ftpmaster")
-
-        # Source ACLs table
-        print "Source ACLs table"
-        c.execute("""
-        CREATE TABLE source_acl (
-              id SERIAL PRIMARY KEY,
-              access_level TEXT UNIQUE NOT NULL
-        )
-        """)
-
-        ## Can upload all packages
-        c.execute("INSERT INTO source_acl (access_level) VALUES ('full')")
-        ## Can upload only packages marked as DM upload allowed
-        c.execute("INSERT INTO source_acl (access_level) VALUES ('dm')")
-
-        c.execute("GRANT SELECT ON source_acl TO public")
-        c.execute("GRANT ALL ON source_acl TO ftpmaster")
-        c.execute("GRANT USAGE ON source_acl_id_seq TO ftpmaster")
-
-        # Binary ACLs table
-        print "Binary ACLs table"
-        c.execute("""
-        CREATE TABLE binary_acl (
-              id SERIAL PRIMARY KEY,
-              access_level TEXT UNIQUE NOT NULL
-        )
-        """)
-
-        ## Can upload any architectures of binary packages
-        c.execute("INSERT INTO binary_acl (access_level) VALUES ('full')")
-        ## Can upload debs where architectures are based on the map table binary_acl_map
-        c.execute("INSERT INTO binary_acl (access_level) VALUES ('map')")
-
-        c.execute("GRANT SELECT ON binary_acl TO public")
-        c.execute("GRANT ALL ON binary_acl TO ftpmaster")
-        c.execute("GRANT USAGE ON binary_acl_id_seq TO ftpmaster")
-
-        # This is only used if binary_acl is 2 for the fingerprint concerned
-        c.execute("""
-        CREATE TABLE binary_acl_map (
-              id SERIAL PRIMARY KEY,
-              fingerprint_id INT4 REFERENCES fingerprint (id) NOT NULL,
-              architecture_id INT4 REFERENCES architecture (id) NOT NULL,
-
-              UNIQUE (fingerprint_id, architecture_id)
-        )""")
-
-        c.execute("GRANT SELECT ON binary_acl_map TO public")
-        c.execute("GRANT ALL ON binary_acl_map TO ftpmaster")
-        c.execute("GRANT USAGE ON binary_acl_map_id_seq TO ftpmaster")
-
-        ## NULL means no source upload access (i.e. any upload containing source
-        ## will be rejected)
-        c.execute("ALTER TABLE fingerprint ADD COLUMN source_acl_id INT4 REFERENCES source_acl(id) DEFAULT NULL")
-
-        ## NULL means no binary upload access
-        c.execute("ALTER TABLE fingerprint ADD COLUMN binary_acl_id INT4 REFERENCES binary_acl(id) DEFAULT NULL")
-
-        ## TRUE here means that if the person doesn't have binary upload permissions for
-        ## an architecture, we'll reject the .changes.  FALSE means that we'll simply
-        ## dispose of those particular binaries
-        c.execute("ALTER TABLE fingerprint ADD COLUMN binary_reject BOOLEAN NOT NULL DEFAULT TRUE")
-
-        # Blockage table (replaces the hard coded stuff we used to have in extensions)
-        print "Adding blockage table"
-        c.execute("""
-        CREATE TABLE upload_blocks (
-              id             SERIAL PRIMARY KEY,
-              source         TEXT NOT NULL,
-              version        TEXT DEFAULT NULL,
-              fingerprint_id INT4 REFERENCES fingerprint (id),
-              uid_id         INT4 REFERENCES uid (id),
-              reason         TEXT NOT NULL,
-
-              CHECK (fingerprint_id IS NOT NULL OR uid_id IS NOT NULL)
-        )""")
-
-        c.execute("GRANT SELECT ON upload_blocks TO public")
-        c.execute("GRANT ALL ON upload_blocks TO ftpmaster")
-        c.execute("GRANT USAGE ON upload_blocks_id_seq TO ftpmaster")
-
-        c.execute("ALTER TABLE keyrings ADD COLUMN default_source_acl_id INT4 REFERENCES source_acl (id) DEFAULT NULL")
-        c.execute("ALTER TABLE keyrings ADD COLUMN default_binary_acl_id INT4 REFERENCES binary_acl (id) DEFAULT NULL")
-        c.execute("ALTER TABLE keyrings ADD COLUMN default_binary_reject BOOLEAN NOT NULL DEFAULT TRUE")
-        # Set up keyring priorities
-        c.execute("ALTER TABLE keyrings ADD COLUMN priority INT4 NOT NULL DEFAULT 100")
-        # And then we don't need the DM stuff any more
-        c.execute("ALTER TABLE keyrings DROP COLUMN debian_maintainer")
-
-        # Default ACLs for keyrings
-        c.execute("""
-        CREATE TABLE keyring_acl_map (
-              id SERIAL PRIMARY KEY,
-              keyring_id      INT4 REFERENCES keyrings (id) NOT NULL,
-              architecture_id INT4 REFERENCES architecture (id) NOT NULL,
-
-              UNIQUE (keyring_id, architecture_id)
-        )""")
-
-        c.execute("GRANT SELECT ON keyring_acl_map TO public")
-        c.execute("GRANT ALL ON keyring_acl_map TO ftpmaster")
-        c.execute("GRANT USAGE ON keyring_acl_map_id_seq TO ftpmaster")
-
-        # Set up some default stuff; default to old behaviour
-        print "Setting up some defaults"
-
-        c.execute("""UPDATE keyrings SET default_source_acl_id = (SELECT id FROM source_acl WHERE access_level = 'full'),
-                                         default_binary_acl_id = (SELECT id FROM binary_acl WHERE access_level = 'full')""")
-
-        c.execute("""UPDATE keyrings SET default_source_acl_id = (SELECT id FROM source_acl WHERE access_level = 'dm'),
-                                         default_binary_acl_id = (SELECT id FROM binary_acl WHERE access_level = 'full')
-                                     WHERE name = 'debian-maintainers.gpg'""")
-
-        c.execute("""UPDATE keyrings SET priority = 90 WHERE name = 'debian-maintainers.gpg'""")
-
-        # Initialize the existing keys
-        c.execute("""UPDATE fingerprint SET binary_acl_id = (SELECT default_binary_acl_id FROM keyrings
-                                                              WHERE keyrings.id = fingerprint.keyring)""")
-
-        c.execute("""UPDATE fingerprint SET source_acl_id = (SELECT default_source_acl_id FROM keyrings
-                                                              WHERE keyrings.id = fingerprint.keyring)""")
-
-        print "Updating config version"
-        c.execute("UPDATE config SET value = '16' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply ACLs update (16), rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update17.py b/dak/dakdb/update17.py
deleted file mode 100644 (file)
index 493640e..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-adding a bin_contents table to hold lists of files contained in .debs and .udebs
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mike O'Connor <stew@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-
-    print "adding a bin_contents table to hold lists of files contained in .debs and .udebs"
-
-    try:
-        c = self.db.cursor()
-        c.execute("""CREATE TABLE bin_contents (
-        file text,
-        binary_id integer,
-        UNIQUE(file,binary_id))""" )
-
-        c.execute("""ALTER TABLE ONLY bin_contents
-        ADD CONSTRAINT bin_contents_bin_fkey
-        FOREIGN KEY (binary_id) REFERENCES binaries(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""CREATE INDEX ind_bin_contents_binary ON bin_contents(binary_id);""" )
-
-        c.execute("GRANT ALL ON bin_contents TO ftpmaster;")
-        c.execute("GRANT SELECT ON bin_contents TO public;")
-        c.execute("UPDATE config SET value = '17' WHERE name = 'db_revision'")
-
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new update 17, rollback issued. Error message : %s" % (str(msg)))
-
-
-
diff --git a/dak/dakdb/update18.py b/dak/dakdb/update18.py
deleted file mode 100644 (file)
index bdf2410..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding table to get rid of queue/done checks
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  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
-import time
-import os
-import datetime
-from daklib.dak_exceptions import DBUpdateError, InvalidDscError, ChangesUnicodeError
-from daklib.config import Config
-from daklib.changes import Changes
-from daklib.utils import parse_changes, warn, gpgv_get_status_output, process_gpgv_output
-
-################################################################################
-
-def check_signature (sig_filename, data_filename=""):
-    keyrings = [
-        "/home/joerg/keyring/keyrings/debian-keyring.gpg",
-        "/home/joerg/keyring/keyrings/debian-maintainers.gpg",
-        "/home/joerg/keyring/keyrings/debian-role-keys.gpg",
-        "/home/joerg/keyring/keyrings/emeritus-keyring.pgp",
-        "/home/joerg/keyring/keyrings/emeritus-keyring.gpg",
-        "/home/joerg/keyring/keyrings/removed-keys.gpg",
-        "/home/joerg/keyring/keyrings/removed-keys.pgp"
-        ]
-
-    keyringargs = " ".join(["--keyring %s" % x for x in keyrings ])
-
-    # Build the command line
-    status_read, status_write = os.pipe()
-    cmd = "gpgv --status-fd %s %s %s" % (status_write, keyringargs, sig_filename)
-
-    # Invoke gpgv on the file
-    (output, status, exit_status) = gpgv_get_status_output(cmd, status_read, status_write)
-
-    # Process the status-fd output
-    (keywords, internal_error) = process_gpgv_output(status)
-
-    # If we failed to parse the status-fd output, let's just whine and bail now
-    if internal_error:
-        warn("Couldn't parse signature")
-        return None
-
-    # usually one would check for bad things here. We, however, do not care.
-
-    # Next check gpgv exited with a zero return code
-    if exit_status:
-        warn("Couldn't parse signature")
-        return None
-
-    # Sanity check the good stuff we expect
-    if not keywords.has_key("VALIDSIG"):
-        warn("Couldn't parse signature")
-    else:
-        args = keywords["VALIDSIG"]
-        if len(args) < 1:
-            warn("Couldn't parse signature")
-        else:
-            fingerprint = args[0]
-
-    return fingerprint
-
-################################################################################
-
-def do_update(self):
-    print "Adding known_changes table"
-
-    try:
-        c = self.db.cursor()
-        c.execute("""
-                    CREATE TABLE known_changes (
-                    id SERIAL PRIMARY KEY,
-                    changesname TEXT NOT NULL,
-                    seen TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now(),
-                    source TEXT NOT NULL,
-                    binaries TEXT NOT NULL,
-                    architecture TEXT NOT NULL,
-                    version TEXT NOT NULL,
-                    distribution TEXT NOT NULL,
-                    urgency TEXT NOT NULL,
-                    maintainer TEXT NOT NULL,
-                    fingerprint TEXT NOT NULL,
-                    changedby TEXT NOT NULL,
-                    date TEXT NOT NULL,
-                    UNIQUE (changesname)
-            )
-        """)
-        c.execute("CREATE INDEX changesname_ind ON known_changes(changesname)")
-        c.execute("CREATE INDEX changestimestamp_ind ON known_changes(seen)")
-        c.execute("CREATE INDEX changessource_ind ON known_changes(source)")
-        c.execute("CREATE INDEX changesdistribution_ind ON known_changes(distribution)")
-        c.execute("CREATE INDEX changesurgency_ind ON known_changes(urgency)")
-
-        c.execute("GRANT ALL ON known_changes TO ftpmaster;")
-        c.execute("GRANT SELECT ON known_changes TO public;")
-
-        c.execute("UPDATE config SET value = '18' WHERE name = 'db_revision'")
-        self.db.commit()
-
-        print "Done. Now looking for old changes files"
-        count = 0
-        failure = 0
-        cnf = Config()
-        for directory in [ "Accepted", "Byhand", "Done", "New", "ProposedUpdates", "OldProposedUpdates" ]:
-            checkdir = cnf["Dir::Queue::%s" % (directory) ]
-            if os.path.exists(checkdir):
-                print "Looking into %s" % (checkdir)
-                for filename in os.listdir(checkdir):
-                    if not filename.endswith(".changes"):
-                        # Only interested in changes files.
-                        continue
-                    try:
-                        count += 1
-                        print "Directory %s, file %7d, failures %3d. (%s)" % (directory, count, failure, filename)
-                        changes = Changes()
-                        changes.changes_file = filename
-                        changesfile = os.path.join(checkdir, filename)
-                        changes.changes = parse_changes(changesfile, signing_rules=-1)
-                        changes.changes["fingerprint"] = check_signature(changesfile)
-                        changes.add_known_changes(directory)
-                    except InvalidDscError as line:
-                        warn("syntax error in .dsc file '%s', line %s." % (f, line))
-                        failure += 1
-                    except ChangesUnicodeError:
-                        warn("found invalid changes file, not properly utf-8 encoded")
-                        failure += 1
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply knownchanges update 18, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update19.py b/dak/dakdb/update19.py
deleted file mode 100644 (file)
index 61e6070..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Move to using the C version of debversion
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-import time
-import os
-import datetime
-import traceback
-
-from daklib.dak_exceptions import DBUpdateError
-from daklib.config import Config
-
-################################################################################
-
-def do_update(self):
-    print "Converting database to use new C based debversion type"
-
-    try:
-        c = self.db.cursor()
-
-        print "Temporarily converting columns to TEXT"
-        c.execute("ALTER TABLE binaries ALTER COLUMN version TYPE TEXT")
-        c.execute("ALTER TABLE source ALTER COLUMN version TYPE TEXT")
-        c.execute("ALTER TABLE upload_blocks ALTER COLUMN version TYPE TEXT")
-        c.execute("ALTER TABLE pending_content_associations ALTER COLUMN version TYPE TEXT")
-
-        print "Dropping old debversion type"
-        c.execute("DROP OPERATOR >(debversion, debversion)")
-        c.execute("DROP OPERATOR <(debversion, debversion)")
-        c.execute("DROP OPERATOR <=(debversion, debversion)")
-        c.execute("DROP OPERATOR >=(debversion, debversion)")
-        c.execute("DROP OPERATOR =(debversion, debversion)")
-        c.execute("DROP OPERATOR <>(debversion, debversion)")
-        c.execute("DROP FUNCTION debversion_eq(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_ge(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_gt(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_le(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_lt(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_ne(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_compare(debversion,debversion)")
-        c.execute("DROP FUNCTION debversion_revision(debversion)")
-        c.execute("DROP FUNCTION debversion_version(debversion)")
-        c.execute("DROP FUNCTION debversion_epoch(debversion)")
-        c.execute("DROP FUNCTION debversion_split(debversion)")
-        c.execute("DROP TYPE debversion")
-
-        # URGH - kill me now
-        print "Importing new debversion type"
-        f = open('/usr/share/postgresql/8.4/contrib/debversion.sql', 'r')
-        cmds = []
-        curcmd = ''
-        for j in f.readlines():
-            j = j.replace('\t', '').replace('\n', '').split('--')[0]
-            if not j.startswith('--'):
-                jj = j.split(';')
-                curcmd += " " + jj[0]
-                if len(jj) > 1:
-                    for jjj in jj[1:]:
-                        if jjj.strip() == '':
-                            cmds.append(curcmd)
-                            curcmd = ''
-                        else:
-                            curcmd += " " + jjj
-
-        for cm in cmds:
-            c.execute(cm)
-
-        print "Converting columns to new debversion type"
-        c.execute("ALTER TABLE binaries ALTER COLUMN version TYPE debversion")
-        c.execute("ALTER TABLE source ALTER COLUMN version TYPE debversion")
-        c.execute("ALTER TABLE upload_blocks ALTER COLUMN version TYPE debversion")
-        c.execute("ALTER TABLE pending_content_associations ALTER COLUMN version TYPE debversion")
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '19' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply debversion update 19, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update2.py b/dak/dakdb/update2.py
deleted file mode 100644 (file)
index 0d9d387..0000000
+++ /dev/null
@@ -1,401 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-debversion
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@debian.org>
-@copyright: 2008  Roger Leigh <rleigh@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Note: to be able to enable the the PL/Perl (plperl) procedural language, we do"
-    print "need postgresql-plperl-$postgres-version installed. Make sure that this is the"
-    print "case before you continue. Interrupt if it isn't, sleeping 5 seconds now."
-    print "(We need to be database superuser for this to work!)"
-    time.sleep (5)
-
-    try:
-        c = self.db.cursor()
-
-        print "Enabling PL/Perl language"
-        c.execute("CREATE LANGUAGE plperl;")
-        c.execute("CREATE LANGUAGE plpgsql;")
-
-        print "Adding debversion type to database."
-
-# Not present in all databases, maybe PL/Perl version-dependent?
-#        c.execute("SET SESSION plperl.use_strict TO 't';")
-
-        c.execute("CREATE DOMAIN debversion AS TEXT;")
-        c.execute("COMMENT ON DOMAIN debversion IS 'Debian package version number';")
-
-        c.execute("""ALTER DOMAIN debversion
-                     ADD CONSTRAINT debversion_syntax
-                     CHECK (VALUE !~ '[^-+:.0-9a-zA-Z~]');""")
-
-        # From Dpkg::Version::parseversion
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_split (debversion)
-  RETURNS text[] AS $$
-    my $ver = shift;
-    my %verhash;
-    if ($ver =~ /:/)
-    {
-        $ver =~ /^(\d+):(.+)/ or die "bad version number '$ver'";
-        $verhash{epoch} = $1;
-        $ver = $2;
-    }
-    else
-    {
-        $verhash{epoch} = 0;
-    }
-    if ($ver =~ /(.+)-(.*)$/)
-    {
-        $verhash{version} = $1;
-        $verhash{revision} = $2;
-    }
-    else
-    {
-        $verhash{version} = $ver;
-        $verhash{revision} = 0;
-    }
-
-    return [$verhash{'epoch'}, $verhash{'version'}, $verhash{'revision'}];
-$$
-  LANGUAGE plperl
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_split (debversion)
-                   IS 'Split debian version into epoch, upstream version and revision';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_epoch (version debversion)
-  RETURNS text AS $$
-DECLARE
-  split text[];
-BEGIN
-  split := debversion_split(version);
-  RETURN split[1];
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;
-COMMENT ON FUNCTION debversion_epoch (debversion)
-  IS 'Get debian version epoch';
-
-CREATE OR REPLACE FUNCTION debversion_version (version debversion)
-  RETURNS text AS $$
-DECLARE
-  split text[];
-BEGIN
-  split := debversion_split(version);
-  RETURN split[2];
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_version (debversion)
-                   IS 'Get debian version upstream version';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_revision (version debversion)
-  RETURNS text AS $$
-DECLARE
-  split text[];
-BEGIN
-  split := debversion_split(version);
-  RETURN split[3];
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_revision (debversion)
-                   IS 'Get debian version revision';""")
-
-# From Dpkg::Version::parseversion
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_compare_single (version1 text, version2 text)
-  RETURNS integer AS $$
-     sub order{
-         my ($x) = @_;
-         ##define order(x) ((x) == '~' ? -1 \
-         #           : cisdigit((x)) ? 0 \
-         #           : !(x) ? 0 \
-         #           : cisalpha((x)) ? (x) \
-         #           : (x) + 256)
-         # This comparison is out of dpkg's order to avoid
-         # comparing things to undef and triggering warnings.
-         if (not defined $x or not length $x) {
-              return 0;
-         }
-         elsif ($x eq '~') {
-              return -1;
-         }
-         elsif ($x =~ /^\d$/) {
-              return 0;
-         }
-         elsif ($x =~ /^[A-Z]$/i) {
-              return ord($x);
-         }
-         else {
-              return ord($x) + 256;
-         }
-     }
-
-     sub next_elem(\@){
-         my $a = shift;
-         return @{$a} ? shift @{$a} : undef;
-     }
-     my ($val, $ref) = @_;
-     $val = "" if not defined $val;
-     $ref = "" if not defined $ref;
-     my @val = split //,$val;
-     my @ref = split //,$ref;
-     my $vc = next_elem @val;
-     my $rc = next_elem @ref;
-     while (defined $vc or defined $rc) {
-         my $first_diff = 0;
-         while ((defined $vc and $vc !~ /^\d$/) or
-                (defined $rc and $rc !~ /^\d$/)) {
-              my $vo = order($vc); my $ro = order($rc);
-              # Unlike dpkg's verrevcmp, we only return 1 or -1 here.
-              return (($vo - $ro > 0) ? 1 : -1) if $vo != $ro;
-              $vc = next_elem @val; $rc = next_elem @ref;
-         }
-         while (defined $vc and $vc eq '0') {
-              $vc = next_elem @val;
-         }
-         while (defined $rc and $rc eq '0') {
-              $rc = next_elem @ref;
-         }
-         while (defined $vc and $vc =~ /^\d$/ and
-                defined $rc and $rc =~ /^\d$/) {
-              $first_diff = ord($vc) - ord($rc) if !$first_diff;
-              $vc = next_elem @val; $rc = next_elem @ref;
-         }
-         return 1 if defined $vc and $vc =~ /^\d$/;
-         return -1 if defined $rc and $rc =~ /^\d$/;
-         return (($first_diff  > 0) ? 1 : -1) if $first_diff;
-     }
-     return 0;
-$$
-  LANGUAGE plperl
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_compare_single (text, text)
-                   IS 'Compare upstream or revision parts of Debian versions';""")
-
-# Logic only derived from Dpkg::Version::parseversion
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_compare (version1 debversion, version2 debversion)
-  RETURNS integer AS $$
-DECLARE
-  split1 text[];
-  split2 text[];
-  result integer;
-BEGIN
-  result := 0;
-  split1 := debversion_split(version1);
-  split2 := debversion_split(version2);
-
-  -- RAISE NOTICE 'Version 1: %', version1;
-  -- RAISE NOTICE 'Version 2: %', version2;
-  -- RAISE NOTICE 'Split 1: %', split1;
-  -- RAISE NOTICE 'Split 2: %', split2;
-
-  IF split1[1] > split2[1] THEN
-    result := 1;
-  ELSIF split1[1] < split2[1] THEN
-    result := -1;
-  ELSE
-    result := debversion_compare_single(split1[2], split2[2]);
-    IF result = 0 THEN
-      result := debversion_compare_single(split1[3], split2[3]);
-    END IF;
-  END IF;
-
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_compare (debversion, debversion)
-  IS 'Compare Debian versions';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_eq (version1 debversion, version2 debversion)
-  RETURNS boolean AS $$
-DECLARE
-  comp integer;
-  result boolean;
-BEGIN
-  comp := debversion_compare(version1, version2);
-  result := comp = 0;
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_eq (debversion, debversion)
-  IS 'debversion equal';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_ne (version1 debversion, version2 debversion)
-  RETURNS boolean AS $$
-DECLARE
-  comp integer;
-  result boolean;
-BEGIN
-  comp := debversion_compare(version1, version2);
-  result := comp <> 0;
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_ne (debversion, debversion)
-  IS 'debversion not equal';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_lt (version1 debversion, version2 debversion)
-  RETURNS boolean AS $$
-DECLARE
-  comp integer;
-  result boolean;
-BEGIN
-  comp := debversion_compare(version1, version2);
-  result := comp < 0;
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_lt (debversion, debversion)
-                   IS 'debversion less-than';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_gt (version1 debversion, version2 debversion) RETURNS boolean AS $$
-DECLARE
-  comp integer;
-  result boolean;
-BEGIN
-  comp := debversion_compare(version1, version2);
-  result := comp > 0;
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_gt (debversion, debversion)
-                   IS 'debversion greater-than';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_le (version1 debversion, version2 debversion)
-  RETURNS boolean AS $$
-DECLARE
-  comp integer;
-  result boolean;
-BEGIN
-  comp := debversion_compare(version1, version2);
-  result := comp <= 0;
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_le (debversion, debversion)
-                   IS 'debversion less-than-or-equal';""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION debversion_ge (version1 debversion, version2 debversion)
-  RETURNS boolean AS $$
-DECLARE
-  comp integer;
-  result boolean;
-BEGIN
-  comp := debversion_compare(version1, version2);
-  result := comp >= 0;
-  RETURN result;
-END;
-$$
-  LANGUAGE plpgsql
-  IMMUTABLE STRICT;""")
-        c.execute("""COMMENT ON FUNCTION debversion_ge (debversion, debversion)
-                   IS 'debversion greater-than-or-equal';""")
-
-        c.execute("""CREATE OPERATOR = (
-                   PROCEDURE = debversion_eq,
-                   LEFTARG = debversion,
-                   RIGHTARG = debversion,
-                   COMMUTATOR = =,
-                   NEGATOR = !=);""")
-        c.execute("""COMMENT ON OPERATOR = (debversion, debversion)
-                   IS 'debversion equal';""")
-
-        c.execute("""CREATE OPERATOR != (
-                   PROCEDURE = debversion_eq,
-                   LEFTARG = debversion,
-                   RIGHTARG = debversion,
-                   COMMUTATOR = !=,
-                   NEGATOR = =);""")
-        c.execute("""COMMENT ON OPERATOR != (debversion, debversion)
-                   IS 'debversion not equal';""")
-
-        c.execute("""CREATE OPERATOR < (
-                   PROCEDURE = debversion_lt,
-                   LEFTARG = debversion,
-                   RIGHTARG = debversion,
-                   COMMUTATOR = >,
-                   NEGATOR = >=);""")
-        c.execute("""COMMENT ON OPERATOR < (debversion, debversion)
-                   IS 'debversion less-than';""")
-
-        c.execute("""CREATE OPERATOR > (
-                   PROCEDURE = debversion_gt,
-                   LEFTARG = debversion,
-                   RIGHTARG = debversion,
-                   COMMUTATOR = <,
-                   NEGATOR = >=);""")
-        c.execute("""COMMENT ON OPERATOR > (debversion, debversion)
-                   IS 'debversion greater-than';""")
-
-        c.execute("""CREATE OPERATOR <= (
-                   PROCEDURE = debversion_le,
-                   LEFTARG = debversion,
-                   RIGHTARG = debversion,
-                   COMMUTATOR = >=,
-                   NEGATOR = >);""")
-        c.execute("""COMMENT ON OPERATOR <= (debversion, debversion)
-                   IS 'debversion less-than-or-equal';""")
-
-        c.execute("""CREATE OPERATOR >= (
-                   PROCEDURE = debversion_ge,
-                   LEFTARG = debversion,
-                   RIGHTARG = debversion,
-                   COMMUTATOR = <=,
-                   NEGATOR = <);""")
-        c.execute("""COMMENT ON OPERATOR >= (debversion, debversion)
-                   IS 'debversion greater-than-or-equal';""")
-
-        c.execute("ALTER TABLE source ALTER COLUMN version TYPE debversion;")
-        c.execute("ALTER TABLE binaries ALTER COLUMN version TYPE debversion;")
-
-        c.execute("UPDATE config SET value = '2' WHERE name = 'db_revision'")
-
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update20.py b/dak/dakdb/update20.py
deleted file mode 100644 (file)
index 0e8ac9d..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add policy queue handling support
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-import time
-import os
-import datetime
-import traceback
-
-from daklib.dak_exceptions import DBUpdateError
-from daklib.config import Config
-
-################################################################################
-
-def do_update(self):
-    print "Updating use of queue table"
-
-    try:
-        c = self.db.cursor()
-
-        cnf = Config()
-
-        print "Adding path to queue table"
-        c.execute("ALTER TABLE queue ADD COLUMN path TEXT")
-        c.execute("SELECT * FROM queue")
-        rows = c.fetchall()
-        seenqueues = {}
-        for row in rows:
-            dir = cnf["Dir::Queue::%s" % row[1]].rstrip('/')
-            seenqueues[row[1].lower()] = 1
-            print "Setting %s queue to use path %s" % (row[1], dir)
-            c.execute("UPDATE queue SET path = %s WHERE id = %s", (dir, row[0]))
-
-        print "Adding missing queues to the queue table"
-        for q in cnf.subtree("Dir::Queue").keys():
-            qname = q.lower()
-            if qname in seenqueues.keys():
-                continue
-            if qname in ["done", "holding", "reject", "newstage", "btsversiontrack"]:
-                print "Skipping queue %s" % qname
-                continue
-            pth = cnf["Dir::Queue::%s" % qname].rstrip('/')
-            if not os.path.exists(pth):
-                print "Skipping %s as %s does not exist" % (qname, pth)
-                continue
-
-            print "Adding %s queue with path %s" % (qname, pth)
-            c.execute("INSERT INTO queue (queue_name, path) VALUES (%s, %s)", (qname, pth))
-            seenqueues[qname] = 1
-
-        print "Adding queue and approved_for columns to known_changes"
-        c.execute("ALTER TABLE known_changes ADD COLUMN in_queue INT4 REFERENCES queue(id) DEFAULT NULL")
-        c.execute("ALTER TABLE known_changes ADD COLUMN approved_for INT4 REFERENCES queue(id) DEFAULT NULL")
-
-        print "Adding policy queue column to suite table"
-        c.execute("ALTER TABLE suite DROP COLUMN policy_engine")
-        c.execute("ALTER TABLE suite ADD COLUMN policy_queue_id INT4 REFERENCES queue(id) DEFAULT NULL")
-        # Handle some of our common cases automatically
-        if seenqueues.has_key('proposedupdates'):
-            c.execute("""UPDATE suite SET policy_queue_id = (SELECT id FROM queue WHERE queue_name = 'proposedupdates')
-                                      WHERE suite_name = 'proposed-updates'""")
-
-        if seenqueues.has_key('oldproposedupdates'):
-            c.execute("""UPDATE suite SET policy_queue_id = (SELECT id FROM queue WHERE queue_name = 'oldproposedupdates')
-                                      WHERE suite_name = 'oldstable-proposed-updates'""")
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '20' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply debversion update 20, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update21.py b/dak/dakdb/update21.py
deleted file mode 100644 (file)
index 41cef6d..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Modify queue autobuild support
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-import time
-import os
-import datetime
-import traceback
-
-from daklib.dak_exceptions import DBUpdateError
-from daklib.config import Config
-
-################################################################################
-
-def do_update(self):
-    print "Updating queue_build table"
-
-    try:
-        c = self.db.cursor()
-
-        cnf = Config()
-
-        print "Adding copy_files field to queue table"
-        c.execute("ALTER TABLE queue ADD copy_pool_files BOOL NOT NULL DEFAULT FALSE")
-
-        print "Adding queue_files table"
-
-        c.execute("""CREATE TABLE queue_files (
-    id            SERIAL PRIMARY KEY,
-    queueid       INT4 NOT NULL REFERENCES queue(id) ON DELETE RESTRICT,
-    insertdate    TIMESTAMP NOT NULL DEFAULT now(),
-    lastused      TIMESTAMP DEFAULT NULL,
-    filename      TEXT NOT NULL,
-    fileid        INT4 REFERENCES files(id) ON DELETE CASCADE)""")
-
-        c.execute("""SELECT queue_build.filename, queue_build.last_used, queue_build.queue
-                       FROM queue_build""")
-
-        for r in c.fetchall():
-            print r[0]
-            filename = r[0]
-            last_used = r[1]
-            queue = r[2]
-            try:
-                endlink = os.readlink(filename)
-                c.execute("SELECT files.id FROM files WHERE filename LIKE '%%%s'" % endlink[endlink.rindex('/')+1:])
-                f = c.fetchone()
-                c.execute("""INSERT INTO queue_files (queueid, lastused, filename, fileid) VALUES
-                                                     (%s, now(), %s, %s)""", (queue, filename[filename.rindex('/')+1:], f[0]))
-            except OSError as e:
-                print "Can't find file %s (%s)" % (filename, e)
-
-        print "Dropping old queue_build table"
-        c.execute("DROP TABLE queue_build")
-
-        print "Adding changes_pending_files table"
-        c.execute("""CREATE TABLE changes_pending_files (
-                        id           SERIAL PRIMARY KEY,
-                        changeid     INT4 NOT NULL REFERENCES known_changes(id) ON DELETE CASCADE,
-                        filename     TEXT NOT NULL,
-                        source       BOOL NOT NULL DEFAULT FALSE,
-                        filesize     BIGINT NOT NULL,
-                        md5sum       TEXT NOT NULL,
-                        sha1sum      TEXT NOT NULL,
-                        sha256sum    TEXT NOT NULL)""")
-
-
-        print "Adding changes_pool_files table"
-        c.execute("""CREATE TABLE changes_pool_files (
-                        changeid     INT4 NOT NULL REFERENCES known_changes(id) ON DELETE CASCADE,
-                        fileid       INT4 NOT NULL REFERENCES files(id) ON DELETE RESTRICT,
-
-                        PRIMARY KEY (changeid, fileid))""")
-
-        print "Adding suite_queue_copy table"
-        c.execute("""CREATE TABLE suite_queue_copy (
-                        suite        INT4 NOT NULL REFERENCES suite(id),
-                        queue        INT4 NOT NULL REFERENCES queue(id),
-
-                        PRIMARY KEY (suite, queue))""")
-
-        # Link all suites from accepted
-        c.execute("""SELECT suite.id FROM suite""")
-        for s in c.fetchall():
-            c.execute("""INSERT INTO suite_queue_copy (suite, queue) VALUES (%s, (SELECT id FROM queue WHERE queue_name = 'accepted'))""", s)
-
-        # Parse the config and add any buildd stuff
-        cnf = Config()
-        c.execute("""INSERT INTO queue (queue_name, path) VALUES ('buildd', '%s')""" % cnf["Dir::QueueBuild"].rstrip('/'))
-
-        for s in cnf.value_list("Dinstall::QueueBuildSuites"):
-            c.execute("""INSERT INTO suite_queue_copy (suite, queue)
-                              VALUES ( (SELECT id FROM suite WHERE suite_name = '%s'),
-                                       (SELECT id FROM queue WHERE queue_name = 'buildd'))""" % s.lower())
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '21' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply queue_build 21, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update22.py b/dak/dakdb/update22.py
deleted file mode 100644 (file)
index 5c852c6..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Clean up queue SQL
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-import time
-import os
-import datetime
-import traceback
-
-from daklib.dak_exceptions import DBUpdateError
-from daklib.config import Config
-
-################################################################################
-
-def do_update(self):
-    print "Splitting up queues and fixing general design mistakes"
-
-    try:
-        c = self.db.cursor()
-
-        cnf = Config()
-
-        print "Adding build_queue table"
-        c.execute("""CREATE TABLE build_queue (
-                            id          SERIAL PRIMARY KEY,
-                            queue_name  TEXT NOT NULL UNIQUE,
-                            path        TEXT NOT NULL,
-                            copy_files  BOOL DEFAULT FALSE NOT NULL)""")
-
-        print "Adding policy_queue table"
-        c.execute("""CREATE TABLE policy_queue (
-                            id           SERIAL PRIMARY KEY,
-                            queue_name   TEXT NOT NULL UNIQUE,
-                            path         TEXT NOT NULL,
-                            perms        CHAR(4) NOT NULL DEFAULT '0660' CHECK (perms SIMILAR TO '^[0-7][0-7][0-7][0-7]$'),
-                            change_perms CHAR(4) NOT NULL DEFAULT '0660' CHECK (change_perms SIMILAR TO '^[0-7][0-7][0-7][0-7]$')
-                            )""")
-
-        print "Copying queues"
-        queues = {}
-        c.execute("""SELECT queue.id, queue.queue_name, queue.path, queue.copy_pool_files FROM queue""")
-
-        for q in c.fetchall():
-            queues[q[0]] = q[1]
-            if q[1] in ['accepted', 'buildd', 'embargoed', 'unembargoed']:
-                # Move to build_queue_table
-                c.execute("""INSERT INTO build_queue (queue_name, path, copy_files)
-                                   VALUES ('%s', '%s', '%s')""" % (q[1], q[2], q[3]))
-
-            else:
-                # Move to policy_queue_table
-                c.execute("""INSERT INTO policy_queue (queue_name, path)
-                                   VALUES ('%s', '%s')""" % (q[1], q[2]))
-
-
-        print "Fixing up build_queue_files"
-        c.execute("""ALTER TABLE queue_files DROP CONSTRAINT queue_files_queueid_fkey""")
-        c.execute("""ALTER TABLE queue_files RENAME TO build_queue_files""")
-        c.execute("""ALTER TABLE build_queue_files RENAME COLUMN queueid TO build_queue_id""")
-
-        c.execute("""UPDATE build_queue_files
-                        SET build_queue_id = (SELECT build_queue.id FROM build_queue
-                                               WHERE build_queue.queue_name =
-                                                (SELECT queue.queue_name FROM queue
-                                                  WHERE queue.id = build_queue_files.build_queue_id))""")
-
-        c.execute("""ALTER TABLE build_queue_files
-                       ADD CONSTRAINT build_queue_files_build_queue_id_fkey
-                       FOREIGN KEY (build_queue_id)
-                       REFERENCES build_queue(id)
-                       ON DELETE CASCADE""")
-
-
-        c.execute("""ALTER TABLE suite DROP CONSTRAINT suite_policy_queue_id_fkey""")
-
-        c.execute("""UPDATE suite
-    SET policy_queue_id = (SELECT policy_queue.id FROM policy_queue
-                             WHERE policy_queue.queue_name =
-                              (SELECT queue.queue_name FROM queue
-                               WHERE queue.id = suite.policy_queue_id))""")
-
-        c.execute("""ALTER TABLE suite
-                       ADD CONSTRAINT suite_policy_queue_fkey
-                       FOREIGN KEY (policy_queue_id)
-                       REFERENCES policy_queue (id)
-                       ON DELETE RESTRICT""")
-
-        c.execute("""ALTER TABLE known_changes DROP CONSTRAINT known_changes_approved_for_fkey""")
-        c.execute("""ALTER TABLE known_changes DROP CONSTRAINT known_changes_in_queue_fkey""")
-
-        c.execute("""UPDATE known_changes
-    SET in_queue = (SELECT policy_queue.id FROM policy_queue
-                             WHERE policy_queue.queue_name =
-                              (SELECT queue.queue_name FROM queue
-                               WHERE queue.id = known_changes.in_queue))""")
-
-        c.execute("""ALTER TABLE known_changes
-                       ADD CONSTRAINT known_changes_in_queue_fkey
-                       FOREIGN KEY (in_queue)
-                       REFERENCES policy_queue (id)
-                       ON DELETE RESTRICT""")
-
-
-
-        c.execute("""UPDATE known_changes
-    SET approved_for = (SELECT policy_queue.id FROM policy_queue
-                               WHERE policy_queue.queue_name =
-                                (SELECT queue.queue_name FROM queue
-                                  WHERE queue.id = known_changes.approved_for))""")
-
-        c.execute("""ALTER TABLE known_changes
-                       ADD CONSTRAINT known_changes_approved_for_fkey
-                       FOREIGN KEY (in_queue)
-                       REFERENCES policy_queue (id)
-                       ON DELETE RESTRICT""")
-
-        c.execute("""ALTER TABLE suite_queue_copy RENAME TO suite_build_queue_copy""")
-
-        c.execute("""ALTER TABLE suite_build_queue_copy DROP CONSTRAINT suite_queue_copy_queue_fkey""")
-
-        c.execute("""ALTER TABLE suite_build_queue_copy RENAME COLUMN queue TO build_queue_id""")
-
-        c.execute("""UPDATE suite_build_queue_copy
-    SET build_queue_id = (SELECT build_queue.id FROM build_queue
-                                 WHERE build_queue.queue_name =
-                                (SELECT queue.queue_name FROM queue
-                                  WHERE queue.id = suite_build_queue_copy.build_queue_id))""")
-
-        c.execute("""ALTER TABLE suite_build_queue_copy
-                       ADD CONSTRAINT suite_build_queue_copy_build_queue_id_fkey
-                       FOREIGN KEY (build_queue_id)
-                       REFERENCES build_queue (id)
-                       ON DELETE RESTRICT""")
-
-        c.execute("""DROP TABLE changes_pending_files""")
-
-        c.execute("""CREATE TABLE changes_pending_files (
-                            id             SERIAL PRIMARY KEY,
-                            filename       TEXT NOT NULL UNIQUE,
-                            size           BIGINT NOT NULL,
-                            md5sum         TEXT NOT NULL,
-                            sha1sum        TEXT NOT NULL,
-                            sha256sum      TEXT NOT NULL )""")
-
-        c.execute("""CREATE TABLE changes_pending_files_map (
-                            file_id        INT4 NOT NULL REFERENCES changes_pending_files (id),
-                            change_id      INT4 NOT NULL REFERENCES known_changes (id),
-
-                            PRIMARY KEY (file_id, change_id))""")
-
-        c.execute("""CREATE TABLE changes_pending_source (
-                            id             SERIAL PRIMARY KEY,
-                            change_id      INT4 NOT NULL REFERENCES known_changes (id),
-                            source         TEXT NOT NULL,
-                            version        DEBVERSION NOT NULL,
-                            maintainer_id  INT4 NOT NULL REFERENCES maintainer (id),
-                            changedby_id   INT4 NOT NULL REFERENCES maintainer (id),
-                            sig_fpr        INT4 NOT NULL REFERENCES fingerprint (id),
-                            dm_upload_allowed BOOL NOT NULL DEFAULT FALSE )""")
-
-        c.execute("""CREATE TABLE changes_pending_source_files (
-                            pending_source_id INT4 REFERENCES changes_pending_source (id) NOT NULL,
-                            pending_file_id   INT4 REFERENCES changes_pending_files (id) NOT NULL,
-
-                            PRIMARY KEY (pending_source_id, pending_file_id) )""")
-
-        c.execute("""CREATE TABLE changes_pending_binaries (
-                            id                 SERIAL PRIMARY KEY,
-                            change_id          INT4 NOT NULL REFERENCES known_changes (id),
-                            package            TEXT NOT NULL,
-                            version            DEBVERSION NOT NULL,
-                            architecture_id    INT4 REFERENCES architecture (id) NOT NULL,
-                            source_id          INT4 REFERENCES source (id),
-                            pending_source_id  INT4 REFERENCES changes_pending_source (id),
-                            pending_file_id    INT4 REFERENCES changes_pending_files (id),
-
-                            UNIQUE (package, version, architecture_id),
-                            CHECK (source_id IS NOT NULL or pending_source_id IS NOT NULL ) )""")
-
-        print "Getting rid of old queue table"
-        c.execute("""DROP TABLE queue""")
-
-        print "Sorting out permission columns"
-        c.execute("""UPDATE policy_queue SET perms = '0664' WHERE queue_name IN ('proposedupdates', 'oldproposedupdates')""")
-
-        print "Moving known_changes table"
-        c.execute("""ALTER TABLE known_changes RENAME TO changes""")
-
-        print "Sorting out permissions"
-
-        for t in ['build_queue', 'policy_queue', 'build_queue_files',
-                  'changes_pending_binaries', 'changes_pending_source_files',
-                  'changes_pending_source', 'changes_pending_files',
-                  'changes_pool_files', 'suite_build_queue_copy']:
-            c.execute("GRANT SELECT ON %s TO public" % t)
-            c.execute("GRANT ALL ON %s TO ftpmaster" % t)
-
-        for s in ['queue_files_id_seq', 'build_queue_id_seq',
-                  'changes_pending_source_id_seq',
-                  'changes_pending_binaries_id_seq',
-                  'changes_pending_files_id_seq',
-                  'changes_pending_source_id_seq',
-                  'known_changes_id_seq',
-                  'policy_queue_id_seq']:
-            c.execute("GRANT USAGE ON %s TO ftpmaster" % s)
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '22' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply queue_build 21, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update23.py b/dak/dakdb/update23.py
deleted file mode 100644 (file)
index 4750c15..0000000
+++ /dev/null
@@ -1,64 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Add view for new generate_filelist command.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Torsten Werner <twerner@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
-
-def do_update(self):
-    print "Add views for generate_filelist to database."
-
-    try:
-        c = self.db.cursor()
-
-        print "Drop old views."
-        c.execute("DROP VIEW IF EXISTS binfiles_suite_component_arch CASCADE")
-        c.execute("DROP VIEW IF EXISTS srcfiles_suite_component CASCADE")
-
-        print "Create new views."
-        c.execute("""
-CREATE VIEW binfiles_suite_component_arch AS
-  SELECT files.filename, binaries.type, location.path, location.component,
-         bin_associations.suite, binaries.architecture
-    FROM binaries
-    JOIN bin_associations ON binaries.id = bin_associations.bin
-    JOIN files ON binaries.file = files.id
-    JOIN location ON files.location = location.id;
-           """)
-        c.execute("""
-CREATE VIEW srcfiles_suite_component AS
-  SELECT files.filename, location.path, location.component,
-         src_associations.suite
-    FROM source
-    JOIN src_associations ON source.id = src_associations.source
-    JOIN files ON source.file = files.id
-    JOIN location ON files.location = location.id;
-           """)
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '23' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update24.py b/dak/dakdb/update24.py
deleted file mode 100644 (file)
index 64deb96..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Add some meta info to queues
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mark Hymers <mhy@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
-
-def do_update(self):
-    print "Add meta info columns to queues."
-
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE policy_queue ADD COLUMN generate_metadata BOOL DEFAULT FALSE NOT NULL")
-        c.execute("ALTER TABLE policy_queue ADD COLUMN origin TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE policy_queue ADD COLUMN label TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE policy_queue ADD COLUMN releasedescription TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE policy_queue ADD COLUMN signingkey TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE policy_queue ADD COLUMN stay_of_execution INT4 NOT NULL DEFAULT 86400 CHECK (stay_of_execution >= 0)")
-        c.execute("""ALTER TABLE policy_queue
-                       ADD CONSTRAINT policy_queue_meta_sanity_check
-                           CHECK ( (generate_metadata IS FALSE)
-                                OR (origin IS NOT NULL AND label IS NOT NULL AND releasedescription IS NOT NULL) )""")
-
-        c.execute("ALTER TABLE build_queue ADD COLUMN generate_metadata BOOL DEFAULT FALSE NOT NULL")
-        c.execute("ALTER TABLE build_queue ADD COLUMN origin TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE build_queue ADD COLUMN label TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE build_queue ADD COLUMN releasedescription TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE build_queue ADD COLUMN signingkey TEXT DEFAULT NULL")
-        c.execute("ALTER TABLE build_queue ADD COLUMN stay_of_execution INT4 NOT NULL DEFAULT 86400 CHECK (stay_of_execution >= 0)")
-        c.execute("""ALTER TABLE build_queue
-                       ADD CONSTRAINT build_queue_meta_sanity_check
-                           CHECK ( (generate_metadata IS FALSE)
-                                OR (origin IS NOT NULL AND label IS NOT NULL AND releasedescription IS NOT NULL) )""")
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '24' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update25.py b/dak/dakdb/update25.py
deleted file mode 100644 (file)
index 0ce8ab6..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Add views for new dominate command.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Torsten Werner <twerner@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
-
-def do_update(self):
-    print "Add views for generate_filelist to database."
-
-    try:
-        c = self.db.cursor()
-
-        print "Drop old views."
-        c.execute("DROP VIEW IF EXISTS binaries_suite_arch CASCADE")
-        c.execute("DROP VIEW IF EXISTS newest_all_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS obsolete_any_by_all_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS newest_any_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS obsolete_any_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS source_suite CASCADE")
-        c.execute("DROP VIEW IF EXISTS newest_source CASCADE")
-        c.execute("DROP VIEW IF EXISTS newest_src_association CASCADE")
-        c.execute("DROP VIEW IF EXISTS any_associations_source CASCADE")
-        c.execute("DROP VIEW IF EXISTS src_associations_src CASCADE")
-        c.execute("DROP VIEW IF EXISTS almost_obsolete_src_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS obsolete_src_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS bin_associations_binaries CASCADE")
-        c.execute("DROP VIEW IF EXISTS src_associations_bin CASCADE")
-        c.execute("DROP VIEW IF EXISTS almost_obsolete_all_associations CASCADE")
-        c.execute("DROP VIEW IF EXISTS obsolete_all_associations CASCADE")
-
-        print "Create new views."
-        c.execute("""
-CREATE VIEW binaries_suite_arch AS
-    SELECT bin_associations.id, binaries.id AS bin, binaries.package,
-           binaries.version, binaries.source, bin_associations.suite,
-           suite.suite_name, binaries.architecture, architecture.arch_string
-        FROM binaries JOIN bin_associations ON binaries.id = bin_associations.bin
-        JOIN suite ON suite.id = bin_associations.suite
-        JOIN architecture ON binaries.architecture = architecture.id;
-           """)
-        c.execute("""
-CREATE VIEW newest_all_associations AS
-    SELECT package, max(version) AS version, suite, architecture
-        FROM binaries_suite_arch
-        WHERE architecture = 2 GROUP BY package, suite, architecture;
-           """)
-        c.execute("""
-CREATE VIEW obsolete_any_by_all_associations AS
-    SELECT binaries_suite_arch.id, binaries_suite_arch.package,
-           binaries_suite_arch.version, binaries_suite_arch.suite,
-           binaries_suite_arch.architecture
-        FROM binaries_suite_arch
-        JOIN newest_all_associations
-            ON (binaries_suite_arch.package = newest_all_associations.package AND
-                binaries_suite_arch.version < newest_all_associations.version AND
-                binaries_suite_arch.suite = newest_all_associations.suite AND
-                binaries_suite_arch.architecture > 2);
-           """)
-        c.execute("""
-CREATE VIEW newest_any_associations AS
-    SELECT package, max(version) AS version, suite, architecture
-        FROM binaries_suite_arch
-        WHERE architecture > 2 GROUP BY package, suite, architecture;
-           """)
-        c.execute("""
-CREATE VIEW obsolete_any_associations AS
-    SELECT id, binaries_suite_arch.architecture, binaries_suite_arch.version,
-           binaries_suite_arch.package, binaries_suite_arch.suite
-        FROM binaries_suite_arch
-        JOIN newest_any_associations
-            ON binaries_suite_arch.architecture = newest_any_associations.architecture AND
-               binaries_suite_arch.package = newest_any_associations.package AND
-               binaries_suite_arch.suite = newest_any_associations.suite AND
-               binaries_suite_arch.version != newest_any_associations.version;
-           """)
-        c.execute("""
-CREATE VIEW source_suite AS
-    SELECT src_associations.id, source.id AS src , source.source, source.version,
-           src_associations.suite, suite.suite_name
-        FROM source
-        JOIN src_associations ON source.id = src_associations.source
-        JOIN suite ON suite.id = src_associations.suite;
-           """)
-        c.execute("""
-CREATE VIEW newest_source AS
-    SELECT source, max(version) AS version, suite
-        FROM source_suite
-        GROUP BY source, suite;
-           """)
-        c.execute("""
-CREATE VIEW newest_src_association AS
-    SELECT id, src, source, version, suite
-        FROM source_suite
-        JOIN newest_source USING (source, version, suite);
-           """)
-        c.execute("""
-CREATE VIEW any_associations_source AS
-    SELECT bin_associations.id, bin_associations.suite, binaries.id AS bin,
-           binaries.package, binaries.version AS binver, binaries.architecture,
-           source.id AS src, source.source, source.version AS srcver
-        FROM bin_associations
-        JOIN binaries ON bin_associations.bin = binaries.id AND architecture != 2
-        JOIN source ON binaries.source = source.id;
-           """)
-        c.execute("""
-CREATE VIEW src_associations_src AS
-    SELECT src_associations.id, src_associations.suite, source.id AS src,
-           source.source, source.version
-        FROM src_associations
-        JOIN source ON src_associations.source = source.id;
-           """)
-        c.execute("""
-CREATE VIEW almost_obsolete_src_associations AS
-    SELECT src_associations_src.id, src_associations_src.src,
-           src_associations_src.source, src_associations_src.version, suite
-        FROM src_associations_src
-        LEFT JOIN any_associations_source USING (src, suite)
-        WHERE bin IS NULL;
-           """)
-        c.execute("""
-CREATE VIEW obsolete_src_associations AS
-    SELECT almost.id, almost.src, almost.source, almost.version, almost.suite
-        FROM almost_obsolete_src_associations as almost
-    JOIN newest_src_association AS newest
-        ON almost.source  = newest.source AND
-           almost.version < newest.version AND
-           almost.suite   = newest.suite;
-           """)
-        c.execute("""
-CREATE VIEW bin_associations_binaries AS
-    SELECT bin_associations.id, bin_associations.bin, binaries.package,
-           binaries.version, bin_associations.suite, binaries.architecture
-        FROM bin_associations
-        JOIN binaries ON bin_associations.bin = binaries.id;
-           """)
-        c.execute("""
-CREATE VIEW src_associations_bin AS
-    SELECT src_associations.id, src_associations.source, src_associations.suite,
-           binaries.id AS bin, binaries.architecture
-        FROM src_associations
-        JOIN source ON src_associations.source = source.id
-        JOIN binaries ON source.id = binaries.source;
-           """)
-        c.execute("""
-CREATE VIEW almost_obsolete_all_associations AS
-    SELECT bin_associations_binaries.id AS id, bin, bin_associations_binaries.package,
-           bin_associations_binaries.version, suite
-        FROM bin_associations_binaries
-        LEFT JOIN src_associations_bin USING (bin, suite, architecture)
-        WHERE source IS NULL AND architecture = 2;
-           """)
-        c.execute("""
-CREATE VIEW obsolete_all_associations AS
-    SELECT almost.id, almost.bin, almost.package, almost.version, almost.suite
-        FROM almost_obsolete_all_associations AS almost
-        JOIN newest_all_associations AS newest
-            ON almost.package = newest.package AND
-               almost.version < newest.version AND
-               almost.suite   = newest.suite;
-           """)
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '25' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update26.py b/dak/dakdb/update26.py
deleted file mode 100644 (file)
index 358f2ae..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Add created,modified columns for all tables.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Barry deFreese <bdefreese@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
-
-def do_update(self):
-    print "Add created, modified fields for all tables."
-
-    updatetables = ['architecture', 'archive', 'bin_associations', 'bin_contents',
-        'binaries', 'binary_acl', 'binary_acl_map', 'build_queue', 'build_queue_files',
-        'changes', 'changes_pending_binaries', 'changes_pending_files',
-        'changes_pending_files_map', 'changes_pending_source', 'changes_pending_source_files',
-        'changes_pool_files', 'component', 'config', 'dsc_files', 'files', 'fingerprint',
-        'keyring_acl_map', 'keyrings', 'location', 'maintainer', 'new_comments', 'override',
-        'override_type', 'policy_queue', 'priority', 'section', 'source', 'source_acl',
-        'src_associations', 'src_format', 'src_uploaders', 'suite', 'suite_architectures',
-        'suite_build_queue_copy', 'suite_src_formats', 'uid', 'upload_blocks']
-
-    c = self.db.cursor()
-
-    print "Create trigger function."
-    c.execute("""CREATE OR REPLACE FUNCTION tfunc_set_modified() RETURNS trigger AS $$
-    BEGIN NEW.modified = now(); return NEW; END;
-    $$ LANGUAGE 'plpgsql'""")
-
-    try:
-        for updatetable in updatetables:
-
-            print "Add created field to %s." % updatetable
-            c.execute("ALTER TABLE %s ADD COLUMN created TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()" % updatetable)
-
-            print "Add modified field to %s." % updatetable
-            c.execute("ALTER TABLE %s ADD COLUMN modified TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT now()" % updatetable)
-
-            print "Create modified trigger."
-            c.execute("""CREATE TRIGGER modified_%s BEFORE UPDATE ON %s
-            FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified()""" % (updatetable, updatetable))
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '26' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-            self.db.rollback()
-            raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update27.py b/dak/dakdb/update27.py
deleted file mode 100644 (file)
index 814e601..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Add views for new obsolete source detection.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Torsten Werner <twerner@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
-
-def do_update(self):
-    print "Add/modify views for obsolete source detection."
-
-    try:
-        c = self.db.cursor()
-
-        print "Replace old views."
-        # joins src_associations and source
-        c.execute("""
-CREATE OR REPLACE VIEW source_suite AS
-    SELECT src_associations.id, source.id AS src, source.source, source.version,
-           src_associations.suite, suite.suite_name, source.install_date
-        FROM source
-        JOIN src_associations ON source.id = src_associations.source
-        JOIN suite ON suite.id = src_associations.suite;
-            """)
-        # joins bin_associations and binaries
-        c.execute("""
-CREATE OR REPLACE VIEW bin_associations_binaries AS
-    SELECT bin_associations.id, bin_associations.bin, binaries.package,
-           binaries.version, bin_associations.suite, binaries.architecture,
-           binaries.source
-        FROM bin_associations
-        JOIN binaries ON bin_associations.bin = binaries.id;
-            """)
-
-        print "Grant permissions to views."
-        c.execute("GRANT SELECT ON binfiles_suite_component_arch TO PUBLIC;");
-        c.execute("GRANT SELECT ON srcfiles_suite_component TO PUBLIC;");
-        c.execute("GRANT SELECT ON binaries_suite_arch TO PUBLIC;");
-        c.execute("GRANT SELECT ON newest_all_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON obsolete_any_by_all_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON newest_any_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON obsolete_any_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON source_suite TO PUBLIC;");
-        c.execute("GRANT SELECT ON newest_source TO PUBLIC;");
-        c.execute("GRANT SELECT ON newest_src_association TO PUBLIC;");
-        c.execute("GRANT SELECT ON any_associations_source TO PUBLIC;");
-        c.execute("GRANT SELECT ON src_associations_src TO PUBLIC;");
-        c.execute("GRANT SELECT ON almost_obsolete_src_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON obsolete_src_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON bin_associations_binaries TO PUBLIC;");
-        c.execute("GRANT SELECT ON src_associations_bin TO PUBLIC;");
-        c.execute("GRANT SELECT ON almost_obsolete_all_associations TO PUBLIC;");
-        c.execute("GRANT SELECT ON obsolete_all_associations TO PUBLIC;");
-
-        print "Committing"
-        c.execute("UPDATE config SET value = '27' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.InternalError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Database error, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update28.py b/dak/dakdb/update28.py
deleted file mode 100644 (file)
index f0c62e0..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-keep contents of binary packages in tables so we can generate contents.gz files from dak
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mike O'Connor <stew@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-from daklib.config import Config
-import string
-
-################################################################################
-
-def _suites():
-    """
-    return a list of suites to operate on
-    """
-    suites = Config().subtree("Suite").list()
-    return suites
-
-def arches(cursor, suite):
-    """
-    return a list of archs to operate on
-    """
-    arch_list = []
-    cursor.execute("""SELECT s.architecture, a.arch_string
-    FROM suite_architectures s
-    JOIN architecture a ON (s.architecture=a.id)
-    WHERE suite = '%s'""" % suite)
-
-    while True:
-        r = cursor.fetchone()
-        if not r:
-            break
-
-        if r[1] != "source" and r[1] != "all":
-            arch_list.append((r[0], r[1]))
-
-    return arch_list
-
-def do_update(self):
-    """
-    Adding contents table as first step to maybe, finally getting rid
-    of apt-ftparchive
-    """
-
-    print __doc__
-
-    try:
-        c = self.db.cursor()
-
-        c.execute("""CREATE TABLE pending_bin_contents (
-        id serial NOT NULL,
-        package text NOT NULL,
-        version debversion NOT NULL,
-        arch int NOT NULL,
-        filename text NOT NULL,
-        type int NOT NULL,
-        PRIMARY KEY(id))""" );
-
-        c.execute("""CREATE TABLE deb_contents (
-        filename text,
-        section text,
-        package text,
-        binary_id integer,
-        arch integer,
-        suite integer)""" )
-
-        c.execute("""CREATE TABLE udeb_contents (
-        filename text,
-        section text,
-        package text,
-        binary_id integer,
-        suite integer,
-        arch integer)""" )
-
-        c.execute("""ALTER TABLE ONLY deb_contents
-        ADD CONSTRAINT deb_contents_arch_fkey
-        FOREIGN KEY (arch) REFERENCES architecture(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""ALTER TABLE ONLY udeb_contents
-        ADD CONSTRAINT udeb_contents_arch_fkey
-        FOREIGN KEY (arch) REFERENCES architecture(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""ALTER TABLE ONLY deb_contents
-        ADD CONSTRAINT deb_contents_pkey
-        PRIMARY KEY (filename,package,arch,suite);""")
-
-        c.execute("""ALTER TABLE ONLY udeb_contents
-        ADD CONSTRAINT udeb_contents_pkey
-        PRIMARY KEY (filename,package,arch,suite);""")
-
-        c.execute("""ALTER TABLE ONLY deb_contents
-        ADD CONSTRAINT deb_contents_suite_fkey
-        FOREIGN KEY (suite) REFERENCES suite(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""ALTER TABLE ONLY udeb_contents
-        ADD CONSTRAINT udeb_contents_suite_fkey
-        FOREIGN KEY (suite) REFERENCES suite(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""ALTER TABLE ONLY deb_contents
-        ADD CONSTRAINT deb_contents_binary_fkey
-        FOREIGN KEY (binary_id) REFERENCES binaries(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""ALTER TABLE ONLY udeb_contents
-        ADD CONSTRAINT udeb_contents_binary_fkey
-        FOREIGN KEY (binary_id) REFERENCES binaries(id)
-        ON DELETE CASCADE;""")
-
-        c.execute("""CREATE INDEX ind_deb_contents_binary ON deb_contents(binary_id);""" )
-
-        suites = _suites()
-
-        for suite in [i.lower() for i in suites]:
-
-            c.execute("SELECT id FROM suite WHERE suite_name ='%s'" % suite )
-            suiterow = c.fetchone()
-            suite_id = suiterow[0]
-            arch_list = arches(c, suite_id)
-            arch_list = arches(c, suite_id)
-            suitestr=string.replace(suite,'-','_');
-
-            for (arch_id,arch_str) in arch_list:
-                arch_str = string.replace(arch_str,"-", "_")
-                c.execute( "CREATE INDEX ind_deb_contents_%s_%s ON deb_contents (arch,suite) WHERE (arch=2 OR arch=%s) AND suite='%s'"%(arch_str,suitestr,arch_id,suite_id) )
-
-            for section, sname in [("debian-installer","main"),
-                                  ("non-free/debian-installer", "nonfree")]:
-                c.execute( "CREATE INDEX ind_udeb_contents_%s_%s ON udeb_contents (section,suite) WHERE section='%s' AND suite='%s'"%(sname,suitestr,section,suite_id) )
-
-
-        c.execute( """CREATE OR REPLACE FUNCTION update_contents_for_bin_a() RETURNS trigger AS  $$
-    event = TD["event"]
-    if event == "DELETE" or event == "UPDATE":
-
-        plpy.execute(plpy.prepare("DELETE FROM deb_contents WHERE binary_id=$1 and suite=$2",
-                                  ["int","int"]),
-                                  [TD["old"]["bin"], TD["old"]["suite"]])
-
-    if event == "INSERT" or event == "UPDATE":
-
-       content_data = plpy.execute(plpy.prepare(
-            \"\"\"SELECT s.section, b.package, b.architecture, ot.type
-            FROM override o
-            JOIN override_type ot on o.type=ot.id
-            JOIN binaries b on b.package=o.package
-            JOIN files f on b.file=f.id
-            JOIN location l on l.id=f.location
-            JOIN section s on s.id=o.section
-            WHERE b.id=$1
-            AND o.suite=$2
-            \"\"\",
-            ["int", "int"]),
-            [TD["new"]["bin"], TD["new"]["suite"]])[0]
-
-       tablename="%s_contents" % content_data['type']
-
-       plpy.execute(plpy.prepare(\"\"\"DELETE FROM %s
-                   WHERE package=$1 and arch=$2 and suite=$3\"\"\" % tablename,
-                   ['text','int','int']),
-                   [content_data['package'],
-                   content_data['architecture'],
-                   TD["new"]["suite"]])
-
-       filenames = plpy.execute(plpy.prepare(
-           "SELECT bc.file FROM bin_contents bc where bc.binary_id=$1",
-           ["int"]),
-           [TD["new"]["bin"]])
-
-       for filename in filenames:
-           plpy.execute(plpy.prepare(
-               \"\"\"INSERT INTO %s
-                   (filename,section,package,binary_id,arch,suite)
-                   VALUES($1,$2,$3,$4,$5,$6)\"\"\" % tablename,
-               ["text","text","text","int","int","int"]),
-               [filename["file"],
-                content_data["section"],
-                content_data["package"],
-                TD["new"]["bin"],
-                content_data["architecture"],
-                TD["new"]["suite"]] )
-$$ LANGUAGE plpythonu VOLATILE SECURITY DEFINER;
-""")
-
-
-        c.execute( """CREATE OR REPLACE FUNCTION update_contents_for_override() RETURNS trigger AS  $$
-    event = TD["event"]
-    if event == "UPDATE":
-
-        otype = plpy.execute(plpy.prepare("SELECT type from override_type where id=$1",["int"]),[TD["new"]["type"]] )[0];
-        if otype["type"].endswith("deb"):
-            section = plpy.execute(plpy.prepare("SELECT section from section where id=$1",["int"]),[TD["new"]["section"]] )[0];
-
-            table_name = "%s_contents" % otype["type"]
-            plpy.execute(plpy.prepare("UPDATE %s set section=$1 where package=$2 and suite=$3" % table_name,
-                                      ["text","text","int"]),
-                                      [section["section"],
-                                      TD["new"]["package"],
-                                      TD["new"]["suite"]])
-
-$$ LANGUAGE plpythonu VOLATILE SECURITY DEFINER;
-""")
-
-        c.execute("""CREATE OR REPLACE FUNCTION update_contents_for_override()
-                      RETURNS trigger AS  $$
-    event = TD["event"]
-    if event == "UPDATE" or event == "INSERT":
-        row = TD["new"]
-        r = plpy.execute(plpy.prepare( \"\"\"SELECT 1 from suite_architectures sa
-                  JOIN binaries b ON b.architecture = sa.architecture
-                  WHERE b.id = $1 and sa.suite = $2\"\"\",
-                ["int", "int"]),
-                [row["bin"], row["suite"]])
-        if not len(r):
-            plpy.error("Illegal architecture for this suite")
-
-$$ LANGUAGE plpythonu VOLATILE;""")
-
-        c.execute( """CREATE TRIGGER illegal_suite_arch_bin_associations_trigger
-                      BEFORE INSERT OR UPDATE ON bin_associations
-                      FOR EACH ROW EXECUTE PROCEDURE update_contents_for_override();""")
-
-        c.execute( """CREATE TRIGGER bin_associations_contents_trigger
-                      AFTER INSERT OR UPDATE OR DELETE ON bin_associations
-                      FOR EACH ROW EXECUTE PROCEDURE update_contents_for_bin_a();""")
-        c.execute("""CREATE TRIGGER override_contents_trigger
-                      AFTER UPDATE ON override
-                      FOR EACH ROW EXECUTE PROCEDURE update_contents_for_override();""")
-
-
-        c.execute( "CREATE INDEX ind_deb_contents_name ON deb_contents(package);");
-        c.execute( "CREATE INDEX ind_udeb_contents_name ON udeb_contents(package);");
-
-        c.execute("UPDATE config SET value = '28' WHERE name = 'db_revision'")
-
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new update 28, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update29.py b/dak/dakdb/update29.py
deleted file mode 100644 (file)
index c77d99d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding content fields
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010  Mike O'Connor <stew@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "revert update6 since we have a new scheme for contents"
-
-    try:
-        c = self.db.cursor()
-        c.execute("""DROP FUNCTION comma_concat(text, text) CASCADE;""" );
-        c.execute("""DROP TABLE pending_content_associations;""")
-        c.execute("""DROP TABLE content_associations;""")
-        c.execute("""DROP TABLE content_file_names;""")
-        c.execute("""DROP TABLE content_file_paths;""")
-
-        c.execute("UPDATE config SET value = '29' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update3.py b/dak/dakdb/update3.py
deleted file mode 100644 (file)
index f7a4e50..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Remove unused versioncmp
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@debian.org>
-@copyright: 2009  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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Removing no longer used function versioncmp"
-
-    try:
-        c = self.db.cursor()
-        # The reason we try and check to see if it exists is that
-        # psycopg2 might leave the cursor invalid if the drop fails
-        c.execute("SELECT proname from pg_catalog.pg_proc WHERE proname = 'versioncmp'")
-        rows = c.fetchall()
-        if rows:
-            c.execute("DROP FUNCTION versioncmp(text, text);")
-        else:
-            print "function already does not exist"
-
-        c.execute("UPDATE config SET value = '3' WHERE name = 'db_revision'")
-
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy versioncmp removal, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update30.py b/dak/dakdb/update30.py
deleted file mode 100644 (file)
index f68c74a..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding content fields
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010  Mike O'Connor <stew@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
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "fix trigger for bin_contents so that it ignores non deb,udeb"
-
-    try:
-        c = self.db.cursor()
-        c.execute( """CREATE OR REPLACE FUNCTION update_contents_for_bin_a() RETURNS trigger AS  $$
-    event = TD["event"]
-    if event == "DELETE" or event == "UPDATE":
-
-        plpy.execute(plpy.prepare("DELETE FROM deb_contents WHERE binary_id=$1 and suite=$2",
-                                  ["int","int"]),
-                                  [TD["old"]["bin"], TD["old"]["suite"]])
-
-    if event == "INSERT" or event == "UPDATE":
-
-       content_data = plpy.execute(plpy.prepare(
-            \"\"\"SELECT s.section, b.package, b.architecture, ot.type
-            FROM override o
-            JOIN override_type ot on o.type=ot.id
-            JOIN binaries b on b.package=o.package
-            JOIN files f on b.file=f.id
-            JOIN location l on l.id=f.location
-            JOIN section s on s.id=o.section
-            WHERE b.id=$1
-            AND o.suite=$2
-            AND ot.type in ('deb','udeb')
-            \"\"\",
-            ["int", "int"]),
-            [TD["new"]["bin"], TD["new"]["suite"]])[0]
-
-       tablename="%s_contents" % content_data['type']
-
-       plpy.execute(plpy.prepare(\"\"\"DELETE FROM %s
-                   WHERE package=$1 and arch=$2 and suite=$3\"\"\" % tablename,
-                   ['text','int','int']),
-                   [content_data['package'],
-                   content_data['architecture'],
-                   TD["new"]["suite"]])
-
-       filenames = plpy.execute(plpy.prepare(
-           "SELECT bc.file FROM bin_contents bc where bc.binary_id=$1",
-           ["int"]),
-           [TD["new"]["bin"]])
-
-       for filename in filenames:
-           plpy.execute(plpy.prepare(
-               \"\"\"INSERT INTO %s
-                   (filename,section,package,binary_id,arch,suite)
-                   VALUES($1,$2,$3,$4,$5,$6)\"\"\" % tablename,
-               ["text","text","text","int","int","int"]),
-               [filename["file"],
-                content_data["section"],
-                content_data["package"],
-                TD["new"]["bin"],
-                content_data["architecture"],
-                TD["new"]["suite"]] )
-$$ LANGUAGE plpythonu VOLATILE SECURITY DEFINER;
-""")
-
-        c.execute("UPDATE config SET value = '30' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update31.py b/dak/dakdb/update31.py
deleted file mode 100644 (file)
index 7209178..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-keep contents of binary packages in tables so we can generate contents.gz files from dak
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  Mike O'Connor <stew@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
-
-################################################################################
-def do_update(self):
-    """
-    add trigger to verify that bin_associations aren't added for an
-    illegal suite,arch combination.  Fix override trigger, re-add all
-    3 triggers
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""CREATE OR REPLACE FUNCTION check_illegal_suite_arch()
-                      RETURNS trigger AS  $$
-    event = TD["event"]
-    if event == "UPDATE" or event == "INSERT":
-        row = TD["new"]
-        r = plpy.execute(plpy.prepare( \"\"\"SELECT 1 from suite_architectures sa
-                  JOIN binaries b ON b.architecture = sa.architecture
-                  WHERE b.id = $1 and sa.suite = $2\"\"\",
-                ["int", "int"]),
-                [row["bin"], row["suite"]])
-        if not len(r):
-            plpy.error("Illegal architecture for this suite")
-
-$$ LANGUAGE plpythonu VOLATILE;""")
-
-        c.execute( """CREATE OR REPLACE FUNCTION update_contents_for_override() RETURNS trigger AS  $$
-    event = TD["event"]
-    if event == "UPDATE":
-
-        otype = plpy.execute(plpy.prepare("SELECT type from override_type where id=$1",["int"]),[TD["new"]["type"]] )[0];
-        if otype["type"].endswith("deb"):
-            section = plpy.execute(plpy.prepare("SELECT section from section where id=$1",["int"]),[TD["new"]["section"]] )[0];
-
-            table_name = "%s_contents" % otype["type"]
-            plpy.execute(plpy.prepare("UPDATE %s set section=$1 where package=$2 and suite=$3" % table_name,
-                                      ["text","text","int"]),
-                                      [section["section"],
-                                      TD["new"]["package"],
-                                      TD["new"]["suite"]])
-
-$$ LANGUAGE plpythonu VOLATILE SECURITY DEFINER;
-""")
-        c.execute( "DROP TRIGGER IF EXISTS illegal_suite_arch_bin_associations_trigger on bin_associations;" )
-
-        c.execute( "DROP TRIGGER IF EXISTS bin_associations_contents_trigger ON bin_associations;" )
-        c.execute( "DROP TRIGGER IF EXISTS override_contents_trigger ON override;" )
-
-        c.execute( """CREATE TRIGGER bin_associations_contents_trigger
-                      AFTER INSERT OR UPDATE OR DELETE ON bin_associations
-                      FOR EACH ROW EXECUTE PROCEDURE update_contents_for_bin_a();""")
-
-        c.execute("""CREATE TRIGGER override_contents_trigger
-                      AFTER UPDATE ON override
-                      FOR EACH ROW EXECUTE PROCEDURE update_contents_for_override();""")
-
-        c.execute( """CREATE TRIGGER illegal_suite_arch_bin_associations_trigger
-                      BEFORE INSERT OR UPDATE ON bin_associations
-                      FOR EACH ROW EXECUTE PROCEDURE check_illegal_suite_arch();""")
-
-        c.execute("UPDATE config SET value = '31' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply process-new update 31, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update32.py b/dak/dakdb/update32.py
deleted file mode 100644 (file)
index 59355c9..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add notautomatic field to build_queue
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010  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
-
-################################################################################
-def do_update(self):
-    """
-    Add the notautomatic field
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE build_queue ADD COLUMN notautomatic BOOLEAN NOT NULL DEFAULT false")
-        c.execute("UPDATE config SET value = '32' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply build_queue update 32, rollback issued. Error message : %s" % (str(msg)))
-
diff --git a/dak/dakdb/update33.py b/dak/dakdb/update33.py
deleted file mode 100644 (file)
index 5b0fe11..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Implement changelogs related tables
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 Luca Falavigna <dktrkranz@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
-
-################################################################################
-def do_update(self):
-    """
-    Implement changelogs table
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute('ALTER TABLE changes ADD COLUMN changelog_id integer')
-        c.execute('CREATE TABLE changelogs_text (id serial PRIMARY KEY NOT NULL, changelog text)')
-        c.execute("GRANT SELECT ON changelogs_text TO public")
-        c.execute("GRANT ALL ON changelogs_text TO ftpmaster")
-        c.execute('CREATE VIEW changelogs AS SELECT cl.id, source, CAST(version AS debversion), architecture, changelog \
-                   FROM changes c JOIN changelogs_text cl ON cl.id = c.changelog_id')
-        c.execute("GRANT SELECT ON changelogs TO public")
-        c.execute("GRANT ALL ON changelogs TO ftpmaster")
-        c.execute("UPDATE config SET value = '33' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply build_queue update 33, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update34.py b/dak/dakdb/update34.py
deleted file mode 100644 (file)
index 03f1573..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Drop an obsolete view.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 Luca Falavigna <dktrkranz@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
-
-################################################################################
-def do_update(self):
-    """
-    Drop view srcfiles_suite_component
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute('DROP VIEW srcfiles_suite_component')
-        c.execute("UPDATE config SET value = '34' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply build_queue update 34, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update35.py b/dak/dakdb/update35.py
deleted file mode 100644 (file)
index 41d5667..0000000
+++ /dev/null
@@ -1,50 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add distribution to changelogs view
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 Luca Falavigna <dktrkranz@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
-
-################################################################################
-def do_update(self):
-    """
-    Add distribution to changelogs view
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute('CREATE OR REPLACE VIEW changelogs AS SELECT cl.id, source, CAST(version AS debversion), architecture, \
-                   changelog, distribution FROM changes c JOIN changelogs_text cl ON cl.id = c.changelog_id')
-        c.execute("GRANT SELECT ON changelogs TO public")
-        c.execute("UPDATE config SET value = '35' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply build_queue update 35, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update36.py b/dak/dakdb/update36.py
deleted file mode 100644 (file)
index 432e09f..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add processed field to changes_pending_files
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 Mark Hymers <mhy@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
-
-################################################################################
-def do_update(self):
-    """
-    Add processed field to changes_pending_files
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute('ALTER TABLE changes_pending_files ADD COLUMN processed BOOL DEFAULT FALSE')
-        c.execute("UPDATE config SET value = '36' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply build_queue update 36, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update37.py b/dak/dakdb/update37.py
deleted file mode 100644 (file)
index 7ab52e0..0000000
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Remove unused table columns
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 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
-
-################################################################################
-
-
-# <Ganneff> everyone - send your condolences to twerner, a new ftpmaster
-# <mhy> twerner: you poor, poor bastard
-# <mhy> twerner: look what it's done to me and Ganneff
-# <mhy> he used to be only 1.3m tall and I used to be female
-# <Tolimar> twerner: Congratulations... Uhm... Thorsta?
-# <Tolimar> Thorstine?
-# <DktrKranz> Thorstine seems the name of a candy we eat in Italy
-
-################################################################################
-
-import psycopg2
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-def do_update(self):
-    """
-    Remove unused table columns
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute('ALTER TABLE suite DROP COLUMN copydotdak')
-        c.execute('ALTER TABLE suite DROP COLUMN changelogbase')
-        c.execute("UPDATE config SET value = '37' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply table-colum update 37, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update38.py b/dak/dakdb/update38.py
deleted file mode 100644 (file)
index da3a1d6..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Remove more unused table columns
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 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
-
-################################################################################
-
-
-# <Ganneff> everyone - send your condolences to twerner, a new ftpmaster
-# <mhy> twerner: you poor, poor bastard
-# <mhy> twerner: look what it's done to me and Ganneff
-# <mhy> he used to be only 1.3m tall and I used to be female
-# <Tolimar> twerner: Congratulations... Uhm... Thorsta?
-# <Tolimar> Thorstine?
-# <DktrKranz> Thorstine seems the name of a candy we eat in Italy
-
-################################################################################
-
-import psycopg2
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-def do_update(self):
-    """
-    Remove unused table columns
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute('ALTER TABLE suite DROP COLUMN commentsdir')
-        c.execute("UPDATE config SET value = '38' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply table-column update 38, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update39.py b/dak/dakdb/update39.py
deleted file mode 100644 (file)
index c02b962..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Move changelogs related config values into projectb
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 Luca Falavigna <dktrkranz@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
-
-################################################################################
-def do_update(self):
-    """
-    Move changelogs related config values into projectb
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        c.execute("INSERT INTO config(name, value) VALUES ('exportpath', 'changelogs')")
-        c.execute("ALTER TABLE suite ADD COLUMN changelog text NULL")
-        c.execute("UPDATE suite SET changelog = 'dists/testing/ChangeLog' WHERE suite_name = 'testing'")
-        c.execute("UPDATE config SET value = '39' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply table-column update 39, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update4.py b/dak/dakdb/update4.py
deleted file mode 100644 (file)
index a6456be..0000000
+++ /dev/null
@@ -1,69 +0,0 @@
-#!/usr/bin/env python
-"""
-Get suite_architectures table use sane values
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  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 daklib.utils import get_conf
-
-################################################################################
-
-suites = {}  #: Cache of existing suites
-archs = {}   #: Cache of existing architectures
-
-def do_update(self):
-    """ Execute the DB update """
-
-    print "Lets make suite_architecture table use sane values"
-    Cnf = get_conf()
-
-    query = "INSERT into suite_architectures (suite, architecture) VALUES (%s, %s)"  #: Update query
-    try:
-        c = self.db.cursor()
-        c.execute("DELETE FROM suite_architectures;")
-
-        c.execute("SELECT id, arch_string FROM architecture;")
-        a=c.fetchall()
-        for arch in a:
-            archs[arch[1]]=arch[0]
-
-        c.execute("SELECT id,suite_name FROM suite")
-        s=c.fetchall()
-        for suite in s:
-            suites[suite[1]]=suite[0]
-
-        for suite in Cnf.subtree("Suite").list():
-            print "Processing suite %s" % (suite)
-            architectures = Cnf.subtree("Suite::" + suite).value_list("Architectures")
-            suite = suite.lower()
-            for arch in architectures:
-                c.execute(query, [suites[suite], archs[arch]])
-
-        c.execute("UPDATE config SET value = '4' WHERE name = 'db_revision'")
-
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply sanity to suite_architecture table, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update40.py b/dak/dakdb/update40.py
deleted file mode 100644 (file)
index e3bb89e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Rename squeeze-volatile to squeeze-updates to get more confused users
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2010 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):
-    """
-    Rename squeeze-volatile to squeeze-updates to get more confused users
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-        if gethostname() == 'franck':
-            c.execute("UPDATE suite SET suite_name='squeeze-updates', description='Updated packages for Debian x.y', codename='squeeze-updates' WHERE suite_name='squeeze-volatile'")
-            c.execute("UPDATE build_queue SET queue_name='buildd-squeeze-updates', path='/srv/incoming.debian.org/dists/squeeze-updates/buildd', releasedescription='buildd squeeze updates incoming' WHERE queue_name='buildd-squeeze-volatile'")
-            c.execute("UPDATE policy_queue SET queue_name='squeeze-updates-proposed-updates', path='/srv/ftp-master.debian.org/queue/updates/squeeze-updates-p-u-new' WHERE queue_name='squeeze-volatile-proposed-updates'")
-        c.execute("UPDATE config SET value = '40' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 40, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update41.py b/dak/dakdb/update41.py
deleted file mode 100644 (file)
index 65661d3..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Remove useless type casts from primary keys to support sqlalchemy's reflection
-mechanism for all tables. Rename 2 sequences and add 1 primary key.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Torsten Werner <twerner@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):
-    """
-    Remove useless type casts from primary keys, fix 2 sequences, and add 1
-    primary key.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        # remove useless type casts
-        for table in ('architecture', 'archive', 'bin_associations', \
-            'binaries', 'component', 'dsc_files', 'files', \
-            'fingerprint', 'location', 'maintainer', 'override_type', \
-            'pending_bin_contents', 'priority', 'section', 'source', \
-            'src_associations', 'suite', 'uid'):
-            c.execute("ALTER TABLE %s ALTER id SET DEFAULT nextval('%s_id_seq'::regclass)" % \
-                (table, table))
-
-        # rename sequences
-        c.execute("ALTER SEQUENCE known_changes_id_seq RENAME TO changes_id_seq")
-        c.execute("ALTER SEQUENCE queue_files_id_seq RENAME TO build_queue_files_id_seq")
-
-        # replace unique contraint by primary key
-        c.execute( \
-            "ALTER TABLE bin_contents DROP CONSTRAINT bin_contents_file_key");
-        c.execute("ALTER TABLE bin_contents ADD PRIMARY KEY (file, binary_id)");
-
-        c.execute("UPDATE config SET value = '41' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 41, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update42.py b/dak/dakdb/update42.py
deleted file mode 100644 (file)
index 3c51232..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/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 as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply update 42, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update43.py b/dak/dakdb/update43.py
deleted file mode 100644 (file)
index 430cc35..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Fix up constraints for pg 9.0
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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):
-    """
-    Fix up constraints for pg 9.0
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE policy_queue DROP constraint policy_queue_perms_check")
-        c.execute("ALTER TABLE policy_queue DROP constraint policy_queue_change_perms_check")
-        c.execute("ALTER TABLE policy_queue ADD CONSTRAINT policy_queue_perms_check CHECK (perms SIMILAR TO '[0-7][0-7][0-7][0-7]')")
-        c.execute("ALTER TABLE policy_queue ADD CONSTRAINT policy_queue_change_perms_check CHECK (change_perms SIMILAR TO '[0-7][0-7][0-7][0-7]')")
-
-        c.execute("UPDATE config SET value = '43' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply update 43, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update44.py b/dak/dakdb/update44.py
deleted file mode 100644 (file)
index bce1fe7..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Remove old contents tables that are no longer needed by the current
-implementation.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Torsten Werner <twerner@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):
-    """
-    Remove old contents tables that are no longer needed by the current
-    implementation.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        # remove useless type casts
-        for table in ('pending_bin_contents', 'deb_contents', 'udeb_contents'):
-            c.execute("DROP TABLE %s" % table)
-
-        c.execute("UPDATE config SET value = '44' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 44, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update45.py b/dak/dakdb/update45.py
deleted file mode 100644 (file)
index fe84c9b..0000000
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add tables for extra_src handling
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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
-
-################################################################################
-def do_update(self):
-    """
-    Add tables for extra_src handling
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-CREATE TABLE extra_src_references (
-    bin_id      INT4 NOT NULL REFERENCES binaries(id) ON DELETE CASCADE,
-    src_id      INT4 NOT NULL REFERENCES source(id) ON DELETE RESTRICT,
-
-    PRIMARY KEY (bin_id, src_id)
-)""")
-
-        c.execute("UPDATE config SET value = '45' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply update 45, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update46.py b/dak/dakdb/update46.py
deleted file mode 100644 (file)
index 109a887..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add columns and tables for Packages/Sources work
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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
-
-################################################################################
-def do_update(self):
-    """
-    Add columns and tables for Packages/Sources work
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""ALTER TABLE binaries ADD COLUMN stanza TEXT""")
-        c.execute("""ALTER TABLE source ADD COLUMN stanza TEXT""")
-
-        c.execute("""
-CREATE TABLE metadata_keys (
-    key_id       SERIAL NOT NULL UNIQUE,
-    key          TEXT NOT NULL UNIQUE,
-
-    PRIMARY KEY (key_id)
-)
-""")
-
-        c.execute("""
-CREATE TABLE binaries_metadata (
-    bin_id       INT4 NOT NULL REFERENCES binaries(id) ON DELETE CASCADE,
-    key_id       INT4 NOT NULL REFERENCES metadata_keys(key_id),
-    value        TEXT NOT NULL,
-
-    PRIMARY KEY (bin_id, key_id)
-)
-""")
-
-        c.execute("""
-CREATE TABLE source_metadata (
-    src_id       INT4 NOT NULL REFERENCES source(id) ON DELETE CASCADE,
-    key_id       INT4 NOT NULL REFERENCES metadata_keys(key_id),
-    value        TEXT NOT NULL,
-
-    PRIMARY KEY (src_id, key_id)
-)
-""")
-
-        c.execute("UPDATE config SET value = '46' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply update 46, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update47.py b/dak/dakdb/update47.py
deleted file mode 100644 (file)
index a662659..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add table for source contents.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Torsten Werner <twerner@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 table for source contents.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-            CREATE TABLE src_contents (
-                file TEXT,
-                source_id INTEGER REFERENCES source(id) ON DELETE CASCADE,
-                PRIMARY KEY (file, source_id))""")
-
-        c.execute("UPDATE config SET value = '47' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 47, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update48.py b/dak/dakdb/update48.py
deleted file mode 100644 (file)
index 63a8a0e..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Suite.version can be null
-
-@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 table for source contents.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE suite ALTER COLUMN version DROP NOT NULL")
-        c.execute("UPDATE suite SET version=NULL WHERE version='-'")
-
-        c.execute("UPDATE config SET value = '48' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 48, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update49.py b/dak/dakdb/update49.py
deleted file mode 100644 (file)
index 720f8cf..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Permission fixups
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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):
-    """
-    Fix up permissions
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("GRANT SELECT, UPDATE, INSERT ON binaries_metadata TO ftpmaster")
-        c.execute("GRANT SELECT ON binaries_metadata TO public")
-        c.execute("GRANT USAGE ON metadata_keys_key_id_seq TO ftpmaster")
-        c.execute("GRANT SELECT, UPDATE, INSERT ON source_metadata TO ftpmaster")
-        c.execute("GRANT SELECT ON source_metadata TO public")
-        c.execute("GRANT SELECT, UPDATE, INSERT ON metadata_keys TO ftpmaster")
-        c.execute("GRANT SELECT ON metadata_keys TO public")
-        c.execute("GRANT SELECT, UPDATE, INSERT ON extra_src_references TO ftpmaster")
-        c.execute("GRANT SELECT ON extra_src_references TO public")
-        c.execute("GRANT SELECT, UPDATE, INSERT ON src_contents TO ftpmaster")
-        c.execute("GRANT SELECT ON src_contents TO public")
-        c.execute("GRANT USAGE ON changelogs_text_id_seq TO ftpmaster")
-        c.execute("GRANT SELECT ON changes_pending_files_map TO public")
-        c.execute("GRANT SELECT ON config TO public")
-
-        c.execute("UPDATE config SET value = '49' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 49, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update5.py b/dak/dakdb/update5.py
deleted file mode 100644 (file)
index a42e540..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-
-"""
-Fix bin_assoc_by_arch view
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009  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
-
-################################################################################
-
-def do_update(self):
-    """ Execute the DB update """
-
-    print "Fixing bin_assoc_by_arch view"
-    try:
-        c = self.db.cursor()
-
-        c.execute("""CREATE OR REPLACE VIEW bin_assoc_by_arch AS
-        SELECT ba.suite, ba.bin, a.id AS arch
-        FROM bin_associations ba
-        JOIN binaries b ON ba.bin = b.id, architecture a
-        WHERE a.id > 2 AND (b.architecture = 2 OR b.architecture = a.id) """)
-        c.execute("UPDATE config SET value = '5' WHERE name = 'db_revision'")
-
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to recreate bin_assoc_by_arch view, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update50.py b/dak/dakdb/update50.py
deleted file mode 100644 (file)
index 0949987..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Allow us to mark keyrings as no longer in use
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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):
-    """
-    Allow us to mark keyrings as no longer in use
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE keyrings ADD COLUMN active BOOL DEFAULT TRUE")
-        c.execute("UPDATE config SET value = '50' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 50, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update51.py b/dak/dakdb/update51.py
deleted file mode 100644 (file)
index 2d4c1a2..0000000
+++ /dev/null
@@ -1,58 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Fix table for source contents.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Torsten Werner <twerner@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):
-    """
-    Fix table for source contents.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-            CREATE INDEX ON src_contents (source_id)""")
-        c.execute("""
-            ALTER TABLE src_contents ADD COLUMN created TIMESTAMP WITH TIME ZONE
-                NOT NULL DEFAULT now()""")
-        c.execute("""
-            ALTER TABLE src_contents ADD COLUMN modified TIMESTAMP WITH TIME ZONE
-                NOT NULL DEFAULT now()""")
-        c.execute("""
-            CREATE TRIGGER modified_src_contents BEFORE UPDATE ON src_contents
-            FOR EACH ROW EXECUTE PROCEDURE tfunc_set_modified()""")
-
-        c.execute("UPDATE config SET value = '51' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 51, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update52.py b/dak/dakdb/update52.py
deleted file mode 100644 (file)
index 8bfaba3..0000000
+++ /dev/null
@@ -1,66 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add table for version checks.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Add table for version checks.
-    """
-    print __doc__
-    try:
-        cnf = Config()
-        c = self.db.cursor()
-
-        c.execute("""
-            CREATE TABLE version_check (
-                suite INTEGER NOT NULL REFERENCES suite(id),
-                "check" TEXT NOT NULL CHECK ("check" IN ('Enhances', 'MustBeNewerThan', 'MustBeOlderThan')),
-                reference INTEGER NOT NULL REFERENCES suite(id),
-                PRIMARY KEY(suite, "check", reference)
-            )""")
-
-        c.execute("SELECT suite_name, id FROM suite")
-        suites = c.fetchall()
-        suite_id_map = {}
-        for suite_name, suite_id in suites:
-            suite_id_map[suite_name] = suite_id
-
-        for check in ["Enhances", "MustBeNewerThan", "MustBeOlderThan"]:
-           for suite_name in suite_id_map.keys():
-              for reference_name in [ s.lower() for s in cnf.value_list("Suite::%s::VersionChecks::%s" % (suite_name, check)) ]:
-                   c.execute("""INSERT INTO version_check (suite, "check", reference) VALUES (%s, %s, %s)""", (suite_id_map[suite_name], check, suite_id_map[reference_name]))
-
-        c.execute("UPDATE config SET value = '52' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 52, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update53.py b/dak/dakdb/update53.py
deleted file mode 100644 (file)
index 9250825..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add table for build queue files from policy queues.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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
-
-################################################################################
-def do_update(self):
-    """
-    Add table for build queue files from policy queues.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-            CREATE TABLE build_queue_policy_files (
-                build_queue_id INTEGER NOT NULL REFERENCES build_queue(id) ON DELETE CASCADE,
-                file_id INTEGER NOT NULL REFERENCES changes_pending_files(id) ON DELETE CASCADE,
-                filename TEXT NOT NULL,
-                created TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(),
-                lastused TIMESTAMP WITHOUT TIME ZONE,
-                PRIMARY KEY (build_queue_id, file_id)
-            )""")
-
-        c.execute("UPDATE config SET value = '53' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 53, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update54.py b/dak/dakdb/update54.py
deleted file mode 100644 (file)
index c218cc6..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add send_to_build_queues to policy_queue table
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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
-
-################################################################################
-def do_update(self):
-    """
-    Add send_to_build_queues to policy_queue table
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-            ALTER TABLE policy_queue ADD COLUMN send_to_build_queues BOOLEAN NOT NULL DEFAULT 'f'
-            """)
-        c.execute("""
-            UPDATE policy_queue SET send_to_build_queues='t' WHERE queue_name IN ('embargo', 'disembargo')
-            """)
-
-        c.execute("UPDATE config SET value = '54' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 54, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update55.py b/dak/dakdb/update55.py
deleted file mode 100644 (file)
index 9e15222..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Drop unused view bin_assoc_by_arch.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Torsten Werner <twerner@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):
-    """
-    Drop unused view bin_assoc_by_arch.
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-            DROP VIEW bin_assoc_by_arch""")
-
-        c.execute("UPDATE config SET value = '55' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 55, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update56.py b/dak/dakdb/update56.py
deleted file mode 100644 (file)
index 647f8c7..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add order column to metadata_keys
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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
-
-################################################################################
-def do_update(self):
-    """
-    Add order column to metadata_keys
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE metadata_keys ADD COLUMN ordering INTEGER NOT NULL DEFAULT 0")
-
-        initial_order = {
-                'Package': -2600,
-                'Source': -2500,
-                'Binary': -2400,
-                'Version': -2300,
-                'Essential': -2250,
-                'Installed-Size': -2200,
-                'Maintainer': -2100,
-                'Uploaders': -2090,
-                'Original-Maintainer': -2080,
-                'Build-Depends': -2000,
-                'Build-Depends-Indep': -1990,
-                'Build-Conflicts': -1980,
-                'Build-Conflicts-Indep': -1970,
-                'Architecture': -1800,
-                'Standards-Version': -1700,
-                'Format': -1600,
-                'Files': -1500,
-                'DM-Upload-Allowed': -1400,
-                'Vcs-%': -1300,
-                'Checksums-%': -1200,
-                'Replaces': -1100,
-                'Provides': -1000,
-                'Depends': -900,
-                'Pre-Depends': -850,
-                'Recommends': -800,
-                'Suggests': -700,
-                'Enhances': -650,
-                'Conflicts': -600,
-                'Breaks': -500,
-                'Description': -400,
-                'Origin': -300,
-                'Bugs': -200,
-                'Multi-Arch': -150,
-                'Homepage': -100,
-                'Tag': 300,
-                'Package-Type': 400,
-                'Installer-Menu-Item': 500,
-                }
-
-        for key, order in initial_order.items():
-            c.execute("""UPDATE metadata_keys SET ordering = '%s' WHERE key ILIKE '%s'""" % (order, key))
-
-        c.execute("UPDATE config SET value = '56' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 56, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update57.py b/dak/dakdb/update57.py
deleted file mode 100644 (file)
index db49db4..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Allow per-suite signing keys
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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
-
-################################################################################
-def do_update(self):
-    """
-    Allow per-suite signing keys
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""ALTER TABLE suite ADD COLUMN signingkeys TEXT[]""")
-        c.execute("""UPDATE suite SET signingkeys = signingkeys || (SELECT value FROM config WHERE name = 'signingkeyids')""")
-        c.execute("""DELETE FROM config WHERE name = 'signingkeyids'""")
-
-        c.execute("UPDATE config SET value = '57' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 57, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update58.py b/dak/dakdb/update58.py
deleted file mode 100644 (file)
index 9f10d31..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Fix permissions again
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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
-
-################################################################################
-def do_update(self):
-    """
-    Fix up permissions (again)
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        for table in ['build_queue_policy_files',
-                      'version_check']:
-            c.execute("""GRANT SELECT, UPDATE, INSERT ON %s TO ftpmaster""" % table)
-            c.execute("""GRANT SELECT ON %s TO public""" % table)
-
-        # Make sure all sequences are fixed up
-        for seq in ['architecture_id_seq',
-                    'archive_id_seq',
-                    'bin_associations_id_seq',
-                    'binaries_id_seq',
-                    'binary_acl_id_seq',
-                    'binary_acl_map_id_seq',
-                    'build_queue_files_id_seq',
-                    'build_queue_id_seq',
-                    'changelogs_text_id_seq',
-                    'changes_id_seq',
-                    'changes_pending_binaries_id_seq',
-                    'changes_pending_files_id_seq',
-                    'changes_pending_source_id_seq',
-                    'component_id_seq',
-                    'config_id_seq',
-                    'dsc_files_id_seq',
-                    'files_id_seq',
-                    'fingerprint_id_seq',
-                    'keyring_acl_map_id_seq',
-                    'keyrings_id_seq',
-                    'location_id_seq',
-                    'maintainer_id_seq',
-                    'metadata_keys_key_id_seq',
-                    'new_comments_id_seq',
-                    'override_type_id_seq',
-                    'policy_queue_id_seq',
-                    'priority_id_seq',
-                    'section_id_seq',
-                    'source_acl_id_seq',
-                    'source_id_seq',
-                    'src_associations_id_seq',
-                    'src_format_id_seq',
-                    'src_uploaders_id_seq',
-                    'suite_id_seq',
-                    'uid_id_seq',
-                    'upload_blocks_id_seq']:
-            c.execute("""GRANT SELECT, UPDATE, USAGE ON %s TO ftpmaster""" % seq)
-            c.execute("""GRANT SELECT ON %s TO public""" % seq)
-
-        c.execute("UPDATE config SET value = '58' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 58, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update59.py b/dak/dakdb/update59.py
deleted file mode 100644 (file)
index fd6fea5..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add external_overrides
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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
-
-################################################################################
-def do_update(self):
-    """
-    Add external_overrides
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-        CREATE TABLE external_overrides (
-            package TEXT NOT NULL,
-            key TEXT NOT NULL,
-            value TEXT NOT NULL,
-            PRIMARY KEY (package, key)
-        )""");
-
-        c.execute("GRANT SELECT, UPDATE, INSERT, DELETE ON external_overrides TO ftpmaster");
-        c.execute("GRANT SELECT ON external_overrides TO public");
-
-        c.execute("UPDATE config SET value = '59' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 59, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update6.py b/dak/dakdb/update6.py
deleted file mode 100644 (file)
index f3d11bb..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Adding content fields
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@debian.org>
-@copyright: 2008  Roger Leigh <rleigh@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
-
-################################################################################
-
-# <tomv_w> really, if we want to screw ourselves, let's find a better way.
-# <Ganneff> rm -rf /srv/ftp.debian.org
-
-################################################################################
-
-import psycopg2
-import time
-from daklib.dak_exceptions import DBUpdateError
-
-################################################################################
-
-def do_update(self):
-    print "Adding content fields to database"
-
-    try:
-        c = self.db.cursor()
-        c.execute("""CREATE TABLE content_file_paths (
-                     id serial primary key not null,
-                     path text unique not null
-                   )""")
-
-        c.execute("""CREATE TABLE content_file_names (
-                    id serial primary key not null,
-                    file text unique not null
-                   )""")
-
-        c.execute("""CREATE TABLE content_associations (
-                    id serial not null,
-                    binary_pkg int4 not null references binaries(id) on delete cascade,
-                    filepath int4 not null references content_file_paths(id) on delete cascade,
-                    filename int4 not null references content_file_names(id) on delete cascade
-                  );""")
-
-        c.execute("""CREATE TABLE pending_content_associations (
-                     id serial not null,
-                     package text not null,
-                     version debversion not null,
-                     filepath int4 not null references content_file_paths(id) on delete cascade,
-                     filename int4 not null references content_file_names(id) on delete cascade
-                   );""")
-
-        c.execute("""CREATE FUNCTION comma_concat(text, text) RETURNS text
-                   AS $_$select case
-                   WHEN $2 is null or $2 = '' THEN $1
-                   WHEN $1 is null or $1 = '' THEN $2
-                   ELSE $1 || ',' || $2
-                   END$_$
-                   LANGUAGE sql""")
-
-        c.execute("""CREATE AGGREGATE comma_separated_list (
-                   BASETYPE = text,
-                   SFUNC = comma_concat,
-                   STYPE = text,
-                   INITCOND = ''
-                   );""")
-
-        c.execute( "CREATE INDEX content_assocaitions_binary ON content_associations(binary_pkg)" )
-
-        c.execute("UPDATE config SET value = '6' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy debversion updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update60.py b/dak/dakdb/update60.py
deleted file mode 100644 (file)
index 0173529..0000000
+++ /dev/null
@@ -1,56 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Make external overrides specific for (suite, component)
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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
-
-################################################################################
-def do_update(self):
-    """
-    Make external overrides specific for (suite, component)
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("DELETE FROM external_overrides")
-        print "NOTE: Please reimport the external overrides."
-
-        c.execute("""
-        ALTER TABLE external_overrides
-            DROP CONSTRAINT external_overrides_pkey,
-            ADD COLUMN suite INTEGER NOT NULL REFERENCES suite(id),
-            ADD COLUMN component INTEGER NOT NULL REFERENCES component(id),
-            ADD PRIMARY KEY (suite, component, package, key)
-        """)
-
-        c.execute("UPDATE config SET value = '60' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 60, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update61.py b/dak/dakdb/update61.py
deleted file mode 100644 (file)
index 3b18e0b..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Just a view for version checks
-
-@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
-
-################################################################################
-def do_update(self):
-    """
-    Just a view for version checks
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("""
-        CREATE OR REPLACE VIEW version_checks AS
-        SELECT s.suite_name AS source_suite, v.check as condition, t.suite_name AS target_suite
-        FROM suite s
-         JOIN version_check v ON (s.id = v.suite)
-         JOIN suite t ON (v.reference = t.id)
-        ORDER BY source_suite, condition, target_suite;
-        """)
-
-        c.execute("GRANT SELECT on version_checks TO PUBLIC;")
-        c.execute("UPDATE config SET value = '61' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 61, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update62.py b/dak/dakdb/update62.py
deleted file mode 100644 (file)
index 7a47dca..0000000
+++ /dev/null
@@ -1,47 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Ensure that suite_name is unique!
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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
-
-################################################################################
-def do_update(self):
-    """
-    Ensure that suite_name is unique
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE suite ADD CONSTRAINT suite_name_unique UNIQUE (suite_name)")
-
-        c.execute("UPDATE config SET value = '62' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 62, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update63.py b/dak/dakdb/update63.py
deleted file mode 100644 (file)
index e9e5c0f..0000000
+++ /dev/null
@@ -1,59 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add missing PrimaryMirror field to archive table
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Add missing PrimaryMirror field to archive table
-    """
-    print __doc__
-    try:
-        cnf = Config()
-
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE archive ADD COLUMN primary_mirror TEXT")
-
-        c.execute("SELECT id, name FROM archive")
-
-        query = "UPDATE archive SET primary_mirror = %s WHERE id = %s"
-        for a_id, a_name in c.fetchall():
-            if cnf.has_key('Archive::%s::PrimaryMirror' % a_name):
-                primloc = cnf['Archive::%s::PrimaryMirror' % a_name]
-                print "Setting archive %s PrimaryMirror to %s" % (a_name, primloc)
-                c.execute(query, [primloc, a_id])
-
-        c.execute("UPDATE config SET value = '63' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 63, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update64.py b/dak/dakdb/update64.py
deleted file mode 100644 (file)
index 49ca75a..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Fix up permissions on changes_pool_files
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Fix up permissions on changes_pool_files
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("REVOKE INSERT ON changes_pool_files FROM ftpteam")
-        c.execute("GRANT DELETE ON changes_pool_files TO ftpteam")
-
-        c.execute("UPDATE config SET value = '64' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 64, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update65.py b/dak/dakdb/update65.py
deleted file mode 100644 (file)
index 46730b5..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Make announce field an array
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Make announce field an array
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE suite RENAME COLUMN announce TO announce_temp")
-        c.execute("ALTER TABLE suite ADD COLUMN announce TEXT[]")
-        c.execute("UPDATE suite SET announce = ARRAY[announce_temp] WHERE announce_temp IS NOT NULL")
-        c.execute("ALTER TABLE suite DROP COLUMN announce_temp")
-
-        c.execute("UPDATE config SET value = '65' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 65, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update66.py b/dak/dakdb/update66.py
deleted file mode 100644 (file)
index d59306f..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add 2 partial indexes to speed up dak rm.
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Torsten Werner <twerner@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Add 2 partial indexes to speed up dak rm.
-    """
-    print __doc__
-    try:
-        cnf = Config()
-
-        c = self.db.cursor()
-
-        # partial index for Depends
-        c.execute("SELECT key_id FROM metadata_keys WHERE key = 'Depends'")
-        key = c.fetchone()[0]
-        c.execute("""CREATE INDEX binaries_metadata_depends
-            ON binaries_metadata (bin_id) WHERE key_id = %d""" % key)
-
-        # partial index for Provides
-        c.execute("SELECT key_id FROM metadata_keys WHERE key = 'Provides'")
-        key = c.fetchone()[0]
-        c.execute("""CREATE INDEX binaries_metadata_provides
-            ON binaries_metadata (bin_id) WHERE key_id = %d""" % key)
-
-        c.execute("UPDATE config SET value = '66' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 66, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update67.py b/dak/dakdb/update67.py
deleted file mode 100644 (file)
index 18c51d4..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Add audit schema and initial package table and triggers
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@debian.org>
-@copyright: 2011 Ansgar Burchardt <ansgar@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Add audit schema and initial package table and triggers
-    """
-    print __doc__
-    try:
-        c = self.db.cursor()
-
-        c.execute("CREATE SCHEMA audit");
-        c.execute("GRANT USAGE on SCHEMA audit TO public")
-        c.execute("GRANT USAGE on SCHEMA audit TO ftpteam")
-        c.execute("GRANT USAGE on SCHEMA audit TO ftpmaster")
-
-        c.execute("""CREATE TABLE audit.package_changes (
-   changedate TIMESTAMP NOT NULL DEFAULT now(),
-   package TEXT NOT NULL,
-   version DEBVERSION NOT NULL,
-   architecture TEXT NOT NULL,
-   suite TEXT NOT NULL,
-   event TEXT NOT NULL,
-   priority TEXT,
-   component TEXT,
-   section TEXT
-)""")
-
-        c.execute("GRANT INSERT ON audit.package_changes TO dak")
-        c.execute("GRANT SELECT ON audit.package_changes TO PUBLIC")
-
-        c.execute("""CREATE OR REPLACE FUNCTION trigger_binsrc_assoc_update() RETURNS TRIGGER AS $$
-DECLARE
-  v_data RECORD;
-
-  v_package audit.package_changes.package%TYPE;
-  v_version audit.package_changes.version%TYPE;
-  v_architecture audit.package_changes.architecture%TYPE;
-  v_suite audit.package_changes.suite%TYPE;
-  v_event audit.package_changes.event%TYPE;
-  v_priority audit.package_changes.priority%TYPE;
-  v_component audit.package_changes.component%TYPE;
-  v_section audit.package_changes.section%TYPE;
-BEGIN
-  CASE TG_OP
-    WHEN 'INSERT' THEN v_event := 'I'; v_data := NEW;
-    WHEN 'DELETE' THEN v_event := 'D'; v_data := OLD;
-    ELSE RAISE EXCEPTION 'trigger called for invalid operation (%)', TG_OP;
-  END CASE;
-
-  SELECT suite_name INTO STRICT v_suite FROM suite WHERE id = v_data.suite;
-
-  CASE TG_TABLE_NAME
-    WHEN 'bin_associations' THEN
-      SELECT package, version, arch_string
-        INTO STRICT v_package, v_version, v_architecture
-        FROM binaries LEFT JOIN architecture ON (architecture.id = binaries.architecture)
-        WHERE binaries.id = v_data.bin;
-
-      SELECT component.name, priority.priority, section.section
-        INTO v_component, v_priority, v_section
-        FROM override
-             JOIN override_type ON (override.type = override_type.id)
-             JOIN priority ON (priority.id = override.priority)
-             JOIN section ON (section.id = override.section)
-             JOIN component ON (override.component = component.id)
-             JOIN suite ON (suite.id = override.suite)
-        WHERE override_type.type != 'dsc'
-              AND override.package = v_package AND suite.id = v_data.suite;
-
-    WHEN 'src_associations' THEN
-      SELECT source, version
-        INTO STRICT v_package, v_version
-        FROM source WHERE source.id = v_data.source;
-      v_architecture := 'source';
-
-      SELECT component.name, priority.priority, section.section
-        INTO v_component, v_priority, v_section
-        FROM override
-             JOIN override_type ON (override.type = override_type.id)
-             JOIN priority ON (priority.id = override.priority)
-             JOIN section ON (section.id = override.section)
-             JOIN component ON (override.component = component.id)
-             JOIN suite ON (suite.id = override.suite)
-        WHERE override_type.type = 'dsc'
-              AND override.package = v_package AND suite.id = v_data.suite;
-
-    ELSE RAISE EXCEPTION 'trigger called for invalid table (%)', TG_TABLE_NAME;
-  END CASE;
-
-  INSERT INTO audit.package_changes
-    (package, version, architecture, suite, event, priority, component, section)
-    VALUES (v_package, v_version, v_architecture, v_suite, v_event, v_priority, v_component, v_section);
-
-  RETURN NEW;
-END;
-$$ LANGUAGE plpgsql VOLATILE SECURITY DEFINER
-SET search_path = public, pg_temp""");
-
-        c.execute("""CREATE OR REPLACE FUNCTION trigger_override_update() RETURNS TRIGGER AS $$
-DECLARE
-  v_src_override_id override_type.id%TYPE;
-
-  v_priority audit.package_changes.priority%TYPE := NULL;
-  v_component audit.package_changes.component%TYPE := NULL;
-  v_section audit.package_changes.section%TYPE := NULL;
-BEGIN
-
-  IF TG_TABLE_NAME != 'override' THEN
-    RAISE EXCEPTION 'trigger called for invalid table (%)', TG_TABLE_NAME;
-  END IF;
-  IF TG_OP != 'UPDATE' THEN
-    RAISE EXCEPTION 'trigger called for invalid event (%)', TG_OP;
-  END IF;
-
-  IF OLD.package != NEW.package OR OLD.type != NEW.type OR OLD.suite != NEW.suite THEN
-    RETURN NEW;
-  END IF;
-
-  IF OLD.priority != NEW.priority THEN
-    SELECT priority INTO STRICT v_priority FROM priority WHERE id = NEW.priority;
-  END IF;
-
-  IF OLD.component != NEW.component THEN
-    SELECT name INTO STRICT v_component FROM component WHERE id = NEW.component;
-  END IF;
-
-  IF OLD.section != NEW.section THEN
-    SELECT section INTO STRICT v_section FROM section WHERE id = NEW.section;
-  END IF;
-
-  -- Find out if we're doing src or binary overrides
-  SELECT id INTO STRICT v_src_override_id FROM override_type WHERE type = 'dsc';
-  IF OLD.type = v_src_override_id THEN
-    -- Doing a src_association link
-    INSERT INTO audit.package_changes
-      (package, version, architecture, suite, event, priority, component, section)
-      SELECT NEW.package, source.version, 'source', suite.suite_name, 'U', v_priority, v_component, v_section
-        FROM source
-          JOIN src_associations ON (source.id = src_associations.source)
-          JOIN suite ON (suite.id = src_associations.suite)
-        WHERE source.source = NEW.package AND src_associations.suite = NEW.suite;
-  ELSE
-    -- Doing a bin_association link
-    INSERT INTO audit.package_changes
-      (package, version, architecture, suite, event, priority, component, section)
-      SELECT NEW.package, binaries.version, architecture.arch_string, suite.suite_name, 'U', v_priority, v_component, v_section
-        FROM binaries
-          JOIN bin_associations ON (binaries.id = bin_associations.bin)
-          JOIN architecture ON (architecture.id = binaries.architecture)
-          JOIN suite ON (suite.id = bin_associations.suite)
-        WHERE binaries.package = NEW.package AND bin_associations.suite = NEW.suite;
-  END IF;
-
-  RETURN NEW;
-END;
-$$ LANGUAGE plpgsql VOLATILE SECURITY DEFINER
-SET search_path = public, pg_temp""");
-
-        c.execute("CREATE TRIGGER trigger_bin_associations_audit AFTER INSERT OR DELETE ON bin_associations FOR EACH ROW EXECUTE PROCEDURE trigger_binsrc_assoc_update()")
-        c.execute("CREATE TRIGGER trigger_src_associations_audit AFTER INSERT OR DELETE ON src_associations FOR EACH ROW EXECUTE PROCEDURE trigger_binsrc_assoc_update()")
-        c.execute("CREATE TRIGGER trigger_override_audit AFTER UPDATE ON override FOR EACH ROW EXECUTE PROCEDURE trigger_override_update()")
-
-        c.execute("UPDATE config SET value = '67' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError, msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 67, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update68.py b/dak/dakdb/update68.py
deleted file mode 100644 (file)
index ec5b43d..0000000
+++ /dev/null
@@ -1,52 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Drop unused plperl routine and language and plpythonu language
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2011 Mark Hymers <mhy@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 daklib.config import Config
-
-################################################################################
-def do_update(self):
-    """
-    Drop unused plperl routine and language and plpythonu language
-    """
-    print __doc__
-    try:
-        cnf = Config()
-
-        c = self.db.cursor()
-
-        c.execute("DROP FUNCTION debversion_compare_single(text,text)")
-        c.execute("DROP LANGUAGE plperl");
-        c.execute("DROP LANGUAGE plpythonu");
-
-        c.execute("UPDATE config SET value = '68' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError('Unable to apply sick update 68, rollback issued. Error message : %s' % (str(msg)))
diff --git a/dak/dakdb/update7.py b/dak/dakdb/update7.py
deleted file mode 100644 (file)
index bfd8867..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Moving suite config into DB
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@debian.org>
-@copyright: 2009  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
-
-################################################################################
-
-# * Ganneff ponders how to best write the text to -devel. (need to tell em in
-#   case they find more bugs). "We fixed the fucking idiotic broken implementation
-#   to be less so" is probably not the nicest, even if perfect valid, way to say so
-
-################################################################################
-
-import psycopg2
-import time
-from daklib.dak_exceptions import DBUpdateError
-from daklib.utils import get_conf
-
-################################################################################
-
-def do_update(self):
-    print "Moving some of the suite config into the DB"
-    Cnf = get_conf()
-
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE suite ADD COLUMN untouchable BOOLEAN NOT NULL DEFAULT FALSE;")
-        query = "UPDATE suite SET untouchable = TRUE WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            untouchable = Cnf.find("Suite::%s::Untouchable" % (suite))
-            if not untouchable:
-                continue
-            print "[Untouchable] Processing suite %s" % (suite)
-            suite = suite.lower()
-            c.execute(query, [suite])
-
-
-        c.execute("ALTER TABLE suite ADD COLUMN announce text NOT NULL DEFAULT 'debian-devel-changes@lists.debian.org';")
-        query = "UPDATE suite SET announce = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            announce_list = Cnf.find("Suite::%s::Announce" % (suite))
-            print "[Announce] Processing suite %s" % (suite)
-            suite = suite.lower()
-            c.execute(query, [announce_list, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN codename text;")
-        query = "UPDATE suite SET codename = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            codename = Cnf.find("Suite::%s::CodeName" % (suite))
-            print "[Codename] Processing suite %s" % (suite)
-            suite = suite.lower()
-            c.execute(query, [codename, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN overridecodename text;")
-        query = "UPDATE suite SET overridecodename = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            codename = Cnf.find("Suite::%s::OverrideCodeName" % (suite))
-            print "[OverrideCodeName] Processing suite %s" % (suite)
-            suite = suite.lower()
-            c.execute(query, [codename, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN validtime integer NOT NULL DEFAULT 604800;")
-        query = "UPDATE suite SET validtime = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            validtime = Cnf.find("Suite::%s::ValidTime" % (suite))
-            print "[ValidTime] Processing suite %s" % (suite)
-            if not validtime:
-                validtime = 0
-            suite = suite.lower()
-            c.execute(query, [validtime, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN priority integer NOT NULL DEFAULT 0;")
-        query = "UPDATE suite SET priority = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            priority = Cnf.find("Suite::%s::Priority" % (suite))
-            print "[Priority] Processing suite %s" % (suite)
-            if not priority:
-                priority = 0
-            suite = suite.lower()
-            c.execute(query, [priority, suite])
-
-
-        c.execute("ALTER TABLE suite ADD COLUMN notautomatic BOOLEAN NOT NULL DEFAULT FALSE;")
-        query = "UPDATE suite SET notautomatic = TRUE WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            notautomatic = Cnf.find("Suite::%s::NotAutomatic" % (suite))
-            print "[NotAutomatic] Processing suite %s" % (suite)
-            if not notautomatic:
-                continue
-            suite = suite.lower()
-            c.execute(query, [suite])
-
-        c.execute("UPDATE config SET value = '7' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to appy suite config updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update8.py b/dak/dakdb/update8.py
deleted file mode 100644 (file)
index 6bacd4e..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-More suite config into the DB
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@debian.org>
-@copyright: 2009  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
-
-################################################################################
-
-# * Ganneff ponders how to best write the text to -devel. (need to tell em in
-#   case they find more bugs). "We fixed the fucking idiotic broken implementation
-#   to be less so" is probably not the nicest, even if perfect valid, way to say so
-
-################################################################################
-
-import psycopg2
-import time
-from daklib.dak_exceptions import DBUpdateError
-from daklib.utils import get_conf
-
-################################################################################
-
-def do_update(self):
-    print "Moving some more of the suite config into the DB"
-    Cnf = get_conf()
-
-    try:
-        c = self.db.cursor()
-
-        c.execute("ALTER TABLE suite ADD COLUMN copychanges TEXT;")
-        query = "UPDATE suite SET copychanges = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            copychanges = Cnf.find("Suite::%s::CopyChanges" % (suite))
-            print "[CopyChanges] Processing suite %s" % (suite)
-            if not copychanges:
-                continue
-            suite = suite.lower()
-            c.execute(query, [copychanges, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN copydotdak TEXT;")
-        query = "UPDATE suite SET copydotdak = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            copydotdak = Cnf.find("Suite::%s::CopyDotDak" % (suite))
-            print "[CopyDotDak] Processing suite %s" % (suite)
-            if not copydotdak:
-                continue
-            suite = suite.lower()
-            c.execute(query, [copydotdak, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN commentsdir TEXT;")
-        query = "UPDATE suite SET commentsdir = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            commentsdir = Cnf.find("Suite::%s::CommentsDir" % (suite))
-            print "[CommentsDir] Processing suite %s" % (suite)
-            if not commentsdir:
-                continue
-            suite = suite.lower()
-            c.execute(query, [commentsdir, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN overridesuite TEXT;")
-        query = "UPDATE suite SET overridesuite = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            overridesuite = Cnf.find("Suite::%s::OverrideSuite" % (suite))
-            print "[OverrideSuite] Processing suite %s" % (suite)
-            if not overridesuite:
-                continue
-            suite = suite.lower()
-            c.execute(query, [overridesuite, suite])
-
-        c.execute("ALTER TABLE suite ADD COLUMN changelogbase TEXT;")
-        query = "UPDATE suite SET changelogbase = %s WHERE suite_name = %s"  #: Update query
-        for suite in Cnf.subtree("Suite").list():
-            changelogbase = Cnf.find("Suite::%s::ChangeLogBase" % (suite))
-            print "[ChangeLogBase] Processing suite %s" % (suite)
-            if not changelogbase:
-                continue
-            suite = suite.lower()
-            c.execute(query, [changelogbase, suite])
-
-        c.execute("UPDATE config SET value = '8' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/dakdb/update9.py b/dak/dakdb/update9.py
deleted file mode 100644 (file)
index bbdd212..0000000
+++ /dev/null
@@ -1,62 +0,0 @@
-#!/usr/bin/env python
-# coding=utf8
-
-"""
-Pending contents disinguished by arch
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2008  Michael Casadevall <mcasadevall@debian.org>
-@copyright: 2009  Mike O'Connor <stew@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
-
-################################################################################
-
-# * Ganneff ponders how to best write the text to -devel. (need to tell em in
-#   case they find more bugs). "We fixed the fucking idiotic broken implementation
-#   to be less so" is probably not the nicest, even if perfect valid, way to say so
-
-################################################################################
-
-import psycopg2
-import time
-from daklib.dak_exceptions import DBUpdateError
-from daklib.utils import get_conf
-
-################################################################################
-
-def do_update(self):
-    print "pending_contents should distinguish by arch"
-    Cnf = get_conf()
-
-    try:
-        c = self.db.cursor()
-
-        c.execute("DELETE FROM pending_content_associations")
-        c.execute("""ALTER TABLE pending_content_associations
-                         ADD COLUMN architecture integer NOT NULL""")
-        c.execute("""ALTER TABLE ONLY pending_content_associations
-                         ADD CONSTRAINT pending_content_assiciations_arch
-                         FOREIGN KEY (architecture)
-                         REFERENCES architecture(id)
-                         ON DELETE CASCADE""")
-        c.execute("UPDATE config SET value = '9' WHERE name = 'db_revision'")
-        self.db.commit()
-
-    except psycopg2.ProgrammingError as msg:
-        self.db.rollback()
-        raise DBUpdateError("Unable to apply suite config updates, rollback issued. Error message : %s" % (str(msg)))
diff --git a/dak/generate_packages_sources.py b/dak/generate_packages_sources.py
deleted file mode 100755 (executable)
index 3e01da2..0000000
+++ /dev/null
@@ -1,272 +0,0 @@
-#!/usr/bin/env python
-
-""" Generate Packages/Sources files
-
-@contact: Debian FTPMaster <ftpmaster@debian.org>
-@copyright: 2000, 2001, 2002, 2006  James Troup <james@nocrew.org>
-@copyright: 2009  Mark Hymers <mhy@debian.org>
-@copyright: 2010  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 os
-import os.path
-import sys
-import apt_pkg
-from tempfile import mkstemp, mkdtemp
-import commands
-from multiprocessing import Pool, TimeoutError
-
-from daklib import daklog
-from daklib.dbconn import *
-from daklib.config import Config
-
-################################################################################
-
-Options = None                 #: Commandline arguments parsed into this
-Logger = None                  #: Our logging object
-results = []                   #: Results of the subprocesses
-
-################################################################################
-
-def usage (exit_code=0):
-    print """Usage: dak generate-packages-sources [OPTIONS]
-Generate the Packages/Sources files
-
-  -s, --suite=SUITE(s)       process this suite
-                             Default: All suites not marked 'untouchable'
-  -f, --force                Allow processing of untouchable suites
-                             CAREFUL: Only to be used at point release time!
-  -h, --help                 show this help and exit
-
-SUITE can be a space seperated list, e.g.
-   --suite=unstable testing
-  """
-
-    sys.exit(exit_code)
-
-################################################################################
-
-def generate_packages_sources(arch, suite, tmppath):
-    """
-    Generate Packages/Sources files with apt-ftparchive for the given suite/arch
-
-    @type suite: string
-    @param suite: Suite name
-
-    @type arch: string
-    @param arch: Architecture name
-
-    @type tmppath: string
-    @param tmppath: The temporary path to work ing
-    """
-
-    DAILY_APT_CONF="""
-Dir
-{
-   ArchiveDir "/srv/ftp-master.debian.org/ftp/";
-   OverrideDir "/srv/ftp-master.debian.org/scripts/override/";
-   CacheDir "/srv/ftp-master.debian.org/database/";
-};
-
-Default
-{
-   Packages::Compress "bzip2 gzip";
-   Sources::Compress "bzip2 gzip";
-   Contents::Compress "gzip";
-   DeLinkLimit 0;
-   MaxContentsChange 25000;
-   FileMode 0664;
-}
-
-TreeDefault
-{
-   Contents::Header "/srv/ftp-master.debian.org/dak/config/debian/Contents.top";
-};
-
-"""
-
-    apt_trees={}
-    apt_trees["di"]={}
-
-    apt_trees["oldstable"]="""
-tree "dists/oldstable"
-{
-   FileList "/srv/ftp-master.debian.org/database/dists/oldstable_$(SECTION)_binary-$(ARCH).list";
-   SourceFileList "/srv/ftp-master.debian.org/database/dists/oldstable_$(SECTION)_source.list";
-   Sections "main contrib non-free";
-   Architectures "%(arch)s";
-   BinOverride "override.squeeze.$(SECTION)";
-   ExtraOverride "override.squeeze.extra.$(SECTION)";
-   SrcOverride "override.squeeze.$(SECTION).src";
-};
-"""
-
-    apt_trees["di"]["oldstable"]="""
-tree "dists/oldstable/main"
-{
-   FileList "/srv/ftp-master.debian.org/database/dists/oldstable_main_$(SECTION)_binary-$(ARCH).list";
-   Sections "debian-installer";
-   Architectures "%(arch)s";
-   BinOverride "override.squeeze.main.$(SECTION)";
-   SrcOverride "override.squeeze.main.src";
-   BinCacheDB "packages-debian-installer-$(ARCH).db";
-   Packages::Extensions ".udeb";
-   %(contentsline)s
-};
-
-tree "dists/oldstable/non-free"
-{
-   FileList "/srv/ftp-master.debian.org/database/dists/oldstable_non-free_$(SECTION)_binary-$(ARCH).list";
-   Sections "debian-installer";
-   Architectures "%(arch)s";
-   BinOverride "override.squeeze.main.$(SECTION)";
-   SrcOverride "override.squeeze.main.src";
-   BinCacheDB "packages-debian-installer-$(ARCH).db";
-   Packages::Extensions ".udeb";
-   %(contentsline)s
-};
-"""
-
-
-    cnf = Config()
-    try:
-        # Write apt.conf
-        (ac_fd, ac_name) = mkstemp(dir=tmppath, suffix=suite, prefix=arch)
-        os.write(ac_fd, DAILY_APT_CONF)
-        # here we want to generate the tree entries
-        os.write(ac_fd, apt_trees[suite] % {'arch': arch})
-        # this special casing needs to go away, but this whole thing may just want an
-        # aptconfig class anyways
-        if arch != 'source':
-            if arch == 'hurd-i386' and suite == 'experimental':
-                pass
-            elif apt_trees["di"].has_key(suite):
-                if arch == "amd64":
-                    os.write(ac_fd, apt_trees["di"][suite] %
-                             {'arch': arch, 'contentsline': 'Contents "$(DIST)/../Contents-udeb";'})
-                else:
-                    os.write(ac_fd, apt_trees["di"][suite] % {'arch': arch, 'contentsline': ''})
-        os.close(ac_fd)
-
-        print "Going to run apt-ftparchive for %s/%s" % (arch, suite)
-        # Run apt-ftparchive generate
-        # We dont want to add a -q or -qq here, this output should go into our logs, sometimes
-        # it has errormessages we like to see
-        os.environ['GZIP'] = '--rsyncable'
-        os.chdir(tmppath)
-        (result, output) = commands.getstatusoutput('apt-ftparchive -o APT::FTPArchive::Contents=off -o APT::FTPArchive::SHA512=off generate %s' % os.path.basename(ac_name))
-        sn="a-f %s,%s: " % (suite, arch)
-        print sn + output.replace('\n', '\n%s' % (sn))
-        return result
-
-    # Clean up any left behind files
-    finally:
-        if ac_fd:
-            try:
-                os.close(ac_fd)
-            except OSError:
-                pass
-
-        if ac_name:
-            try:
-                os.unlink(ac_name)
-            except OSError:
-                pass
-
-def sname(arch):
-    return arch.arch_string
-
-def get_result(arg):
-    global results
-    if arg:
-        results.append(arg)
-
-########################################################################
-########################################################################
-
-def main ():
-    global Options, Logger, results
-
-    cnf = Config()
-
-    for i in ["Help", "Suite", "Force"]:
-        if not cnf.has_key("Generate-Packages-Sources::Options::%s" % (i)):
-            cnf["Generate-Packages-Sources::Options::%s" % (i)] = ""
-
-    Arguments = [('h',"help","Generate-Packages-Sources::Options::Help"),
-                 ('s',"suite","Generate-Packages-Sources::Options::Suite"),
-                 ('f',"force","Generate-Packages-Sources::Options::Force")]
-
-    suite_names = apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv)
-    Options = cnf.subtree("Generate-Packages-Sources::Options")
-
-    if Options["Help"]:
-        usage()
-
-    Logger = daklog.Logger('generate-packages-sources')
-
-    session = DBConn().session()
-
-    if Options["Suite"]:
-        # Something here
-        suites = []
-        for s in suite_names:
-            suite = get_suite(s.lower(), session)
-            if suite:
-                suites.append(suite)
-            else:
-                print "cannot find suite %s" % s
-                Logger.log(['cannot find suite %s' % s])
-    else:
-        suites=session.query(Suite).filter(Suite.untouchable == False).all()
-
-    startdir = os.getcwd()
-    os.chdir(cnf["Dir::TempPath"])
-
-    broken=[]
-    # For each given suite, each architecture, run one apt-ftparchive
-    for s in suites:
-        results=[]
-        # Setup a multiprocessing Pool. As many workers as we have CPU cores.
-        pool = Pool()
-        arch_list=get_suite_architectures(s.suite_name, skipsrc=False, skipall=False, session=session)
-        Logger.log(['generating output for Suite %s, Architectures %s' % (s.suite_name, map(sname, arch_list))])
-        for a in arch_list:
-            pool.apply_async(generate_packages_sources, (a.arch_string, s.suite_name, cnf["Dir::TempPath"]), callback=get_result)
-
-        # No more work will be added to our pool, close it and then wait for all to finish
-        pool.close()
-        pool.join()
-
-    if len(results) > 0:
-        Logger.log(['Trouble, something with a-f broke, resultcodes: %s' % (results)])
-        print "Trouble, something with a-f broke, resultcodes: %s" % (results)
-        sys.exit(1)
-
-    os.chdir(startdir)
-    # this script doesn't change the database
-    session.close()
-    Logger.close()
-
-#######################################################################################
-
-if __name__ == '__main__':
-    main()
index aa2928db71bef54f63fb990b80563c59502b92b2..7d4603d5811ebcc21b3dc5b24e9f3a4cb77ba5eb 100755 (executable)
@@ -99,8 +99,6 @@ def _do_Approve():
         # 3. Run all the steps that are needed to publish the changed archive
         print "Domination"
         spawn("dak dominate")
-        #    print "Generating filelist for apt-ftparchive"
-        #    spawn("dak generate-filelist")
         print "Updating Packages and Sources files... This may take a while, be patient"
         spawn("/srv/security-master.debian.org/dak/config/debian-security/map.sh")
         spawn("dak generate-packages-sources2 -a security")
diff --git a/daklib/holding.py b/daklib/holding.py
deleted file mode 100644 (file)
index 6c9ce57..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-#!/usr/bin/env python
-# vim:set et sw=4:
-
-"""
-Simple singleton class for storing info about Holding directory
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2001 - 2006 James Troup <james@nocrew.org>
-@copyright: 2009  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 os
-from errno import ENOENT, EEXIST, EACCES
-import shutil
-
-from config import Config
-from utils import fubar
-
-###############################################################################
-
-class Holding(object):
-    __shared_state = {}
-
-    def __init__(self, *args, **kwargs):
-        self.__dict__ = self.__shared_state
-
-        if not getattr(self, 'initialised', False):
-            self.initialised = True
-
-            self.in_holding = {}
-            self.holding_dir = Config()["Dir::Holding"]
-            # ftptrainees haven't access to holding, use a temp directory instead
-            if not os.access(self.holding_dir, os.W_OK):
-                self.holding_dir = Config()["Dir::TempPath"]
-
-    def chdir_to_holding(self):
-        os.chdir(self.holding_dir)
-
-    def copy_to_holding(self, filename):
-        base_filename = os.path.basename(filename)
-
-        dest = os.path.join(self.holding_dir, base_filename)
-        try:
-            fd = os.open(dest, os.O_RDWR | os.O_CREAT | os.O_EXCL, 0o640)
-            os.close(fd)
-        except OSError as e:
-            # Shouldn't happen, but will if, for example, someone lists a
-            # file twice in the .changes.
-            if e.errno == EEXIST:
-                return "%s: already exists in holding area; can not overwrite." % (base_filename)
-
-        try:
-            shutil.copy(filename, dest)
-        except IOError as e:
-            # In either case (ENOENT or EACCES) we want to remove the
-            # O_CREAT | O_EXCLed ghost file, so add the file to the list
-            # of 'in holding' even if it's not the real file.
-            if e.errno == ENOENT:
-                os.unlink(dest)
-                return "%s: can not copy to holding area: file not found." % (base_filename)
-
-            elif e.errno == EACCES:
-                os.unlink(dest)
-                return "%s: can not copy to holding area: read permission denied." % (base_filename)
-
-        self.in_holding[base_filename] = ""
-
-        return None
-
-    def clean(self):
-        cwd = os.getcwd()
-        os.chdir(self.holding_dir)
-        for f in self.in_holding.keys():
-            # TODO: Sanitize path in a much better manner...
-            if os.path.exists(f):
-                if f.find('/') != -1:
-                    fubar("WTF? clean_holding() got a file ('%s') with / in it!" % (f))
-                else:
-                    os.unlink(f)
-        self.in_holding = {}
-        os.chdir(cwd)
-
diff --git a/daklib/lists.py b/daklib/lists.py
deleted file mode 100644 (file)
index 5766371..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-#!/usr/bin/python
-
-"""
-Helper functions for list generating commands (Packages, Sources).
-
-@contact: Debian FTP Master <ftpmaster@debian.org>
-@copyright: 2009-2011  Torsten Werner <twerner@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
-
-################################################################################
-
-from dbconn import get_architecture
-
-def fetch(query, args, session):
-    for (id, path, filename) in session.execute(query, args).fetchall():
-        yield (id, path + filename)
-
-def getSources(suite, component, session, timestamp = None):
-    '''
-    Calculates the sources in suite and component optionally limited by
-    sources newer than timestamp.  Returns a generator that yields a
-    tuple of source id and full pathname to the dsc file. See function
-    writeSourceList() in dak/generate_filelist.py for an example that
-    uses this function.
-    '''
-    extra_cond = ""
-    if timestamp:
-        extra_cond = "AND extract(epoch from sa.created) > %d" % timestamp
-    query = """
-        SELECT s.id, archive.path || 'pool/', c.name || '/' || f.filename
-            FROM source s
-            JOIN src_associations sa
-                ON s.id = sa.source AND sa.suite = :suite %s
-            JOIN suite
-                ON sa.suite = suite.id
-            JOIN archive
-                ON suite.archive_id = archive.id
-            JOIN files f
-                ON s.file = f.id
-            JOIN files_archive_map fam
-                ON fam.file_id = f.id AND fam.component_id = :component
-            JOIN component c
-                ON fam.component_id = c.id
-            ORDER BY filename
-    """ % extra_cond
-    args = { 'suite': suite.suite_id,
-             'component': component.component_id }
-    return fetch(query, args, session)
-
-def getArchAll(suite, component, architecture, type, session, timestamp = None):
-    '''
-    Calculates all binaries in suite and component of architecture 'all' (and
-    only 'all') and type 'deb' or 'udeb' optionally limited to binaries newer
-    than timestamp.  Returns a generator that yields a tuple of binary id and
-    full pathname to the u(deb) file. See function writeAllList() in
-    dak/generate_filelist.py for an example that uses this function.
-    '''
-    query = suite.clone(session).binaries. \
-        filter_by(architecture = architecture, binarytype = type)
-    if timestamp is not None:
-        extra_cond = 'extract(epoch from bin_associations.created) > %d' % timestamp
-        query = query.filter(extra_cond)
-    for binary in query:
-        yield (binary.binary_id, binary.poolfile.fullpath)
-
-def getBinaries(suite, component, architecture, type, session, timestamp = None):
-    '''
-    Calculates the binaries in suite and component of architecture and
-    type 'deb' or 'udeb' optionally limited to binaries newer than
-    timestamp.  Returns a generator that yields a tuple of binary id and
-    full pathname to the u(deb) file. See function writeBinaryList() in
-    dak/generate_filelist.py for an example that uses this function.
-    '''
-    extra_cond = ""
-    if timestamp:
-        extra_cond = "AND extract(epoch from ba.created) > %d" % timestamp
-    query = """
-CREATE TEMP TABLE b_candidates (
-    id integer,
-    source integer,
-    file integer,
-    architecture integer);
-
-INSERT INTO b_candidates (id, source, file, architecture)
-    SELECT b.id, b.source, b.file, b.architecture
-        FROM binaries b
-        JOIN bin_associations ba ON b.id = ba.bin
-        WHERE b.type = :type AND ba.suite = :suite AND
-            b.architecture IN (:arch_all, :architecture) %s;
-
-CREATE TEMP TABLE gf_candidates (
-    id integer,
-    filename text,
-    path text,
-    architecture integer,
-    src integer,
-    source text);
-
-INSERT INTO gf_candidates (id, filename, path, architecture, src, source)
-    SELECT bc.id, c.name || '/' || f.filename, archive.path || 'pool/' , bc.architecture, bc.source as src, s.source
-        FROM b_candidates bc
-        JOIN source s ON bc.source = s.id
-        JOIN files f ON bc.file = f.id
-        JOIN files_archive_map fam ON f.id = fam.file_id
-        JOIN component c ON fam.component_id = c.id
-        JOIN archive ON fam.archive_id = archive.id
-        JOIN suite ON suite.archive_id = archive.id
-
-        WHERE c.id = :component AND suite.id = :suite;
-
-WITH arch_any AS
-
-    (SELECT id, path, filename FROM gf_candidates
-        WHERE architecture <> :arch_all),
-
-     arch_all_with_any AS
-    (SELECT id, path, filename FROM gf_candidates
-        WHERE architecture = :arch_all AND
-              src IN (SELECT src FROM gf_candidates WHERE architecture <> :arch_all)),
-
-     arch_all_without_any AS
-    (SELECT id, path, filename FROM gf_candidates
-        WHERE architecture = :arch_all AND
-              source NOT IN (SELECT DISTINCT source FROM gf_candidates WHERE architecture <> :arch_all)),
-
-     filelist AS
-    (SELECT * FROM arch_any
-    UNION
-    SELECT * FROM arch_all_with_any
-    UNION
-    SELECT * FROM arch_all_without_any)
-
-    SELECT * FROM filelist ORDER BY filename
-    """ % extra_cond
-    args = { 'suite': suite.suite_id,
-             'component': component.component_id,
-             'architecture': architecture.arch_id,
-             'arch_all': get_architecture('all', session).arch_id,
-             'type': type }
-    return fetch(query, args, session)
-
index b0ce511c5fb8b84742d429154a4929926e4990a5..14dc3148e195231c7840d422a8a48f41830e5394 100644 (file)
@@ -26,33 +26,15 @@ Queue utility functions for dak
 
 ###############################################################################
 
-import errno
 import os
-import stat
-import sys
-import time
-import apt_inst
-import apt_pkg
 import utils
-import commands
-import shutil
-import textwrap
 from types import *
-from sqlalchemy.sql.expression import desc
-from sqlalchemy.orm.exc import NoResultFound
 
 from dak_exceptions import *
 from changes import *
 from regexes import *
 from config import Config
-from holding import Holding
-from urgencylog import UrgencyLog
 from dbconn import *
-from summarystats import SummaryStats
-from utils import parse_changes, check_dsc_files
-from textutils import fix_maintainer
-from lintian import parse_lintian_output, generate_reject_messages
-from contents import UnpackedSource
 
 ################################################################################
 
index 0e9dbd3377d0a64b1a90906528a2e6f88255dd8e..5fad734cff82efdebc16fe9b8a9d41228db401a2 100644 (file)
@@ -200,10 +200,6 @@ Dir
     //// is mainly used for britney (the testing script).
     // UrgencyLog "/srv/dak/testing/urgencies/";
 
-    //// Holding (required): Directory to use for temporary storage during
-    //// process-upload
-    Holding "/srv/dak/queue/holding/";
-
     //// Done (required): Directory in which to store processed .changes files
     Done "/srv/dak/queue/done/";
 
index e395adf9ccb028373936743b890e0fabfde599fd..3b98f2dd8b843b73c2dfec54e259e09c058991a1 100644 (file)
@@ -4,10 +4,10 @@ Rough Guide to doing Stable Point Releases in Debian
 - sudo to dak
 - bash:
 suite=stable
-suitename=wheezy
+suitename=jessie
 pusuite=proposed-updates
-oldrev=7.6
-newrev=7.7
+oldrev=8.0
+newrev=8.1
 export SCRIPTVARS=/srv/ftp-master.debian.org/dak/config/debian/vars
 . $SCRIPTVARS
 . "${configdir}/common"
@@ -51,9 +51,9 @@ dak control-suite --force --add testing <propups.testing
 - ask rms if they have RMs to do.
 - and then check if they have a d-i update. if so, bash:
 # set dioldver to "empty" if there is no old to remove
-diver=20130613+deb7u2+b3
+diver=20150422+deb8u1
 dak copy-installer -s ${pusuite} -d ${suite} ${diver}
-dioldver=20130613+deb7u2+b1
+dioldver=empty
 cd $ftpdir/dists/${suite}/main
 if [ "${dioldver}" != "empty" ]; then
     for iarch in $(dak admin s-a list-arch ${suite}); do
@@ -68,9 +68,9 @@ cd $ftpdir/dists/${suite}
 
 - Updates for win32-loader?
 cd ${ftpdir}/tools/win32-loader
-if [ -d ${suite}-proposed-updates ]; then
+if [ -d ${suitename}-proposed-updates ]; then
     rm -r ${suite}
-    mv ${suite}-proposed-updates ${suite}
+    mv ${suitename}-proposed-updates ${suite}
 fi
 cd ${ftpdir}
 
@@ -100,16 +100,10 @@ dak dominate --force -s ${suite}
 - check output from cruft report:
 dak cruft-report -s ${suite}
 
-dak generate-filelist -s ${suite}
-
 - Let SRM see if all is ok
 
 - then:
-if [ "${suitename}" = "squeeze" ]; then
-  dak generate-packages-sources -s ${suite} && dak contents generate -f -s ${suite} -a ftp-master
-else
-  dak generate-packages-sources2 --force -s ${suite} && dak contents generate -f -s ${suite} -a ftp-master
-fi
+dak generate-packages-sources2 --force -s ${suite} && dak contents generate -f -s ${suite} -a ftp-master
 
 - For squeeze: merge Contents
 if [ "${suitename}" = "squeeze" ]; then
@@ -125,13 +119,15 @@ if [ "${suitename}" = "squeeze" ]; then
 fi
 
 - For wheezy: update main/i18n/Index
-if [ "${suitename}" = "wheezy" ]; then
+if [[ ${suitename} == wheezy ]] || [[ ${suitename} == jessie ]]; then
   ${scriptsdir}/generate-i18n-Index "${ftpdir}/dists/${suite}"
 fi
 
 - Generate Releases:
 dak generate-releases -f -s ${suite}
-rm ${ftpdir}/dists/${suite}/InRelease
+if [[ ${suitename} != jessie ]]; then
+    rm ${ftpdir}/dists/${suite}/InRelease
+fi
 
 - have the SRMs sign it and put the signature in.
 cd ${ftpdir}/dists/${suite}
index 3b6b27add119181e48cf008d11a518e530afda67..a16f343918df970c5922dbe96a0de19a88f539b7 100644 (file)
@@ -42,7 +42,6 @@ Dir
   Log "__DAKBASE__/log/";
   Lock "__DAKBASE__/lock/";
   Morgue "__DAKBASE__/morgue/";
-  Holding "__DAKBASE__/holding/";
   Done "__DAKBASE__/done/";
   Reject "__DAKBASE__/reject/";
   TempPath "__DAKBASE__/tmp/";