]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
5 years agotests: in python tests, do not require .pyo files (for python3)
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.

5 years agodoc: clarify build tree location
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>

5 years agolint: make syntax-check same as maintainer-check.
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.

5 years agotests: use find+rm, not perl, to remove temporary directories.
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.

5 years agotests: use skip_ consistently.
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.

5 years agotests: Correctly simulate no emacs in t/nobase-nodist.sh
Karl Berry [Mon, 6 Jan 2020 02:21:01 +0000 (18:21 -0800)] 
tests: Correctly simulate no emacs in t/nobase-nodist.sh

* t/nobase-nodist.sh: export EMACS, not EMCAS, as "no".

5 years agoautomake: Support byte compilation in older Emacsen
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.

5 years agomaint: make update-copyright
Jim Meyering [Wed, 1 Jan 2020 19:44:41 +0000 (11:44 -0800)] 
maint: make update-copyright

5 years agomaint: make maintainer-check tests pass
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.

5 years agotests: Ensure UTC for Texinfo @UPDATED@ test
Karl Berry [Sat, 21 Dec 2019 01:37:32 +0000 (17:37 -0800)] 
tests: Ensure UTC for Texinfo @UPDATED@ test

* t/txinfo-vtexi4.sh: TZ=UTC0; export TZ (same as mdate-sh).
* NEWS: update.

5 years agoautomake: Ensure space after $(LISP) in tags dependencies.
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.

5 years agodist: add dist-zstd option
Giuseppe Scrivano [Fri, 4 Oct 2019 14:39:24 +0000 (16:39 +0200)] 
dist: add dist-zstd option

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.

5 years agoconfig: add msys support
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.

5 years agomaint: make update-copyright
Paul Eggert [Mon, 14 Oct 2019 20:46:55 +0000 (13:46 -0700)] 
maint: make update-copyright

5 years agomaint: make fetch
Paul Eggert [Mon, 14 Oct 2019 20:44:48 +0000 (13:44 -0700)] 
maint: make fetch

5 years agoautomake: do not require @setfilename in Texinfo files
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.

Fixes automake bugs #36921 and #34201.

5 years agoinstall-sh: support -s with read-only source
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.

6 years agoar-lib: Fix for MSVC 14.
Bruno Haible [Thu, 4 Jul 2019 01:43:54 +0000 (03:43 +0200)] 
ar-lib: Fix for MSVC 14.

* lib/ar-lib (extract): Convert CRLFs in 'lib -NOLOGO -LIST' output to LFs.

6 years agodoc: Fix various typos and phrasing
Paul Hardy [Tue, 23 Oct 2018 18:55:44 +0000 (20:55 +0200)] 
doc: Fix various typos and phrasing

This change fixes automake bug#32150.

* doc/automake.texi: Various typos and phrasing changes.

7 years agopython: Don't use '\n' in sed substitution
Mathieu Lirzin [Sun, 8 Jul 2018 21:41:42 +0000 (23:41 +0200)] 
python: Don't use '\n' in sed substitution

This change fixes automake bug#31222.

On macOS, 'sed' interprets '\n' in the substitution text as the letter 'n'
instead of as a newline.

* lib/am/python.am [?FIRST?] (am__pep3147_tweak): Use a space instead of '\n'.
* NEWS: Update.

7 years agotest-driver.scm: Add "--coverage" option
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.

7 years agotest-driver.scm: Don't guess script name from "--test-name"
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.

7 years agotest-driver.scm: Inline 'main' procedure
Mathieu Lirzin [Sat, 24 Mar 2018 19:54:24 +0000 (20:54 +0100)] 
test-driver.scm: Inline 'main' procedure

Having a main procedure involves passing the '-e main' command-line
argument to 'guile' which makes the test driver a bit less easy to use.

* contrib/test-driver.scm (main): Delete.  Move body to the top-level.

7 years agomaint: Use 'before-save-hook' in "contrib/test-driver.scm"
Mathieu Lirzin [Sun, 11 Mar 2018 22:49:07 +0000 (23:49 +0100)] 
maint: Use 'before-save-hook' in "contrib/test-driver.scm"

This a follow-up to commit 6bab5b26a1241b0e0edd058d2a921989f9a1747c.

Use 'before-save-hook' instead of 'write-file-functions' to match what
is done in other scripts.

* contrib/test-driver.scm: Update hook usage and use 'UTC0' timezone
instead of 'UTC'.

7 years agobin: Rely only on the shebang line
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.

* bin/aclocal.in: Remove cryptic launching hack.
* bin/automake.in: Likewise.

7 years agomaint: Post-release administrivia
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").

7 years agoversion 1.16.1 v1.16.1
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.

7 years agomaint: Update files from upstream with 'make fetch'
Mathieu Lirzin [Sun, 11 Mar 2018 21:13:16 +0000 (22:13 +0100)] 
maint: Update files from upstream with 'make fetch'

* lib/config.guess: Update.
* lib/config.sub: Likewise.
* lib/gendocs.sh: Likewise.
* lib/gitlog-to-changelog: Likewise.
* lib/gnupload: Likewise.
* lib/texinfo.tex: Likewise.
* lib/update-copyright: Likewise.

7 years agoinstall-sh: avoid (low risk) race in "/tmp"
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.

References:
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=760455
https://bugzilla.redhat.com/show_bug.cgi?id=1140725

* lib/install-sh: Implement safer 'mkdir -p' test by running
'$mkdirprog $mkdir_mode "$tmpdir"' first.
* NEWS: Update.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
7 years agoautomake: Don't rely on List::Util to provide 'none'
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.

7 years agopython: Support future python version up to 3.9
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.

* m4/python.m4 (_AM_PYTHON_INTERPRETER_LIST): Add 'python3.7',
'python3.8', and 'python3.9'.
* NEWS: Update.

7 years agomaint: write-file-hooks -> before-save-hook
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.

7 years agoRevert "python: Generate python interpreter list"
Mathieu Lirzin [Sat, 3 Mar 2018 11:00:31 +0000 (12:00 +0100)] 
Revert "python: Generate python interpreter list"

This reverts commit 1d60fb72168e62d33fe433380af621de64e22f23.

7 years agomaint: Post-release administrivia
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").

7 years agoMerge branch 'release'
Mathieu Lirzin [Sun, 25 Feb 2018 21:26:28 +0000 (22:26 +0100)] 
Merge branch 'release'

7 years agoversion 1.16 v1.16
Mathieu Lirzin [Sun, 25 Feb 2018 19:47:15 +0000 (20:47 +0100)] 
version 1.16

* configure.ac (AC_INIT, APIVERSION): Bump version number to 1.16.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").
* NEWS: Record release version.

7 years agomaint: Update INSTALL
Mathieu Lirzin [Sun, 25 Feb 2018 17:52:38 +0000 (18:52 +0100)] 
maint: Update INSTALL

* INSTALL: Use single quotes.

7 years agotests: Remove tests intended only for the 'next' branch
Mathieu Lirzin [Sun, 25 Feb 2018 15:45:32 +0000 (16:45 +0100)] 
tests: Remove tests intended only for the 'next' branch

The commit 199e7a445040270fa5ef67623c56cde40d765199 "Prefer https: URLS"
which is a cherry-pick of b09d945b795ab9deed2bc457289cd5f41c506b50 from
'next' to 'master' has mistakenly copied some tests only present on the
'next' branch.

* t/am-prog-mkdir-p.sh: Delete.
* t/txinfo-no-split.sh: Likewise.

7 years agomaint: Update files from upstream with 'make fetch'
Mathieu Lirzin [Sun, 25 Feb 2018 14:10:50 +0000 (15:10 +0100)] 
maint: Update files from upstream with 'make fetch'

* lib/config.guess: Update
* lib/config.sub: Likewise.
* lib/gendocs.sh: Likewise.
* lib/gendocs_template: Likewise.
* lib/gitlog-to-changelog: Likewise.
* lib/gnupload: Likewise.
* lib/texinfo.tex: Likewise.
* lib/update-copyright: Likewise.

7 years agopython: Avoid exceeding command-line length limit
Mathieu Lirzin [Sat, 3 Feb 2018 23:09:31 +0000 (00:09 +0100)] 
python: Avoid exceeding command-line length limit

With Python implementations following PEP-3174, a large number of files
are installed in the ‘__pycache__’ directory.  As a consequence
“t/instmany-python.sh” test was failing due to the
‘uninstall-pythonPYTHON’ target deleting installed files in a single
‘rm’ command.  Doing that in multiple steps avoids exceeding the
command-line length limit.  This fixes bug#30335.

* lib/am/python.am (uninstall-%DIR%PYTHON): For byte-compiled files
installed in '__pycache__' directory, uninstall them by batch of 40.
[?FIRST?] (am__pep3147_tweak): Adapt.

7 years agotests: Don't check 'Getopt::Long' corner cases
Mathieu Lirzin [Thu, 18 Jan 2018 10:19:13 +0000 (11:19 +0100)] 
tests: Don't check 'Getopt::Long' corner cases

Depending on the installed 'Getopt::Long' perl module, command-line
handling may vary a bit.  As a consequence we prefer not to check
command-line corners cases.  This change fixes automake bug#29638.

