]> git.decadent.org.uk Git - dak.git/commitdiff
Merge remote-tracking branch 'ansgar/pu/wheezy' into merge
authorJoerg Jaspert <joerg@debian.org>
Fri, 11 May 2012 19:46:56 +0000 (21:46 +0200)
committerJoerg Jaspert <joerg@debian.org>
Fri, 11 May 2012 19:46:56 +0000 (21:46 +0200)
* 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 <joerg@debian.org>
daklib/contents.py
daklib/dbconn.py
daklib/filewriter.py

index 6db19a711255cfb250a40927b9c28560cb471428..e808da6234b97194b6611a7e798dd185921e6425 100755 (executable)
@@ -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
index 80a1f233ad29341a3e13972372811c466c25ff4c..c0801b42511cbb2eac973e7b53bf3a82653cd3e8 100755 (executable)
@@ -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)
index 8e17efdfcbeac574997f1c5c9288d7a84aa8ac9b..c010fb5dc97afc0b1cc1f115bf0ec392119acac7 100755 (executable)
@@ -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)