]> git.ipfire.org Git - thirdparty/automake.git/log
thirdparty/automake.git
4 years agotests: avoid failures due to missing ar-lib
Jim Meyering [Sun, 15 Nov 2020 03:51:46 +0000 (19:51 -0800)] 
tests: avoid failures due to missing ar-lib

* t/ar4.sh: Create dummy ar-lib, as done in other tests,
to avoid failure like this:
configure: error: cannot find required auxiliary files: ar-lib
* t/ar5.sh: Likewise.

4 years agoinstall-sh: trailing whitespace.
Karl Berry [Sat, 14 Nov 2020 01:51:46 +0000 (17:51 -0800)] 
install-sh: trailing whitespace.

* lib/install-sh: remove trailing whitespace. Sigh.
(scriptversion): 2020-11-14.01

4 years agodejagnu: quote `pwd` when writing "set objdir" line to site.exp.
Robert Menteer [Sat, 14 Nov 2020 01:50:09 +0000 (17:50 -0800)] 
dejagnu: quote `pwd` when writing "set objdir" line to site.exp.

This change fixes https://bugs.gnu.org/44600.

* lib/am/dejagnu.am (site.exp): quote set objdir line.
* NEWS: mention this.

4 years agoinstall-sh: new option -S SUFFIX for simple file backups.
Karl Berry [Fri, 13 Nov 2020 01:49:31 +0000 (17:49 -0800)] 
install-sh: new option -S SUFFIX for simple file backups.

* lib/install-sh: implement and document -S.
Patch sent by Julien Elie:
        https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00004.html
(scriptversion): 2020-11-13.01
* t/install-sh-option-S.sh: new test.
* t/list-of-tests.mk (handwritten_tests): add it.
* NEWS: mention it.

4 years agoinstall-sh: --help tweaks.
Karl Berry [Wed, 11 Nov 2020 02:18:35 +0000 (18:18 -0800)] 
install-sh: --help tweaks.

* lib/install-sh (usage): avoid too-long line, mention
bug reporting address (bug-automake) and automake home page.

4 years agoinstall-sh: new option -p to preserve mtime.
Karl Berry [Wed, 11 Nov 2020 02:03:47 +0000 (18:03 -0800)] 
install-sh: new option -p to preserve mtime.

* lib/install-sh: new option -p to call cp -p.
Idea from patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00002.html
(scriptversion): 2020-11-11.02
* NEWS: mention this.

2020-11-10  Karl Berry  <karl@freefriends.org>

4 years agovala: forgot to update lists-of-tests.mk.
Karl Berry [Wed, 11 Nov 2020 01:58:41 +0000 (17:58 -0800)] 
vala: forgot to update lists-of-tests.mk.

* t/list-of-tests.mk (handwritten_tests): include
t/vala-libs-distcheck.sh and t/vala-libs-vpath.sh.
Should have been committed with 2020-10-29 vala change,
but somehow missed.

2020-11-10  Karl Berry  <karl@freefriends.org>

4 years agoinstall-sh: do not chown existing directories.
Karl Berry [Wed, 11 Nov 2020 01:54:06 +0000 (17:54 -0800)] 
install-sh: do not chown existing directories.

* lib/install-sh: do not chown existing directories.
Original patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00003.html
(scriptversion): 2020-11-11.01
* NEWS: mention this.

4 years agoinstall-sh: do not redundantly specify -f to rm.
Karl Berry [Wed, 11 Nov 2020 01:48:35 +0000 (17:48 -0800)] 
install-sh: do not redundantly specify -f to rm.

* lib/install-sh: do not redundantly specify -f to rm.
Mention implication for RMPROG in the --help message.
Original patch sent by Julien Elie:
https://lists.gnu.org/archive/html/automake-patches/2018-03/msg00005.html
* NEWS: mention this.

4 years agovala: improve support, especially builddir vs. srcdir.
Reuben Thomas [Sun, 8 Nov 2020 02:44:56 +0000 (18:44 -0800)] 
vala: improve support, especially builddir vs. srcdir.

This change fixes https://bugs.gnu.org/13002.

* NEWS: mention these changes.
* bin/automake.in: generated C files go in builddir, not srcdir.
Distribute the header files generated from VAPI files.
* t/vala-libs-distcheck.sh: new test for `make distcheck' of a
Vala library.
* t/vala-libs-vpath.sh: new test for a VPATH build of a Vala library.
* t/vala-libs.sh: add local VAPIs used as external --package to test.

* t/vala-recursive-setup.sh: we need to make
maintainer-clean at one point to remove stamp files to avoid
confusing a VPATH build performed after a non-VPATH build.
* t/vala-non-recursive-setup.sh: likewise.

* t/vala-parallel.sh: some test paths need changing to take into
account that generated C files now go in builddir.
* t/vala-per-target-flags.sh: likewise.
* t/vala-recursive-setup.sh: likewise.
* t/vala-vpath.sh: likewise.

4 years agotests: recompute dependencies when lists-of-tests.mk changes.
Karl Berry [Sun, 8 Nov 2020 02:11:03 +0000 (18:11 -0800)] 
tests: recompute dependencies when lists-of-tests.mk changes.

This change fixes https://bugs.gnu.org/44458
and updates https://bugs.gnu.org/11347.

* t/local.mk ($(srcdir)/%D/testsuite-part.am): restore
dependency on '%D/list-of-tests.mk' (i.e., t/list-of-tests.mk),
partially reverting the change of 26 Apr 2012 for bug#11347.
Otherwise, new tests that have dependencies will not cause an
update of testsuite-part.am, leading to strange failures
(bug#44458). The original problem being fixed in #11347 was
unnecessary rebuilding when modifying tests; that should not be
affected here, but when new tests are added, it seems reasonable,
as well as necessary, to ensure dependencies are updated.

4 years agopython: determine Python (3.10) version number correctly.
Miro Hron\v{c}ok [Tue, 27 Oct 2020 21:33:46 +0000 (14:33 -0700)] 
python: determine Python (3.10) version number correctly.

This change fixes https://bugs.gnu.org/44239
(and https://bugzilla.redhat.com/show_bug.cgi?id=1889732).

* m4/python.m4: use print('%u.%u' % sys.version_info[:2]) for
the version number instead of merely sys.version[:3], so the
numbers are treated as numbers.
* t/python-vars.sh (PYTHON_VERSION): Likewise.
* doc/automake.texi: Document it.
* NEWS: mention it. (Minor tweaks from Karl Berry.)

4 years agodoc: correct "moved in", to "moved to"
Jim Meyering [Sat, 24 Oct 2020 04:13:09 +0000 (21:13 -0700)] 
doc: correct "moved in", to "moved to"

* NEWS: Correct wording.
* contrib/README: Likewise.
* doc/automake.texi: Likewise.

4 years agocontrib/README: fix and clarify the English
Reuben Thomas [Thu, 15 Oct 2020 12:11:11 +0000 (13:11 +0100)] 
contrib/README: fix and clarify the English

4 years agoImprove Vala compiler detection: use API version, not compiler version
Reuben Thomas [Wed, 21 Oct 2020 22:31:46 +0000 (23:31 +0100)] 
Improve Vala compiler detection: use API version, not compiler version

* m4/vala.m4: check `valac --api-version', not `valac --version'.
* doc/automake.texi: update documentation.

4 years agoUse complete configure.ac’s in testsuite.
Zack Weinberg [Wed, 7 Oct 2020 13:19:06 +0000 (09:19 -0400)] 
Use complete configure.ac’s in testsuite.

Autoconf 2.70 will issue warnings if it encounters a configure.ac that doesn’t
call both AC_INIT and AC_OUTPUT.

Automake already issues warnings if it encounters a configure.ac that uses an
AM_ macro but doesn’t call AM_INIT_AUTOMAKE or AC_CONFIG_FILES([Makefile]).

In two places, the testsuite was tripping these warnings, leading to spurious
failures with Autoconf 2.70 betas.

* t/aminit-moreargs-deprecation.sh: Add AC_OUTPUT to test configure.ac.
* t/mkdirp-deprecation.sh: Use a complete test configure.ac, not a stub
  containing only a use of AM_PROG_MKDIR_P.

4 years agoautomake: install-exec did not depend on $(BUILT_SOURCES).
Karl Berry [Wed, 7 Oct 2020 01:16:14 +0000 (18:16 -0700)] 
automake: install-exec did not depend on $(BUILT_SOURCES).

This change fixes https://bugs.gnu.org/43683.

* lib/am/install.am (install-exec): %maybe_BUILT_SOURCES% dependency,
twice.  Basic patch from madmurphy (tiny change), message#8.
(.MAKE) [maybe_BUILT_SOURCES]: depend on install-exec.
* NEWS: mention it.
* doc/automake.texi (Sources): mention this (also that make dist
depends on $(BUILT_SOURCES)).
* t/built-sources-install-exec.sh: new test.
* t/list-of-tests.mk (handwritten_TESTS): add it.
* t/built-sources-install.sh: typo.
* t/built-sources-check.sh: typo.

4 years agoUpdate documentation of warnings options and strictness levels.
Zack Weinberg [Mon, 21 Sep 2020 18:16:33 +0000 (14:16 -0400)] 
Update documentation of warnings options and strictness levels.

The warning categories ‘cross’ and ‘portability-recursive’ were not mentioned
in the manual.

Also clarify the relationship between warnings categories and strictness
levels, and streamline the description of strictness levels by merging the
“Gnits” section into the “Strictness” section.

* doc/automake.texi (Gnits, Strictness): Combine these sections.
  Minor revisions to explanation of strictness levels.
  (automake Invocation): Add documentation of all the warnings
  categories that have been added since the last time this section
  was updated.  Minor clarifications.

4 years agoUse WARNINGS=none to suppress warnings from autom4te runs.
Zack Weinberg [Fri, 18 Sep 2020 17:40:20 +0000 (13:40 -0400)] 
Use WARNINGS=none to suppress warnings from autom4te runs.

aclocal uses autom4te in trace mode to scan configure.ac for macros whose
definition is not yet available.  It has a kludge to prevent this from
producing spurious warnings, but a cleaner, fully backward compatible, way to
get the same effect is to set WARNINGS=none in the environment and not pass
down any -W options.  (This is better than passing -Wnone on the command line
because it automatically inherits to any subprocesses started by autom4te.)

Perl’s ‘local’ feature can be used to make the enviironment variable setting
temporary, reverting to the previous value when we exit the function.

automake also runs autom4te (technically autoconf) in trace mode; warnings
from this invocation will not be *spurious*, but in the common case where
the person running automake is going to run autoconf next, they will be
duplicated.  Therefore, make the same change to automake.

* bin/aclocal.in (trace_used_macros)
* bin/automake.in (scan_autoconf_traces):
  Use “local $ENV{WARNINGS}='none'” to suppress warnings from autom4te.

4 years agoNew utility function Automake::ChannelDefs::merge_WARNINGS.
Zack Weinberg [Sun, 13 Sep 2020 15:33:05 +0000 (11:33 -0400)] 
New utility function Automake::ChannelDefs::merge_WARNINGS.

This function merges a list of warnings categories into the environment
variable WARNINGS, returning a new value to set it to.  The intended use
is in code of the form

{
  local $ENV{WARNINGS} = merge_WARNINGS ("this", "that");

  # run a command here with WARNINGS=this,that,etc
}

This is not actually used in automake, but will be in autoconf.

* lib/Automake/ChannelDefs.pm (merge_WARNINGS): New function.

4 years agot/python-virtualenv.sh: Skip when versions don’t match
Zack Weinberg [Sat, 12 Sep 2020 13:51:07 +0000 (09:51 -0400)] 
t/python-virtualenv.sh: Skip when versions don’t match

On some operating systems ‘python’ is Python 2.x but ‘virtualenv -ppython’
will create a virtualenv that uses Python 3.x.  This is a bug, but it’s
not *automake’s* bug, and should not cause t/python-virtualenv.sh to fail.
Skip the test, instead of failing it, when the inner=outer version check
fails.

(This also has nothing to do with the main goal of this patchset, it just
annoyed me while I was testing.)

* t/python-virtualenv.sh: Skip test, rather than failing it, when
  $py_version_pre != $py_version_post.

4 years agoConsistently use ‘our’ instead of ‘use vars’.
Zack Weinberg [Fri, 11 Sep 2020 22:03:19 +0000 (18:03 -0400)] 
Consistently use ‘our’ instead of ‘use vars’.

At file scope of a file containing at most one ‘package’ declaration,
‘use vars’ is exactly equivalent to ‘our’, and the latter is preferred
starting with Perl 5.6.0, which happens to be the oldest version we
support.

(This change has nothing to do with the previous two, but I want to make the
same change in Autoconf and that means doing it here for all the files synced
from Automake.)

(I don’t know why, but this change exposed a latent bug in FileUtils.pm where
the last pod block in the file didn’t have a ‘=cut’ delimiter, so the code
after it was considered documentation, causing ‘require FileUtils’ to fail.)

* lib/Automake/ChannelDefs.pm
* lib/Automake/Channels.pm
* lib/Automake/Condition.pm
* lib/Automake/Configure_ac.pm
* lib/Automake/DisjConditions.pm
* lib/Automake/FileUtils.pm
* lib/Automake/General.pm
* lib/Automake/Getopt.pm
* lib/Automake/Options.pm
* lib/Automake/Rule.pm
* lib/Automake/RuleDef.pm
* lib/Automake/VarDef.pm
* lib/Automake/Variable.pm
* lib/Automake/Wrap.pm
* lib/Automake/XFile.pm:
  Replace all uses of ‘use vars’ with ‘our’.

* lib/Automake/FileUtils.pm:
  Add missing ‘=cut’ to a pod block near the end of the file.

4 years agoConsistently process -W(no-)error after all other warning options.
Zack Weinberg [Fri, 11 Sep 2020 20:17:41 +0000 (16:17 -0400)] 
Consistently process -W(no-)error after all other warning options.

automake and aclocal were processing ‘-W(no-)error’ whenever it
appeared on the command line, which means that
‘-Werror,something-strange’ would issue a hard error, but
‘-Wsomething-strange,error’ would only issue a warning.

It is not desirable for warnings about unknown warning categories ever to be
treated as a hard error; that leads to problems for driver scripts like
autoreconf, which would like to pass whatever -W options it got on its own
command line down to all the tools and not worry about which tools understand
which warning categories.  Also, this sort of order dependence is confusing
for humans.

Change parse_warnings to take just one option, the _complete_ list of warning
categories seen on the command line, and to process -Werror / -Wno-error after
processing all other warnings options.  Thus, unknown warnings categories will
always just be a plain warning.  This does mean aclocal has to stop using
parse_warnings as a Getopt::Long callback, but that’s not a big deal.

Similarly, change parse_WARNINGS to record whether ‘error’ appeared in the
environment variable, but not activate warnings-are-errors mode itself.
parse_warnings picks up the record and honors it, unless it’s overridden by
the command line.

* lib/Automake/ChannelDefs.pm ($werror): New package global (not exported).
  (parse_WARNINGS): Do not call switch_warning for ‘error’ / ‘no-error’;
  just toggle the value of $werror.
  (parse_warnings): Do not call switch_warning immediately for
  ‘error’ / ‘no-error’; toggle $werror instead.  Call switch_warning ‘error’
  at the very end if $werror is true.  Remove unused $OPTION argument.
* bin/automake.in: parse_warnings now takes only one argument.
* bin/aclocal.in: Call parse_warnings after parse_options instead of
  using it as a parse_options callback.

4 years agoSync ChannelDefs.pm from autoconf.
Zack Weinberg [Fri, 11 Sep 2020 18:23:10 +0000 (14:23 -0400)] 
Sync ChannelDefs.pm from autoconf.

ChannelDefs.pm *ought* to be kept in sync between automake and autoconf,
because it defines the set of valid -W options, and autoreconf assumes
that it can pass arbitrary -W options to all of the tools it invokes.
However, it isn’t covered by either project’s ‘make fetch’ and it hasn’t
actually *been* in sync for more than 17 years.

This patch manually brings over all of the changes made on the autoconf side.
Most importantly, there is a new warnings channel ‘cross’, for warnings
related to cross-compilation.  Also, the ‘usage’ function now *returns*
the text to be put into a usage message, instead of printing it itself.
(This is necessary on autoconf’s side.)

* lib/Automake/ChannelDefs.pm: Sync from autoconf.
  (cross): New warnings channel.
  (portability-recursive): Document.
  (usage): Now returns the text to be printed, instead of printing it.
  (parse_warnings): Second argument may now be a list.

4 years agoautomake: be robust against directories containing ().
Zack Weinberg [Sun, 6 Sep 2020 01:12:48 +0000 (18:12 -0700)] 
automake: be robust against directories containing ().

This change fixes https://bugs.gnu.org/14196.

* m4/missing.m4 (AM_MISSING_HAS_RUN): always quote the
invocation (not just if $am_aux_dir contains space or tab), in
case $am_aux_dir contains () or other metachars not rejected by
AM_SANITY_CHECK; quoting with '...' suggested by Jim Meyering.
* t/man6.sh (HELP2MAN): adjust grep since missing value
is quoted now.
* t/am-missing-prog.sh: likewise.

4 years agomaint: Update files from upstream with 'make fetch'
Issam E. Maghni [Wed, 2 Sep 2020 20:53:21 +0000 (20:53 +0000)] 
maint: Update files from upstream with 'make fetch'

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

Signed-off-by: Issam E. Maghni <issam.e.maghni@mailbox.org>
4 years agoperl: use warnings instead of -w; consistent ordering of use, etc.
Zack Weinberg [Tue, 1 Sep 2020 01:31:04 +0000 (18:31 -0700)] 
perl: use warnings instead of -w; consistent ordering of use, etc.

Per thread at:
https://lists.gnu.org/archive/html/automake-patches/2020-08/msg00009.html

* bin/aclocal.in: use warnings instead of #!...-w;
consistent ordering of basic "use" directives,
then BEGIN block,
then standard modules in ASCII order,
then Automake:: modules (not sort),
finally use vars.
Also sort @ISA lists and use qw(...) in ASCII order.
* bin/automake.in: likewise.
* lib/Automake/ChannelDefs.pm: likewise.
* lib/Automake/Channels.pm: likewise.
* lib/Automake/Condition.pm: likewise.
* lib/Automake/Config.in: likewise.
* lib/Automake/Configure_ac.pm: likewise.
* lib/Automake/DisjConditions.pm: likewise.
* lib/Automake/FileUtils.pm: likewise.
* lib/Automake/General.pm: likewise.
* lib/Automake/Getopt.pm: likewise.
* lib/Automake/Item.pm: likewise.
* lib/Automake/ItemDef.pm: likewise.
* lib/Automake/Language.pm: likewise.
* lib/Automake/Location.pm: likewise.
* lib/Automake/Options.pm: likewise.
* lib/Automake/Rule.pm: likewise.
* lib/Automake/RuleDef.pm: likewise.
* lib/Automake/VarDef.pm: likewise.
* lib/Automake/Variable.pm: likewise.
* lib/Automake/Version.pm: likewise.
* lib/Automake/Wrap.pm: likewise.
* lib/Automake/XFile.pm: remove unnecessary imports of
Carp, DynaLoader, and File::Basename.

4 years agodocs: automake-history.texi @dircategory Software development.
Robert Wanamaker [Sat, 29 Aug 2020 00:29:06 +0000 (17:29 -0700)] 
docs: automake-history.texi @dircategory Software development.

Per thread at:
https://lists.gnu.org/archive/html/automake-patches/2020-08/msg00006.html

* doc/automake-history.texi (@dircategory): Define.

4 years agoautomake: if TEST_EXTENSIONS is set to empty, don't look inside it.
Karl Berry [Fri, 28 Aug 2020 23:26:54 +0000 (16:26 -0700)] 
automake: if TEST_EXTENSIONS is set to empty, don't look inside it.

This change fixes https://bugs.gnu.org/42635.

* bin/automake.in (handle_tests): do not use $test_suffixes[0]
if it does not exist.
* t/test-extensions-empty.sh: new test.
* t/list-of-tests.mk (handwritten_TESTS): add it.

5 years agodocs: typo in tap-driver.sh.
Felix Yan [Fri, 14 Aug 2020 01:10:17 +0000 (18:10 -0700)] 
docs: typo in tap-driver.sh.

Per thread at:
https://lists.gnu.org/archive/html/automake-patches/2020-08/msg00000.html

* lib/tap-driver.sh (setup_result_obj): "assing" typo, etc.

5 years agoport XFile locking to OpenIndiana
Paul Eggert [Sat, 1 Aug 2020 23:12:34 +0000 (16:12 -0700)] 
port XFile locking to OpenIndiana

I observed this problem on an NFS filesystem on an OpenIndiana
host (5.11 illumos-dde7ba523f i386).  fcntl (fd, F_SETLK, ...)
failed with errno == EINVAL, which POSIX allows for files that
do not support locking.
* lib/Automake/XFile.pm (lock): Treat EINVAL like ENOLCK.

5 years ago* Update scriptversions for install-sh, mkinstalldirs.
Paul Eggert [Sun, 26 Jul 2020 22:12:08 +0000 (15:12 -0700)] 
* Update scriptversions for install-sh, mkinstalldirs.

5 years agoInstall directories mode 755 instead of using umask
Paul Eggert [Sun, 26 Jul 2020 22:01:34 +0000 (15:01 -0700)] 
Install directories mode 755 instead of using umask

Problem reported by Antoine Amarilli in:
https://lists.gnu.org/archive/html/automake/2019-01/msg00000.html
and followed up by Akim Demaille in:
https://lists.gnu.org/archive/html/bug-bison/2020-07/msg00040.html
* bin/automake.in: Add a comment about this.
* lib/install-sh: Ignore umask; just create directories mode 755
unless overridden via -m (for non-intermediate directories only).
Also, fix 'umask=$mkdir_umask' typo.
* lib/mkinstalldirs: Likewise.

5 years agoautomake: remove stray up_to_date_p
Paul Eggert [Mon, 29 Jun 2020 22:18:20 +0000 (15:18 -0700)] 
automake: remove stray up_to_date_p

* lib/Automake/FileUtils.pm (up_to_date_p):
Don’t export up_to_date_p, which was removed in
2020-05-11T00:40:14Z!karl@freefriends.org.

5 years agotests: support -fno-common in vala-mix2 test.
Karl Berry [Sat, 6 Jun 2020 22:47:33 +0000 (15:47 -0700)] 
tests: support -fno-common in vala-mix2 test.

This change fixes https://bugs.gnu.org/41726.

* t/vala-mix2.sh: extern in .h, initialization in .c.
GCC 10 defaults to -fno-common.

5 years agoautomake: support AM_TESTSUITE_SUMMARY_HEADER override.
Karl Berry [Sat, 6 Jun 2020 22:42:54 +0000 (15:42 -0700)] 
automake: support AM_TESTSUITE_SUMMARY_HEADER override.

This change handles https://bugs.gnu.org/11745.

* lib/am/check.am (AM_TESTSUITE_SUMMARY_HEADER): new variable.
Default value is " for $(PACKAGE_STRING)", including quotes,
to keep the default output the same.
($(TEST_SUITE_LOG)): use it, unquoted.
* doc/automake.texi (Scripts-based Testsuites): document it.
* NEWS: mention it.
* t/testsuite-summary-header.sh: new test.
* t/list-of-tests.mk (handwritten_tests): add it.
* t/ax/testsuite-summary-checks.sh: fix typo.

5 years agodocs: promote Makefile snippets that work properly with make -n.
Akim Demaille [Fri, 29 May 2020 00:45:15 +0000 (17:45 -0700)] 
docs: promote Makefile snippets that work properly with make -n.

This change handles https://bugs.gnu.org/10852.

* doc/automake.texi (Multiple Outputs): Split commands than
reinvoke $(MAKE) to avoid file removals during dry runs.

5 years agodocs: forgot TAR in NEWS; fix " -- " in manual.
Karl Berry [Tue, 26 May 2020 01:30:53 +0000 (18:30 -0700)] 
docs: forgot TAR in NEWS; fix " -- " in manual.

* NEWS: it seems the TAR envvar was never mentioned in NEWS;
add it, back for 1.11.3 when it was apparently implemented.
* doc/automake.texi: consistently use "---" instead of " --".

5 years agodocs: TAR envvar overrides "tar" for make dist.
Karl Berry [Tue, 26 May 2020 01:20:01 +0000 (18:20 -0700)] 
docs: TAR envvar overrides "tar" for make dist.

This change finishes https://bugs.gnu.org/9822.

* doc/automake.texi (Basics of Distribution): mention that
environment variable TAR overrides "tar".

5 years agoautomake: new variable AM_DISTCHECK_DVI_TARGET to override "dvi".
Karl Berry [Sun, 17 May 2020 16:36:15 +0000 (09:36 -0700)] 
automake: new variable AM_DISTCHECK_DVI_TARGET to override "dvi".

This change fixes https://bugs.gnu.org/8289.

* lib/am/distdir.am (AM_DISTCHECK_DVI_TARGET): define as dvi.
(distcheck): use it, isntead of hardcoding dvi.
* lib/Automake/Variable.pm (%_silent_variable_override): add
AM_DISTCHECK_DVI_TARGET.
* t/distcheck-override-dvi.sh: new test.
* t/list-of-tests.mk (handwritten_TESTS): add it.
* doc/automake.texi (Checking the Distribution): document this.
(Third-Party Makefiles): explicitly mention that
EMPTY_AUTOMAKE_TARGETS is not a built-in or special name.
Various other index entries and wording tweaks.
* NEWS (Distribution): mention this.

5 years agoautomake: remove unused Automake::FileUtils::up_to_date_p function.
Karl Berry [Mon, 11 May 2020 00:40:14 +0000 (17:40 -0700)] 
automake: remove unused Automake::FileUtils::up_to_date_p function.

Per thread at:
https://lists.gnu.org/archive/html/automake-patches/2020-04/msg00000.html>
especially:
https://lists.gnu.org/archive/html/automake-patches/2020-05/msg00003.html

* lib/Automake/FileUtils.pm (up_to_date_p): remove.
Nothing in Automake itself uses this.  It is used in Autoconf's
autom4te utility, but Autoconf has its own copy, and the duplication
was impeding auto4mte development, as discussed in the thread above.
(While here, insert missing =over/=back to placate pod2text.)
* NEWS (Miscellanous changes): note this.

5 years agodocs: make dist implies make dvi.
Karl Berry [Fri, 8 May 2020 01:26:33 +0000 (18:26 -0700)] 
docs: make dist implies make dvi.

This change handles https://bugs.gnu.org/7994.

* doc/automake.texi (Preparing Distributions): make distcheck
runs make dvi.
(Auxiliary Programs) <texinfo.tex>: mention
that make dist runs make dvi, and therefore a TeX system is
required when Texinfo sources are present. Add @cmindex entries
for all auxiliary programs while we're here.

5 years agotests: TeX system required for two more tests.
Karl Berry [Fri, 8 May 2020 01:11:49 +0000 (18:11 -0700)] 
tests: TeX system required for two more tests.

* t/instdir-no-empty.sh (required): makeinfo tex texi2dvi dvips.
* t/txinfo-bsd-make-recurs.sh (required): likewise.

5 years agobug#40699: "dist Hook" documentation in manual is incorrect or unclear about write...
Vincent Lefevre [Thu, 23 Apr 2020 15:40:39 +0000 (17:40 +0200)] 
bug#40699: "dist Hook" documentation in manual is incorrect or unclear about write permissions

On 2020-04-20 14:59:00 -0600, Karl Berry wrote:
>     i.e. it does not change the permissions in order to make the removal
>     work recursively
>
> Right, I see it now. Had been testing the wrong thing.
>
> So, can you propose a specific change for the manual? -k

I think that it is sufficient to fix the example (the explanation
is just below). BTW, the second example is also incorrect.

commit a639e5b51cadbaff88ca4059b4db4571c811070c
Author: Vincent Lefevre <vincent@vinc17.net>
Date:   2020-04-23 17:33:54 +0200

    doc: fix dist-hook examples

5 years agocosmetics: spurious word in README, copyright year.
Karl Berry [Sat, 18 Apr 2020 21:06:59 +0000 (14:06 -0700)] 
cosmetics: spurious word in README, copyright year.

* README: delete spurious "that"; update copyright year end to 2020.
Original suggestion from Vincent Lefevre,
https://lists.gnu.org/archive/html/automake-patches/2020-04/msg00007.html

5 years agodocs: test-driver options do not accept =, update --help.
Samuel Tardieu [Thu, 9 Apr 2020 01:07:10 +0000 (18:07 -0700)] 
docs: test-driver options do not accept =, update --help.

This change fixes https://bugs.gnu.org/22445.

* lib/test-driver (print_usage): space after --test-name,
--log-file, --trs-file, not =. Also mention Automake as source.

5 years agocosmetics: typo in comment.
Samy Mahmoudi [Tue, 7 Apr 2020 01:25:24 +0000 (18:25 -0700)] 
cosmetics: typo in comment.

This change fixes https://bugs.gnu.org/32100.

* bin/aclocal.in (install_file): remove duplicate "the" in
"Using the real the destination file ...".

5 years agovala: more precise argument matching.
Colomban Wendling [Mon, 6 Apr 2020 00:35:51 +0000 (17:35 -0700)] 
vala: more precise argument matching.

This change fixes https://bugs.gnu.org/18734.

* bin/automake.in (lang_vala_finish_target): anchor option regexp
so that, e.g., an argument "vapi" does not match the option --vapi.
* NEWS: mention this (and preceding checklinkx change, sorry).

