From: Paul Sokolovsky Date: Thu, 16 Jun 2011 20:57:49 +0000 (+0300) Subject: Add support for patching source packages. X-Git-Tag: 0.1~1339 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=1099e114f5646d42479e97ea50dc5bc665d3938e;p=fdroidserver.git Add support for patching source packages. Sometimes there's a need to patch upstream source. While this can be scripted using prebuild commands, it's very verbose and unstructured, so add dedicated patching support. Details: To patch source, specific build's metadata line should include: patch=patch1.patch;patch2.patch;... Patches are separated with ';', at least one patch should be specified. They are applied in the order given. Patches are looked up in metadata// directory. Different builds obviously may reference the same patch(es). --- diff --git a/build.py b/build.py index 107f511e..5d13d225 100755 --- a/build.py +++ b/build.py @@ -334,6 +334,16 @@ for app in apps: print "Error running pre-build command" sys.exit(1) + # Apply patches if any + if 'patch' in thisbuild: + for patch in thisbuild['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=root_dir) != 0: + print "Failed to apply patch %s" % patch_path + sys.exit(1) + # Special case init functions for funambol... if thisbuild.get('initfun', 'no') == "yes":