-
Notifications
You must be signed in to change notification settings - Fork 145
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
core: Deny building with OpenSSL 3.0 (#872)
* soter: Fail the build with OpenSSL 3.0 As I said in the comment, it's pretty risky at the moment to build Themis against OpenSSL 3.0, so let's explicitly disallow it. This applies to previously released versions too, but I can't be bothered to issue a hotfix for that. Binary releases for Linux are not affected (they still use OpenSSL 1.1), Homebrew release for macOS will be patched up to use OpenSSL 1.1 separately, and whoever is brave enough to build Themis from source manually -- you will be warned in docs. * CI: Verify that OpenSSL 3.0 build fails Throw in an extra step to ensure that OpenSSL 3.0 is indeed failing the build. At the moment only macOS Homebrew seems to have OpenSSL 3.0 available, so test with that. Linux distros are currently working on transitions too, but testing just one OS should be fine at the moment. * changelog: Mention compilation error in the changelog The intention here is that if we release Themis 0.14 as is, without OpenSSL 3.0 support, then people should be aware of this #error directive that will fail their builds. * Makefile: Allow to opt-in OpenSSL 3 usage for experts Provide a not-really-documented way to build Themis with OpenSSL 3 by setting environment variable WITH_EXPERIMENTAL_OPENSSL_3_SUPPORT.
- Loading branch information
Showing
4 changed files
with
29 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -46,7 +46,7 @@ jobs: | |
run: | | ||
if [[ "$(uname)" = "Darwin" ]] | ||
then | ||
brew install cmake ninja [email protected] | ||
brew install cmake ninja [email protected] openssl@3 | ||
else | ||
sudo sh -c 'echo "DEBIAN_FRONTEND=noninteractive" >> /etc/environment' | ||
sudo apt update | ||
|
@@ -74,6 +74,19 @@ jobs: | |
- name: Run test suite (WITH_SCELL_COMPAT) | ||
if: always() | ||
run: make test BUILD_PATH=build-compat | ||
- name: Ensure OpenSSL 3.0 fails (macOS only) | ||
if: ${{ matrix.os == 'macos-latest' }} | ||
run: | | ||
# Themis uses OpenSSL 1.1 by default if installed. | ||
# Explicitly request OpenSSL 3.0 by pointing the build into OpenSSL 3.0's paths. | ||
openssl3=$(brew --prefix openssl@3) | ||
if ! make ENGINE=openssl BUILD_PATH=build-openssl-3.0 ENGINE_INCLUDE_PATH=$openssl3/include ENGINE_LIB_PATH=$openssl3/lib | ||
then | ||
true | ||
else | ||
echo "Build with OpenSSL 3.0 did not fail when it should have" | ||
exit 1 | ||
fi | ||
examples: | ||
name: Code examples | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters