From 21ac11614d6613916c6ede1bf6b90edefe9f2e0d Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sat, 30 Dec 2023 15:37:05 -0800 Subject: [PATCH] dist: Use -9 instead of --best, and only for gzip, to pacify Alpine. From https://bugs.gnu.org/68151. * lib/am/distdir.am (GZIP_ENV): Set to -9, not --best, since Alpine does not support --best. (distcheck): Don't use GZIP_ENV when invoking gzip for decompression, since Alpine does not support -1..-9 with decompression. * doc/automake.texi (The Types of Distributions): Document the change. * NEWS: mention this. (En passant, add more change links.) --- NEWS | 9 ++++++++- doc/automake.texi | 7 +++++-- lib/am/distdir.am | 6 +++--- 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/NEWS b/NEWS index c74804d59..956ae7ab0 100644 --- a/NEWS +++ b/NEWS @@ -56,7 +56,13 @@ New in 1.17: - The default value of $ARFLAGS is now "cr" instead of "cru", to better support deterministic builds. (bug#20082) + - Automake's make dist now uses -9 instead of --best with gzip, + because Alpine gzip does not support --best. Also, GZIP_ENV is used + only for compression, not decompression, because of the same system. + (bug#68151) + - Dependency files are now empty, instead of '# dummy', for speed. + (https://lists.gnu.org/archive/html/automake/2022-05/msg00006.html) - Compiling Python modules with Python 3.5+ uses multiple optimization levels. (bug#38043) @@ -65,7 +71,7 @@ New in 1.17: disable user config files that might hang or access the terminal; and -Q is not used, since its support and behavior varies. (bug#58102) - - Emacs Lisp compilations respects silent make output. + - Emacs Lisp compilations respect silent make output. - Automake no longer incorrectly warns that the POSIX make variables $(*D) and the like are non-POSIX. Unfortunately, the make @@ -78,6 +84,7 @@ New in 1.17: - distcleancheck ignores "silly rename" files (.nfs* .smb* .__afs*) that can show up on network file systems. + (https://lists.gnu.org/archive/html/automake/2022-09/msg00002.html) - tests: avoid some declaration conflicts for lex et al. on SunOS. (bug#34151 and others) diff --git a/doc/automake.texi b/doc/automake.texi index 4de175bd7..72f8336b7 100644 --- a/doc/automake.texi +++ b/doc/automake.texi @@ -9240,11 +9240,14 @@ distributions in various formats. Their targets are: @trindex dist-gzip @cmindex gzip @vindex GZIP_ENV +@c See https://bugs.gnu.org/68151 about using -9 instead of --best. Generate a @samp{gzip} tar archive of the distribution. This is the only format enabled by default. By default, this rule makes -@command{gzip} use a compression option of @option{--best}. To make +@command{gzip} use a compression option of @option{-9} (more widely +supported than @option{--best}). To make it use a different one, set the @env{GZIP_ENV} environment variable. -For example, @samp{make dist-gzip GZIP_ENV=-7}. +For example, @samp{make dist-gzip GZIP_ENV=-7}. @env{GZIP_ENV} is not +used when decompressing. @item @code{dist-bzip2} @trindex dist-bzip2 diff --git a/lib/am/distdir.am b/lib/am/distdir.am index 0dd3a2e3f..7206bbb84 100644 --- a/lib/am/distdir.am +++ b/lib/am/distdir.am @@ -331,7 +331,7 @@ endif %?TOPDIR_P% if %?TOPDIR_P% ?GZIP?DIST_ARCHIVES += $(distdir).tar.gz -GZIP_ENV = --best +GZIP_ENV = -9 .PHONY: dist-gzip dist-gzip: distdir tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz @@ -440,7 +440,7 @@ AM_DISTCHECK_DVI_TARGET = dvi distcheck: dist case '$(DIST_ARCHIVES)' in \ *.tar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ *.tar.bz2*) \ bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ *.tar.lz*) \ @@ -450,7 +450,7 @@ distcheck: dist *.tar.Z*) \ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ *.shar.gz*) \ - eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\ *.zip*) \ unzip $(distdir).zip ;;\ *.tar.zst*) \ -- 2.47.2