summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Fix copyright for Texi.pmMatthias Paulmier2018-07-031-1/+1
|
* Add the Standards.pm libraryMatthias Paulmier2018-07-023-46/+76
| | | | | The library provides functions for checking that the required files in a given standard (GNU org GNITS) are present.
* LangHandling: Fix missing importMatthias Paulmier2018-06-291-0/+1
| | | | | | | 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.
* Move yet more functions to Utils.pmMatthias Paulmier2018-06-292-76/+71
| | | | | | | | | | 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.
* Add a module for handling Texinfo filesMatthias Paulmier2018-06-283-528/+565
| | | | * lib/pm/Texi.pm: New module for handling texinfo files.
* t/pm: Regroup tests by moduleMatthias Paulmier2018-06-2610-173/+66
| | | | | Since we don't have to worry anymore about the tests "fataling" out we can put the then separated tests into the appropriate files.
* t/pm: Fix fake XFAIL perl testsMatthias Paulmier2018-06-268-19/+44
| | | | | | Use eval to fix fail XFAIL perl test and catch fatal errors. * t/pm: No more XFAIL perl tests
* Add a test for the Channels.pm moduleMatthias Paulmier2018-06-252-0/+23
| | | | | | 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'.
* lib: Harmonize Exporter package usageMatthias Paulmier2018-06-2226-94/+69
| | | | | 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.
* Add missing license headersMatthias Paulmier2018-06-222-0/+30
| | | | | * lib/Automake/Requires.pm: Add mising header * lib/Automake/SilentRules.pm: Add missing header
* Rearrange file exports and function prototypesMatthias Paulmier2018-06-223-16/+46
| | | | | * automake.in: Rearrange function prototypes. * lib: Remove useless exports.
* Fix Automake::ErrorsMatthias Paulmier2018-06-221-0/+10
| | | | The module didn't return 1.
* lib: Add new modulesMatthias Paulmier2018-06-225-896/+987
| | | | | | | | | | | 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.
* Utils: Add yet more methods to this moduleMatthias Paulmier2018-06-222-50/+49
| | | | Move ̀is_make_dir', ̀push_dist_common' and `canonicalize' to this module.
* Move $gen_copyrightMatthias Paulmier2018-06-221-17/+15
| | | | | | | | 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.
* Add the Errors.pm perl moduleMatthias Paulmier2018-06-223-34/+85
| | | | | | | 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.
* Fix Copyright of previous commitMatthias Paulmier2018-06-221-4/+3
| | | | To be squashed if this gets merged.
* VarAppend: New moduleMatthias Paulmier2018-06-223-170/+246
| | | | | | | This module is used in Automake::Variable::define to append values to variables. * VarAppend: New module with helper functions for appending to variables.
* lib: Rearrange modules inclusionsMatthias Paulmier2018-06-2223-43/+79
| | | | | | | 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.
* Utils.pm: Move global variables to this moduleMatthias Paulmier2018-06-223-52/+61
| | | | | | | | | | | | | | | 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
* Variable.pm: Split define methodMatthias Paulmier2018-06-221-143/+163
| | | | Split the define method into smaller units easier to maintain and test.
* Variable.pm: Standardize the docsMatthias Paulmier2018-06-221-38/+50
| | | | | | 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.
* t: Add a test for the CondStack moduleMatthias Paulmier2018-06-222-0/+77
| | | | | | | This tests that the &cond_stack_* methods assure the good balance of the conditional stack. * CondStack.pl: New test for the CondStack module.
* Added files: Change license headerMatthias Paulmier2018-06-226-28/+32
| | | | | Change the license header from GPLv3+ to GPLv2+ since Automake has not yet transitioned.
* ConfVars.pm: Move global vars to this moduleMatthias Paulmier2018-06-222-28/+30
| | | | | | The variables are coherent with the methods served by this module. The module still needs some documentation.
* CondStack.pm: Move @cond_stack to this fileMatthias Paulmier2018-06-222-16/+17
| | | | This global variable is better to be served from this module.
* t: Test the flatten methodMatthias Paulmier2018-06-221-1/+22
| | | | | | | | 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.
* t: Add a test for the Automake::Utils moduleMatthias Paulmier2018-06-222-0/+33
| | | | | | | | | 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
* lib: fix Automake::VariableMatthias Paulmier2018-06-227-353/+663
| | | | | | | | | | | 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.
* lib: Move methods to Automake::VariableMatthias Paulmier2018-06-222-329/+150
| | | | | | | | | | | | | | | | | | | 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.
* Utils.pm: Add more utility methodsMatthias Paulmier2018-06-222-15/+15
| | | | | | * 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.
* lib: Add Automake::Utils moduleMatthias Paulmier2018-06-222-41/+70
| | | | | | | | 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.
* automake.in: Move out var/const declarationsMatthias Paulmier2018-06-223-434/+497
| | | | | | | | | | | | | | 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.
* test-driver.scm: Add "--coverage" optionMathieu Lirzin2018-03-251-9/+28
| | | | | | | * 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.
* test-driver.scm: Don't guess script name from "--test-name"Mathieu Lirzin2018-03-241-16/+22
| | | | | | | | | '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.
* test-driver.scm: Inline 'main' procedureMathieu Lirzin2018-03-241-24/+23
| | | | | | | 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.
* maint: Use 'before-save-hook' in "contrib/test-driver.scm"Mathieu Lirzin2018-03-111-3/+3
| | | | | | | | | | 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'.
* bin: Rely only on the shebang lineMathieu Lirzin2018-03-112-13/+2
| | | | | | | | | | 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.
* maint: Post-release administriviaMathieu Lirzin2018-03-113-3/+7
| | | | | | * 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").
* version 1.16.1v1.16.1Mathieu Lirzin2018-03-113-4/+4
| | | | | | * configure.ac (AC_INIT): Bump version number to 1.16.1. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
* maint: Update files from upstream with 'make fetch'Mathieu Lirzin2018-03-117-20/+16
| | | | | | | | | | * 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.
* install-sh: avoid (low risk) race in "/tmp"Pavel Raiskup2018-03-112-8/+20
| | | | | | | | | | | | | | | | | | | | | | | | | 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>
* automake: Don't rely on List::Util to provide 'none'Mathieu Lirzin2018-03-085-3/+51
| | | | | | | | | | | | | 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.
* python: Support future python version up to 3.9Mathieu Lirzin2018-03-082-4/+10
| | | | | | | | | | | | | | | 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.
* maint: write-file-hooks -> before-save-hookPaul Eggert2018-03-0611-20/+20
| | | | | | | | | | | 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.
* Revert "python: Generate python interpreter list"Mathieu Lirzin2018-03-031-17/+4
| | | | This reverts commit 1d60fb72168e62d33fe433380af621de64e22f23.
* maint: Post-release administriviaMathieu Lirzin2018-02-253-3/+7
| | | | | | * 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").
* Merge branch 'release'Mathieu Lirzin2018-02-2514-794/+641
|\
| * version 1.16v1.16Mathieu Lirzin2018-02-253-6/+6
| | | | | | | | | | | | * configure.ac (AC_INIT, APIVERSION): Bump version number to 1.16. * m4/amversion.m4: Likewise (auto-updated by "make bootstrap"). * NEWS: Record release version.
| * maint: Update INSTALLMathieu Lirzin2018-02-251-161/+159
| | | | | | | | * INSTALL: Use single quotes.