* t/aclocal.sh (am_create_testdir): Don't expect "--versi" to be
interpreted as "--version".
* t/automake-cmdline.tap: Don't expect "--vers" to be interpreted as
"--version" and things after "--" to be interpreted as file arguments.
(do_check): Display the actual command output.
* t/maken3.sh (check_targets): "--force" is not a documented option, so
don't use it.

7 years agopython: Generate python interpreter list
Mathieu Lirzin [Thu, 1 Feb 2018 12:51:03 +0000 (13:51 +0100)] 
python: Generate python interpreter list

_AM_PYTHON_INTERPRETER_LIST is used by AM_PYTHON_PATH to autodetect
Python programs whose names correspond to a specific Python
version (e.g. python3.6).  Previously this list was updated manually.
The automatic support of newer versions (up to 4.0 excluded) fixes
bug#28160.

* m4/python.m4 (am_py_min_ver, am_py_max_ver): New macros.
(_AM_PYTHON_INTERPRETER_LIST): Generate this list instead of hard-coding
it.  Implementation is taken from GNU Pyconfigure.

7 years agotests: Improve comment in 'txinfo-many-output-formats.sh'
Mathieu Lirzin [Fri, 19 Jan 2018 14:54:46 +0000 (15:54 +0100)] 
tests: Improve comment in 'txinfo-many-output-formats.sh'

* t/txinfo-many-output-formats.sh: Explain why AM_MAKEINFOFLAGS is set
with an invalid option.

7 years agotests: Distribute DEJATOOL files manually
Mathieu Lirzin [Thu, 18 Jan 2018 23:41:31 +0000 (00:41 +0100)] 
tests: Distribute DEJATOOL files manually

"t/check12.sh" was failing because files declared in DEJATOOL are not
automatically distributed.  The test running 'make distcheck' couldn't succeed
since some scripts were not distributed.  This fixes automake bug#26738.

* t/check12.sh (Makefile.am): Distribute files from DEJATOOL.

7 years agotests: Let 'ltorder.sh' run successfully with Guix dynamic loader
Mathieu Lirzin [Thu, 18 Jan 2018 23:38:34 +0000 (00:38 +0100)] 
tests: Let 'ltorder.sh' run successfully with Guix dynamic loader

* t/ltorder.sh: Set GUIX_LD_WRAPPER_ALLOW_IMPURITIES environment variable to
unlock the dynamic loader provided by GNU Guix.

7 years agotests: Fix various 'flex' compilation issues
Mathieu Lirzin [Thu, 18 Jan 2018 22:51:49 +0000 (23:51 +0100)] 
tests: Fix various 'flex' compilation issues

* t/lex-clean-cxx.sh (parsefoo.lxx): Declare 'yylex':
(mainfoo.cc): Make declaration compatible with C++.
* t/lex-depend-cxx.sh (joe.ll): Declare 'yylex'.
* t/silent-many-languages.sh (Makefile.am, sub/Makefile.am): Link -lfl only
with 'fo2' and 'sub/ba2' which are the only program needing it.
(foo5.l): Define 'isatty'.
(foo6.y): Declare 'yylex'.

7 years agotests: Check GCS conformance of 'aclocal' command-line interface
Mathieu Lirzin [Thu, 18 Jan 2018 10:00:19 +0000 (11:00 +0100)] 
tests: Check GCS conformance of 'aclocal' command-line interface

* t/aclocal.sh: Check that 'aclocal' support the --version and --help
command-line options.

7 years agocontrib: Add Guile custom test driver using SRFI-64 test harness
Mathieu Lirzin [Wed, 17 Jan 2018 23:12:06 +0000 (00:12 +0100)] 
contrib: Add Guile custom test driver using SRFI-64 test harness

This sets a home for a script already used by GNU Guix and GNU Mcron.

* contrib/test-driver.scm: New test driver script.
* NEWS: Update.

7 years agomaint: Document how to use Guix for Automake development
Mathieu Lirzin [Mon, 15 Jan 2018 15:42:09 +0000 (16:42 +0100)] 
maint: Document how to use Guix for Automake development

* HACKING <Setting the development environment>: New part.

7 years agoautomake: Add default libtool_tag to cppasm
Khem Raj [Thu, 4 Jan 2018 22:59:00 +0000 (23:59 +0100)] 
automake: Add default libtool_tag to cppasm

* bin/automake.in (register_language): Define default libtool tag to be
CC since CPPASCOMPILE is using CC to call assembler.

Copyright-paperwork-exempt: yes

7 years agodoc: Document the portability of various tar formats better
Bruno Haible [Wed, 3 Jan 2018 00:52:34 +0000 (01:52 +0100)] 
doc: Document the portability of various tar formats better

* doc/automake.texi (List of Automake options): Document the portability of
the tar-ustar and tar-pax options better.

7 years agomissing: Update displayed URLs
Simon Sobisch [Thu, 4 Jan 2018 22:09:34 +0000 (23:09 +0100)] 
missing: Update displayed URLs

* lib/missing (perl_URL): Use HTTPS.
(flex_URL): Use new Github homepage.

Copyright-paperwork-exempt: yes

7 years agomaint: Update copyright years to 2018
Mathieu Lirzin [Thu, 4 Jan 2018 15:19:30 +0000 (16:19 +0100)] 
maint: Update copyright years to 2018

This update has been made with 'make update-copyright'.

7 years agomaint: Exclude ".dir-locals.el" from copyright updates
Mathieu Lirzin [Thu, 4 Jan 2018 15:21:26 +0000 (16:21 +0100)] 
maint: Exclude ".dir-locals.el" from copyright updates

* maintainer/maint.mk (files_without_copyright): Add ".dir-locals.el".

7 years agoport elisp-compilation support to emacs-23.1 and newer
Jim Meyering [Thu, 23 Nov 2017 05:07:29 +0000 (21:07 -0800)] 
port elisp-compilation support to emacs-23.1 and newer

In May of 2017, emacs.master support for using the long-deprecated
byte-compile-dest-file function was removed, and that removal broke
automake's elisp-compiling rule for any .el file not in the current
directory.  In emacs-23.1 (July 2009) byte-compile-dest-file-function
became the recommended way to adjust the byte-compiler's destination.
The removed functionality has been restored for Emacs-26, albeit with
dissuasive diagnostics warning about the imminent removal of this
functionality.  It will be removed in Emacs-27.
* lib/am/lisp.am (.el.elc): Use byte-compile-dest-file-function, rather
than byte-compile-dest-file.  Also, use "-f batch-byte-compile '$<'"
rather than open-coding it, as suggested by Glenn Morris.
* t/lisp-readonly-srcdir.sh: New file, to test for the above.
* t/list-of-tests.mk (handwritten_TESTS): Add it.
* NEWS (Bugs fixed): Mention this problem.

7 years ago"make dist" did not depend on $(BUILT_SOURCES)
Jim Meyering [Thu, 20 Mar 2014 19:31:32 +0000 (12:31 -0700)] 
"make dist" did not depend on $(BUILT_SOURCES)

* lib/am/distdir.am (distdir-am): New intermediate target.
Interpose this target between $(distdir) and its dependency
on $(DISTFILES), so that we can ensure $(BUILT_SOURCES) are
all created before we begin creating $(DISTFILES).
* t/dist-vs-built-sources.sh: Test for this.
* t/list-of-tests.mk (handwritten_TESTS): Add it.
* NEWS (Bugs fixed): Mention it.
Assaf Gordon reported that "make dist" (after ./configure
from a pristine clone of GNU hello) would fail due to the
absence of configmake.h while compiling lib/localcharset.c.
https://lists.gnu.org/r/bug-hello/2014-03/msg00016.html

7 years agomaint: Update HACKING
Mathieu Lirzin [Fri, 24 Nov 2017 12:28:24 +0000 (13:28 +0100)] 
maint: Update HACKING

* HACKING (Working with git): Remove reference to the 'micro' branch and
adapt branch descriptions to the current branching scheme.

7 years agomaint: Make Emacs use 'makefile-automake-mode'
Mathieu Lirzin [Sat, 23 Sep 2017 10:19:43 +0000 (12:19 +0200)] 
maint: Make Emacs use 'makefile-automake-mode'

* bin/local.mk: Specify mode name in the first line.
* contrib/t/local.mk: Likewise.
* doc/local.mk: Likewise.
* lib/Automake/local.mk: Likewise.
* lib/am/local.mk: Likewise.
* lib/local.mk: Likewise.
* m4/local.mk: Likewise.
* t/local.mk: Likewise.

7 years agomaint: update .gitignore
Paul Eggert [Sat, 23 Sep 2017 18:10:38 +0000 (11:10 -0700)] 
maint: update .gitignore

* .gitignore: Add pre-inst-env, and sort.

7 years agoinstall-sh: do not assume / = //
Paul Eggert [Sat, 23 Sep 2017 18:03:34 +0000 (11:03 -0700)] 
install-sh: do not assume / = //

* lib/install-sh: Do not append / to destination
directory if it already ends in /.  This supports
a destination directory of // on hosts where / and //
are distinct directories, as POSIX allows.

7 years agomaint: fix two more http: URLs
Paul Eggert [Sat, 23 Sep 2017 16:36:21 +0000 (09:36 -0700)] 
maint: fix two more http: URLs

* m4/init.m4: Change http: to https: in comments.

7 years agomaint: Configure Emacs automatically with ".dir-locals.el"
Mathieu Lirzin [Fri, 22 Sep 2017 21:06:15 +0000 (23:06 +0200)] 
maint: Configure Emacs automatically with ".dir-locals.el"

* .dir-locals.el: New Emacs directory configuration file.  All perl
files adapted.

7 years agomaint: 'master' should be merged into 'next'
Mathieu Lirzin [Wed, 20 Sep 2017 10:50:25 +0000 (12:50 +0200)] 
maint: 'master' should be merged into 'next'

* HACKING: Fix instructions merge instructions.

7 years ago* lib/mdate.sh (TZ): Use portable setting.
Paul Eggert [Fri, 22 Sep 2017 03:08:48 +0000 (20:08 -0700)] 
* lib/mdate.sh (TZ): Use portable setting.

7 years agoMerge branch 'minor'
Mathieu Lirzin [Tue, 19 Sep 2017 22:08:59 +0000 (00:08 +0200)] 
Merge branch 'minor'

7 years agomaint: Document new Branch names convention
Mathieu Lirzin [Tue, 5 Sep 2017 23:11:50 +0000 (01:11 +0200)] 
maint: Document new Branch names convention

* HACKING: Update to new Branch names.

7 years agomaint: Reset master
Mathieu Lirzin [Tue, 19 Sep 2017 11:43:07 +0000 (13:43 +0200)] 
maint: Reset master

7 years agoMerge branch 'minor' next
Mathieu Lirzin [Tue, 19 Sep 2017 11:29:18 +0000 (13:29 +0200)] 
Merge branch 'minor'

7 years agomake fetch
Paul Eggert [Sun, 17 Sep 2017 01:02:10 +0000 (18:02 -0700)] 
make fetch

7 years agoFix a couple more http: URLs
Paul Eggert [Sun, 17 Sep 2017 01:08:05 +0000 (18:08 -0700)] 
Fix a couple more http: URLs

7 years agoPrefer https: URLs
Paul Eggert [Sat, 16 Sep 2017 20:03:36 +0000 (13:03 -0700)] 
Prefer https: URLs

In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use
https:, to discourage man-in-the-middle attacks when downloading
software. The attached patch propagates these changes upstream to
Automake.  This patch does not affect files that Automake is
downstream of, which I'll patch separately.

Althouth the resources are not secret, plain HTTP is vulnerable to
malicious routers that tamper with responses from GNU servers,
and this sort of thing is all too common when people in some other
countries browse US-based websites. See, for example:

Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar
S. Analyzing internet censorship in Pakistan. RTSI
2016. https://dx.doi.org/10.1109/RTSI.2016.7740626

HTTPS is not a complete solution here, but it can be a significant
help. The GNU project regularly serves up code to users, so we should
take some care here.

7 years agomake fetch
Paul Eggert [Sun, 17 Sep 2017 01:02:10 +0000 (18:02 -0700)] 
make fetch

7 years agoFix a couple more http: URLs
Paul Eggert [Sun, 17 Sep 2017 01:08:05 +0000 (18:08 -0700)] 
Fix a couple more http: URLs

7 years agoPrefer https: URLs
Paul Eggert [Sat, 16 Sep 2017 20:03:36 +0000 (13:03 -0700)] 
Prefer https: URLs

In Gnulib, Emacs, etc. we are changing ftp: and http: URLs to use
https:, to discourage man-in-the-middle attacks when downloading
software. The attached patch propagates these changes upstream to
Automake.  This patch does not affect files that Automake is
downstream of, which I'll patch separately.

Althouth the resources are not secret, plain HTTP is vulnerable to
malicious routers that tamper with responses from GNU servers,
and this sort of thing is all too common when people in some other
countries browse US-based websites. See, for example:

Aceto G, Botta A, Pescapé A, Awan MF, Ahmad T, Qaisar
S. Analyzing internet censorship in Pakistan. RTSI
2016. https://dx.doi.org/10.1109/RTSI.2016.7740626

HTTPS is not a complete solution here, but it can be a significant
help. The GNU project regularly serves up code to users, so we should
take some care here.

7 years agomaint: Document how to handle assignment exemption
Mathieu Lirzin [Fri, 15 Sep 2017 10:04:19 +0000 (12:04 +0200)] 
maint: Document how to handle assignment exemption

* HACKING: Update.

7 years agomdate-sh: Ensure reproducible time output
Reiner Herrmann [Fri, 15 Sep 2017 09:43:53 +0000 (11:43 +0200)] 
mdate-sh: Ensure reproducible time output

This change fixes automake bug#20314.

'mdate-sh' pretty-prints the modification time of a file.  But it's
output can vary depending on the timezone of the caller. Someone in
timezone GMT-12 will get a different result (day) than someone in
timezone GMT+12.  As this output is also used to create/update stamp
files, which influence the further build process, the build result can
vary.

