chiark / gitweb /
Dopatch and srclibs right after init
authorDaniel Martí <mvdan@mvdan.cc>
Thu, 23 Jan 2014 09:29:04 +0000 (10:29 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Thu, 23 Jan 2014 09:29:04 +0000 (10:29 +0100)
fdroidserver/common.py

index ac4ff8b92e988c904eed3536635b25b97b3de894..065ca7f02a687dc10adc15ddd1bff771efd34928 100644 (file)
@@ -918,6 +918,34 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
             raise BuildException("Error running init command for %s:%s" %
                     (app['id'], build['version']), p.stdout)
 
+    # Apply patches if any
+    if 'patch' in build:
+        for patch in build['patch'].split(';'):
+            patch = patch.strip()
+            print "Applying " + patch
+            patch_path = os.path.join('metadata', app['id'], patch)
+            if subprocess.call(['patch', '-p1',
+                            '-i', os.path.abspath(patch_path)], cwd=build_dir) != 0:
+                raise BuildException("Failed to apply patch %s" % patch_path)
+
+    # Get required source libraries...
+    srclibpaths = []
+    if 'srclibs' in build:
+        target=build['target'] if 'target' in build else None
+        print "Collecting source libraries..."
+        for lib in build['srclibs'].split(';'):
+            srclibpaths.append(getsrclib(lib, srclib_dir, srclibpaths,
+                target=target, preponly=onserver))
+
+    for name, number, libpath in srclibpaths:
+        place_srclib(root_dir, int(number) if number else None, libpath)
+
+    basesrclib = vcs.getsrclib()
+    # If one was used for the main source, add that too.
+    if basesrclib:
+        srclibpaths.append(basesrclib)
+
+
     # Generate (or update) the ant build file, build.xml...
     updatemode = build.get('update', 'auto')
     if (updatemode != 'no' and build['type'] == 'ant'):
@@ -1125,33 +1153,6 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
                 raise BuildException("Missing extlib file {0}".format(libsrc))
             shutil.copyfile(libsrc, os.path.join(libsdir, libf))
 
-    # Get required source libraries...
-    srclibpaths = []
-    if 'srclibs' in build:
-        target=build['target'] if 'target' in build else None
-        print "Collecting source libraries..."
-        for lib in build['srclibs'].split(';'):
-            srclibpaths.append(getsrclib(lib, srclib_dir, srclibpaths,
-                target=target, preponly=onserver))
-
-    # Apply patches if any
-    if 'patch' in build:
-        for patch in build['patch'].split(';'):
-            patch = patch.strip()
-            print "Applying " + patch
-            patch_path = os.path.join('metadata', app['id'], patch)
-            if subprocess.call(['patch', '-p1',
-                            '-i', os.path.abspath(patch_path)], cwd=build_dir) != 0:
-                raise BuildException("Failed to apply patch %s" % patch_path)
-
-    for name, number, libpath in srclibpaths:
-        place_srclib(root_dir, int(number) if number else None, libpath)
-
-    basesrclib = vcs.getsrclib()
-    # If one was used for the main source, add that too.
-    if basesrclib:
-        srclibpaths.append(basesrclib)
-
     # Run a pre-build command if one is required...
     if 'prebuild' in build:
         cmd = replace_config_vars(build['prebuild'])