diff treepkg/packager.py @ 367:fb92f3c1b238

treepkg is now able to handle debian source format 1.0 and source format 3.0 (quilt)
author Bjoern Ricks <bricks@intevation.de>
date Mon, 31 May 2010 10:20:25 +0000
parents f06f707d9fda
children 0bee91b435ab
line wrap: on
line diff
--- a/treepkg/packager.py	Mon May 31 09:54:31 2010 +0000
+++ b/treepkg/packager.py	Mon May 31 10:20:25 2010 +0000
@@ -153,12 +153,33 @@
         dpkg_source_log = os.path.join(self.log_dir, "dpkg_source.txt")
         logging.info("Creating new source package; logging to %s",
                      dpkg_source_log)
-        run.call(cmdexpand("dpkg-source -b $directory $tarball",
+        
+        format = self.get_debian_source_format(pkgbasedir)
+        if format == "1.0":
+            run.call(cmdexpand("dpkg-source -b $directory $tarball",
                            directory=os.path.basename(pkgbasedir),
                            tarball=os.path.basename(origtargz)),
                  cwd=os.path.dirname(pkgbasedir),
                  logfile=dpkg_source_log,
                  env=self.track.debian_environment())
+        elif format == "3.0 (quilt)":
+            run.call(cmdexpand("dpkg-source -b $directory",
+                           directory=os.path.basename(pkgbasedir)),
+                 cwd=os.path.dirname(pkgbasedir),
+                 logfile=dpkg_source_log,
+                 env=self.track.debian_environment())
+        else:
+            raise RuntimeError("debian source format %s is not supported by treepkg" % format)
+
+    def get_debian_source_format(self, pkgbasedir):
+        formatfile = os.path.join(pkgbasedir, "debian", "source", "format")
+        if not os.path.exists(formatfile):
+            return "1.0"
+        else:
+            file = open(formatfile, "r")
+            line = file.readline()
+            file.close()
+            return line.strip()
 
     def move_source_package(self, pkgbasename):
         """Moves the new source package from the work_dir to the src_dir"""
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)