scan_patchdir is called recursively. For this to work properly, the
variable path which is set to $1 at the very beginning must be local not
global.
A test case is to set BR2_GLOBAL_PATCH_DIR to 'mypatches' and having the
following tree in the buildroot root:
$ find mypatches/
mypatches/
mypatches/busybox
mypatches/busybox/subdir.patch
mypatches/busybox/subdir.patch/busybox-0001-abc.patch
mypatches/busybox/busybox-0002-def.patch
mypatches/busybox/asubdir.patch
mypatches/busybox/asubdir.patch/busybox-0003-xyz.patch
When running 'make busybox-dirclean busybox-patch' originally, you'd get:
Applying busybox-0003-xyz.patch using patch:
Applying busybox-0002-def.patch using patch:
Error: missing patch file
mypatches/busybox/asubdir.patch/busybox-0002-def.patch
While with this fix:
Applying busybox-0003-xyz.patch using patch:
Applying busybox-0002-def.patch using patch:
Applying busybox-0001-abc.patch using patch:
This fixes bug #6434 (https://bugs.busybox.net/show_bug.cgi?id=6434)
Signed-off-by: Daniel Mentz <daniel@exxm.de>
[Thomas: update commit message with test case]
Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Disable reversed/already applied patches fallout from commit
5871b79199
Reverse patches are bad, they may unfix things with version bumps and
just sneak under the radar with pure batch mode.
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Fixes http://autobuild.buildroot.net/results/868/8687be8ec029486d9c5e2224cde542134f72884b/
The recent (d245fbb41d: apply-patches.sh: detect missing patches)
change to apply-patches.sh causes a number of regressions with packages
using downloadable tarballs of patches (typically from Debian), as
those contain additional files besides just the patches (ChangeLog's,
debian/rules, ..).
This use case is arguably abusing the _PATCH handling, but it used to
work so people might rely on it so go back to only warn about this
instead of erroring out.
At the same time reword the warning message.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The "patch" command returns an error code only if patches fail
to apply. Therefore the pipleline "cat <patchfile> | patch ..."
does not fail, even if <patchfile> is missing. Fix this by
adding an explicit check for patch file existence.
Based on feedback from buildroot mailing list, also change the
existing check for unsupported patch format into a fatal error.
Signed-off-by: Ralph Siemsen <ralphs@netwinder.org>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
If the file to be patched is missing, then `patch' will interactively
ask for a file to be patched. This is annoying in e.g. the autobuilders
because they have to wait for a timeout instead of failing.
Giving the '-t' (batch mode) option to patch fixes this: it will skip the
missing file, and return a non-zero exit code. So the build cleanly
fails.
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Signed-off-by: Jerzy Grzegorek <jerzy.grzegorek@trzebnica.net>
[yann.morin.1998@free.fr: space-damage]
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The patch pattern was expanded before being into the patch directory so the
expansion can add incorrect files.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
Recursivity is needed with some tarballs containing debian patches:
.
debian
changelog
control
patches
02-COPYRIGHT.patch
[...]
Since we can find some files which are not patches in those directories, only
consider .patch* and .diff* files as valid patches.
Due to recursivity, strip-components option is no more necessary so it has
been removed.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
If a series file is present use it to determine the proper order to apply
patches instead of using ls sorting order.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
add a series file with a wrong patch order into an archive containing several
patches whose correct order is the alphabetical one
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The way archives were managed was incorrect because the uncompressed archives
were sent directly to the patch command. It means that alphabetical patch
order was not respected.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
with an armadeus_apf9328_defconfig build
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
When a directory is found in patchdir, it is skipped.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
with an armadeus_apf9328_defconfig build
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
targetdir is not the output/target directory as it can suggest.
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
with an armadeus_apf9328_defconfig build
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Acked-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
[Peter: .rej files might be in subdirs, so just do find .. | xargs rm]
Signed-off-by: Ludovic Desroches <ludovic.desroches@atmel.com>
Tested-by: Ludovic Desroches <ludovic.desroches@atmel.com>
with an armadeus_apf9328_defconfig build
Reviewed-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tested-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
The name "patch-kernel.sh" is a bit stupid, since this script is used
to patch everything in Buildroot, not only kernel trees.
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>