]> git.decadent.org.uk Git - dak.git/blobdiff - dak/make_changelog.py
make-changelog: only consider latest sources in suites
[dak.git] / dak / make_changelog.py
index c9dfa7249439edf042d856514dfb1d6efab3367d..44aae5226d02d7e0f1663461ffc7fcf9a9fd856d 100755 (executable)
@@ -166,8 +166,9 @@ def export_files(session, pool, clpool, temppath):
     """
 
     sources = {}
-    query = """SELECT s.source, su.suite_name AS suite, s.version, f.filename
+    query = """SELECT DISTINCT s.source, su.suite_name AS suite, s.version, f.filename
                FROM source s
+               JOIN newest_source n ON n.source = s.source AND n.version = s.version
                JOIN src_associations sa ON sa.source = s.id
                JOIN suite su ON su.id = sa.suite
                JOIN files f ON f.id = s.file
@@ -221,7 +222,7 @@ def export_files(session, pool, clpool, temppath):
                             print 'make-changelog: unable to extract %s for %s_%s' \
                                    % (os.path.basename(f), p, sources[p][s][0])
                 else:
-                    print 'make-changelog: unable to unpack %s_%s' % (p, sources[p][s][0])
+                    print 'make-changelog: unable to unpack %s_%s: %s' % (p, sources[p][s][0], output)
                     continue
 
                 rmtree(tempdir)
@@ -267,8 +268,8 @@ def main():
 
     if export:
         if cnf.exportpath:
-            cnf.exportpath = os.path.join(Cnf['Dir::Export'], cnf.exportpath)
-            export_files(session, Cnf['Dir::Pool'], cnf.exportpath, Cnf['Dir::TempPath'])
+            exportpath = os.path.join(Cnf['Dir::Export'], cnf.exportpath)
+            export_files(session, Cnf['Dir::Pool'], exportpath, Cnf['Dir::TempPath'])
         else:
             utils.fubar('No changelog export path defined')
     elif binnmu: