[Buildroot] [PATCH] support/scripts/apply-patches.sh: do not blindly remove *.orig files
Peter Korsgaard
peter at korsgaard.com
Tue Oct 6 20:34:34 UTC 2020
>>>>> "Yann" == Yann E MORIN <yann.morin.1998 at free.fr> writes:
> Peter, All,
> On 2020-10-06 20:56 +0200, Peter Korsgaard spake thusly:
>> apply-patches currently blindly removes *.orig / .*.orig files as GNU patch
>> by default writes these as backup files when patches only apply with fuzz.
>>
>> This is unfortunate as package sources may contain files ending in .orig as
>> well, breaking the build. Luckily GNU patch can be told to not write these
>> backup files using the --no-backup-if-mismatch option, so used that instead
>> of the .orig removal step.
>>
>> --no-backup-if-mismatch is supported since GNU patch 2.3.8 (1997-06-17) and
>> busybox patch if built with CONFIG_DESKTOP, but E.G. isn't supported by the
>> BSD patch, so add logic to detect support for the flag and only use it if
>> supported.
>>
>> Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
>> ---
>> Do we care about BSD patch / busybox patch w/ DESKTOP? Should we just
>> unconditionally use the flag?
>>
>> We have a similar issue with *.rej. GNU patch can be told to not write
>> those with the -r - option (since GNU patch 2.6, Nov 2009), but it should
>> normally also exit with a non-zero exit code for such sitations, so I am not
>> sure the check is needed?
> As discussed on IRC: I think we should require that patch suppot
> --no-backup-if-mismatch, and bail out if not:
> - check for that in support/dependencies/check-host-patch.{mk.sh}
You mean we should build our own host-patch? Sorry, I really find that
overkill. People are very unlikely to use anything else than GNU patch,
and the option is supported for more than 20 years.
But Ok, we can add a check for it in dependencies.sh, just like we do
for the availability of patch.
> - always use --no-backup-if-mismatch in apply-patch.sh
Ok.
I'll send a v2 doing that.
--
Bye, Peter Korsgaard
More information about the buildroot
mailing list