From: Ansgar Burchardt Date: Tue, 9 Jun 2015 19:18:56 +0000 (+0200) Subject: Remove old implementation of generate-packages-sources X-Git-Url: https://git.decadent.org.uk/gitweb/?p=dak.git;a=commitdiff_plain;h=28b86b197fffbd068c2f030e987bc145829d9601 Remove old implementation of generate-packages-sources This patch removes the old implementation of generate-packages-sources that used apt-ftparchive instead of the metadata in the Postgres database. --- diff --git a/config/debian-security/cron.unchecked b/config/debian-security/cron.unchecked index fc0f5b5c..7e2bb29a 100755 --- a/config/debian-security/cron.unchecked +++ b/config/debian-security/cron.unchecked @@ -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 diff --git a/config/debian/cron.dinstall b/config/debian/cron.dinstall index 701754ca..311207af 100755 --- a/config/debian/cron.dinstall +++ b/config/debian/cron.dinstall @@ -251,14 +251,6 @@ GO=( ) stage $GO -GO=( - FUNC="filelist" - TIME="generate-filelist" - ARGS="" - ERR="" -) -#stage $GO - GO=( FUNC="fingerprints" TIME="import-keyring" diff --git a/config/debian/dinstall.functions b/config/debian/dinstall.functions index 51ac4b97..f1693a32 100644 --- a/config/debian/dinstall.functions +++ b/config/debian/dinstall.functions @@ -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 diff --git a/dak/dak.py b/dak/dak.py index 52bf3af6..334bde08 100755 --- a/dak/dak.py +++ b/dak/dak.py @@ -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/generate_filelist.py b/dak/generate_filelist.py deleted file mode 100755 index faf08bd7..00000000 --- a/dak/generate_filelist.py +++ /dev/null @@ -1,217 +0,0 @@ -#!/usr/bin/python - -""" -Generate file lists for apt-ftparchive. - -@contact: Debian FTP Master -@copyright: 2009 Torsten Werner -@copyright: 2011 Ansgar Burchardt -@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> Please go and try to lock mhy now. After than try to lock NEW. -# twerner> !lock mhy -# dak> twerner: You suck, this is already locked by Ganneff -# Ganneff> now try with NEW -# twerner> !lock NEW -# dak> twerner: also locked NEW -# mhy> Ganneff: oy, stop using me for locks and highlighting me you tall muppet -# Ganneff> hehe :) - -################################################################################ - -from daklib.dbconn import * -from daklib.config import Config -from daklib import utils, daklog -from daklib.dakmultiprocessing import DakProcessPool, PROC_STATUS_SUCCESS, PROC_STATUS_SIGNALRAISED -import apt_pkg, os, stat, sys - -from daklib.lists import getSources, getBinaries, getArchAll - -def listPath(suite, component, architecture = None, type = None, - incremental_mode = False): - """returns full path to the list file""" - suffixMap = { 'deb': "binary-", - 'udeb': "debian-installer_binary-" } - if architecture: - suffix = suffixMap[type] + architecture.arch_string - else: - suffix = "source" - filename = "%s_%s_%s.list" % \ - (suite.suite_name, component.component_name, suffix) - pathname = os.path.join(Config()["Dir::Lists"], filename) - file = utils.open_file(pathname, "a") - timestamp = None - if incremental_mode: - timestamp = os.fstat(file.fileno())[stat.ST_MTIME] - else: - file.seek(0) - file.truncate() - return (file, timestamp) - -def writeSourceList(suite_id, component_id, incremental_mode): - session = DBConn().session() - suite = Suite.get(suite_id, session) - component = Component.get(component_id, session) - (file, timestamp) = listPath(suite, component, - incremental_mode = incremental_mode) - - message = "sources list for %s %s" % (suite.suite_name, component.component_name) - - for _, filename in getSources(suite, component, session, timestamp): - file.write(filename + '\n') - session.rollback() - file.close() - return (PROC_STATUS_SUCCESS, message) - -def writeAllList(suite_id, component_id, architecture_id, type, incremental_mode): - session = DBConn().session() - suite = Suite.get(suite_id, session) - component = Component.get(component_id, session) - architecture = Architecture.get(architecture_id, session) - (file, timestamp) = listPath(suite, component, architecture, type, - incremental_mode) - - message = "all list for %s %s (arch=%s, type=%s)" % (suite.suite_name, component.component_name, architecture.arch_string, type) - - for _, filename in getArchAll(suite, component, architecture, type, - session, timestamp): - file.write(filename + '\n') - session.rollback() - file.close() - return (PROC_STATUS_SUCCESS, message) - -def writeBinaryList(suite_id, component_id, architecture_id, type, incremental_mode): - session = DBConn().session() - suite = Suite.get(suite_id, session) - component = Component.get(component_id, session) - architecture = Architecture.get(architecture_id, session) - (file, timestamp) = listPath(suite, component, architecture, type, - incremental_mode) - - message = "binary list for %s %s (arch=%s, type=%s)" % (suite.suite_name, component.component_name, architecture.arch_string, type) - - for _, filename in getBinaries(suite, component, architecture, type, - session, timestamp): - file.write(filename + '\n') - session.rollback() - file.close() - return (PROC_STATUS_SUCCESS, message) - -def usage(): - print """Usage: dak generate_filelist [OPTIONS] -Create filename lists for apt-ftparchive. - - -s, --suite=SUITE act on this suite - -c, --component=COMPONENT act on this component - -a, --architecture=ARCH act on this architecture - -h, --help show this help and exit - -i, --incremental activate incremental mode - -ARCH, COMPONENT and SUITE can be comma (or space) separated list, e.g. - --suite=testing,unstable - -Incremental mode appends only newer files to existing lists.""" - sys.exit() - -def main(): - cnf = Config() - Logger = daklog.Logger('generate-filelist') - Arguments = [('h', "help", "Filelist::Options::Help"), - ('s', "suite", "Filelist::Options::Suite", "HasArg"), - ('c', "component", "Filelist::Options::Component", "HasArg"), - ('a', "architecture", "Filelist::Options::Architecture", "HasArg"), - ('i', "incremental", "Filelist::Options::Incremental")] - session = DBConn().session() - query_suites = session.query(Suite) - suites = [suite.suite_name for suite in query_suites] - if not cnf.has_key('Filelist::Options::Suite'): - cnf['Filelist::Options::Suite'] = ','.join(suites).encode() - query_components = session.query(Component) - components = \ - [component.component_name for component in query_components] - if not cnf.has_key('Filelist::Options::Component'): - cnf['Filelist::Options::Component'] = ','.join(components).encode() - query_architectures = session.query(Architecture) - architectures = \ - [architecture.arch_string for architecture in query_architectures] - if not cnf.has_key('Filelist::Options::Architecture'): - cnf['Filelist::Options::Architecture'] = ','.join(architectures).encode() - cnf['Filelist::Options::Help'] = '' - cnf['Filelist::Options::Incremental'] = '' - apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv) - Options = cnf.subtree("Filelist::Options") - if Options['Help']: - usage() - pool = DakProcessPool() - query_suites = query_suites. \ - filter(Suite.suite_name.in_(utils.split_args(Options['Suite']))) - query_components = query_components. \ - filter(Component.component_name.in_(utils.split_args(Options['Component']))) - query_architectures = query_architectures. \ - filter(Architecture.arch_string.in_(utils.split_args(Options['Architecture']))) - - def parse_results(message): - # Split out into (code, msg) - code, msg = message - if code == PROC_STATUS_SUCCESS: - Logger.log([msg]) - elif code == PROC_STATUS_SIGNALRAISED: - Logger.log(['E: Subprocess recieved signal ', msg]) - else: - Logger.log(['E: ', msg]) - - for suite in query_suites: - suite_id = suite.suite_id - for component in query_components: - component_id = component.component_id - for architecture in query_architectures: - architecture_id = architecture.arch_id - if architecture not in suite.architectures: - pass - elif architecture.arch_string == 'source': - pool.apply_async(writeSourceList, - (suite_id, component_id, Options['Incremental']), callback=parse_results) - elif architecture.arch_string == 'all': - pool.apply_async(writeAllList, - (suite_id, component_id, architecture_id, 'deb', - Options['Incremental']), callback=parse_results) - pool.apply_async(writeAllList, - (suite_id, component_id, architecture_id, 'udeb', - Options['Incremental']), callback=parse_results) - else: # arch any - pool.apply_async(writeBinaryList, - (suite_id, component_id, architecture_id, 'deb', - Options['Incremental']), callback=parse_results) - pool.apply_async(writeBinaryList, - (suite_id, component_id, architecture_id, 'udeb', - Options['Incremental']), callback=parse_results) - pool.close() - pool.join() - - # this script doesn't change the database - session.close() - - Logger.close() - - sys.exit(pool.overall_status()) - -if __name__ == '__main__': - main() - diff --git a/dak/generate_packages_sources.py b/dak/generate_packages_sources.py deleted file mode 100755 index 3e01da23..00000000 --- a/dak/generate_packages_sources.py +++ /dev/null @@ -1,272 +0,0 @@ -#!/usr/bin/env python - -""" Generate Packages/Sources files - -@contact: Debian FTPMaster -@copyright: 2000, 2001, 2002, 2006 James Troup -@copyright: 2009 Mark Hymers -@copyright: 2010 Joerg Jaspert -@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() diff --git a/dak/new_security_install.py b/dak/new_security_install.py index aa2928db..7d4603d5 100755 --- a/dak/new_security_install.py +++ b/dak/new_security_install.py @@ -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/lists.py b/daklib/lists.py deleted file mode 100644 index 5766371c..00000000 --- a/daklib/lists.py +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/python - -""" -Helper functions for list generating commands (Packages, Sources). - -@contact: Debian FTP Master -@copyright: 2009-2011 Torsten Werner -@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) - diff --git a/docs/README.stable-point-release b/docs/README.stable-point-release index f7d21b62..3b98f2dd 100644 --- a/docs/README.stable-point-release +++ b/docs/README.stable-point-release @@ -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