From 1099e114f5646d42479e97ea50dc5bc665d3938e Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Thu, 16 Jun 2011 23:57:49 +0300 Subject: [PATCH] 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). --- build.py | 10 ++++++++++ 1 file changed, 10 insertions(+) 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":