5 years agodoc: update urls in manual and include checklinkx script.
Karl Berry [Wed, 1 Apr 2020 01:21:22 +0000 (18:21 -0700)] 
doc: update urls in manual and include checklinkx script.

* doc/automake.texi: update many urls; http -> https,
search.cpan.org -> metacpan.org/pod/distribution, node names, etc.
Remove sourceware.org/cgi-bin/gnatsweb.pl and
miller.emu.id.au/pmiller/books/rmch/ as these are 404
and no good replacement is evident.
s/perl/Perl/ a couple times in text for good measure.
* contrib/checklinkx: new script, a small modification of
W3C checklink <https://validator.w3.org/checklink/docs/checklink.html>
(W3C license, which is free software), starting from version 4.81
installed from CPAN:
https://metacpan.org/pod/distribution/W3C-LinkChecker/bin/checklink.pod
* doc/local.mk (checklinkx): new target to invoke it, with variables.
* Makefile.am (EXTRA_DIST): distribute it.
* NEWS: mention all this.

5 years agotests: require etags for tags-lisp-space test.
Karl Berry [Wed, 25 Mar 2020 01:30:18 +0000 (18:30 -0700)] 
tests: require etags for tags-lisp-space test.

* t/tags-lisp-space.sh (required): set to etags.

5 years agoMerge branch 'master' of git.savannah.gnu.org:/srv/git/automake
Karl Berry [Tue, 24 Mar 2020 22:13:09 +0000 (15:13 -0700)] 
Merge branch 'master' of git.savannah.gnu.org:/srv/git/automake

5 years agodoc: forgot Python 3 NEWS entries.
Karl Berry [Tue, 24 Mar 2020 22:12:49 +0000 (15:12 -0700)] 
doc: forgot Python 3 NEWS entries.

* NEWS: item for Python 3 support in 1.16.2.

5 years agomaint: Post-release administrivia
Jim Meyering [Tue, 24 Mar 2020 01:43:29 +0000 (18:43 -0700)] 
maint: Post-release administrivia

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

5 years agoversion 1.16.2 v1.16.2
Jim Meyering [Sun, 15 Mar 2020 03:21:43 +0000 (20:21 -0700)] 
version 1.16.2

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

5 years agomaint: sync fdl.texi.
Karl Berry [Tue, 17 Mar 2020 01:29:59 +0000 (18:29 -0700)] 
maint: sync fdl.texi.

* doc/fdl.texi: sync with gnulib/doc/fdl.texi, for https://fsf.org
and some Texinfo fixes.

5 years agomaint: do not descend into unreadable test directories.
Karl Berry [Fri, 13 Mar 2020 01:01:56 +0000 (18:01 -0700)] 
maint: do not descend into unreadable test directories.

* maintainer/syntax-checks.mk (sc_tests_makefile_variable_order):
find t ! -perm o+r -prune, since some test directories
are intentionally unreadable.

5 years agodoc: gender tweak
Jim Meyering [Sat, 29 Feb 2020 16:11:23 +0000 (08:11 -0800)] 
doc: gender tweak

* HACKING: s/his/their/

5 years agomaint: run "make fetch" to update files from elsewhere
Jim Meyering [Sat, 29 Feb 2020 16:14:04 +0000 (08:14 -0800)] 
maint: run "make fetch" to update files from elsewhere

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

5 years agomaint: typo in comment.
Karl Berry [Wed, 11 Mar 2020 14:34:31 +0000 (07:34 -0700)] 
maint: typo in comment.

* t/CheckListOfTests.am (maintainer-check-list-of-tests): an -> and.

5 years agopython: support both Python 2 and 3 in py-compile
Karl Berry [Wed, 26 Feb 2020 02:07:15 +0000 (18:07 -0800)] 
python: support both Python 2 and 3 in py-compile

* lib/py-compile: check python major version and use imp
or importlib accordingly, plus related changes. Original
patch for Python 3 only from Gabriel Ganne at:
https://lists.gnu.org/archive/html/automake-patches/2019-07/msg00002.html

5 years agoconfigure: add flang compilers to _AM_COMPILER_CAN_FAIL
Paul Osmialowski [Sun, 16 Feb 2020 02:16:15 +0000 (18:16 -0800)] 
configure: add flang compilers to _AM_COMPILER_CAN_FAIL

* configure.ac (_AM_COMPILER_CAN_FAIL): add armflang and flang
(in two places). Original patch at:
https://lists.gnu.org/archive/html/automake-patches/2019-02/msg00001.html

5 years agocosmetics: improve error message when dependency tracking fails
Libor Bukata [Sat, 15 Feb 2020 02:36:49 +0000 (18:36 -0800)] 
cosmetics: improve error message when dependency tracking fails

This change fixes https://bugs.gnu.org/35848.

* m4/depout.m4: Add suggestion to try GNU make to the error message.
Original patch at
https://lists.gnu.org/archive/html/automake-patches/2019-05/msg00000.html

5 years agomaint: update lib/COPYING from canonical source.
Vincent Lefevre [Fri, 14 Feb 2020 02:26:40 +0000 (18:26 -0800)] 
maint: update lib/COPYING from canonical source.

* lib/COPYING: update from https://www.gnu.org/licenses/gpl-3.0.txt
(only change is to use https urls).

5 years agobuild: fix 'installcheck' target
Mathieu Lirzin [Tue, 4 Feb 2020 14:28:00 +0000 (15:28 +0100)] 
build: fix 'installcheck' target

* t/local.mk (installcheck-testsuite): Do not use 'pre-inst-env' script.
(AM_TESTS_ENVIRONMENT): Ensure that installed perl modules are found.

5 years agopython: properly uninstall __pycache__ in subdirectories
Lukas Fleischer [Thu, 30 Jan 2020 02:12:29 +0000 (18:12 -0800)] 
python: properly uninstall __pycache__ in subdirectories

This change finishes fixing automake bug#32088:
https://debbugs.gnu.org/32088

