From: Joerg Jaspert Date: Sun, 30 Nov 2008 01:31:45 +0000 (+0100) Subject: lenny-p-u X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c3fd48b9267573833697da335b1f3cdfe5a7da1d;p=dak lenny-p-u byebye symlink_dists.py Signed-off-by: Joerg Jaspert --- diff --git a/config/debian/dak.conf b/config/debian/dak.conf index 6816206f..9f0c7b05 100644 --- a/config/debian/dak.conf +++ b/config/debian/dak.conf @@ -350,7 +350,7 @@ Suite Announce "debian-testing-changes@lists.debian.org"; Origin "Debian"; Description "Debian Testing distribution updates - Not Released"; - CodeName "testing-proposed-updates"; + CodeName "lenny-proposed-updates"; OverrideCodeName "lenny"; OverrideSuite "testing"; ValidTime 604800; // 7 days diff --git a/dak/symlink_dists.py b/dak/symlink_dists.py deleted file mode 100644 index 35f55183..00000000 --- a/dak/symlink_dists.py +++ /dev/null @@ -1,186 +0,0 @@ -#!/usr/bin/env python - -# 'Fix' stable to make debian-cd and dpkg -BORGiE users happy -# Copyright (C) 2000, 2001, 2002, 2003, 2006 James Troup - -# 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 - -################################################################################ - -# _ _ ____ -# | \ | | __ )_ -# | \| | _ (_) -# | |\ | |_) | This has been obsoleted since the release of woody. -# |_| \_|____(_) -# - -################################################################################ - -import os, pg, re, sys -import apt_pkg -import daklib.database -import daklib.utils - -################################################################################ - -re_strip_section_prefix = re.compile(r'.*/') - -Cnf = None -projectB = None - -################################################################################ - -def usage (exit_code=0): - print """Usage: dak symlink-dists [OPTIONS] -Create compatibility symlinks from legacy locations to the pool. - - -v, --verbose explain what is being done - -h, --help show this help and exit""" - - sys.exit(exit_code) - -################################################################################ - -def fix_component_section (component, section): - if component == "": - component = daklib.utils.extract_component_from_section(section)[1] - - # FIXME: ugly hacks to work around override brain damage - section = re_strip_section_prefix.sub('', section) - if section == "main" or section == "contrib" or section == "non-free": - section = '' - if section != '': - section += '/' - - return (component, section) - -################################################################################ - -def find_dislocated_stable(Conf, DBConn): - dislocated_files = {} - - codename = Conf["Suite::Stable::Codename"] - - # Source - q = DBConn.query(""" -SELECT DISTINCT ON (f.id) c.name, sec.section, l.path, f.filename, f.id - FROM component c, override o, section sec, source s, files f, location l, - dsc_files df, suite su, src_associations sa, files f2, location l2 - WHERE su.suite_name = 'stable' AND sa.suite = su.id AND sa.source = s.id - AND f2.id = s.file AND f2.location = l2.id AND df.source = s.id - AND f.id = df.file AND f.location = l.id AND o.package = s.source - AND sec.id = o.section AND NOT (f.filename ~ '^%s/') - AND l.component = c.id AND o.suite = su.id -""" % (codename)) -# Only needed if you have files in legacy-mixed locations -# UNION SELECT DISTINCT ON (f.id) null, sec.section, l.path, f.filename, f.id -# FROM component c, override o, section sec, source s, files f, location l, -# dsc_files df, suite su, src_associations sa, files f2, location l2 -# WHERE su.suite_name = 'stable' AND sa.suite = su.id AND sa.source = s.id -# AND f2.id = s.file AND f2.location = l2.id AND df.source = s.id -# AND f.id = df.file AND f.location = l.id AND o.package = s.source -# AND sec.id = o.section AND NOT (f.filename ~ '^%s/') AND o.suite = su.id -# AND NOT EXISTS (SELECT 1 FROM location l WHERE l.component IS NOT NULL AND f.location = l.id) - for i in q.getresult(): - (component, section) = fix_component_section(i[0], i[1]) - if Conf.FindB("Dinstall::LegacyStableHasNoSections"): - section="" - dest = "%sdists/%s/%s/source/%s%s" % (Conf["Dir::Root"], codename, component, section, os.path.basename(i[3])) - if not os.path.exists(dest): - src = i[2]+i[3] - src = daklib.utils.clean_symlink(src, dest, Conf["Dir::Root"]) - if Conf.Find("Symlink-Dists::Options::Verbose"): - print src+' -> '+dest - os.symlink(src, dest) - dislocated_files[i[4]] = dest - - # Binary - architectures = filter(daklib.utils.real_arch, Conf.ValueList("Suite::Stable::Architectures")) - q = DBConn.query(""" -SELECT DISTINCT ON (f.id) c.name, a.arch_string, sec.section, b.package, - b.version, l.path, f.filename, f.id - FROM architecture a, bin_associations ba, binaries b, component c, files f, - location l, override o, section sec, suite su - WHERE su.suite_name = 'stable' AND ba.suite = su.id AND ba.bin = b.id - AND f.id = b.file AND f.location = l.id AND o.package = b.package - AND sec.id = o.section AND NOT (f.filename ~ '^%s/') - AND b.architecture = a.id AND l.component = c.id AND o.suite = su.id""" % - (codename)) -# Only needed if you have files in legacy-mixed locations -# UNION SELECT DISTINCT ON (f.id) null, a.arch_string, sec.section, b.package, -# b.version, l.path, f.filename, f.id -# FROM architecture a, bin_associations ba, binaries b, component c, files f, -# location l, override o, section sec, suite su -# WHERE su.suite_name = 'stable' AND ba.suite = su.id AND ba.bin = b.id -# AND f.id = b.file AND f.location = l.id AND o.package = b.package -# AND sec.id = o.section AND NOT (f.filename ~ '^%s/') -# AND b.architecture = a.id AND o.suite = su.id AND NOT EXISTS -# (SELECT 1 FROM location l WHERE l.component IS NOT NULL AND f.location = l.id) - for i in q.getresult(): - (component, section) = fix_component_section(i[0], i[2]) - if Conf.FindB("Dinstall::LegacyStableHasNoSections"): - section="" - architecture = i[1] - package = i[3] - version = daklib.utils.re_no_epoch.sub('', i[4]) - src = i[5]+i[6] - - dest = "%sdists/%s/%s/binary-%s/%s%s_%s.deb" % (Conf["Dir::Root"], codename, component, architecture, section, package, version) - src = daklib.utils.clean_symlink(src, dest, Conf["Dir::Root"]) - if not os.path.exists(dest): - if Conf.Find("Symlink-Dists::Options::Verbose"): - print src+' -> '+dest - os.symlink(src, dest) - dislocated_files[i[7]] = dest - # Add per-arch symlinks for arch: all debs - if architecture == "all": - for arch in architectures: - dest = "%sdists/%s/%s/binary-%s/%s%s_%s.deb" % (Conf["Dir::Root"], codename, component, arch, section, package, version) - if not os.path.exists(dest): - if Conf.Find("Symlink-Dists::Options::Verbose"): - print src+' -> '+dest - os.symlink(src, dest) - - return dislocated_files - -################################################################################ - -def main (): - global Cnf, projectB - - Cnf = daklib.utils.get_conf() - - Arguments = [('h',"help","Symlink-Dists::Options::Help"), - ('v',"verbose","Symlink-Dists::Options::Verbose")] - for i in ["help", "verbose" ]: - if not Cnf.has_key("Symlink-Dists::Options::%s" % (i)): - Cnf["Symlink-Dists::Options::%s" % (i)] = "" - - apt_pkg.ParseCommandLine(Cnf,Arguments,sys.argv) - Options = Cnf.SubTree("Symlink-Dists::Options") - - if Options["Help"]: - usage() - - projectB = pg.connect(Cnf["DB::Name"], Cnf["DB::Host"], int(Cnf["DB::Port"])) - - daklib.database.init(Cnf, projectB) - - find_dislocated_stable(Cnf, projectB) - -####################################################################################### - -if __name__ == '__main__': - main()