]> git.donarmstrong.com Git - dak.git/blobdiff - dak/generate_packages_sources2.py
Pass compression methods to FileWriter.
[dak.git] / dak / generate_packages_sources2.py
index e746019d0c970fc8723fc674403172496fc457c6..8b4773d8528152f4b6c32a19a38730eb4ae8eba4 100755 (executable)
@@ -54,11 +54,11 @@ SELECT
   (SELECT
      STRING_AGG(
        CASE
-         WHEN key = 'Source' THEN 'Package\: '
+         WHEN key = 'Source' THEN E'Package\: '
          WHEN key = 'Files' THEN E'Files\:\n ' || f.md5sum || ' ' || f.size || ' ' || SUBSTRING(f.filename FROM E'/([^/]*)\\Z')
          WHEN key = 'Checksums-Sha1' THEN E'Checksums-Sha1\:\n ' || f.sha1sum || ' ' || f.size || ' ' || SUBSTRING(f.filename FROM E'/([^/]*)\\Z')
          WHEN key = 'Checksums-Sha256' THEN E'Checksums-Sha256\:\n ' || f.sha256sum || ' ' || f.size || ' ' || SUBSTRING(f.filename FROM E'/([^/]*)\\Z')
-         ELSE key || '\: '
+         ELSE key || E'\: '
        END || value, E'\n' ORDER BY mk.ordering, mk.key)
    FROM
      source_metadata sm
@@ -103,7 +103,13 @@ def generate_sources(suite_id, component_id):
 
     overridesuite_id = suite.get_overridesuite().suite_id
 
-    writer = SourcesFileWriter(suite=suite.suite_name, component=component.component_name)
+    writer_args = {
+            'suite': suite.suite_name,
+            'component': component.component_name
+    }
+    if suite.indices_compression is not None:
+        writer_args['compression'] = suite.indices_compression
+    writer = SourcesFileWriter(**writer_args)
     output = writer.open()
 
     # run query and write Sources
@@ -151,7 +157,7 @@ WITH
 
 SELECT
   (SELECT
-     STRING_AGG(key || '\: ' || value, E'\n' ORDER BY ordering, key)
+     STRING_AGG(key || E'\: ' || value, E'\n' ORDER BY ordering, key)
    FROM
      (SELECT key, ordering,
         CASE WHEN :include_long_description = 'false' AND key = 'Description'
@@ -167,7 +173,7 @@ SELECT
      ) AS metadata
   )
   || COALESCE(E'\n' || (SELECT
-     STRING_AGG(key || '\: ' || value, E'\n' ORDER BY key)
+     STRING_AGG(key || E'\: ' || value, E'\n' ORDER BY key)
    FROM external_overrides eo
    WHERE
      eo.package = tmp.package
@@ -226,8 +232,15 @@ def generate_packages(suite_id, component_id, architecture_id, type_name):
     if include_long_description:
         metadata_skip.append("Description-md5")
 
-    writer = PackagesFileWriter(suite=suite.suite_name, component=component.component_name,
-            architecture=architecture.arch_string, debtype=type_name)
+    writer_args = {
+            'suite': suite.suite_name,
+            'component': component.component_name,
+            'architecture': architecture.arch_string,
+            'debtype': type_name
+    }
+    if suite.indices_compression is not None:
+        writer_args['compression'] = suite.indices_compression
+    writer = PackagesFileWriter(**writer_args)
     output = writer.open()
 
     r = session.execute(_packages_query, {"suite": suite_id, "component": component_id,
@@ -255,7 +268,7 @@ WITH
       FROM suite AS s LEFT JOIN suite AS os ON s.overridesuite = os.suite_name)
 
 SELECT
-     'Package\: ' || b.package
+     E'Package\: ' || b.package
   || E'\nDescription-md5\: ' || bm_description_md5.value
   || E'\nDescription-en\: ' || bm_description.value
   || E'\n'
@@ -273,8 +286,8 @@ FROM binaries b
   JOIN source s ON b.source = s.id
 
 WHERE ba.suite = :suite AND o.component = :component
-GROUP BY s.source, b.package, bm_description_md5.value, bm_description.value
-ORDER BY s.source, b.package, bm_description_md5.value
+GROUP BY b.package, bm_description_md5.value, bm_description.value
+ORDER BY MIN(s.source), b.package, bm_description_md5.value
 """
 
 def generate_translations(suite_id, component_id):
@@ -287,7 +300,14 @@ def generate_translations(suite_id, component_id):
     suite = session.query(Suite).get(suite_id)
     component = session.query(Component).get(component_id)
 
-    writer = TranslationFileWriter(suite=suite.suite_name, component=component.component_name, language="en")
+    writer_args = {
+            'suite': suite.suite_name,
+            'component': component.component_name,
+            'language': 'en',
+    }
+    if suite.i18n_compression is not None:
+        writer_args['compression'] = suite.i18n_compression
+    writer = TranslationFileWriter(**writer_args)
     output = writer.open()
 
     r = session.execute(_translations_query, {"suite": suite_id, "component": component_id})
@@ -313,9 +333,9 @@ def main():
                  ('f',"force","Generate-Packages-Sources::Options::Force"),
                  ('o','option','','ArbItem')]
 
-    suite_names = apt_pkg.ParseCommandLine(cnf.Cnf, Arguments, sys.argv)
+    suite_names = apt_pkg.parse_commandline(cnf.Cnf, Arguments, sys.argv)
     try:
-        Options = cnf.SubTree("Generate-Packages-Sources::Options")
+        Options = cnf.subtree("Generate-Packages-Sources::Options")
     except KeyError:
         Options = {}