Most of these spelling fixes are just to comments and documentation.
However, some affect tests as follows:
* t/cond36.sh (tparse.h): Fix misspelling of dependency.
* t/disthook.sh: Fix misspelling of file.
* t/help3.sh: Fix misspelling of long option.
* t/instdir-ltlib.sh: Fix misspellings of macro names.
This causes the test to fail, so someone with libtool
expertise needs to look into this.
* t/tap-no-spurious-numbers.sh (highno): Fix misspelling of shell var.
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.
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.
* lib/missing: Here, in a message printed to the user.
* THANKS: Update.
Copyright-paperwork-exempt: yes
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* lib/missing, t/comment7.sh, t/objc-flags.sh, t/objcxx-flags.sh,
t/perf/testsuite-summary.sh, t/self-check-explicit-skips.sh: Here.
Prompted by a report from Karl Berry.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Commit v1.12.1-87-ga22717d of 2012-06-21 ("missing: do not touch
timestamps; only warn for out-of-date files") has removed the '--run'
option, since our new preferred calling conventions now imply it; but
if a newer 'missing' is mixed with an already built project that used
an older Automake version (this happened in practice for GNU m4; see:
<http://lists.gnu.org/archive/html/bug-m4/2012-06/msg00001.html>), then
the 'Makefile' in that project will fail due to passing the '--run'
option when trying to bring the project up-to-date.
* lib/missing: Parse and ignore '--run'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
The use of 'configure.in' as autoconf input now deprecated the development
versions of both Automake and Autoconf, and we'd like to speed up its
demise.
* missing: In the advice displayed in case some autotools are detected to
be missing, refer to 'configure.ac' unconditionally, instead of referring
to 'configure.in' when that file exists in the current directory (and no
'configure.ac' does).
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* lib/missing: Try to point the user to the home page of such tools
where possible. Also, make clear that some tools (e.g., aclocal or
autoheader) are distributed as part of bigger projects (resp. automake
and autoconf, in those cases). While at it, refactor and re-format
the existing code heavily, in particular introducing
(give_advice): ... this new function in the process.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
Before this change, the missing script had a twofold role:
- it warned the user if some required maintainer tools was missing,
or too old;
- in such a case, it tried to "fix" the timestamp of the files that
should have been rebuilt by that tool (without actually updating
the file contents, of course), to allow the build to continue.
The second capability used to be quite useful in the days when most
projects committed files generated by maintainer-only tools in their
VCS repository (today the trend is not to keep such generated files
VCS-committed anymore). In such a setup, the "timestamp-fixing"
capability of 'missing' was quite useful, in that it allowed users
lacking some required maintainer tool to build from a VCS checkout
in the face of skewed timestamps (as could have been caused by
"cvs update" or "git checkout").
But then, when the automatic remake rules kicked in due to the
generated files being *actually out-of-date* (e.g., because the user
had modified 'configure.ac' but lacked a modern-enough autoconf to
rebuild it), that behaviour of 'missing' caused the same problem that
plagued AM_MAINTAINER_MODE; i.e., the user would get non-dependable
builds and inconsistent statuses of the build tree -- changes to
source files don't reflect on generated files, and this can be very
confusing and cause hard-to-spot errors).
So we now believe that the best approach to deal with timestamp-related
issues is not to have 'missing' to "automagically" try to resolve
them (with all the risk and brittleness entailed), but rather to
suggest those projects still keeping generated files committed in their
VCS to provide a proper (say) 'fix-timestamp.sh' script that touches
the timestamp of the checked-out files, to ensure no spurious rebuild
will be triggered. As a bonus, such a script can be more aware of the
particularities, nooks and corner cases of a project, and thus more
reliable than the old 'missing' script.
An example of this approach is offered by GNU awk (release 4.0.1, Git
tag 'gawk-4.0.1', commit b85b04e8). The GNU awk maintainers commit
the Autotools-generated files (configure, Makefile.in, etc.) and other
generated in the project's Git repository, but offer a useful script
'bootstrap.sh' that fixes the timestamps of those files, to ensure no
useless remake is triggered in a freshly cloned repository:
#! /bin/sh
# bootstrap.sh --- touch relevant files to avoid out-of-date issues
# in Git sandboxes
touch aclocal.m4
find awklib -type f -print | xargs touch
sleep 1
touch configure
sleep 2
touch configh.in
sleep 1
touch test/Maketests
find . -name Makefile.in -print | xargs touch
touch doc/*.info
touch po/*.gmo
touch po/stamp-po
touch awkgram.c
touch command.c
touch version.c
A similar, simplified script is also reported as an example in the
manual.
* NEWS: Update.
* doc/automake.texi (Auxiliary Programs, maintainer-mod): Update.
(CVS): Do not suggest that 'missing' can "automagically" fix botched
timestamp due to a "cvs update"; this isn't true anymore. Give an
example of a custom 'fix-timestamp.sh' script that can be used to
obtain the same effect (in a slightly more laborious but also more
explicit and less brittle way). Fix some minor typos and improper
wordings while we are at it.
* lib/missing: Basically rewritten to implement the new semantics.
As a side effect (one of the several), the '--run' option is no more
required nor recognized.
* m4/missing.m4 (AM_MISSING_HAS_RUN): Enhance the test on '$MISSING'
to ensure it actually provides the new semantics (by trying the new
"witness" option '--is-lightweight').
* lib/am/distdir.am (distdir): No need anymore to check for "bad"
distributed man pages that were actually dummy stubs generated by
the 'missing' script.
* t/missing4.sh: Rename ...
* t/remake-aclocal-version-mismatch.sh: ... like this.
* t/missing2.sh: Rename ...
* t/missing-version-mismatch.sh: ... like this, and adjust to the
new semantics.
* t/missing3.sh: Adjust to the new semantics.
* t/man4.sh: Remove as obsolete.
* t/missing.sh: Likewise.
* t/missing5.sh: Likewise.
* t/txinfo30.sh: Likewise.
* t/man6.sh: Adjust grepping checks.
* t/remake6.sh: Likewise.
* t/list-of-tests.mk: Adjust.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* missing (autoheader*): Do not look only for AC_CONFIG_HEADER when
grepping configure.ac, but also for AC_CONFIG_HEADERS: the latter has
been preferred to the former by several years now in Autoconf.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
* missing (autoheader*): Do not look for AM_CONFIG_HEADER when
grepping configure.ac: it is not supported anymore (has been in
fact deleted in commit v1.12-15-gd2ca168 of 2012-04-27, "m4: delete
several obsolete macros").
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
This change follows up on recent changes to the GNU coding standards.
They now suggest that we should quote 'like this' or "like this" instead
of `like this'; see:
<http://www.gnu.org/prep/standards/html_node/Quote-Characters.html>.
Gnulib is being changed accordingly, and Gnulib imports some files
directly from Automake master, so change those files to use the
straight-up style. This affects only commentary and quoting in
diagnostics.
The `missing' script is meant to allow non-developers to build a
package in the face of slightly-skewed timestamps (as might happen
e.g. when the package is obtained from a VCS checkout rather than
from a distribution tarball). It is *not* the business of the
`missing' script to try to provide wrappers for all the maintainer
tools (in this case, to tool being a decent tar program). Such
wrapping of `tar' was not only inappropriate, but it was also
preventing the legitimate overriding (at make runtime) of the
`tar' program used in the creation of the distribution tarballs.
See also automake bug#9822.
* lib/missing: Don't try to specially wrap `tar' invocations
anymore.
* m4/tar.m4 (_AM_PROG_TAR): In the definitions of the `AMTAR'
variable, do not wrap the `tar' invocation with the `missing'
script anymore. Instead, allow the user to override the intended
tar program at make runtime, by defining the `TAR' environment
variable.
[$1 == v7]: Similarly for the definitions of the `am__tar' and
`am__untar' variables. Since we are at it, don't make them depend
anymore on the definition of the obsolescent `AMTAR' variable.
* NEWS: Update.
* tests/missing-tar.test: Remove, it's obsolete.
* tests/tar-override.test: New test.
* tests/Makefile.am (TESTS): Update.
Reported by Akim Demaille.
* lib/missing: If the default `tar' program fails with the given
arguments, and GNU tar is not available, don't try to re-run the
default `tar' with a munged command line (e.g., ditching possibly
unportable options), as that could be subtly alter the intended
semantics (and maybe even create a somewhat corrupted tarball).
Also, it's worth noting that the main purpose of the `missing'
script is to allow a non-developer to build the package in the
face of slightly-skewed timestamps, not to provide wrappers for
all the maintainer tools -- so we don't have to try too hard
when `missing' is just called to wrap `tar'.
* tests/missing-tar.test: New test.
* tests/Makefile.am (TESTS): Add it.
* lib/missing: If the code trying to run GNU tar is reached, it
means that the previous attempt to run the default tar program
has failed, very likely producing some error message. At this
point, just running GNU tar without further comments might be
confusing.
* lib/missing: If the code trying to run GNU tar is reached,
don't continue if the invoked GNU tar program fails, as there
is little point in doing so (and can even be confusing and
counter-productive).
* lib/missing: Some shells, such as Solaris or FreeBSD /bin/sh,
warn about missing programs before performing redirections.
Therefore, where we have to silently check whether a program
exists, perform redirections on a subshell.
Remove redundant uses of double-quotes in variable definitions.
Delete an extra blank line.
Automake will move to GPLv3+ once the Exception statement has
been rewritten to use the new GPLv3 exception language. This
change does not impact the COPYING file that may be installed
by `automake --add-missing'.
* COPYING: Revert to GPLv2. All uses changed.
* NEWS: Update.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
Previously, `missing help2man' would create a missing man page
containing an error message, and exit 1. This does not play
well with `make': the next run will see this particular man page
as being up to date, and will only error out on the next
generated man page, if any; repeat until all pages are done.
This patch changes `missing' to exit successfully in this case,
but `make dist' will ensure that no such man pages are packaged.
* lib/missing: Exit successfully even if we create a replacement
page due to missing help2man.
* automake.in (make_paragraphs): Define %HAVE-MANS% to be true
if this makefile deals with man pages.
* lib/am/distdir.am (distdir): If %INSTALL-MAN% and %HAVE-MANS%,
check that no man page in $(MANS) contains the replacement text
from `missing'.
* tests/man4.test: New test.
* tests/Makefile.am: Update.
* NEWS: Reorder a bit, update.
* THANKS: Update.
Report by Werner Lemberg and Karl Berry.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* lib/missing: Ignore prefixes of `gnu-', `gnu', and `g' when
testing for known programs; also, ignore suffixes.
* tests/missing.test: Amend test.
* NEWS, THANKS: Update.
Report by Tim Rice.
Signed-off-by: Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
(autom4te, help2man, makeinfo): Use them. Unifies detection of
`-o FILE', `--output FILE', `--output=FILE', stricter regex.
Fixes `missing' to detect `--output' for help2man. Fixes
PR automake/483. Report by Dennis J. Linse.
(autom4te): Document in `missing --help'.
* THANKS: Update.
Do not backup any file if makeinfo is not installed.
* lib/missing (makeinfo): Do not touch a missing info file.
* tests/txinfo30.test: New file.
* tests/Makefile.am (TESTS): Add txinfo30.test.
Report from Bob Proulx.