Stability fixes and logging improvements in ui
[moonshot.git] / builder
diff --git a/builder b/builder
index 005de70..edea559 100755 (executable)
--- a/builder
+++ b/builder
@@ -20,6 +20,10 @@ root_command = "fakeroot"
 
 schroot_command = ""
 
+bz2_packages=["opensaml2",
+              "xmltooling",
+              "shibboleth/sp"]
+
 class CommandError(exceptions.StandardError):
     pass
 
@@ -68,11 +72,16 @@ def command_output(args) :
 
 def build(package):
     with current_directory(package):
-        run_cmd(('autoreconf', '-i', '-f'))
+        try: os.makedirs( "m4")
+        except OSError: pass
+        #On Centos, freeradius produces an invalid configure script
+        # They check in a configure script anyway so we don't need autoconf
+        if package != "freeradius-server":
+            run_cmd(('autoreconf', '-i', '-f'))
         configure_command = [
                                       './configure'] + configure_opts
         if len(schroot_command) > 0:
-            configure_command = [schroot_command.split(' '), "--"] \
+            configure_command = schroot_command.split(' ') \
                 + configure_command
         print ' '.join(configure_command)
         sys.stdout.flush()
@@ -80,9 +89,17 @@ def build(package):
         if dist:
             try: os.mkdir('doc/api')
             except: pass
-            run_cmd(root_command +' make dist-gzip', shell=True)
-            run_cmd('cp *.tar.gz ' +dist_dir, shell=True)
-        run_cmd(schroot_command + ' make', shell=True)
+            #Currently freeradius's make dist is broken
+            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)
+        run_cmd(schroot_command + ' make -j3', shell=True)
 
 def make_install(package):
     with current_directory(package):
@@ -138,12 +155,12 @@ prefix = options.prefix
 root_command = options.root_command
 dist = options.dist
 configure_opts = ['--prefix', prefix,
-                  "LDFLAGS='-Wl,-L"+prefix+"/lib -Wl,-L/usr/lib/freeradius"
-                  + " -Wl,-rpath="+prefix+"/lib'",
-                  'CPPFLAGS="-I '+prefix+'/include"',
+                  "LDFLAGS=-Wl,-L"+prefix+"/lib -Wl,--rpath="+prefix+"/lib",
+                  'CPPFLAGS=-I '+prefix+'/include',
                   '--with-system-libtool', '--with-system-libltdl',
                   '--enable-tls', '--with-gssapi='+prefix,
                   "--with-xmltooling="+prefix, 
+                  '--with-systemdsystemunitdir=' + prefix+'/lib/systemd',
                   ]
 if options.configure_opts is not None: 
     configure_opts.extend(options.configure_opts)
@@ -153,8 +170,9 @@ if tar_file is not None: dist = True
 our_schroot = None
 if options.schroot is not None:
     our_schroot = Schroot(options.schroot)
-    schroot_command = "schroot -r -c " + our_schroot.name
-    root_command = schroot_command + " -u root"
+    schroot_command_base = "schroot -r -c " + our_schroot.name
+    root_command = schroot_command_base + " -u root --"
+    schroot_command = schroot_command_base + ' --'
 
 all_packages = read_packages()
 if len(packages) == 0: packages = all_packages