Support bzip2 packaging for packages that expect it.
authorJennifer Richards <jennifer@painless-security.com>
Fri, 3 Jun 2016 16:11:18 +0000 (16:11 +0000)
committerJennifer Richards <jennifer@painless-security.com>
Fri, 3 Jun 2016 16:16:26 +0000 (16:16 +0000)
builder
rpm-builder

diff --git a/builder b/builder
index af14e55..edea559 100755 (executable)
--- a/builder
+++ b/builder
@@ -20,6 +20,10 @@ root_command = "fakeroot"
 
 schroot_command = ""
 
 
 schroot_command = ""
 
+bz2_packages=["opensaml2",
+              "xmltooling",
+              "shibboleth/sp"]
+
 class CommandError(exceptions.StandardError):
     pass
 
 class CommandError(exceptions.StandardError):
     pass
 
@@ -89,6 +93,9 @@ def build(package):
             if package == "freeradius-server":
                 run_cmd(root_command + " git archive --prefix=freeradius-server/ HEAD |gzip -9 >freeradius-server.tar.gz", shell=True)
                 run_cmd('cp *.tar.gz freeradius-server.spec ' +dist_dir, shell=True)
             if package == "freeradius-server":
                 run_cmd(root_command + " git archive --prefix=freeradius-server/ HEAD |gzip -9 >freeradius-server.tar.gz", shell=True)
                 run_cmd('cp *.tar.gz freeradius-server.spec ' +dist_dir, shell=True)
+            elif package in bz2_packages: 
+                run_cmd(root_command +' make dist-bzip2', shell=True)
+                run_cmd('cp *.tar.bz2 ' +dist_dir, shell=True)
             else: #not specially handled
                 run_cmd(root_command +' make dist-gzip', shell=True)
                 run_cmd('cp *.tar.gz ' +dist_dir, shell=True)
             else: #not specially handled
                 run_cmd(root_command +' make dist-gzip', shell=True)
                 run_cmd('cp *.tar.gz ' +dist_dir, shell=True)
index 75a3399..d98328d 100755 (executable)
@@ -7,6 +7,7 @@ from contextlib import contextmanager
 import os, subprocess, exceptions
 import re
 import sys
 import os, subprocess, exceptions
 import re
 import sys
+import string
 from optparse import OptionParser
 from shutil import copy
 
 from optparse import OptionParser
 from shutil import copy
 
@@ -37,8 +38,13 @@ class OrderedDict(dict):
     def values(self):
         return map( lambda(elt): self[elt], self.keylist)
 
     def values(self):
         return map( lambda(elt): self[elt], self.keylist)
 
+    def iteritems(self):
+        for k in self.keylist:
+            yield (k, self[k])
+
 builder_by_type = {
     '.tar.gz': lambda(t): run_cmd([ 'rpmbuild', '-ta', t]),
 builder_by_type = {
     '.tar.gz': lambda(t): run_cmd([ 'rpmbuild', '-ta', t]),
+    '.tar.bz2': lambda(t): run_cmd([ 'rpmbuild', '-ta', t]),
     '.spec':
     lambda(s): run_cmd(['rpmbuild', '--define', '_sourcedir '+os.getcwd(),
                         '-ba', s]),
     '.spec':
     lambda(s): run_cmd(['rpmbuild', '--define', '_sourcedir '+os.getcwd(),
                         '-ba', s]),
@@ -46,7 +52,7 @@ builder_by_type = {
 
 
 def find_type(name):
 
 
 def find_type(name):
-    match = re.match('^.*(\\.tar\\.gz|\\.spec)$', name)
+    match = re.match('^.*(\\.tar\\.gz|\\.tar\\.bz2|\\.spec)$', name)
     if match:
         return match.group(1)
     else: return None
     if match:
         return match.group(1)
     else: return None
@@ -63,9 +69,13 @@ def find_type(name):
 # thing it trims the tar file or spec file to.
 #
 def trim_target(t):
 # thing it trims the tar file or spec file to.
 #
 def trim_target(t):
-    match = re.match('([^/-]*/)?([^-/]+)', t)
-    if match is None: return ""
-    return match.group(2)
+    # first lose any suffix (like -1.5.tar.gz)
+    name_parts=t.split('-')
+    if name_parts[-1][0] in string.digits:
+        name_parts=name_parts[:-1]
+    name="-".join(name_parts) # in case it had dash-separated parts
+    name="-".join(name.split("/")) # replace / with -
+    return name
 
     
 @contextmanager
 
     
 @contextmanager
@@ -142,8 +152,6 @@ for t in os.listdir(dist_dir):
         # Replace None but nothing else
         if not package_order.get(trimmed): package_order[trimmed] = t
 
         # Replace None but nothing else
         if not package_order.get(trimmed): package_order[trimmed] = t
 
-    
-
 os.umask(022)
 
 try:
 os.umask(022)
 
 try: