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

From: Jim Meyering <[email-masked]>
Date: Sun, 14 Dec 2014 07:23:38 -0800

On Sun, Dec 14, 2014 at 5:25 AM, Pádraig Brady <[email-masked]> wrote:
> 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.

Actually, neither of those uses of perl -pi is run by one who builds
from a distribution tarball.  Only people who build from git and who
run "make dist" will run those commands, so I think it is fine to
require a working version of perl for those uses.

i.e., I would prefer not to incur the cost of ugly work-around
changes here for what appears to be a very "fringe" platform.