From 749468ac63042820bc3da85ece5bed64b0c15d62 Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Mon, 28 Mar 2016 19:44:19 -0700 Subject: automake: port better to future gzip * lib/am/distdir.am (dist-gzip, dist-shar, distcheck): Port better to future versions of gzip, which are planned to deprecate the GZIP environment variable (Bug#20132). --- lib/am/distdir.am | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/lib/am/distdir.am b/lib/am/distdir.am index d4dd8cc9b..87c6730f5 100644 --- a/lib/am/distdir.am +++ b/lib/am/distdir.am @@ -309,6 +309,16 @@ endif %?TOPDIR_P% ## We order DIST_TARGETS by expected duration of the compressors, ## slowest first, for better parallelism in "make dist". Do not ## reorder DIST_ARCHIVES, users may expect gzip to be first. +## +## Traditionally, gzip prepended the contents of the GZIP environment +## variable to its arguments, and the commands below formerly used +## this by invoking 'GZIP=$(GZIP_ENV) gzip'. The GZIP environment +## variable is now considered to be obsolescent, so the commands below +## now use 'eval GZIP= gzip $(GZIP_ENV)' instead; this should work +## with both older and newer gzip implementations. The 'eval' is to +## support makefile assignments like 'GZIP_ENV = "-9 -n"' that quote +## the GZIP_ENV right-hand side because that was needed with the +## former invocation pattern. if %?TOPDIR_P% @@ -316,7 +326,7 @@ if %?TOPDIR_P% GZIP_ENV = --best .PHONY: dist-gzip dist-gzip: distdir - tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz $(am__post_remove_distdir) ?BZIP2?DIST_ARCHIVES += $(distdir).tar.bz2 @@ -352,7 +362,7 @@ dist-shar: distdir @echo WARNING: "Support for shar distribution archives is" \ "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 - shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz $(am__post_remove_distdir) ?ZIP?DIST_ARCHIVES += $(distdir).zip @@ -412,7 +422,7 @@ endif %?SUBDIRS% distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -422,7 +432,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ esac -- cgit v1.2.1 From 13f00eb4493c217269b76614759e452d8302955e Mon Sep 17 00:00:00 2001 From: Paul Eggert Date: Thu, 31 Mar 2016 16:35:29 -0700 Subject: automake: port to Perl 5.22 and later Without this change, Perl 5.22 complains "Unescaped left brace in regex is deprecated" and this is planned to become a hard error in Perl 5.26. See: http://search.cpan.org/dist/perl-5.22.0/pod/perldelta.pod#A_literal_%22{%22_should_now_be_escaped_in_a_pattern * bin/automake.in (substitute_ac_subst_variables): Escape left brace. --- bin/automake.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/automake.in b/bin/automake.in index a3a0aa318..2c8f31e14 100644 --- a/bin/automake.in +++ b/bin/automake.in @@ -3878,7 +3878,7 @@ sub substitute_ac_subst_variables_worker sub substitute_ac_subst_variables { my ($text) = @_; - $text =~ s/\${([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge; + $text =~ s/\$[{]([^ \t=:+{}]+)}/substitute_ac_subst_variables_worker ($1)/ge; return $text; } -- cgit v1.2.1