| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
This update has been made with 'make update-copyright'.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
This update has been made with 'make update-copyright'.
|
|
|
|
| |
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
|
|
| |
We've been in 2014 already for few months now...
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It gives the impression that they are directly runnable, as with
"./t/foo.sh", but it has been a while since that was the case. Today,
tests are runnable only through "make check" or "./runtest".
This change is for the 'micro' branch (automake 1.13.2a). It will
soon be followed by similar patches for the 'maint' branch (automake
1.13a) and the 'master' branch (automake 1.99a).
* t/*.sh, t/*.tap: Remove executable bit.
* maint.mk (sc_tests_executable): Remove.
(syntax_check_rules): Adjust.
* gen-testsuite-part: Set permissions of generated tests to
'444' (-r--r--r--), rather than 555 (-r-xr-xr-x).
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
| |
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a follow-up to today's commit v1.12.4-22-g0610fc8,
"tests: prepare to move ./defs to t/ax/test-init.sh"
* All tests: To run the common setup, use the command:
. test-init.sh
instead of the older, "historical" one:
. ./defs || exit 1
Note that the "|| exit 1" wasn't really useful, since the 'errexit'
shell flag is in effect in both './defs' and 'test-init.sh', and all
the known shells that are good enough to run the automake testsuite
do automatically exit with error when a sourced file cannot be found
(at least, they do so in non-interactive mode, which is the only
mode that concerns us in the testsuite).
* t/ax/tap-summary-aux.sh, t/ax/testsuite-summary-checks.sh: Likewise.
* gen-testsuite-part: Do the same in the generated tests.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The /bin/sh shell on Solaris is dumb enough not to set the exit
status to 127 after the execution of a non-existing command is
attempted:
$ /bin/sh -c 'nonesuch'; echo stat = $?
/bin/sh: nonesuch: not found
stat = 1
This means that the missing script, when run through that shell,
cannot discriminate between a real failure of a maintainer tool
and a failure due to its absence. This is not a big deal in
practice (especially because all the 'missing' invocations in
our Makefiles are done with $(SHELL), and that is almost surely
set by configure to a proper POSIX shell), but was causing an
annoying failure in our testsuite. Fix it.
* t/missing3.sh: If 'missing' is run with a /bin/sh shell suffering
from the just-described bug, skip the check that would spuriously
fail due to that bug.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|
|
|
|
|
|
|
| |
* t/missing3.sh: Be sure to use 'run_cmd' also in the first invocation
of 'missing', to ensure the stderr will actually be saved in a file we
can later grep.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
|\
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* maint:
tests: simpler workaround for shells losing the exit status in exit trap
+ Extra non-trivial edits:
* Several tests: Adjusted to use 'exit' rather than 'Exit'.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Now that we can assume our tests are run by a decent POSIX shell, we
can simplify our workaround aimed at having the exit status propagated
correctly to the code in the exit trap. Unfortunately, we cannot
dispense with such a workaround altogether, because it's still required
by some shells we need to support (at least Solaris 10 /bin/ksh and
/usr/xpg4/bin/sh).
For more information about the need of that workaround, see the entry
about 'trap' in the section "Limitations of Shell Builtins" in the
Autoconf manual:
<http://www.gnu.org/software/autoconf/manual/autoconf.html#trap>
The new workaround has been tested successfully with the following
shells:
- Bash 4.1
- Bash 3.2
- Bash 3.0
- Bash 2.05b
- dash 0.5.5.1
- dash 0.5.2
- AT&T Ksh 93u (from official Debian package)
- MirBSD Korn Shell 40.2 (from official Debian package)
- Solaris 9, 10 and 11 /bin/ksh
- Solaris 9, 10 and 11 /usr/xpg4/bin/sh
- NetBSD 5.1 /bin/sh
- NetBSD 5.1 /bin/ksh
* t/ax/test-init.sh (Exit): Rename ...
(_am_exit): ... like this.
(exit): New alias for '_am_exit'. We cannot simply redefine 'exit'
as a shell function, because some shells (dash 0.5.5.1, Solaris 10
/bin/ksh and /usr/xpg4/bin/sh) do not allow it.
(_am_exit, trap): Add extra escaping for 'exit' calls, to ensure we
really invoke the 'exit' builtin and not our alias with the same
name.
* configure.ac: Check that the shell selected to run our testsuite
supports aliases named like shell builtins.
* t/REAMDE: Adjust.
* All tests: Adjust, by simply using 'exit' instead of 'Exit'.
* t/self-check-explicit-skips.sh: Adjust: the first usage of 'exit'
after it has been redefined as an alias must be on a new line w.r.t.
that where the alias is defined, in order for the redefinition to be
honored.
* syntax-checks.mk (sc_tests_Exit_not_exit): Delete.
(sc_tests_exit_not_Exit): New.
(syntax_check_rules): Adjust.
(sc_tests_automake_fails): Simplify the recipe a little.
* Several tests: Remove now useless spurious quoting once required
to placate the 'sc_tests_Exit_not_exit' maintainer check.
* gen-testsuite-part: Likewise. Also, avoid uses of 'Exit' in the
generated scripts.
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>
|
|
When we (soon) convert the Automake testsuite to a non-recursive
make setup, we'll have to fix the entries of $(TESTS) to be
prepended with the subdirectory they are in; this will increase
the length of $(TESTS), and thus increase the possibility of
exceeding the command-line length limits on some systems (most
notably, MinGW/MSYS). See automake bug#7868 for more information.
Thus we rename the 'tests/' subdirectory to 't/', and each 'x.test'
script in there to 'x.sh'; this way, the $(TESTS) entry 'foo.test'
will become 't/foo.sh', which have the same number of characters.
* tests/: Rename ...
* t/: ... to this.
* t/*.test: Rename ...
* t/*.sh: ... to this.
* t/.gitignore: Removed as obsolete.
* t/defs: Adjust.
* t/gen-testsuite-part: Likewise.
* t/list-of-tests.mk: Likewise.
* t/ccnoco.sh: Likewise.
* t/ccnoco3.sh: Likewise.
* t/self-check-cleanup.tap: Likewise.
* t/self-check-dir.tap: Likewise.
* t/self-check-me.tap: Likewise.
* t/self-check-reexec.tap: Likewise.
* README: Likewise.
* bootstrap: Likewise
* configure.ac: Likewise.
* Makefile.am: Likewise.
* .gitignore: Likewise.
* syntax-check.mk: Likewise.
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
|