[Buildroot] [PATCH v2] support/scripts/apply-patches.sh: do not blindly remove *.orig files

Yann E. MORIN yann.morin.1998 at free.fr
Tue Oct 6 21:41:24 UTC 2020


Peter, All,

On 2020-10-06 22:46 +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 dependencies.sh to error out if patch doesn't
> support the flag.
> 
> Signed-off-by: Peter Korsgaard <peter at korsgaard.com>

Applied to master, thanks.

However, does that make sense to also use --no-backup-if-mismatch in our
LIBTOOL_PATCH_HOOK ?

Regards,
Yann E. MORIN.

> ---
>  support/dependencies/dependencies.sh | 6 ++++++
>  support/scripts/apply-patches.sh     | 5 +----
>  2 files changed, 7 insertions(+), 4 deletions(-)
> 
> diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
> index c1bd614edf..b44d28682c 100755
> --- a/support/dependencies/dependencies.sh
> +++ b/support/dependencies/dependencies.sh
> @@ -180,6 +180,12 @@ if test "${missing_progs}" = "yes" ; then
>  	exit 1
>  fi
>  
> +# apply-patches.sh needs patch with --no-backup-if-mismatch support (GNU, busybox w/DESKTOP)
> +if ! patch --no-backup-if-mismatch </dev/null 2>/dev/null; then
> +	echo "Your patch program does not support the --no-backup-if-mismatch option. Install GNU patch"
> +	exit 1
> +fi
> +
>  if grep ^BR2_NEEDS_HOST_UTF8_LOCALE=y $BR2_CONFIG > /dev/null; then
>  	if ! which locale > /dev/null ; then
>  		echo
> diff --git a/support/scripts/apply-patches.sh b/support/scripts/apply-patches.sh
> index 66fef262ee..2d39d63da1 100755
> --- a/support/scripts/apply-patches.sh
> +++ b/support/scripts/apply-patches.sh
> @@ -119,7 +119,7 @@ function apply_patch {
>          exit 1
>      fi
>      echo "${path}/${patch}" >> ${builddir}/.applied_patches_list
> -    ${uncomp} "${path}/$patch" | patch -g0 -p1 -E -d "${builddir}" -t -N $silent
> +    ${uncomp} "${path}/$patch" | patch -g0 -p1 -E --no-backup-if-mismatch -d "${builddir}" -t -N $silent
>      if [ $? != 0 ] ; then
>          echo "Patch failed!  Please fix ${patch}!"
>          exit 1
> @@ -168,6 +168,3 @@ if [ "`find $builddir/ '(' -name '*.rej' -o -name '.*.rej' ')' -print`" ] ; then
>      echo "Aborting.  Reject files found."
>      exit 1
>  fi
> -
> -# Remove backup files
> -find $builddir/ '(' -name '*.orig' -o -name '.*.orig' ')' -exec rm -f {} \;
> -- 
> 2.20.1
> 
> _______________________________________________
> buildroot mailing list
> buildroot at busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 561 099 427 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'


More information about the buildroot mailing list