* lib/mdate-sh: Set 'TZ' to UTC which ensures reproducible output.
* NEWS: Announce bug fix.

Copyright-paperwork-exempt: yes

7 years agoautomake: Depend on LIBOBJDIR for LIBOBJS and ALLOCA
Michael Haubenwallner [Wed, 16 Aug 2017 16:16:12 +0000 (18:16 +0200)] 
automake: Depend on LIBOBJDIR for LIBOBJS and ALLOCA

This change fixes automake bug#27781.

* bin/automake.in: Add Makefile dependency on LIBOBJDIR/dirstamp for
each LIBOBJS/ALLOCA source file found.
* t/list-of-tests.mk (XFAIL_TESTS): Drop
t/libobj-no-dependency-tracking.sh.
* NEWS: Announce bug fix.

7 years agoRevert "automake: Handle LTLIBOBJS more specifically"
Mathieu Lirzin [Thu, 14 Sep 2017 19:01:19 +0000 (21:01 +0200)] 
Revert "automake: Handle LTLIBOBJS more specifically"

This reverts commit 5521219348c55af354878583b99c5f9d66d6d38a.

7 years agoMerge branch 'minor'
Mathieu Lirzin [Thu, 31 Aug 2017 17:23:42 +0000 (19:23 +0200)] 
Merge branch 'minor'

7 years agobuild: Rename "Makefile.inc" Makefile fragments to "local.mk"
Mathieu Lirzin [Thu, 31 Aug 2017 12:42:13 +0000 (14:42 +0200)] 
build: Rename "Makefile.inc" Makefile fragments to "local.mk"

This is done to follow a convention used by a lot of GNU packages.

* bin/Makefile.inc: Rename to ...
* bin/local.mk: ... this.
* doc/Makefile.inc: Rename to ...
* doc/local.mk: ... this.
* lib/Automake/Makefile.inc: Rename to ...
* lib/Automake/local.mk: ... this.
* lib/am/Makefile.inc: Rename to ...
* lib/am/local.mk: ... this.
* lib/Makefile.inc: Rename to ...
* lib/local.mk: ... this.
* m4/Makefile.inc: Rename to ...
* m4/local.mk: ... this.
* contrib/t/Makefile.inc: Rename to ...
* contrib/t/local.mk: ... this.
* t/Makefile.inc: Rename to ...
* t/local.mk: ... this.  Adapt.
* Makefile.am: Adapt.

7 years agoMerge branch 'micro' into minor
Mathieu Lirzin [Thu, 31 Aug 2017 12:22:30 +0000 (14:22 +0200)] 
Merge branch 'micro' into minor

7 years agomaint: Define API version manually
Mathieu Lirzin [Sat, 8 Jul 2017 20:32:19 +0000 (22:32 +0200)] 
maint: Define API version manually

* configure.ac (APIVERSION): Define it to 1.15a.
* bootstrap (APIVERSION): Parse 'configure.ac' to get it.

7 years agobuild: Inline perl prototypes in sources
Mathieu Lirzin [Sat, 8 Jul 2017 18:18:45 +0000 (20:18 +0200)] 
build: Inline perl prototypes in sources

Prototypes allows us to avoid using the '&foo' invocation form when
invoking a subroutine before its definition.  Previously those
prototypes were generated to prevent them from falling out-of-sync
with actual definitions.  Now we provide a 'check-perl-protos' lint
script to ensure that this is not the case.  This has the same
benefits as generating prototypes while simplifying the
bootstrap/build process.

* bin/gen-perl-protos: Remove.
* bin/Makefile.inc: Adapt.
* bootstrap: Likewise.
* bin/aclocal.in: Inline prototypes.
* bin/automake.in: Likewise.
* maintainer/check-perl-protos: New lint script.
* maintainer/syntax-checks.mk (sc_perl_protos): New target.
(syntax_check_rules): Add it.

7 years agobuild: Generate versioned scripts at make time
Mathieu Lirzin [Wed, 30 Aug 2017 21:45:49 +0000 (23:45 +0200)] 
build: Generate versioned scripts at make time

* configure.ac: Don't generate 'bin/aclocal-${APIVERSION}' and
'bin/automake-${APIVERSION}'.
* bin/wrap-aclocal.in: Delete.
* bin/wrap-automake.in: Likewise.
* bin/Makefile.inc (%D%/automake-$(APIVERSION))
(%D%/aclocal-$(APIVERSION)): New targets.
(CLEANFILES): Add them.

7 years agoaclocal: Support ACLOCAL_AUTOMAKE_DIR environment variable
Mathieu Lirzin [Tue, 29 Aug 2017 19:15:14 +0000 (21:15 +0200)] 
aclocal: Support ACLOCAL_AUTOMAKE_DIR environment variable

