Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

core: Deny building with OpenSSL 3.0 #872

Merged
merged 4 commits into from
Nov 2, 2021

Conversation

ilammy
Copy link
Collaborator

@ilammy ilammy commented Nov 1, 2021

For the time being Themis and Soter do not support OpenSSL 3.0. The code seems to build fine but it fails the tests, so we're not sure that it is safe to use Soter with OpenSSL 3.0. 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.

Throw in an extra step on CI 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.

To make conflict resolution easier, this PR includes #871.

Checklist

  • Change is covered by automated tests
  • The coding guidelines are followed
  • Changelog is updated

@ilammy ilammy added core Themis Core written in C, its packages infrastructure Automated building and packaging C-OpenSSL-3.0 Crypto provider: OpenSSL 3.0 labels Nov 1, 2021
@ilammy ilammy mentioned this pull request Nov 1, 2021
8 tasks
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.
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.
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.
Provide a not-really-documented way to build Themis with OpenSSL 3
by setting environment variable WITH_EXPERIMENTAL_OPENSSL_3_SUPPORT.
@ilammy
Copy link
Collaborator Author

ilammy commented Nov 1, 2021

With the base branch merged, I found it easier to rebase the whole thing to resolve merge conflicts. Ugh, GitHub you don't help in the slightest here! >_<

I've also added one more commit that allows to build Themis with OpenSSL 3.0 if you say the magic word. I realized that I will need a way to build it without failing while working on the transition. So developers can ask for

make WITH_EXPERIMENTAL_OPENSSL_3_SUPPORT=yes

and avoid triggering that #error. This goes otherwise undocumented.

@vixentael
Copy link
Contributor

This goes otherwise undocumented.

best feature

@vixentael vixentael self-requested a review November 1, 2021 23:26
@ilammy ilammy merged commit e5d36a0 into cossacklabs:master Nov 2, 2021
@ilammy ilammy deleted the deny-openssl-3.0 branch November 2, 2021 11:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-OpenSSL-3.0 Crypto provider: OpenSSL 3.0 core Themis Core written in C, its packages infrastructure Automated building and packaging
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants