Karl Berry [Fri, 13 Nov 2020 01:49:31 +0000 (17:49 -0800)]
install-sh: new option -S SUFFIX for simple file backups.
* lib/install-sh: implement and document -S.
Patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00004.html
(scriptversion): 2020-11-13.01
* t/install-sh-option-S.sh: new test.
* t/list-of-tests.mk (handwritten_tests): add it.
* NEWS: mention it.
Karl Berry [Wed, 11 Nov 2020 02:03:47 +0000 (18:03 -0800)]
install-sh: new option -p to preserve mtime.
* lib/install-sh: new option -p to call cp -p.
Idea from patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00002.html
(scriptversion): 2020-11-11.02
* NEWS: mention this.
Karl Berry [Wed, 11 Nov 2020 01:58:41 +0000 (17:58 -0800)]
vala: forgot to update lists-of-tests.mk.
* t/list-of-tests.mk (handwritten_tests): include
t/vala-libs-distcheck.sh and t/vala-libs-vpath.sh.
Should have been committed with 2020-10-29 vala change,
but somehow missed.
Karl Berry [Wed, 11 Nov 2020 01:54:06 +0000 (17:54 -0800)]
install-sh: do not chown existing directories.
* lib/install-sh: do not chown existing directories.
Original patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00003.html
(scriptversion): 2020-11-11.01
* NEWS: mention this.
Karl Berry [Wed, 11 Nov 2020 01:48:35 +0000 (17:48 -0800)]
install-sh: do not redundantly specify -f to rm.
* lib/install-sh: do not redundantly specify -f to rm.
Mention implication for RMPROG in the --help message.
Original patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00005.html
* NEWS: mention this.
Reuben Thomas [Sun, 8 Nov 2020 02:44:56 +0000 (18:44 -0800)]
vala: improve support, especially builddir vs. srcdir.
This change fixes https://bugs.gnu.org/13002.
* NEWS: mention these changes.
* bin/automake.in: generated C files go in builddir, not srcdir.
Distribute the header files generated from VAPI files.
* t/vala-libs-distcheck.sh: new test for `make distcheck' of a
Vala library.
* t/vala-libs-vpath.sh: new test for a VPATH build of a Vala library.
* t/vala-libs.sh: add local VAPIs used as external --package to test.
* t/vala-recursive-setup.sh: we need to make
maintainer-clean at one point to remove stamp files to avoid
confusing a VPATH build performed after a non-VPATH build.
* t/vala-non-recursive-setup.sh: likewise.
* t/vala-parallel.sh: some test paths need changing to take into
account that generated C files now go in builddir.
* t/vala-per-target-flags.sh: likewise.
* t/vala-recursive-setup.sh: likewise.
* t/vala-vpath.sh: likewise.
Karl Berry [Sun, 8 Nov 2020 02:11:03 +0000 (18:11 -0800)]
tests: recompute dependencies when lists-of-tests.mk changes.
This change fixes https://bugs.gnu.org/44458
and updates https://bugs.gnu.org/11347.
* t/local.mk ($(srcdir)/%D/testsuite-part.am): restore
dependency on '%D/list-of-tests.mk' (i.e., t/list-of-tests.mk),
partially reverting the change of 26 Apr 2012 for bug#11347.
Otherwise, new tests that have dependencies will not cause an
update of testsuite-part.am, leading to strange failures
(bug#44458). The original problem being fixed in #11347 was
unnecessary rebuilding when modifying tests; that should not be
affected here, but when new tests are added, it seems reasonable,
as well as necessary, to ensure dependencies are updated.
Miro Hron\v{c}ok [Tue, 27 Oct 2020 21:33:46 +0000 (14:33 -0700)]
python: determine Python (3.10) version number correctly.
This change fixes https://bugs.gnu.org/44239
(and https://bugzilla.redhat.com/show_bug.cgi?id=1889732).
* m4/python.m4: use print('%u.%u' % sys.version_info[:2]) for
the version number instead of merely sys.version[:3], so the
numbers are treated as numbers.
* t/python-vars.sh (PYTHON_VERSION): Likewise.
* doc/automake.texi: Document it.
* NEWS: mention it. (Minor tweaks from Karl Berry.)
Zack Weinberg [Wed, 7 Oct 2020 13:19:06 +0000 (09:19 -0400)]
Use complete configure.ac’s in testsuite.
Autoconf 2.70 will issue warnings if it encounters a configure.ac that doesn’t
call both AC_INIT and AC_OUTPUT.
Automake already issues warnings if it encounters a configure.ac that uses an
AM_ macro but doesn’t call AM_INIT_AUTOMAKE or AC_CONFIG_FILES([Makefile]).
In two places, the testsuite was tripping these warnings, leading to spurious
failures with Autoconf 2.70 betas.
* t/aminit-moreargs-deprecation.sh: Add AC_OUTPUT to test configure.ac.
* t/mkdirp-deprecation.sh: Use a complete test configure.ac, not a stub
containing only a use of AM_PROG_MKDIR_P.
Update documentation of warnings options and strictness levels.
The warning categories ‘cross’ and ‘portability-recursive’ were not mentioned
in the manual.
Also clarify the relationship between warnings categories and strictness
levels, and streamline the description of strictness levels by merging the
“Gnits” section into the “Strictness” section.
* doc/automake.texi (Gnits, Strictness): Combine these sections.
Minor revisions to explanation of strictness levels.
(automake Invocation): Add documentation of all the warnings
categories that have been added since the last time this section
was updated. Minor clarifications.
Use WARNINGS=none to suppress warnings from autom4te runs.
aclocal uses autom4te in trace mode to scan configure.ac for macros whose
definition is not yet available. It has a kludge to prevent this from
producing spurious warnings, but a cleaner, fully backward compatible, way to
get the same effect is to set WARNINGS=none in the environment and not pass
down any -W options. (This is better than passing -Wnone on the command line
because it automatically inherits to any subprocesses started by autom4te.)
Perl’s ‘local’ feature can be used to make the enviironment variable setting
temporary, reverting to the previous value when we exit the function.
automake also runs autom4te (technically autoconf) in trace mode; warnings
from this invocation will not be *spurious*, but in the common case where
the person running automake is going to run autoconf next, they will be
duplicated. Therefore, make the same change to automake.
* bin/aclocal.in (trace_used_macros)
* bin/automake.in (scan_autoconf_traces):
Use “local $ENV{WARNINGS}='none'” to suppress warnings from autom4te.
New utility function Automake::ChannelDefs::merge_WARNINGS.
This function merges a list of warnings categories into the environment
variable WARNINGS, returning a new value to set it to. The intended use
is in code of the form
{
local $ENV{WARNINGS} = merge_WARNINGS ("this", "that");
# run a command here with WARNINGS=this,that,etc
}
This is not actually used in automake, but will be in autoconf.
* lib/Automake/ChannelDefs.pm (merge_WARNINGS): New function.
t/python-virtualenv.sh: Skip when versions don’t match
On some operating systems ‘python’ is Python 2.x but ‘virtualenv -ppython’
will create a virtualenv that uses Python 3.x. This is a bug, but it’s
not *automake’s* bug, and should not cause t/python-virtualenv.sh to fail.
Skip the test, instead of failing it, when the inner=outer version check
fails.
(This also has nothing to do with the main goal of this patchset, it just
annoyed me while I was testing.)
* t/python-virtualenv.sh: Skip test, rather than failing it, when
$py_version_pre != $py_version_post.
At file scope of a file containing at most one ‘package’ declaration,
‘use vars’ is exactly equivalent to ‘our’, and the latter is preferred
starting with Perl 5.6.0, which happens to be the oldest version we
support.
(This change has nothing to do with the previous two, but I want to make the
same change in Autoconf and that means doing it here for all the files synced
from Automake.)
(I don’t know why, but this change exposed a latent bug in FileUtils.pm where
the last pod block in the file didn’t have a ‘=cut’ delimiter, so the code
after it was considered documentation, causing ‘require FileUtils’ to fail.)
Consistently process -W(no-)error after all other warning options.
automake and aclocal were processing ‘-W(no-)error’ whenever it
appeared on the command line, which means that
‘-Werror,something-strange’ would issue a hard error, but
‘-Wsomething-strange,error’ would only issue a warning.
It is not desirable for warnings about unknown warning categories ever to be
treated as a hard error; that leads to problems for driver scripts like
autoreconf, which would like to pass whatever -W options it got on its own
command line down to all the tools and not worry about which tools understand
which warning categories. Also, this sort of order dependence is confusing
for humans.
Change parse_warnings to take just one option, the _complete_ list of warning
categories seen on the command line, and to process -Werror / -Wno-error after
processing all other warnings options. Thus, unknown warnings categories will
always just be a plain warning. This does mean aclocal has to stop using
parse_warnings as a Getopt::Long callback, but that’s not a big deal.
Similarly, change parse_WARNINGS to record whether ‘error’ appeared in the
environment variable, but not activate warnings-are-errors mode itself.
parse_warnings picks up the record and honors it, unless it’s overridden by
the command line.
* lib/Automake/ChannelDefs.pm ($werror): New package global (not exported).
(parse_WARNINGS): Do not call switch_warning for ‘error’ / ‘no-error’;
just toggle the value of $werror.
(parse_warnings): Do not call switch_warning immediately for
‘error’ / ‘no-error’; toggle $werror instead. Call switch_warning ‘error’
at the very end if $werror is true. Remove unused $OPTION argument.
* bin/automake.in: parse_warnings now takes only one argument.
* bin/aclocal.in: Call parse_warnings after parse_options instead of
using it as a parse_options callback.
ChannelDefs.pm *ought* to be kept in sync between automake and autoconf,
because it defines the set of valid -W options, and autoreconf assumes
that it can pass arbitrary -W options to all of the tools it invokes.
However, it isn’t covered by either project’s ‘make fetch’ and it hasn’t
actually *been* in sync for more than 17 years.
This patch manually brings over all of the changes made on the autoconf side.
Most importantly, there is a new warnings channel ‘cross’, for warnings
related to cross-compilation. Also, the ‘usage’ function now *returns*
the text to be put into a usage message, instead of printing it itself.
(This is necessary on autoconf’s side.)
* lib/Automake/ChannelDefs.pm: Sync from autoconf.
(cross): New warnings channel.
(portability-recursive): Document.
(usage): Now returns the text to be printed, instead of printing it.
(parse_warnings): Second argument may now be a list.
automake: be robust against directories containing ().
This change fixes https://bugs.gnu.org/14196.
* m4/missing.m4 (AM_MISSING_HAS_RUN): always quote the
invocation (not just if $am_aux_dir contains space or tab), in
case $am_aux_dir contains () or other metachars not rejected by
AM_SANITY_CHECK; quoting with '...' suggested by Jim Meyering.
* t/man6.sh (HELP2MAN): adjust grep since missing value
is quoted now.
* t/am-missing-prog.sh: likewise.
Karl Berry [Fri, 28 Aug 2020 23:26:54 +0000 (16:26 -0700)]
automake: if TEST_EXTENSIONS is set to empty, don't look inside it.
This change fixes https://bugs.gnu.org/42635.
* bin/automake.in (handle_tests): do not use $test_suffixes[0]
if it does not exist.
* t/test-extensions-empty.sh: new test.
* t/list-of-tests.mk (handwritten_TESTS): add it.
Paul Eggert [Sat, 1 Aug 2020 23:12:34 +0000 (16:12 -0700)]
port XFile locking to OpenIndiana
I observed this problem on an NFS filesystem on an OpenIndiana
host (5.11 illumos-dde7ba523f i386). fcntl (fd, F_SETLK, ...)
failed with errno == EINVAL, which POSIX allows for files that
do not support locking.
* lib/Automake/XFile.pm (lock): Treat EINVAL like ENOLCK.
Paul Eggert [Sun, 26 Jul 2020 22:01:34 +0000 (15:01 -0700)]
Install directories mode 755 instead of using umask
Problem reported by Antoine Amarilli in:
https://lists.gnu.org/archive/html/automake/2019-01/msg00000.html
and followed up by Akim Demaille in:
https://lists.gnu.org/archive/html/bug-bison/2020-07/msg00040.html
* bin/automake.in: Add a comment about this.
* lib/install-sh: Ignore umask; just create directories mode 755
unless overridden via -m (for non-intermediate directories only).
Also, fix 'umask=$mkdir_umask' typo.
* lib/mkinstalldirs: Likewise.
Karl Berry [Sat, 6 Jun 2020 22:42:54 +0000 (15:42 -0700)]
automake: support AM_TESTSUITE_SUMMARY_HEADER override.
This change handles https://bugs.gnu.org/11745.
* lib/am/check.am (AM_TESTSUITE_SUMMARY_HEADER): new variable.
Default value is " for $(PACKAGE_STRING)", including quotes,
to keep the default output the same.
($(TEST_SUITE_LOG)): use it, unquoted.
* doc/automake.texi (Scripts-based Testsuites): document it.
* NEWS: mention it.
* t/testsuite-summary-header.sh: new test.
* t/list-of-tests.mk (handwritten_tests): add it.
* t/ax/testsuite-summary-checks.sh: fix typo.
Karl Berry [Tue, 26 May 2020 01:30:53 +0000 (18:30 -0700)]
docs: forgot TAR in NEWS; fix " -- " in manual.
* NEWS: it seems the TAR envvar was never mentioned in NEWS;
add it, back for 1.11.3 when it was apparently implemented.
* doc/automake.texi: consistently use "---" instead of " --".
Karl Berry [Sun, 17 May 2020 16:36:15 +0000 (09:36 -0700)]
automake: new variable AM_DISTCHECK_DVI_TARGET to override "dvi".
This change fixes https://bugs.gnu.org/8289.
* lib/am/distdir.am (AM_DISTCHECK_DVI_TARGET): define as dvi.
(distcheck): use it, isntead of hardcoding dvi.
* lib/Automake/Variable.pm (%_silent_variable_override): add
AM_DISTCHECK_DVI_TARGET.
* t/distcheck-override-dvi.sh: new test.
* t/list-of-tests.mk (handwritten_TESTS): add it.
* doc/automake.texi (Checking the Distribution): document this.
(Third-Party Makefiles): explicitly mention that
EMPTY_AUTOMAKE_TARGETS is not a built-in or special name.
Various other index entries and wording tweaks.
* NEWS (Distribution): mention this.
Per thread at:
https://lists.gnu.org/archive/html/automake-patches/2020-04/msg00000.html>
especially:
https://lists.gnu.org/archive/html/automake-patches/2020-05/msg00003.html
* lib/Automake/FileUtils.pm (up_to_date_p): remove.
Nothing in Automake itself uses this. It is used in Autoconf's
autom4te utility, but Autoconf has its own copy, and the duplication
was impeding auto4mte development, as discussed in the thread above.
(While here, insert missing =over/=back to placate pod2text.)
* NEWS (Miscellanous changes): note this.
Karl Berry [Fri, 8 May 2020 01:26:33 +0000 (18:26 -0700)]
docs: make dist implies make dvi.
This change handles https://bugs.gnu.org/7994.
* doc/automake.texi (Preparing Distributions): make distcheck
runs make dvi.
(Auxiliary Programs) <texinfo.tex>: mention
that make dist runs make dvi, and therefore a TeX system is
required when Texinfo sources are present. Add @cmindex entries
for all auxiliary programs while we're here.
Vincent Lefevre [Thu, 23 Apr 2020 15:40:39 +0000 (17:40 +0200)]
bug#40699: "dist Hook" documentation in manual is incorrect or unclear about write permissions
On 2020-04-20 14:59:00 -0600, Karl Berry wrote:
> i.e. it does not change the permissions in order to make the removal
> work recursively
>
> Right, I see it now. Had been testing the wrong thing.
>
> So, can you propose a specific change for the manual? -k
I think that it is sufficient to fix the example (the explanation
is just below). BTW, the second example is also incorrect.
Karl Berry [Sat, 18 Apr 2020 21:06:59 +0000 (14:06 -0700)]
cosmetics: spurious word in README, copyright year.
* README: delete spurious "that"; update copyright year end to 2020.
Original suggestion from Vincent Lefevre,
https://lists.gnu.org/archive/html/automake-patches/2020-04/msg00007.html
* bin/automake.in (lang_vala_finish_target): anchor option regexp
so that, e.g., an argument "vapi" does not match the option --vapi.
* NEWS: mention this (and preceding checklinkx change, sorry).
Karl Berry [Wed, 1 Apr 2020 01:21:22 +0000 (18:21 -0700)]
doc: update urls in manual and include checklinkx script.
* doc/automake.texi: update many urls; http -> https,
search.cpan.org -> metacpan.org/pod/distribution, node names, etc.
Remove sourceware.org/cgi-bin/gnatsweb.pl and
miller.emu.id.au/pmiller/books/rmch/ as these are 404
and no good replacement is evident.
s/perl/Perl/ a couple times in text for good measure.
* contrib/checklinkx: new script, a small modification of
W3C checklink <https://validator.w3.org/checklink/docs/checklink.html>
(W3C license, which is free software), starting from version 4.81
installed from CPAN:
https://metacpan.org/pod/distribution/W3C-LinkChecker/bin/checklink.pod
* doc/local.mk (checklinkx): new target to invoke it, with variables.
* Makefile.am (EXTRA_DIST): distribute it.
* NEWS: mention all this.
Jim Meyering [Tue, 24 Mar 2020 01:43:29 +0000 (18:43 -0700)]
maint: Post-release administrivia
* NEWS: Add header line for next release.
* configure.ac (AC_INIT): Bump version number to 1.16b.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
Jim Meyering [Sun, 15 Mar 2020 03:21:43 +0000 (20:21 -0700)]
version 1.16.2
* configure.ac (AC_INIT): Bump version number to 1.16.2.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* NEWS: Record release version.
Karl Berry [Wed, 26 Feb 2020 02:07:15 +0000 (18:07 -0800)]
python: support both Python 2 and 3 in py-compile
* lib/py-compile: check python major version and use imp
or importlib accordingly, plus related changes. Original
patch for Python 3 only from Gabriel Ganne at:
https://lists.gnu.org/archive/html/automake-patches/2019-07/msg00002.html
Paul Osmialowski [Sun, 16 Feb 2020 02:16:15 +0000 (18:16 -0800)]
configure: add flang compilers to _AM_COMPILER_CAN_FAIL
* configure.ac (_AM_COMPILER_CAN_FAIL): add armflang and flang
(in two places). Original patch at:
https://lists.gnu.org/archive/html/automake-patches/2019-02/msg00001.html
Libor Bukata [Sat, 15 Feb 2020 02:36:49 +0000 (18:36 -0800)]
cosmetics: improve error message when dependency tracking fails
This change fixes https://bugs.gnu.org/35848.
* m4/depout.m4: Add suggestion to try GNU make to the error message.
Original patch at
https://lists.gnu.org/archive/html/automake-patches/2019-05/msg00000.html
Lukas Fleischer [Thu, 30 Jan 2020 02:12:29 +0000 (18:12 -0800)]
python: properly uninstall __pycache__ in subdirectories
This change finishes fixing automake bug#32088:
https://debbugs.gnu.org/32088
* lib/am/python.am (uninstall-%DIR%PYTHON): Uninstall
byte-compiled files in a '__pycache__' subdirectory
from sub/__pycache__/, not __pycache__/sub/.
(am__pep3147_tweak): prefix __pycache__ here, for both .pyc and .pyo.
https://lists.gnu.org/archive/html/automake-patches/2018-05/msg00000.html
* t/instmany-python.sh (limit): increase to 4500, following
Andreas Huettel, https://debbugs.gnu.org/32088#11.
Lukas Fleischer [Wed, 29 Jan 2020 02:32:20 +0000 (18:32 -0800)]
tests: in python tests, do not require .pyo files (for python3)
This change partially fixes automake bug#32088:
https://debbugs.gnu.org/32088
* t/py-compile-basedir.sh: Remove all .pyo checks.
Also, in this test only, allow for either 4 or 6 files resulting
from compilation, as new-enough Python3 results in 6
(per Andreas Huettel, https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32088#17)
* t/py-compile-basic.sh: Remove all .pyo checks.
* t/py-compile-destdir.sh: Likewise.
* t/py-compile-option-terminate.sh: Likewise.
* t/python-virtualenv.sh: Likewise.
* t/python10.sh: Likewise.
* t/python12.sh: Likewise.
* t/python3.sh: Likewise.
Karl Berry [Mon, 27 Jan 2020 02:06:04 +0000 (18:06 -0800)]
doc: clarify build tree location
* doc/automake.texi (VPATH Builds): more words about the build
tree location. Suggestion from Jefferson Carpenter, 31 May 2018:
<https://lists.gnu.org/archive/html/automake-patches/2018-05/msg00003.html>
Karl Berry [Mon, 20 Jan 2020 02:24:28 +0000 (18:24 -0800)]
lint: make syntax-check same as maintainer-check.
* maintainer/syntax-checks.mk (syntax-check): new target,
same as maintainer-check. For consistency with many other
GNU packages.
(.PHONY): add here too.
Karl Berry [Sun, 19 Jan 2020 02:06:23 +0000 (18:06 -0800)]
tests: use find+rm, not perl, to remove temporary directories.
This change fixes automake bug#39078:
https://debbugs.gnu.org/39078
* t/ax/test-lib.sh (rm_rf_): run chmod -R u+rwx and rm -rf,
instead of calling our t/ax/deltree.pl script. This reverses the
change of 2013-05-16. It made sense to write and use deltree
at that point, but unfortunately as of perl-5.28.0
(File::Path.pm version 2.15), rmtree no longer removes a tree with
unreadable subdirectories, such as we (intentionally) have. So we
might as well go back to rm -rf. The unconditional recursive chmod
instead of the previously-used more complex find command will
hopefully prove portable. See the bug report for more details.
Our deltree.pl is not used for anything else, but nevertheless
leaving it in our source tree for now, for ease of reversion
and comparison.
Karl Berry [Thu, 9 Jan 2020 02:21:26 +0000 (18:21 -0800)]
tests: use skip_ consistently.
* t/lisp-loadpath.sh: use skip_ instead of exit 77;
also, notice and reset if the EMACS envvar is simply "t".
* t/uninstall-fail.sh: use skip_ instead of the undefined skip.
Karl Berry [Sun, 5 Jan 2020 01:06:40 +0000 (17:06 -0800)]
automake: Support byte compilation in older Emacsen
* lib/am/lisp.am (am__emacs_byte_compile_setup) [FIRST]: define
new make variable, to use byte-compile-dest-file-function if
available, else byte-compile-dest-file.
(.el.elc): use it.
* t/lisp-loadpath.sh: skip test if emacs version is <= 23,
since their -L ordering is backwards.
* NEWS: update.
Jim Meyering [Mon, 23 Dec 2019 20:13:26 +0000 (12:13 -0800)]
maint: make maintainer-check tests pass
* maintainer/syntax-checks.mk (sc_sanity_gnu_grep): Remove
NUL byte from grep output, to avoid shell diagnostic about
"NUL byte suppressed from expansion."
(automake_diff_no, aclocal_diff_no): Adjust number of expected
diff lines.
Karl Berry [Tue, 17 Dec 2019 02:45:22 +0000 (19:45 -0700)]
automake: Ensure space after $(LISP) in tags dependencies.
This change fixes automake bug#38139.
* bin/automake.in (handle_tags): Concatenate with space in " @config".
* t/tags-lisp-space.sh: New test.
* t/list-of-tests.mk (handwritten_TESTS): Add it.
Add support for using the zstd compression algorithm.
Use a default compression setting of -19, and ".zst" as the suffix.
* bin/automake.in (handle_dist): Add zstd to the list of known dist-
suffixes.
(preprocess_file): Map ZSTD to dist-zstd.
* doc/automake.texi: Document the new option.
* lib/Automake/Options.pm (_is_valid_easy_option): Add dist-zstd.
* lib/am/distdir.am (dist-zstd): New rule.
(?ZSTD?DIST_TARGETS): Add definition.
(distcheck): Add a case for *.tar.zst*.
* t/dist-formats.tap: Add tests.
* NEWS: Mention the change.
Paul Eggert [Mon, 11 Nov 2019 20:07:08 +0000 (12:07 -0800)]
config: add msys support
Requested by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2019-11/msg00008.html
* lib/ar-lib, lib/compile (func_file_conv):
Treat msys like cygwin.
Gavin Smith [Mon, 26 Aug 2019 04:07:58 +0000 (21:07 -0700)]
automake: do not require @setfilename in Texinfo files
Texinfo no longer requires a @setfilename directive in each
.texi file, so automake now also relaxes its restriction.
* bin/automake.in (scan_texinfo_file): Derive name of info file from
name of input file if no @setfilename line occurs in the file.
* t/txinfo-no-setfilename.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Mention it.
Paul Eggert [Mon, 26 Aug 2019 01:51:26 +0000 (18:51 -0700)]
install-sh: support -s with read-only source
Problem reported by Karl Berry in:
https://lists.gnu.org/r/bug-gnulib/2019-08/msg00067.html
* lib/install-sh: If -s is given, create the temporary file
with $cp_umask so that ‘strip’ can write to it.
Mathieu Lirzin [Sun, 25 Mar 2018 05:29:48 +0000 (07:29 +0200)]
test-driver.scm: Add "--coverage" option
* contrib/test-driver.scm: When 'coverage' option is enabled, run tests
in the debug vm and trace coverage data.
(%options): Add 'coverage'.
(show-help): Display option.
Mathieu Lirzin [Sat, 24 Mar 2018 22:42:16 +0000 (23:42 +0100)]
test-driver.scm: Don't guess script name from "--test-name"
'primitive-load' is used instead of 'load-from-path' since the script is
given as a relative file name. For unknown reason, using 'load' fails
with GNU Mcron test suite when running 'make distcheck'.
* contrib/test-driver.scm: Get the actual script name directly from the
command line. Handle the case where that argument is missing.
Mathieu Lirzin [Tue, 20 Feb 2018 22:18:09 +0000 (23:18 +0100)]
bin: Rely only on the shebang line
Previously ‘automake’ and ‘aclocal’ were handling the case of being
interpreted as a Shell script by using a hack leveraging the fact that
Shell and Perl has a compatible syntax intersection allowing those
scripts to launch ‘perl’ from the shell.
Mathieu Lirzin [Sun, 11 Mar 2018 22:24:55 +0000 (23:24 +0100)]
maint: Post-release administrivia
* NEWS: Add header line for next release.
* configure.ac (AC_INIT): Bump version number to 1.16a.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
Mathieu Lirzin [Sun, 11 Mar 2018 21:24:54 +0000 (22:24 +0100)]
version 1.16.1
* configure.ac (AC_INIT): Bump version number to 1.16.1.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* NEWS: Record release version.
Pavel Raiskup [Sun, 11 Mar 2018 20:47:54 +0000 (21:47 +0100)]
install-sh: avoid (low risk) race in "/tmp"
Ensure that nobody can cross privilege boundaries by pre-creating
symlink on '$tmpdir' destination directory.
Just testing 'mkdir -p' by creating "/tmp/ins$RANDOM-$$/d" is not safe
because "/tmp" directory is usually world-writeable and
"/tmp/ins$RANDOM-$$" content could be pretty easily guessed by
attacker (at least for shells where $RANDOM is not supported). So, as
the first step, create the "/tmp/ins$RANDOM-$$" without -p. This step
would fail early if somebody wanted catch us.
Systems that implement (and have enabled) fs.protected_symlinks kernel
feature are not affected even without this commit.
Mathieu Lirzin [Sat, 3 Mar 2018 22:50:10 +0000 (23:50 +0100)]
automake: Don't rely on List::Util to provide 'none'
This change fixes automake bug#30631.
This removes the use of List::Util which is not supported by Perl 5.6,
by reimplementing the 'none' subroutine.
* lib/Automake/General.pm (none): New subroutine.
* bin/automake.in (handle_single_transform): Use it.
* t/pm/General.pl: New test.
* t/list-of-tests.mk (perl_TESTS): Add it.
* NEWS: Update.
Mathieu Lirzin [Sat, 3 Mar 2018 11:01:13 +0000 (12:01 +0100)]
python: Support future python version up to 3.9
This change fixes automake bug#28160.
Since AM_PYTHON_PATH macro takes no maximum version argument, there is
no need to generate _AM_PYTHON_INTERPRETER_LIST dynamically, like what
was previously done by the reverted commit 1d60fb72168e62d33fe433380af621de64e22f23. We could rely on M4 to
generate this list statically however this is likely to be a complex
solution that would not improve maintainability.
Paul Eggert [Wed, 7 Mar 2018 04:13:32 +0000 (20:13 -0800)]
maint: write-file-hooks -> before-save-hook
write-file-hooks is obsolete since Emacs 22.1 (released June 2007) and
it's time to use the recommended replacement.
Problem reported by Glenn Morris in:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00008.html
* contrib/tap-driver.pl, lib/compile, lib/depcomp, lib/install-sh:
* lib/mdate-sh, lib/missing, lib/mkinstalldirs, lib/py-compile:
* lib/tap-driver.sh, lib/test-driver, lib/ylwrap:
Update hook usage for files where Automake is the canonical source.
Mathieu Lirzin [Sun, 25 Feb 2018 21:28:21 +0000 (22:28 +0100)]
maint: Post-release administrivia
* NEWS: Add header line for next release.
* configure.ac (AC_INIT): Bump version number to 1.16a.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").