* bin/aclocal.in: Reset '@automake_includes' and '@system_includes' in
for build environment.  Allow setting '@automake_includes' with
ACLOCAL_AUTOMAKE_DIR environment variable.
(parse_arguments): Ignore 'dirlist' when '@system_includes' is empty.
* doc/automake.texi (aclocal Options): Document ACLOCAL_AUTOMAKE_DIR.
* bin/wrap-aclocal.in: Remove extra command line options.
* pre-inst-env.in: Set ACLOCAL_AUTOMAKE_DIR and ACLOCAL_PATH
environment variables.
* t/ax/test-defs.in: Adapt.
* t/ansi2knr-no-more.sh (warn_rx): Likewise.

7 years agoconfig: Support AUTOMAKE_LIBDIR environment variable
Mathieu Lirzin [Tue, 29 Aug 2017 12:16:24 +0000 (14:16 +0200)] 
config: Support AUTOMAKE_LIBDIR environment variable

* lib/Automake/Config.in: Let AUTOMAKE_LIBDIR environment variable
override the default location for '$libdir'.
* doc/automake.texi (automake Invocation): Document AUTOMAKE_LIBDIR.
* pre-inst-env.in (AUTOMAKE_LIBDIR): Set AUTOMAKE_LIBDIR.
* bin/wrap-automake.in: Don't use "--libdir" option.

7 years agobuild: Use PERL5LIB from 'pre-inst-env' script
Mathieu Lirzin [Tue, 29 Aug 2017 11:23:24 +0000 (13:23 +0200)] 
build: Use PERL5LIB from 'pre-inst-env' script

* bin/aclocal.in: Detect build environment with AUTOMAKE_UNINSTALLED.
Let 'PERL5LIB' from 'pre-inst-env' define the perl module directories.
* bin/automake.in: Likewise.
* bin/wrap-aclocal.in: Don't set 'Automake::perl_libdirs' anymore.
* bin/wrap-automake.in: Likewise.
* t/Makefile.inc (LOG_COMPILER, PL_LOG_COMPILER): Use 'pre-inst-env'.
(AM_PL_LOG_FLAGS): Don't set perl module path.

7 years agobuild: Extend PATH from 'pre-inst-env' script
Mathieu Lirzin [Tue, 29 Aug 2017 11:04:57 +0000 (13:04 +0200)] 
build: Extend PATH from 'pre-inst-env' script

* configure.ac (ACLOCAL, AUTOMAKE): Use 'pre-inst-env'.
* Makefile.am (extend_PATH): Delete.
* doc/Makefile.inc (update_mans, $(srcdir)/%D%/amhello-1.0.tar.gz)
(setup_autotools_paths): Use 'pre-inst-env' instead of $(extend_PATH).

7 years agobuild: Add 'pre-inst-env' wrapper script
Mathieu Lirzin [Sun, 27 Aug 2017 15:41:50 +0000 (17:41 +0200)] 
build: Add 'pre-inst-env' wrapper script

This script allows someone building Automake from source to easily run
'automake' and 'aclocal' without having to install it or knowing the
existence of "wrapped" scripts in "bin" directory.

* pre-inst-env.in: New script.
* configure.ac: Generate 'pre-inst-env' at configure time.
* Makefile.am (nodist_noinst_SCRIPTS, CLEANFILES): Add it.

7 years agobuild: Move wrapped scripts in "bin" directory
Mathieu Lirzin [Tue, 29 Aug 2017 09:27:52 +0000 (11:27 +0200)] 
build: Move wrapped scripts in "bin" directory

Those scripts are used both in the build process and for the tests, so
it seems clearer to not hide them in "t/wrap" directory.

* t/wrap/aclocal.in: Rename to ...
* bin/wrap-aclocal.in: ... this.
* t/wrap/automake.in: Rename to ...
* bin/wrap-automake.in: ... this.
* configure.ac: Generate "bin/aclocal-${APIVERSION}" and
"bin/automake-${APIVERSION}" at configure time.
* t/Makefile.inc (nodist_noinst_SCRIPTS): Move wrapped scripts ...
* bin/Makefile.inc (nodist_noinst_SCRIPTS): ... here.
* Makefile.am (extend_PATH): Use "bin" directory.
* t/ax/test-defs.in (am_bindir): Likewise.
* t/get-sysconf.sh: Likewise.
* .gitignore: Update.

7 years agoautomake: Handle LTLIBOBJS more specifically
Mathieu Lirzin [Sun, 27 Aug 2017 13:27:00 +0000 (15:27 +0200)] 
automake: Handle LTLIBOBJS more specifically

