debian/bin/genorig.py: create orig tar for pre/rc
authorHans van Kranenburg <hans@knorrie.org>
Wed, 20 Dec 2017 16:01:56 +0000 (17:01 +0100)
committerHans van Kranenburg <hans@knorrie.org>
Thu, 21 Dec 2017 14:20:44 +0000 (15:20 +0100)
When using versions like 4.9.2~pre+1.32e364c4e7, I want to have an
archive made from commit 32e364c4e7. Same holds for 4.10~rc8+1.3e11e302a8

debian/bin/genorig.py
debian/lib/python/debian_xen/debian.py

index 74aacd8fdccd54fe4b24d9a9ed10e53c21da2f1f..8b4614028dd0328c882f0f818e8c6e0664b08275 100755 (executable)
@@ -32,13 +32,21 @@ class Main(object):
         else:
             self.orig_dir = '%s-%s' % (self.source, self.version.upstream)
             self.orig_tar = '%s_%s.orig.tar.xz' % (self.source, self.version.upstream)
-            if options.tag is None:
-                options.tag = 'RELEASE-' + self.version.upstream
 
     def __call__(self):
         out = "../orig/%s" % self.orig_tar
         self.log("Generate tarball %s\n" % out)
 
+        if self.options.tag:
+            treeish = self.options.tag
+        else:
+            if self.changelog_entry.version.pre_commit:
+                treeish = self.changelog_entry.version.pre_commit
+            elif self.changelog_entry.version.rc_commit:
+                treeish = self.changelog_entry.version.rc_commit
+            else:
+                treeish = 'RELEASE-%s' % self.version.upstream
+
         try:
             os.stat(out)
             raise RuntimeError("Destination already exists")
@@ -46,8 +54,7 @@ class Main(object):
 
         try:
             with open(out, 'wb') as f:
-                tag = self.options.tag or 'HEAD'
-                _cmd = ('git', 'archive', '--prefix', '%s/' % self.orig_dir, tag)
+                _cmd = ('git', 'archive', '--prefix', '%s/' % self.orig_dir, treeish)
                 p1 = subprocess.Popen(_cmd, stdout=subprocess.PIPE, cwd=self.repo)
                 subprocess.check_call(('xz', ), stdin=p1.stdout, stdout=f)
                 if p1.wait():
index 069d9b2ef5cfb3ea208807d6302f503b3dcf8184..8dfef71b51f805278b75b7db541f6048350a9648 100644 (file)
@@ -7,9 +7,9 @@ class VersionXen(Version):
         ^
         (?P<version>\d+\.\d+)
         (?:
-         \.\d+(?:~pre(?:\+\d+\.[0-9a-f]{10}))?
+         \.\d+(?:~pre(?:\+\d+\.(?P<pre_commit>[0-9a-f]{10})))?
          |
-         ~rc\d+(?:\+\d+\.[0-9a-f]{10})?
+         ~rc\d+(?:\+\d+\.(?P<rc_commit>[0-9a-f]{10}))?
         )
         -
         (?:[^-]+)
@@ -24,4 +24,5 @@ class VersionXen(Version):
             raise ValueError("Invalid debian xen version")
         d = match.groupdict()
         self.xen_version = d['version']
-
+        self.pre_commit = d['pre_commit']
+        self.rc_commit = d['rc_commit']