* lib/am/python.am (uninstall-%DIR%PYTHON): Uninstall
byte-compiled files in a '__pycache__' subdirectory
from sub/__pycache__/, not __pycache__/sub/.
(am__pep3147_tweak): prefix __pycache__ here, for both .pyc and .pyo.
https://lists.gnu.org/archive/html/automake-patches/2018-05/msg00000.html
* t/instmany-python.sh (limit): increase to 4500, following
Andreas Huettel, https://debbugs.gnu.org/32088#11.

5 years agotests: in python tests, do not require .pyo files (for python3)
Lukas Fleischer [Wed, 29 Jan 2020 02:32:20 +0000 (18:32 -0800)] 
tests: in python tests, do not require .pyo files (for python3)

This change partially fixes automake bug#32088:
https://debbugs.gnu.org/32088

* t/py-compile-basedir.sh: Remove all .pyo checks.
Also, in this test only, allow for either 4 or 6 files resulting
from compilation, as new-enough Python3 results in 6
(per Andreas Huettel, https://debbugs.gnu.org/cgi/bugreport.cgi?bug=32088#17)
* t/py-compile-basic.sh: Remove all .pyo checks.
* t/py-compile-destdir.sh: Likewise.
* t/py-compile-option-terminate.sh: Likewise.
* t/python-virtualenv.sh: Likewise.
* t/python10.sh: Likewise.
* t/python12.sh: Likewise.
* t/python3.sh: Likewise.

5 years agodoc: clarify build tree location
Karl Berry [Mon, 27 Jan 2020 02:06:04 +0000 (18:06 -0800)] 
doc: clarify build tree location

* doc/automake.texi (VPATH Builds): more words about the build
tree location. Suggestion from Jefferson Carpenter, 31 May 2018:
<https://lists.gnu.org/archive/html/automake-patches/2018-05/msg00003.html>

5 years agolint: make syntax-check same as maintainer-check.
Karl Berry [Mon, 20 Jan 2020 02:24:28 +0000 (18:24 -0800)] 
lint: make syntax-check same as maintainer-check.

* maintainer/syntax-checks.mk (syntax-check): new target,
same as maintainer-check. For consistency with many other
GNU packages.
(.PHONY): add here too.

5 years agotests: use find+rm, not perl, to remove temporary directories.
Karl Berry [Sun, 19 Jan 2020 02:06:23 +0000 (18:06 -0800)] 
tests: use find+rm, not perl, to remove temporary directories.

This change fixes automake bug#39078:
https://debbugs.gnu.org/39078

* t/ax/test-lib.sh (rm_rf_): run chmod -R u+rwx and rm -rf,
instead of calling our t/ax/deltree.pl script.  This reverses the
change of 2013-05-16.  It made sense to write and use deltree
at that point, but unfortunately as of perl-5.28.0
(File::Path.pm version 2.15), rmtree no longer removes a tree with
unreadable subdirectories, such as we (intentionally) have.  So we
might as well go back to rm -rf.  The unconditional recursive chmod
instead of the previously-used more complex find command will
hopefully prove portable.  See the bug report for more details.

Our deltree.pl is not used for anything else, but nevertheless
leaving it in our source tree for now, for ease of reversion
and comparison.

5 years agotests: use skip_ consistently.
Karl Berry [Thu, 9 Jan 2020 02:21:26 +0000 (18:21 -0800)] 
tests: use skip_ consistently.

* t/lisp-loadpath.sh: use skip_ instead of exit 77;
also, notice and reset if the EMACS envvar is simply "t".
* t/uninstall-fail.sh: use skip_ instead of the undefined skip.

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

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

5 years agoautomake: Support byte compilation in older Emacsen
Karl Berry [Sun, 5 Jan 2020 01:06:40 +0000 (17:06 -0800)] 
automake: Support byte compilation in older Emacsen

* lib/am/lisp.am (am__emacs_byte_compile_setup) [FIRST]: define
new make variable, to use byte-compile-dest-file-function if
available, else byte-compile-dest-file.
(.el.elc): use it.
* t/lisp-loadpath.sh: skip test if emacs version is <= 23,
since their -L ordering is backwards.
* NEWS: update.

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

5 years agomaint: make maintainer-check tests pass
Jim Meyering [Mon, 23 Dec 2019 20:13:26 +0000 (12:13 -0800)] 
maint: make maintainer-check tests pass

* maintainer/syntax-checks.mk (sc_sanity_gnu_grep): Remove
NUL byte from grep output, to avoid shell diagnostic about
"NUL byte suppressed from expansion."
(automake_diff_no, aclocal_diff_no): Adjust number of expected
diff lines.

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

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

5 years agoautomake: Ensure space after $(LISP) in tags dependencies.
Karl Berry [Tue, 17 Dec 2019 02:45:22 +0000 (19:45 -0700)] 
automake: Ensure space after $(LISP) in tags dependencies.

This change fixes automake bug#38139.

* bin/automake.in (handle_tags): Concatenate with space in " @config".
* t/tags-lisp-space.sh: New test.
* t/list-of-tests.mk (handwritten_TESTS): Add it.

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

Add support for using the zstd compression algorithm.
Use a default compression setting of -19, and ".zst" as the suffix.

* bin/automake.in (handle_dist): Add zstd to the list of known dist-
suffixes.
(preprocess_file): Map ZSTD to dist-zstd.
* doc/automake.texi: Document the new option.
* lib/Automake/Options.pm (_is_valid_easy_option): Add dist-zstd.
* lib/am/distdir.am (dist-zstd): New rule.
(?ZSTD?DIST_TARGETS): Add definition.
(distcheck): Add a case for *.tar.zst*.
* t/dist-formats.tap: Add tests.
* NEWS: Mention the change.

5 years agoconfig: add msys support
Paul Eggert [Mon, 11 Nov 2019 20:07:08 +0000 (12:07 -0800)] 
config: add msys support

Requested by Arnold Robbins in:
https://lists.gnu.org/r/bug-gnulib/2019-11/msg00008.html
* lib/ar-lib, lib/compile (func_file_conv):
Treat msys like cygwin.

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

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

5 years agoautomake: do not require @setfilename in Texinfo files
Gavin Smith [Mon, 26 Aug 2019 04:07:58 +0000 (21:07 -0700)] 
automake: do not require @setfilename in Texinfo files

Texinfo no longer requires a @setfilename directive in each
.texi file, so automake now also relaxes its restriction.
* bin/automake.in (scan_texinfo_file): Derive name of info file from
name of input file if no @setfilename line occurs in the file.
* t/txinfo-no-setfilename.sh: New test.
* t/list-of-tests.mk: Add it.
* NEWS: Mention it.

Fixes automake bugs #36921 and #34201.

5 years agoinstall-sh: support -s with read-only source
Paul Eggert [Mon, 26 Aug 2019 01:51:26 +0000 (18:51 -0700)] 
install-sh: support -s with read-only source

Problem reported by Karl Berry in:
https://lists.gnu.org/r/bug-gnulib/2019-08/msg00067.html
* lib/install-sh: If -s is given, create the temporary file
with $cp_umask so that ‘strip’ can write to it.

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

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

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

This change fixes automake bug#32150.

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

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

This change fixes automake bug#31222.

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

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

7 years agotest-driver.scm: Add "--coverage" option
Mathieu Lirzin [Sun, 25 Mar 2018 05:29:48 +0000 (07:29 +0200)] 
test-driver.scm: Add "--coverage" option

* contrib/test-driver.scm: When 'coverage' option is enabled, run tests
in the debug vm and trace coverage data.
(%options): Add 'coverage'.
(show-help): Display option.

7 years agotest-driver.scm: Don't guess script name from "--test-name"
Mathieu Lirzin [Sat, 24 Mar 2018 22:42:16 +0000 (23:42 +0100)] 
test-driver.scm: Don't guess script name from "--test-name"

'primitive-load' is used instead of 'load-from-path' since the script is
given as a relative file name.  For unknown reason, using 'load' fails
with GNU Mcron test suite when running 'make distcheck'.

* contrib/test-driver.scm: Get the actual script name directly from the
command line.  Handle the case where that argument is missing.

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

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

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

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

This a follow-up to commit 6bab5b26a1241b0e0edd058d2a921989f9a1747c.

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

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

7 years agobin: Rely only on the shebang line
Mathieu Lirzin [Tue, 20 Feb 2018 22:18:09 +0000 (23:18 +0100)] 
bin: Rely only on the shebang line

Previously ‘automake’ and ‘aclocal’ were handling the case of being
interpreted as a Shell script by using a hack leveraging the fact that
Shell and Perl has a compatible syntax intersection allowing those
scripts to launch ‘perl’ from the shell.

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

7 years agomaint: Post-release administrivia
Mathieu Lirzin [Sun, 11 Mar 2018 22:24:55 +0000 (23:24 +0100)] 
maint: Post-release administrivia

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

7 years agoversion 1.16.1 v1.16.1
Mathieu Lirzin [Sun, 11 Mar 2018 21:24:54 +0000 (22:24 +0100)] 
version 1.16.1

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

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

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

7 years agoinstall-sh: avoid (low risk) race in "/tmp"
Pavel Raiskup [Sun, 11 Mar 2018 20:47:54 +0000 (21:47 +0100)] 
install-sh: avoid (low risk) race in "/tmp"

Ensure that nobody can cross privilege boundaries by pre-creating
symlink on '$tmpdir' destination directory.

Just testing 'mkdir -p' by creating "/tmp/ins$RANDOM-$$/d" is not safe
because "/tmp" directory is usually world-writeable and
"/tmp/ins$RANDOM-$$" content could be pretty easily guessed by
attacker (at least for shells where $RANDOM is not supported).  So, as
the first step, create the "/tmp/ins$RANDOM-$$" without -p.  This step
would fail early if somebody wanted catch us.

Systems that implement (and have enabled) fs.protected_symlinks kernel
feature are not affected even without this commit.

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

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

Signed-off-by: Mathieu Lirzin <mthl@gnu.org>
7 years agoautomake: Don't rely on List::Util to provide 'none'
Mathieu Lirzin [Sat, 3 Mar 2018 22:50:10 +0000 (23:50 +0100)] 
automake: Don't rely on List::Util to provide 'none'

This change fixes automake bug#30631.

This removes the use of List::Util which is not supported by Perl 5.6,
by reimplementing the 'none' subroutine.

* lib/Automake/General.pm (none): New subroutine.
* bin/automake.in (handle_single_transform): Use it.
* t/pm/General.pl: New test.
* t/list-of-tests.mk (perl_TESTS): Add it.
* NEWS: Update.

7 years agopython: Support future python version up to 3.9
Mathieu Lirzin [Sat, 3 Mar 2018 11:01:13 +0000 (12:01 +0100)] 
python: Support future python version up to 3.9

This change fixes automake bug#28160.

Since AM_PYTHON_PATH macro takes no maximum version argument, there is
no need to generate _AM_PYTHON_INTERPRETER_LIST dynamically, like what
was previously done by the reverted commit
1d60fb72168e62d33fe433380af621de64e22f23.  We could rely on M4 to
generate this list statically however this is likely to be a complex
solution that would not improve maintainability.

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

7 years agomaint: write-file-hooks -> before-save-hook
Paul Eggert [Wed, 7 Mar 2018 04:13:32 +0000 (20:13 -0800)] 
maint: write-file-hooks -> before-save-hook

write-file-hooks is obsolete since Emacs 22.1 (released June 2007) and
it's time to use the recommended replacement.
Problem reported by Glenn Morris in:
https://lists.gnu.org/r/bug-gnulib/2018-03/msg00008.html
* contrib/tap-driver.pl, lib/compile, lib/depcomp, lib/install-sh:
* lib/mdate-sh, lib/missing, lib/mkinstalldirs, lib/py-compile:
* lib/tap-driver.sh, lib/test-driver, lib/ylwrap:
Update hook usage for files where Automake is the canonical source.

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

This reverts commit 1d60fb72168e62d33fe433380af621de64e22f23.

7 years agomaint: Post-release administrivia
Mathieu Lirzin [Sun, 25 Feb 2018 21:28:21 +0000 (22:28 +0100)] 
maint: Post-release administrivia

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

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