* bin/automake.in (handle_LIBOBJS_or_ALLOCA): Remove complex regexp
substitution when handling LTLIBOBJS.

7 years agoautomake: Ensure that LIBOBJ_DIR builddir is created
Michael Haubenwallner [Thu, 17 Aug 2017 12:12:20 +0000 (14:12 +0200)] 
automake: Ensure that LIBOBJ_DIR builddir is created

* t/libobj-no-dependency-tracking.sh: New test reproducing the issue
described in automake bug#27781.
* t/list-of-tests.mk (handwritten_TESTS, XFAIL_TESTS): Add it.

7 years agodoc: Update to latest help2man
Mathieu Lirzin [Tue, 8 Aug 2017 21:55:29 +0000 (23:55 +0200)] 
doc: Update to latest help2man

This fixes bug#27773.

* doc/help2man: Sync with version 1.47.3 to support reproducible
builds by using $SOURCE_DATE_EPOCH.

8 years agodoc: Fix typo "nothing" => "noting"
Mathieu Lirzin [Sun, 16 Jul 2017 00:01:28 +0000 (02:01 +0200)] 
doc: Fix typo "nothing" => "noting"

This fixes bug#24476.

* doc/automake.texi (Checking the Distribution): Fix typo.
* THANKS: Update.

8 years agodoc: Fix typos
Mathieu Lirzin [Sat, 15 Jul 2017 23:02:49 +0000 (01:02 +0200)] 
doc: Fix typos

This fixes bug#23099.

* doc/automake.texi (Scripts-based Testsuites)
(Parallel Test Harness): Fix typos.
* THANKS: Update.

8 years agocheck: Make 'check-TESTS' target depend on test dependencies
Mathieu Lirzin [Sat, 15 Jul 2017 22:11:07 +0000 (00:11 +0200)] 
check: Make 'check-TESTS' target depend on test dependencies

The 'check' and 'recheck' targets are already depending on the progams
and scripts required to run the test suite.  The 'check-TESTS' target
while not in the public API might be used by uninformed users, so it
makes sense to add the same dependency to it.  This fixes bug#27186.

* lib/am/check.am [!%?SERIAL_TESTS%] (check-TESTS): Add dependency to
'%CHECK_DEPS%'.
* THANKS: Update.

8 years agodejagnu: Allow AM_RUNTESTFLAGS to override default RUNTEST arguments
Mathieu Lirzin [Sat, 15 Jul 2017 20:24:43 +0000 (22:24 +0200)] 
dejagnu: Allow AM_RUNTESTFLAGS to override default RUNTEST arguments

This fixes bug#25335.

* lib/am/dejagnu.am (check-DEJAGNU): Swap $(RUNTESTDEFAULTFLAGS) and
$(AM_RUNTESTFLAGS).
* THANKS: Update.

8 years agoaclocal: Avoid problematic string interpolation
Thomas Jahns [Mon, 29 Jun 2015 07:50:02 +0000 (09:50 +0200)] 
aclocal: Avoid problematic string interpolation

This fixes bug#20903.  Thanks to Eric Bavier for reporting this issue.

* bin/aclocal.in (automake_includes): Avoid problematic string
interpolation.
* NEWS: Update.
* THANKS: Thank Eric Bavier.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
8 years agopython: Add python3.6
Mathieu Lirzin [Sat, 15 Jul 2017 13:46:52 +0000 (15:46 +0200)] 
python: Add python3.6

This fixes bug#27458.

* m4/python.m4 (AM_PATH_PYTHON): Add python3.6.

8 years agoautomake: Shorter object file names under subdir-objects
Thomas Martitz [Mon, 13 Mar 2017 11:41:59 +0000 (12:41 +0100)] 
automake: Shorter object file names under subdir-objects

Combining the 'subdir-objects' option with target-specific flags had
the consequence of producing long object file names.  This was done to
preventively ensure the uniqueness of object file names.  We are now
using shorter names by default, and handle long names when an actual
conflict is detected.  This will hopefully reduce the necessity of
using the 'prog_SHORTNAME' facility.

Example:
previously:
  AUTOMAKE_OPTIONS = subdir-objects
  bin_PROGRAMS += path/to/foo
  path_to_foo_CFLAGS = $(AM_CFLAGS) -g

resulted in objects:
  sub/path_to_foo-foo.o

now object file name is:
  sub/foo-foo.o

* bin/automake.in (proglist, liblist, ltliblist)
(dup_shortnames): New globals.
(initialize_per_input): Initialize them.
(handle_targets): New subroutine.
(handle_single_transform): Truncate object file names when possible.
* t/subobj-objname-clash.sh: New test.
* t/list-of-tests.mk (handwritten_TESTS): Add it.
* NEWS: Update.

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>