]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
6 years agoRemove TmpModule experimental/gsoc/refactoring
Matthias Paulmier [Tue, 7 Aug 2018 14:55:30 +0000 (16:55 +0200)] 
Remove TmpModule

- lib/Automake/ConfVars.pm: add the am_install_var function.
- lib/Automake/Variables.pm: add shadow_unconditionally, am_primary_prefixes
  and append_exeext.

6 years agoModify all tests to use the Test::Simple lib
Matthias Paulmier [Thu, 2 Aug 2018 15:15:24 +0000 (17:15 +0200)] 
Modify all tests to use the Test::Simple lib

All tests now use the Test::Simple library.  We keep the distinction between
pl (pure perl) and plt (perl + Test::Simple) in case someone wants to write a
perl tests without this lib.

- t/pm/*: All tests now use the plt extension and the Test::Simple library.
- t/pm/CondStack.pl: Remove it as it was not well built and the test results
  were false.

6 years agoMove the END sub to another module
Matthias Paulmier [Wed, 1 Aug 2018 11:08:22 +0000 (13:08 +0200)] 
Move the END sub to another module

This fixes the warning we had in bcbc407fb where the STDOUT handle was closed
and reopened.

6 years agoAdd test for Automake::File
Matthias Paulmier [Fri, 27 Jul 2018 14:22:26 +0000 (16:22 +0200)] 
Add test for Automake::File

This tests the make_paragraphs method from the Automake::File library.  This
uses the newly added .plt file extension as we use the Test::Simple library.

- t/pm/File.pl: Add it.

FIXME: Their is a bug with the test that says:

Filehandle STDOUT reopened as $fh only for input at
/usr/share/perl/5.26/Test2/IPC/Driver/Files.pm line 144 during global
destruction.

It only happens when Automake modules are included.  I suspect this comes from
the Automake::General module but this needs to be investigated.

6 years agoAdd extension for perl tests using Test::Simple
Matthias Paulmier [Fri, 27 Jul 2018 14:20:33 +0000 (16:20 +0200)] 
Add extension for perl tests using Test::Simple

This is a temporary extension as we will transition all tests to use
Test::Simple.

6 years agolib/Automake/File.pm: Change the way make_paragraphs works
Matthias Paulmier [Fri, 27 Jul 2018 12:55:29 +0000 (14:55 +0200)] 
lib/Automake/File.pm: Change the way make_paragraphs works

We now call preprocess_file before make_paragraphs.  This is useful to test
the lib as we can now feed a file handle (Automake::XFile) directly to
make_paragraphs (and not simply a filename).

6 years agoRemove useless imports
Matthias Paulmier [Wed, 25 Jul 2018 17:18:46 +0000 (19:18 +0200)] 
Remove useless imports

Their was an include cycle between File.pm and Variable.pm.  This is now
fixed.

6 years agolib/Automake/File.pm: Move functions to this module
Matthias Paulmier [Wed, 25 Jul 2018 17:17:49 +0000 (19:17 +0200)] 
lib/Automake/File.pm: Move functions to this module

6 years agolib/Automake/File.pm: Modifie file_contents_internal
Matthias Paulmier [Fri, 20 Jul 2018 13:57:14 +0000 (15:57 +0200)] 
lib/Automake/File.pm: Modifie file_contents_internal

This function now takes a list of paragraph as argument instead of building it
in its code.  This is the first step in the modification of this function to
be able to test it with files that don't "physically" exist in the actual file
system.

* lib/Automake/File.pm: Start the modification of file_contents_internal for
  unit testing

6 years agot/pm: Add tests for SilentRules.pm
Matthias Paulmier [Wed, 11 Jul 2018 13:00:07 +0000 (15:00 +0200)] 
t/pm: Add tests for SilentRules.pm

*  t/pm/SilentRules.pl: New tests for the SilentRules module.

7 years agoMove functions to LangHandling
Matthias Paulmier [Fri, 6 Jul 2018 13:49:28 +0000 (15:49 +0200)] 
Move functions to LangHandling

These functions are language specific functions.  To achieve this, we had to
add a new module "TmpModule".  The functions in this module should be
relocated when we find a better place.

* lib/Automake/LangHandling.pm: Add handle_emacs_lisp, handle_java,
  handle_python to this module.
* lib/Automake/LangHandling: Add this module to avoid include cycles.

7 years agoRemove sub prototype
Matthias Paulmier [Wed, 4 Jul 2018 09:12:21 +0000 (10:12 +0100)] 
Remove sub prototype

7 years agoAdd the HandleConfigure module
Matthias Paulmier [Tue, 3 Jul 2018 12:33:17 +0000 (14:33 +0200)] 
Add the HandleConfigure module

This module handles the configure.ac files on the Automake side.  It required
to modify a bit the scan_autoconf_[file|traces] functions so we can pass them
the environment var for autoconf as arguments from the main file (otherwise it
wouldn't work).

* lib/Automake/HandleConfigure.pm: Module for handling configure.ac for automake.
* lib/Automake/Utils.pm: Add some necessary functions for the new
  HandleConfigure module.

7 years agoFix copyright for Texi.pm
Matthias Paulmier [Tue, 3 Jul 2018 11:03:19 +0000 (13:03 +0200)] 
Fix copyright for Texi.pm

7 years agoAdd the Standards.pm library
Matthias Paulmier [Mon, 2 Jul 2018 10:07:22 +0000 (12:07 +0200)] 
Add the Standards.pm library

The library provides functions for checking that the required files in a given
standard (GNU org GNITS) are present.

7 years agoLangHandling: Fix missing import
Matthias Paulmier [Fri, 29 Jun 2018 15:35:24 +0000 (17:35 +0200)] 
LangHandling: Fix missing import

The tests that could help me spot this bug was skipped on my machine.

The RULE_AUTOMAKE constant is used in this file so we need the to import the
Automake::RuleDef module.

7 years agoMove yet more functions to Utils.pm
Matthias Paulmier [Fri, 29 Jun 2018 09:07:04 +0000 (11:07 +0200)] 
Move yet more functions to Utils.pm

backanme: get the back path to the Makefile directory.
locate_am: locate the *.am file for which a *.in file exists
get_number_of_threads: returns the number of threads on which Automake should
run.

* lib/Automake/Utils.pm: Add the backname, locate_am, get_number_of_threads
  functions to the Automake::Utils module.

7 years agoAdd a module for handling Texinfo files
Matthias Paulmier [Thu, 28 Jun 2018 10:33:14 +0000 (12:33 +0200)] 
Add a module for handling Texinfo files

* lib/pm/Texi.pm: New module for handling texinfo files.

7 years agot/pm: Regroup tests by module
Matthias Paulmier [Tue, 26 Jun 2018 13:35:17 +0000 (15:35 +0200)] 
t/pm: Regroup tests by module

Since we don't have to worry anymore about the tests "fataling" out we can
put the then separated tests into the appropriate files.

7 years agot/pm: Fix fake XFAIL perl tests
Matthias Paulmier [Tue, 26 Jun 2018 12:57:59 +0000 (14:57 +0200)] 
t/pm: Fix fake XFAIL perl tests

Use eval to fix fail XFAIL perl test and catch fatal errors.

* t/pm: No more XFAIL perl tests

7 years agoAdd a test for the Channels.pm module
Matthias Paulmier [Mon, 25 Jun 2018 19:04:56 +0000 (21:04 +0200)] 
Add a test for the Channels.pm module

This test is placed in the perl_fake_XFAIL_TESTS meaning it is expected to
FAIL but is the correct behavior of the test.  It should generate a fatal
error with the following message: 'unknown channel test-fatal'.

7 years agolib: Harmonize Exporter package usage
Matthias Paulmier [Fri, 22 Jun 2018 13:42:17 +0000 (15:42 +0200)] 
lib: Harmonize Exporter package usage

Now the modules don't inherit Exporter anymore.  We just get the import method
from it since it is the only method that interests us.

7 years agoAdd missing license headers
Matthias Paulmier [Fri, 22 Jun 2018 13:33:54 +0000 (15:33 +0200)] 
Add missing license headers

* lib/Automake/Requires.pm: Add mising header
* lib/Automake/SilentRules.pm: Add missing header

7 years agoRearrange file exports and function prototypes
Matthias Paulmier [Fri, 22 Jun 2018 08:53:18 +0000 (10:53 +0200)] 
Rearrange file exports and function prototypes

* automake.in: Rearrange function prototypes.
* lib: Remove useless exports.

7 years agoFix Automake::Errors
Matthias Paulmier [Fri, 22 Jun 2018 07:47:56 +0000 (09:47 +0200)] 
Fix Automake::Errors

The module didn't return 1.

7 years agolib: Add new modules
Matthias Paulmier [Wed, 20 Jun 2018 14:57:02 +0000 (16:57 +0200)] 
lib: Add new modules

In an effort to move out as much as possible from the main script, we create
these modules to host the methods.

* LangHandling: This module host all the functions for handling
  languages (functions that define obj directories of the language, rewrite
  the file extention...).
* SilentRules: Declares functions for handling silent rules.
* Requires: Functions for requiring configuration files.

7 years agoUtils: Add yet more methods to this module
Matthias Paulmier [Wed, 20 Jun 2018 14:54:00 +0000 (16:54 +0200)] 
Utils: Add yet more methods to this module

Move ̀is_make_dir', ̀push_dist_common' and `canonicalize' to this module.

7 years agoMove $gen_copyright
Matthias Paulmier [Tue, 19 Jun 2018 14:01:20 +0000 (16:01 +0200)] 
Move $gen_copyright

We move the variable to the bottom of the file where it is used because we
have no real reason to declare it where it was.  The added comment has also
been removed since it doesn't make sense and isn't useful for the
comprehension of this variable.  The variable will stay in this file unless we
have a real reason to move it out of this file.

7 years agoAdd the Errors.pm perl module
Matthias Paulmier [Tue, 19 Jun 2018 13:54:58 +0000 (15:54 +0200)] 
Add the Errors.pm perl module

This module takes care of outputing errors for Makefile.am and Configure.ac
files.

* lib/Automake/Errors.pm: New file for printing errors about am and ac files.

7 years agoFix Copyright of previous commit
Matthias Paulmier [Tue, 19 Jun 2018 13:39:47 +0000 (15:39 +0200)] 
Fix Copyright of previous commit

To be squashed if this gets merged.

7 years agoVarAppend: New module
Matthias Paulmier [Mon, 18 Jun 2018 15:00:46 +0000 (17:00 +0200)] 
VarAppend: New module

This module is used in Automake::Variable::define to append values to
variables.

* VarAppend: New module with helper functions for appending to variables.

7 years agolib: Rearrange modules inclusions
Matthias Paulmier [Fri, 15 Jun 2018 09:44:06 +0000 (11:44 +0200)] 
lib: Rearrange modules inclusions

The use directives are now rearranged to be more easily read (alphabetical
order) and we removed some include cycles in the process.

* Location.pm: This module now serves the INTERNAL constant.

7 years agoUtils.pm: Move global variables to this module
Matthias Paulmier [Thu, 14 Jun 2018 12:19:11 +0000 (14:19 +0200)] 
Utils.pm: Move global variables to this module

These global variables are now in lib/Automake/Utils.pm:

- $config_aux_dir
- $am_config_aux_dir
- $config_aux_dir_set_in_configure_ac
- $seen_maint_mode
- $relative_dir
- $seen_canonical
- %am_file_cache

* Utils.pm: New variables from Global.pm now sit in this module
* t/pm/Utils.pl: New test for &locate_aux_dir

7 years agoVariable.pm: Split define method
Matthias Paulmier [Wed, 13 Jun 2018 13:11:27 +0000 (15:11 +0200)] 
Variable.pm: Split define method

Split the define method into smaller units easier to maintain and test.

7 years agoVariable.pm: Standardize the docs
Matthias Paulmier [Wed, 13 Jun 2018 07:32:31 +0000 (09:32 +0200)] 
Variable.pm: Standardize the docs

The docs was mainly pod but the newly added methods were not documented that
way.  This commit standardize that.  Of course the private methods stay
documented with simple comments.

7 years agot: Add a test for the CondStack module
Matthias Paulmier [Tue, 12 Jun 2018 16:00:35 +0000 (18:00 +0200)] 
t: Add a test for the CondStack module

This tests that the &cond_stack_* methods assure the good balance of the
conditional stack.

* CondStack.pl: New test for the CondStack module.

7 years agoAdded files: Change license header
Matthias Paulmier [Tue, 12 Jun 2018 12:32:18 +0000 (14:32 +0200)] 
Added files: Change license header

Change the license header from GPLv3+ to GPLv2+ since Automake has not yet
transitioned.

7 years agoConfVars.pm: Move global vars to this module
Matthias Paulmier [Mon, 11 Jun 2018 14:12:05 +0000 (16:12 +0200)] 
ConfVars.pm: Move global vars to this module

The variables are coherent with the methods served by this module.

The module still needs some documentation.

7 years agoCondStack.pm: Move @cond_stack to this file
Matthias Paulmier [Mon, 11 Jun 2018 14:04:38 +0000 (16:04 +0200)] 
CondStack.pm: Move @cond_stack to this file

This global variable is better to be served from this module.

7 years agot: Test the flatten method
Matthias Paulmier [Fri, 8 Jun 2018 09:42:23 +0000 (11:42 +0200)] 
t: Test the flatten method

Checks if the output string is a flattened version of the input string.  It
should remove trailing and leading whitespaces, multiple whitespaces (and
replace it with single ones) and line breaks in a given string.

* t/pm/Utils.pl: add check_flatten to the test-suite.

7 years agot: Add a test for the Automake::Utils module
Matthias Paulmier [Thu, 7 Jun 2018 14:22:13 +0000 (16:22 +0200)] 
t: Add a test for the Automake::Utils module

At the moment, we only test the subst subroutine as it is the most
trivially testable in the file.

* Utils.pl: Added to test the newly added Automake::Utils module
* list-of-tests.mk: Added the above test-file to be run in the
  test-suite

7 years agolib: fix Automake::Variable
Matthias Paulmier [Wed, 6 Jun 2018 13:46:24 +0000 (15:46 +0200)] 
lib: fix Automake::Variable

Some methods added to this module were not working properly because they
depend on others which stayed in automake.in

* ConfVars.pm: Added this module to put the methods in question.
* CondStack.pm: Module that takes care of the conditional stack.
* Utils.pm: Added some needed utility functions for the above to run properly.
* File.pm: Methods that looks at files' content.
* local.mk: Added the new modules.

7 years agolib: Move methods to Automake::Variable
Matthias Paulmier [Mon, 4 Jun 2018 15:29:26 +0000 (17:29 +0200)] 
lib: Move methods to Automake::Variable

Some subs in bin/automake are still moveable to this file but require to move
other subs before.

* verbose_var: adds a prefix to a variable name.
* verbose_private_var: same as verbose_var but for private vars. This method
  is now private in this module since it is only used once in the.
  define_verbose_var which has been moved here took.
* define_verbose_var: defines verbose variables for silent rules in the
  generated makefile.
* define_verbose_tagvar: calls define_verbose_var with $name as argument
* define_variable: define a new Makefile variable.
* define_pretty_variable: same as above but for printing in an input file.
* define_files_variables: define a variable containing a list of files
  composed of a specified basename and extension.
* define_configure_variable: define a variable and substitute its name by a
  configure-style text.

7 years agoUtils.pm: Add more utility methods
Matthias Paulmier [Mon, 4 Jun 2018 15:13:03 +0000 (17:13 +0200)] 
Utils.pm: Add more utility methods

* subst: Method to get a configure-style substitute from a text
* file_contents_internal: Return the contents of a file from automake/lib/am.
  This is a long method that will need some reworking later.

7 years agolib: Add Automake::Utils module
Matthias Paulmier [Mon, 4 Jun 2018 09:49:36 +0000 (11:49 +0200)] 
lib: Add Automake::Utils module

This module contains utility methods to be used in bin/automake.

* lib/Automake/Utils.pm: New utility module.
* var_SUFFIXES_trigger: Moved to the Automake::Utils module.
* locate_aux_dir: Moved to the Automake::Utils module.

7 years agoautomake.in: Move out var/const declarations
Matthias Paulmier [Tue, 15 May 2018 11:50:34 +0000 (13:50 +0200)] 
automake.in: Move out var/const declarations

This is the first step in modularizing Automake for the Summer of Code project
"Modularize Automake to improve its test-suite".  The goal here is to move out
as much as possible from bin/automake.in in order for it to eventually only
call methods from the different modules.

* lib/Automake/Global.pm: The Automake::Global package will now hold variable
  and constant declarations in order to move subroutines that use them out of
  the main package.
* bin/automake.in: The $gen_copyright var/constant was left here because it
  uses a variable passed directly by the Makefile here.  This needs to be
  looked at later.  Te rest of the declarations was moved.

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.