Subject: Re: bug#19376: [PATCH 4/4] build: use -pi.bak instead of -pi

From: Pádraig Brady <[email-masked]>
Date: Sun, 14 Dec 2014 13:25:10 +0000

forcemerge 19376 19377
stop

On 14/12/14 03:47, KO Myung-Hun wrote:
> This fixes the following error.
> 
> -----
> Can't do inplace edit without backup.
> -----
> 
> * Makefile.am (dist-hook): Use -pi.bak instead of -pi.
> * bootstrap.conf (bootstrap_epilogue): Likewise.
> ---
>  Makefile.am    | 2 +-
>  bootstrap.conf | 2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/Makefile.am b/Makefile.am
> index fb4af27..371eb59 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -105,7 +105,7 @@ BUILT_SOURCES = .version
>  # See the rm_subst comment for details.
>  dist-hook: gen-ChangeLog
>  	$(AM_V_GEN)echo $(VERSION) > $(distdir)/.tarball-version
> -	$(AM_V_at)perl -pi -e '$(rm_subst)' $(distdir)/Makefile.in
> +	$(AM_V_at)perl -pi.bak -e '$(rm_subst)' $(distdir)/Makefile.in
>  
>  gen_start_date = 2008-02-08
>  .PHONY: gen-ChangeLog
> diff --git a/bootstrap.conf b/bootstrap.conf
> index c0b5f02..0baf455 100644
> --- a/bootstrap.conf
> +++ b/bootstrap.conf
> @@ -366,7 +366,7 @@ bootstrap_epilogue()
>    # Why?  That pipeline searches all files in $(top_srcdir), and if you
>    # happen to have large files (or apparently large sparse files), the
>    # first grep may well run out of memory.
> -  perl -pi -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
> +  perl -pi.bak -e 's/if LC_ALL=C grep .GNU .PACKAGE.*; then/if true; then/' \
>      po/Makefile.in.in
>  
>    # Install our git hooks, as long as "cp" accepts the --backup option,

This will leave .bak files in place on all platforms which isn't ideal.
Pity `perl -i` doesn't handle the platform differences transparently.
Does sed -i behave better. That's less portable though could be tried
and then fall back to perl -i.

thanks,
Pádraig.