From d302c669bd822af03371c6b463b5b88d3e593348 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 1 Oct 2012 13:19:00 +0100 Subject: [PATCH] Make maven executable path accessible in prebuild/init --- docs/fdroid.texi | 8 ++++---- fdroidserver/build.py | 7 +++---- fdroidserver/common.py | 8 +++++--- fdroidserver/scanner.py | 6 +++--- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/docs/fdroid.texi b/docs/fdroid.texi index 664fa649..020bf311 100644 --- a/docs/fdroid.texi +++ b/docs/fdroid.texi @@ -772,15 +772,15 @@ particular, literal backslashes should not be escaped. You can use $$name$$ to substitute the path to a referenced srclib - see the @code{srclib} directory for details of this. -You can use $$SDK$$ and $$NDK$$ to substitute the paths to the android -SDK and NDK directories respectively. +You can use $$SDK$$, $$NDK$$ and $$MVN3$$ to substitute the paths to the +android SDK and NDK directories, and maven 3 executable respectively. @item init=xxxx As for 'prebuild', but runs on the source code BEFORE any other processing takes place. -You can use $$SDK$$ and $$NDK$$ to substitute the paths to the android -SDK and NDK directories respectively. +You can use $$SDK$$, $$NDK$$ and $$MVN3$$ to substitute the paths to the +android SDK and NDK directories, and maven 3 executable respectively. @item novcheck=yes Don't check that the version name and code in the resulting apk are diff --git a/fdroidserver/build.py b/fdroidserver/build.py index 70a27ee1..0a95e55c 100644 --- a/fdroidserver/build.py +++ b/fdroidserver/build.py @@ -259,7 +259,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, extlib_dir, tmp_dir, # Prepare the source code... root_dir = common.prepare_source(vcs, app, thisbuild, build_dir, extlib_dir, sdk_path, ndk_path, - javacc_path, verbose) + javacc_path, mvn3, verbose) # Scan before building... buildprobs = common.scan_source(build_dir, root_dir, thisbuild) @@ -505,9 +505,8 @@ def main(): global options # Read configuration... - global build_server_always, mvn3 - build_server_always = False - mvn3 = "mvn3" + globals()['build_server_always'] = False + globals()['mvn3'] = "mvn3" execfile('config.py', globals()) options, args = parse_commandline() if build_server_always: diff --git a/fdroidserver/common.py b/fdroidserver/common.py index 0e27ad49..5eb5adb0 100644 --- a/fdroidserver/common.py +++ b/fdroidserver/common.py @@ -867,6 +867,7 @@ class MetaDataException(Exception): # TODO: These are currently just hard-coded in this method. It will be a # metadata-driven system eventually, but not yet. def getsrclib(spec, extlib_dir, sdk_path, basepath=False): + name, ref = spec.split('@') if name == 'GreenDroid': @@ -1016,8 +1017,6 @@ def getsrclib(spec, extlib_dir, sdk_path, basepath=False): vcs = getvcs('git', 'https://code.google.com/r/andreasschildbach-bitcoinj/', sdir, sdk_path) vcs.gotorevision(ref) - if subprocess.call([mvn3, 'install'], cwd=sdir) != 0: - raise BuildException("Maven build failed for BitcoinJWallet srclib") return sdir if name == 'Color-Picker': @@ -1112,10 +1111,11 @@ def getsrclib(spec, extlib_dir, sdk_path, basepath=False): # 'sdk_path' - the path to the Android SDK # 'ndk_path' - the path to the Android NDK # 'javacc_path' - the path to javacc +# 'mvn3' - the path to the maven 3 executable # 'verbose' - optional: verbose or not (default=False) # Returns the root directory, which may be the same as 'build_dir' or may # be a subdirectory of it. -def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, verbose=False): +def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, mvn3, verbose=False): # Optionally, the actual app source can be in a subdirectory... if build.has_key('subdir'): @@ -1142,6 +1142,7 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j init = build['init'] init = init.replace('$$SDK$$', sdk_path) init = init.replace('$$NDK$$', ndk_path) + init = init.replace('$$MVN$$', mvn3) if verbose: print "Doing init: exec '%s' in '%s'"%(init,root_dir) if subprocess.call(init, cwd=root_dir, shell=True) != 0: raise BuildException("Error running init command") @@ -1321,6 +1322,7 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j prebuild = prebuild.replace('$$' + name + '$$', libpath) prebuild = prebuild.replace('$$SDK$$', sdk_path) prebuild = prebuild.replace('$$NDK$$', ndk_path) + prebuild = prebuild.replace('$$MVN3$$', mvn3) p = subprocess.Popen(prebuild, cwd=root_dir, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) out, err = p.communicate() diff --git a/fdroidserver/scanner.py b/fdroidserver/scanner.py index 6d3967da..2d307a32 100644 --- a/fdroidserver/scanner.py +++ b/fdroidserver/scanner.py @@ -35,8 +35,8 @@ def main(): # Read configuration... global build_server_always, mvn3 - build_server_always = False - mvn3 = "mvn3" + globals()['build_server_always'] = False + globals()['mvn3'] = "mvn3" execfile('config.py', globals()) @@ -99,7 +99,7 @@ def main(): # Prepare the source code... root_dir = common.prepare_source(vcs, app, thisbuild, - build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, options.verbose) + build_dir, extlib_dir, sdk_path, ndk_path, javacc_path, mvn3, options.verbose) # Do the scan... buildprobs = common.scan_source(build_dir, root_dir, thisbuild) -- 2.30.2