Recently, one of my projects failed on Travis. This was because Travis still uses Ubuntu Xenial (16.04) as their default build environment, and the prebuilt Zola executable from GitHub releases uses another version of OpenSSL as the build environment provides. This is somewhat contrary to the batteries-included approach of Zola.
This is why I am proposing to change this dependency. It is coming from reqwest, which offers the following cargo features:
-
default-tls
: Usesnative-tls
, default and currently used by Zola. -
default-tls-vendored
: Usesnative-tls/vendored
, which builds the SSL library from source, removing the runtime dependency. -
rustls-tls
: Uses Rustls, which also eliminates runtime dependencies.
Maybe one could just offer all these features itself in Zola, or a selection.
Rustls does not support as many encryption protocols as the native SSL libraries, so it may not be suitable when the linkchecker tries to reach a site that still uses outdated encryption.
Either way, at least the GitHub releases binaries should be as portable as possible, which would be achieved using one of the last two options.