summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* automake.in: Move out var/const declarationsgsoc-refactoringMatthias Paulmier2018-05-153-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.
| * tests: Remove tests intended only for the 'next' branchMathieu Lirzin2018-02-252-191/+0
| | | | | | | | | | | | | | | | | | | | 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.
| * maint: Update files from upstream with 'make fetch'Mathieu Lirzin2018-02-258-436/+476
|/ | | | | | | | | | | * 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.
* python: Avoid exceeding command-line length limitMathieu Lirzin2018-02-181-16/+9
| | | | | | | | | | | | | 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.
* tests: Don't check 'Getopt::Long' corner casesMathieu Lirzin2018-02-183-14/+3
| | | | | | | | | | | | | | 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.
* python: Generate python interpreter listMathieu Lirzin2018-02-041-4/+17
| | | | | | | | | | | | _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.
* tests: Improve comment in 'txinfo-many-output-formats.sh'Mathieu Lirzin2018-01-191-1/+2
| | | | | * t/txinfo-many-output-formats.sh: Explain why AM_MAKEINFOFLAGS is set with an invalid option.
* tests: Distribute DEJATOOL files manuallyMathieu Lirzin2018-01-191-0/+1
| | | | | | | | "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.
* tests: Let 'ltorder.sh' run successfully with Guix dynamic loaderMathieu Lirzin2018-01-191-0/+6
| | | | | * t/ltorder.sh: Set GUIX_LD_WRAPPER_ALLOW_IMPURITIES environment variable to unlock the dynamic loader provided by GNU Guix.
* tests: Fix various 'flex' compilation issuesMathieu Lirzin2018-01-193-3/+9
| | | | | | | | | | * 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'.
* tests: Check GCS conformance of 'aclocal' command-line interfaceMathieu Lirzin2018-01-181-1/+15
| | | | | * t/aclocal.sh: Check that 'aclocal' support the --version and --help command-line options.
* contrib: Add Guile custom test driver using SRFI-64 test harnessMathieu Lirzin2018-01-182-0/+216
| | | | | | | 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.
* maint: Document how to use Guix for Automake developmentMathieu Lirzin2018-01-181-0/+11
| | | | * HACKING <Setting the development environment>: New part.
* automake: Add default libtool_tag to cppasmKhem Raj2018-01-051-0/+1
| | | | | | | * bin/automake.in (register_language): Define default libtool tag to be CC since CPPASCOMPILE is using CC to call assembler. Copyright-paperwork-exempt: yes
* doc: Document the portability of various tar formats betterBruno Haible2018-01-041-6/+9
| | | | | * doc/automake.texi (List of Automake options): Document the portability of the tar-ustar and tar-pax options better.
* missing: Update displayed URLsSimon Sobisch2018-01-042-4/+4
| | | | | | | * lib/missing (perl_URL): Use HTTPS. (flex_URL): Use new Github homepage. Copyright-paperwork-exempt: yes
* maint: Update copyright years to 2018Mathieu Lirzin2018-01-041442-1445/+1444
| | | | This update has been made with 'make update-copyright'.
* maint: Exclude ".dir-locals.el" from copyright updatesMathieu Lirzin2018-01-041-0/+1
| | | | * maintainer/maint.mk (files_without_copyright): Add ".dir-locals.el".
* port elisp-compilation support to emacs-23.1 and newerJim Meyering2017-12-164-3/+55
| | | | | | | | | | | | | | | | | 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.
* "make dist" did not depend on $(BUILT_SOURCES)Jim Meyering2017-11-284-2/+65
| | | | | | | | | | | | | | * 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
* maint: Update HACKINGMathieu Lirzin2017-11-241-18/+12
| | | | | * HACKING (Working with git): Remove reference to the 'micro' branch and adapt branch descriptions to the current branching scheme.
* maint: Make Emacs use 'makefile-automake-mode'Mathieu Lirzin2017-09-238-14/+8
| | | | | | | | | | | * 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.
* maint: update .gitignorePaul Eggert2017-09-231-37/+38
| | | | * .gitignore: Add pre-inst-env, and sort.
* install-sh: do not assume / = //Paul Eggert2017-09-231-6/+14
| | | | | | | * 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.
* maint: fix two more http: URLsPaul Eggert2017-09-231-2/+2
| | | | * m4/init.m4: Change http: to https: in comments.
* maint: Configure Emacs automatically with ".dir-locals.el"Mathieu Lirzin2017-09-2230-494/+25
| | | | | * .dir-locals.el: New Emacs directory configuration file. All perl files adapted.
* maint: 'master' should be merged into 'next'Mathieu Lirzin2017-09-221-1/+1
| | | | * HACKING: Fix instructions merge instructions.
* * lib/mdate.sh (TZ): Use portable setting.Paul Eggert2017-09-211-2/+2
|
* Merge branch 'minor'Mathieu Lirzin2017-09-201473-0/+211282
|\
| * maint: Document new Branch names conventionMathieu Lirzin2017-09-191-18/+14
| | | | | | | | * HACKING: Update to new Branch names.
* | maint: Reset masterMathieu Lirzin2017-09-191473-210849/+0
| |
* | Merge branch 'minor'nextMathieu Lirzin2017-09-196-14/+42
|\ \ | |/
| * make fetchPaul Eggert2017-09-198-86/+63
| |