From: Joerg Jaspert Date: Fri, 11 May 2012 19:46:56 +0000 (+0200) Subject: Merge remote-tracking branch 'ansgar/pu/wheezy' into merge X-Git-Url: https://git.decadent.org.uk/gitweb/?a=commitdiff_plain;h=dfb9c4b902ab992e102d5496a2ef2c1e2442b742;hp=6b3c8ccbd61325e2b833ed252b5545a190bff92f;p=dak.git Merge remote-tracking branch 'ansgar/pu/wheezy' into merge * ansgar/pu/wheezy: Change how compression methods are selected in FileWriter Use with statement instead of temporary table Move "import utils" into function Signed-off-by: Joerg Jaspert --- diff --git a/daklib/contents.py b/daklib/contents.py index 6db19a71..e808da62 100755 --- a/daklib/contents.py +++ b/daklib/contents.py @@ -66,20 +66,14 @@ class BinaryContentsWriter(object): } sql = ''' -create temp table newest_binaries ( - id integer primary key, - package text); - -create index newest_binaries_by_package on newest_binaries (package); +with -insert into newest_binaries (id, package) - select distinct on (package) id, package from binaries +newest_binaries as + (select distinct on (package) id, package from binaries where type = :type and (architecture = :arch_all or architecture = :arch) and id in (select bin from bin_associations where suite = :suite) - order by package, version desc; - -with + order by package, version desc), unique_override as (select o.package, s.section @@ -172,19 +166,14 @@ class SourceContentsWriter(object): } sql = ''' -create temp table newest_sources ( - id integer primary key, - source text); - -create index sources_binaries_by_source on newest_sources (source); - -insert into newest_sources (id, source) - select distinct on (source) s.id, s.source from source s +with + newest_sources as + (select distinct on (source) s.id, s.source from source s join files f on f.id = s.file join location l on l.id = f.location where s.id in (select source from src_associations where suite = :suite_id) and l.component = :component_id - order by source, version desc; + order by source, version desc) select sc.file, string_agg(s.source, ',' order by s.source) as pkglist from newest_sources s, src_contents sc diff --git a/daklib/dbconn.py b/daklib/dbconn.py index 80a1f233..c0801b42 100755 --- a/daklib/dbconn.py +++ b/daklib/dbconn.py @@ -75,7 +75,6 @@ from sqlalchemy.orm.exc import NoResultFound from config import Config from textutils import fix_maintainer from dak_exceptions import DBUpdateError, NoSourceFieldError, FileExistsError -import utils # suppress some deprecation warnings in squeeze related to sqlalchemy import warnings @@ -559,7 +558,7 @@ class DBBinary(ORMObject): @rtype: text @return: stanza text of the control section. ''' - import apt_inst + import utils fullpath = self.poolfile.fullpath deb_file = open(fullpath, 'r') stanza = utils.deb_extract_control(deb_file) diff --git a/daklib/filewriter.py b/daklib/filewriter.py index 8e17efdf..c010fb5d 100755 --- a/daklib/filewriter.py +++ b/daklib/filewriter.py @@ -43,9 +43,10 @@ class BaseFileWriter(object): include strings for suite, component, architecture and booleans uncompressed, gzip, bzip2. ''' - self.uncompressed = keywords.get('uncompressed', True) - self.gzip = keywords.get('gzip', False) - self.bzip2 = keywords.get('bzip2', False) + compression = keywords.get('compression', ['none']) + self.uncompressed = 'none' in compression + self.gzip = 'gzip' in compression + self.bzip2 = 'bzip2' in compression root_dir = Config()['Dir::Root'] relative_dir = template % keywords self.path = os.path.join(root_dir, relative_dir) @@ -93,9 +94,7 @@ class BinaryContentsFileWriter(BaseFileWriter): Output files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': False + 'compression': ['gzip'], } flags.update(keywords) if flags['debtype'] == 'deb': @@ -111,9 +110,7 @@ class SourceContentsFileWriter(BaseFileWriter): Output files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': False + 'compression': ['gzip'], } flags.update(keywords) template = "dists/%(suite)s/%(component)s/Contents-source" @@ -126,9 +123,7 @@ class PackagesFileWriter(BaseFileWriter): are strings. Output files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': True + 'compression': ['gzip', 'bzip2'], } flags.update(keywords) if flags['debtype'] == 'deb': @@ -144,9 +139,7 @@ class SourcesFileWriter(BaseFileWriter): files are gzip compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': True, - 'bzip2': True + 'compression': ['gzip', 'bzip2'], } flags.update(keywords) template = "dists/%(suite)s/%(component)s/source/Sources" @@ -159,9 +152,7 @@ class TranslationFileWriter(BaseFileWriter): Output files are bzip2 compressed only. ''' flags = { - 'uncompressed': False, - 'gzip': False, - 'bzip2': True, + 'compression': ['bzip2'], 'language': 'en', } flags.update(keywords)