mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-11-09 00:40:11 +01:00
Patch before running prebuild commands.
Sometimes an application provides a script to initialize its build environment, and it may be required to patch such a script before running it (typical case is hardcoding developer's local paths). More generally, "declaritive" ways of changing code (e.g., forceversion, patch, etc.) should be preferred to prebuild, which should be used as the last resort (as it is too generic and thus verbose). So, it's right ordering in that respect either.
This commit is contained in:
parent
ea985430b0
commit
e1c85dfc21
18
common.py
18
common.py
@ -829,6 +829,15 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j
|
||||
if os.path.exists(badpath):
|
||||
shutil.rmtree(badpath)
|
||||
|
||||
# Apply patches if any
|
||||
if 'patch' in build:
|
||||
for patch in build['patch'].split(';'):
|
||||
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)
|
||||
|
||||
# Run a pre-build command if one is required...
|
||||
if build.has_key('prebuild'):
|
||||
prebuild = build['prebuild']
|
||||
@ -839,15 +848,6 @@ def prepare_source(vcs, app, build, build_dir, extlib_dir, sdk_path, ndk_path, j
|
||||
if subprocess.call(prebuild, cwd=root_dir, shell=True) != 0:
|
||||
raise BuildException("Error running pre-build command")
|
||||
|
||||
# Apply patches if any
|
||||
if 'patch' in build:
|
||||
for patch in build['patch'].split(';'):
|
||||
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)
|
||||
|
||||
# Special case init functions for funambol...
|
||||
if build.get('initfun', 'no') == "yes":
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user