From fb5cf89c9cddf547712fef45f6a6a06708f0a5d5 Mon Sep 17 00:00:00 2001 From: Jennifer Richards Date: Fri, 3 Jun 2016 16:11:18 +0000 Subject: [PATCH] Support bzip2 packaging for packages that expect it. --- builder | 7 +++++++ rpm-builder | 20 ++++++++++++++------ 2 files changed, 21 insertions(+), 6 deletions(-) diff --git a/builder b/builder index af14e55..edea559 100755 --- a/builder +++ b/builder @@ -20,6 +20,10 @@ root_command = "fakeroot" schroot_command = "" +bz2_packages=["opensaml2", + "xmltooling", + "shibboleth/sp"] + 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) + 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) diff --git a/rpm-builder b/rpm-builder index 75a3399..d98328d 100755 --- a/rpm-builder +++ b/rpm-builder @@ -7,6 +7,7 @@ from contextlib import contextmanager import os, subprocess, exceptions import re import sys +import string 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 iteritems(self): + for k in self.keylist: + yield (k, self[k]) + 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]), @@ -46,7 +52,7 @@ builder_by_type = { 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 @@ -63,9 +69,13 @@ def find_type(name): # 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 @@ -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 - - os.umask(022) try: -- 2.1.4