This changes configure semantics to fail if no TLS library
is found and no --with-ssl=none was explicitly requested.
It protects users from accidentally building without TLS.
* .gitlab-ci.yml: Tarball build using --with-ssl=none.
* configure.ac: Stop with error if no TLS was found and --with-ssl
was not used.
* tests/libtest.c: Fix issues with conditionally declared variables.
This patch modifies `configure.ac` to support GnuTLS, OpenSSL and wolfSSL as the SSL/TLS backends.
Either of these can be enabled at compile time the `configure` switch `--with-ssl`. Example:
./configure --with-ssl=openssl
If `--with-ssl` is omitted, the default behavior will be to build with GnuTLS if available, and without
TLS if not. TLS can be explicitly disabled with `--without-ssl`.
Regardless of which specific backend has been selected, the TLS and OCSP tests will always be built with GnuTLS,
as that is the only backend currently supported in the test suite.
It renames the constant `HAVE_GNUTLS_OCSP_H` to a more generic `WITH_OCSP`, that captures
the notion that OCSP has been enabled at compile-time, hiding the specific backend.
Changed files
* configure.ac: honor --with-ssl option, but keep on testing for GnuTLS
for the test suite.
* libwget/ssl_gnutls.c: replace HAVE_GNUTLS_OCSP_H with WITH_OCSP
* libwget/ssl_openssl.c: likewise
* tests/libtest.c: replace HAVE_GNUTLS_OCSP_H with WITH_OCSP.
Check for WITH_GNUTLS_IN_TESTSUITE.
* tests/Makefile.am: add tests/test-interrupt-response test
* tests/libtest.c (_callback_interruptable, _answer_to_connection):
add interruptable response callback, enable in wget_test_url_t
settings
* tests/libtest.h: added interrupt_response_mode and
interrupt_response_after_nbytes to wget_test_url_t
* tests/test-interrupt-response.c: add test for interruptable
responses and interrupt of responses while timestamping active
All the tests in tests/ are part of Wget2 the binary, not libwget. Fix
the license and copyright information accordingly.
* tests/libtest.c: libwget -> Wget. LGPLv3+ -> GPLv3+
* tests/test--accept.c: Same
* tests/test--filter-mime-type.c: Same
* tests/test--follow-tags.c: Same
* tests/test--https-enforce-hard1.c: Same
* tests/test--https-enforce-hard2.c: Same
* tests/test--https-enforce-hard3.c: Same
* tests/test--https-enforce-soft1.c: Same
* tests/test--https-enforce-soft2.c: Same
* tests/test--https-enforce-soft3.c: Same
* tests/test--page-requisites.c: Same
* tests/test--post-file.c: Same
* tests/test--save-content-on.c: Same
* tests/test--spider-r.c: Same
* tests/test-E-k.c: Same
* tests/test-auth-basic.c: Same
* tests/test-auth-digest.c: Same
* tests/test-bad-chunk.c: Same
* tests/test-base.c: Same
* tests/test-c-r.c: Same
* tests/test-chunked.c: Same
* tests/test-compression.c: Same
* tests/test-cut-dirs.c: Same
* tests/test-cut-get-vars.c: Same
* tests/test-directory-clash.c: Same
* tests/test-ftp.c: Same
* tests/test-ftps.c: Same
* tests/test-gpg-bad.c: Same
* tests/test-gpg-invalid.c: Same
* tests/test-gpg-missing.c: Same
* tests/test-gpg-save-failed.c: Same
* tests/test-gpg-styles.c: Same
* tests/test-gpg-valid.c: Same
* tests/test-gpg-verify-no-file.c: Same
* tests/test-gzip.c: Same
* tests/test-i-http.c: Same
* tests/test-i-https.c: Same
* tests/test-idn-cmd.c: Same
* tests/test-idn-meta.c: Same
* tests/test-idn-robots.c: Same
* tests/test-include-and-exclude-directories.c: Same
* tests/test-iri-disabled.c: Same
* tests/test-iri-forced-remote.c: Same
* tests/test-iri-list.c: Same
* tests/test-iri-percent.c: Same
* tests/test-iri-subdir.c: Same
* tests/test-iri.c: Same
* tests/test-k.c: Same
* tests/test-limit-rate-http2.c: Same
* tests/test-limit-rate.c: Same
* tests/test-meta-robots.c: Same
* tests/test-metalink.c: Same
* tests/test-np.c: Same
* tests/test-ocsp-server.c: Same
* tests/test-ocsp-stap.c: Same
* tests/test-p-nc.c: Same
* tests/test-parse-css.c: Same
* tests/test-parse-html-css.c: Same
* tests/test-parse-rss.c: Same
* tests/test-plugin-dummy.c: Same
* tests/test-plugin-failure.c: Same
* tests/test-plugin-interception.c: Same
* tests/test-plugin-nonexistance.c: Same
* tests/test-plugin.c: Same
* tests/test-post-handhshake-auth.c: Same
* tests/test-redirection.c: Same
* tests/test-restrict-ascii.c: Same
* tests/test-robots.c: Same
* tests/test-stats-dns.c: Same
* tests/test-stats-ocsp.c: Same
* tests/test-stats-server.c: Same
* tests/test-stats-site.c: Same
* tests/test-stats-tls.c: Same
* tests/test-timestamping.c: Same
* tests/test-unlink.c: Same
* tests/test-wget-1.c: Same
* tests/libtest.h: Add declaration of wget_test_set_executable()
* tests/libtest.c: Add definition of wget_test_set_executable(),
add global variable 'global_executable',
(wget_test): Use 'global_executable' to initialize 'executable',
(wget_test): Use 'executable' if set
* cfg.mk: Multiple changes.
(sc_GPL_version): Don't exclude all files when only one has a parsing
issue
(sc_po_check): Tests should always output English. Their output is for
developers, not users
(sc_prohibit_magic_number_exit): tests/test-plugin.c has a parsing
issue that has been reported to gnulib. Others should be checked.
(sc_trailing_blank): Fixed the relevant files instead of ignoring them
(sc_two_space_separator_in_usage): Doesn't seem to trigger on removal
(sc_prohibit_empty_lines_at_EOF): Same
(sc_prohibit_sprintf): Same
(sc_prohibit_printf): Re-arrange within file
(sc_prohibit_free): Same
(sc_prohibit_alloc): Same
(sc_gettext_printf): Same
* docs/DoxygenLayout.xml: Remove trailing whitespaces
* docs/libwget.doxy.in: Same
* tests/libtest.c: Don't internationalize test suite strings
* tests/test-*.c: Use EXIT_FAILURE and EXIT_SUCCESS instead of 1 and 0