]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
6 years agoUpdated include directive and added test cases. experimental/gsoc/ast
Vishal Gupta [Sat, 4 Aug 2018 12:26:37 +0000 (17:56 +0530)] 
Updated include directive and added test cases.

After parsing the file given in the include directive, the tree generated
is printed to standard input using Data::Dumper and this is evaled in the
program having include directive. As a result the tree gets appended to
the parent AST.

6 years agoAdded case for testing recursive automake at multiple depth
Vishal Gupta [Sat, 4 Aug 2018 07:25:17 +0000 (12:55 +0530)] 
Added case for testing recursive automake at multiple depth

6 years agoUpdated make install to make parser work from any directory
Vishal Gupta [Sat, 4 Aug 2018 07:04:02 +0000 (12:34 +0530)] 
Updated make install to make parser work from any directory

*Added parser.pl to /usr/bin so that it can work from any directory
Modules are copied to /tmp/parser and the location is updated in
parser.pl. This is for development purpose only and it can be changed
in future.

*Added a basedir variable so that recursive automake can work to
arbitrary depth

6 years agoAdded support for include directive
Vishal Gupta [Wed, 25 Jul 2018 17:53:24 +0000 (23:23 +0530)] 
Added support for include directive

Added lexer and parser support for include directive to handle fragements.

6 years agoSubdirs implementation
Vishal Gupta [Thu, 12 Jul 2018 15:22:23 +0000 (20:52 +0530)] 
Subdirs implementation

Added support to recursively call parser.pl on the directories defined in
SUBDIRS variable.
Added test case.

7 years agoUpdated parser to tokenize and parse line by line.
Vishal Gupta [Fri, 6 Jul 2018 10:29:54 +0000 (15:59 +0530)] 
Updated parser to tokenize and parse line by line.

Lexer tokenizes the current line whenever it is called by parser.
"end" token is returned when EOF is encountered.
Currently assumes that newline is their before EOF.

7 years agoAdded support for SUBDIRS and nested if/else statement
Vishal Gupta [Mon, 2 Jul 2018 17:44:25 +0000 (23:14 +0530)] 
Added support for SUBDIRS and nested if/else statement

7 years agoUpdated multiline statement and conditional statements.
Vishal Gupta [Sun, 24 Jun 2018 06:53:37 +0000 (12:23 +0530)] 
Updated multiline statement and conditional statements.

* Added new test cases.
* Added support for += .
* Updated conditional statements to handle multiple statements inside
* if/else block.
* Prints error when comment follow trailing backslash.

7 years agoAdded support for Conditional statement and Test files.
Vishal Gupta [Sat, 16 Jun 2018 06:39:17 +0000 (12:09 +0530)] 
Added support for Conditional statement and Test files.

* automake.y : Updated to handle conditional statement and empty variable
* defination
* parser.pl : Updated to read from standard input and write to standard
* output. In debug mode, output on standard error stream.
* Converter.pl : Updated to handle empty grammar definitions.
* Tree.pm : Updated to handle conditional statements and write output to
* standard output
* Makefile : Added action test.
* test.sh : Read all text files in t directory and generates corresponding
* standard output
* Makefile : Added action test.
* t/*.txt : test files.

7 years agoAdded support for multiline and comments.
Vishal Gupta [Sun, 10 Jun 2018 18:41:05 +0000 (00:11 +0530)] 
Added support for multiline and comments.
* automake.y : Updated the grammar to handle multiline statements and two
*              type of comments.
* Lexer.pm, Tree.pm, parser.pl : Updated to support new features.
* input.txt : Updated to test combination of multiline statements and
*             comments.

7 years agoUpdate Converter.pl to read write from Standard I/O
Vishal Gupta [Mon, 4 Jun 2018 17:32:56 +0000 (23:02 +0530)] 
Update Converter.pl to read write from Standard I/O

*Converter.pl: Updated the file to use input/output redirection in
Makefile.
*Makefile: Updated Makefile to support IO in converter.pl

7 years agoUse the ‘perl’ found in the PATH environment variable
Mathieu Lirzin [Sat, 2 Jun 2018 13:41:59 +0000 (15:41 +0200)] 
Use the ‘perl’ found in the PATH environment variable

7 years agoRemove generated ‘.png’ files
Mathieu Lirzin [Sat, 2 Jun 2018 13:28:00 +0000 (15:28 +0200)] 
Remove generated ‘.png’ files

7 years agoAutomatic conversion of bison graph to parsing table.
Vishal Gupta [Thu, 31 May 2018 19:01:16 +0000 (00:31 +0530)] 
Automatic conversion of bison graph to parsing table.

* Converter.pl: Converts graph generated by bison (automake.dot) to table
  used by the parser.
* Makefile: Executes the parser on input.txt file. build target builds the
  grammar and executes Converter.pl
* Lexer.pm: Return "newline" as token instead of "\n".
* automake.y, automake.png: Updated to handle "newline" token.

7 years agoImplemented Lexer, Parser and AST module.
vishalgupta97 [Fri, 25 May 2018 18:38:56 +0000 (00:08 +0530)] 
Implemented Lexer, Parser and AST module.

The grammar seperates the automake rule into left side and right side. It
divides the left side according to the primaries like PROGRAMS, LIBRARIES.

* Lexer.pm: Lexer module. Converts a string into tokens.
* ParserTable.pm: Contains the parsing table.
* automake.y: Contains the grammar.
* automake.png: Contains the state transition diagram generated by the
  grammar.
* Tree.pm: Contains submodules for creating tree nodes.
* parser.pl: Implements the parser.

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.

7 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.

7 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.

7 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.

7 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.

7 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>
7 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>
8 years agomaint: Post-release administrivia
Mathieu Lirzin [Sun, 18 Jun 2017 17:11:08 +0000 (19:11 +0200)] 
maint: Post-release administrivia

* NEWS: Add header line for next release.
* configure.ac (AC_INIT): Bump version number to 1.15.1a.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

8 years agoversion 1.15.1 v1.15.1
Mathieu Lirzin [Sun, 18 Jun 2017 16:28:32 +0000 (18:28 +0200)] 
version 1.15.1

* configure.ac (AC_INIT): Bump version number to 1.15.1.
* m4/amversion.m4: Likewise (auto-updated by "make bootstrap").

8 years agomaint: Update 'git-tag-release' rule
Mathieu Lirzin [Sun, 18 Jun 2017 12:28:40 +0000 (14:28 +0200)] 
maint: Update 'git-tag-release' rule

* maintainer/maint.mk (git-tag-release): Use a Git tag message similar
to what the 'do-release-commit-and-tag' script from Gnulib do.

8 years agomaint: Update files from upstream with 'make fetch'
Mathieu Lirzin [Sun, 18 Jun 2017 01:04:25 +0000 (03:04 +0200)] 
maint: Update files from upstream with 'make fetch'

* lib/config.guess: Update.
* lib/config.sub: Likewise.
* lib/texinfo.tex: Likewise.

8 years agomaint: Update NEWS
Mathieu Lirzin [Sun, 18 Jun 2017 00:55:17 +0000 (02:55 +0200)] 
maint: Update NEWS

* NEWS: Announce important bug fixes.