chiark / gitweb /
common: never pass None to replace_config_vars
authorDaniel Martí <mvdan@mvdan.cc>
Sat, 2 Apr 2016 12:43:49 +0000 (13:43 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Sat, 2 Apr 2016 12:43:49 +0000 (13:43 +0100)
This fixes fdroid build com.umang.dashnotifier:18:

ERROR: Could not build app com.umang.dashnotifier due to unknown error: Traceback (most recent call last):
  File "/home/mvdan/git/fsr/fdroidserver/build.py", line 1121, in main
    options.onserver, options.refresh):
  File "/home/mvdan/git/fsr/fdroidserver/build.py", line 950, in trybuild
    build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
  File "/home/mvdan/git/fsr/fdroidserver/build.py", line 480, in build_local
    extlib_dir, onserver, refresh)
  File "/home/mvdan/git/fsr/fdroidserver/common.py", line 1335, in prepare_source
    srclibpaths.append(getsrclib(lib, srclib_dir, build, preponly=onserver, refresh=refresh))
  File "/home/mvdan/git/fsr/fdroidserver/common.py", line 1258, in getsrclib
    cmd = replace_config_vars(srclib["Prepare"], None)
  File "/home/mvdan/git/fsr/fdroidserver/common.py", line 1822, in replace_config_vars
    cmd = cmd.replace('$$NDK$$', build.ndk_path())
AttributeError: 'NoneType' object has no attribute 'ndk_path'

fdroidserver/common.py

index 6dd33713e55cd561548b5229d73d8dab497167b1..67ef0c087a3436bba46975b165ef902f0b4ed656 100644 (file)
@@ -1206,7 +1206,8 @@ class BuildException(FDroidException):
 # it, which may be a subdirectory of the actual project. If you want the base
 # directory of the project, pass 'basepath=True'.
 def getsrclib(spec, srclib_dir, subdir=None, basepath=False,
-              raw=False, prepare=True, preponly=False, refresh=True):
+              raw=False, prepare=True, preponly=False, refresh=True,
+              build=None):
 
     number = None
     subdir = None
@@ -1255,7 +1256,7 @@ def getsrclib(spec, srclib_dir, subdir=None, basepath=False,
     if prepare:
 
         if srclib["Prepare"]:
-            cmd = replace_config_vars(srclib["Prepare"], None)
+            cmd = replace_config_vars(srclib["Prepare"], build)
 
             p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=libdir)
             if p.returncode != 0:
@@ -1332,7 +1333,8 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
     if build.srclibs:
         logging.info("Collecting source libraries")
         for lib in build.srclibs:
-            srclibpaths.append(getsrclib(lib, srclib_dir, build, preponly=onserver, refresh=refresh))
+            srclibpaths.append(getsrclib(lib, srclib_dir, build, preponly=onserver,
+                                         refresh=refresh, build=build))
 
     for name, number, libpath in srclibpaths:
         place_srclib(root_dir, int(number) if number else None, libpath)