I have recently updated my test-environment to Debian 12 (Bookworm) from Debian 11 (Bullseye) and had problems to install a newer toolchain (foss-2023a) which I had not installed before. During the installation process I could not install cURL-8.0.1-GCCcore-12.3.0.eb which failed with that error message in the log file:
== processing EasyBuild easyconfig /home/sassy/apps/software/EasyBuild/4.9.0/easybuild/easyconfigs/o/OpenSSL/OpenSSL-1.1.eb
ERROR: Failed to get application instance for OpenSSL (easyblock: EB_OpenSSL_wrapper): OpenSSL v1.1 headers not found in host system, but libraries for v1.1.1w are present. Install the development package of OpenSSL for your system or force building OpenSSL from source in EasyBuild by setting 'wrap_system_openssl = False' in the OpenSSL easyconfig.
Unfortunately, there are no development packages for OpenSSL-1.1 available any more in Bookwork (they are still in Bullseye) and thus the installation failed.
In this particular case, and as it is a testbed, I simply removed the OpenSSL dependency in cURL-8.0.1-GCCcore-12.3.0.eb and set
configopts = "--with-zlib --with-ssl=/usr "
so it is falling back to the system SSL. This should be safe, as that is basically what the OpenSSL from EasyBuild does as well: fallback to system if system is reasonably new.
Following a discussion on Slack, that is a problematic way in general forward as it cannot be done for all software packages yet. See here for example.
Also following a discussion on Slack this appears also a problem for RHEL9, which apparently also uses OpenSSL-3.
Specially for EasyBuild-5, we should have at least an idea how to mitigate the problem initially before we can solve it. Sticking to OpenSSL-1.1.x is in my opinion not a good way forward, equally patching all the older software which is not able to use OpenSSL-3 is a too big task to do.
One potential way forward could be to say from the 2023 and onward toolchain we predominantly support OpenSSL-3 and hopefully only need to patch a few program and from 2024 onward we only support OpenSSL-3. Not ideal, as that might mean quite some patching etc, but we might be able to do that with the help of the maintainers of the software packages, maybe, hopefully.
I have recently updated my test-environment to Debian 12 (Bookworm) from Debian 11 (Bullseye) and had problems to install a newer toolchain (
foss-2023a) which I had not installed before. During the installation process I could not installcURL-8.0.1-GCCcore-12.3.0.ebwhich failed with that error message in the log file:Unfortunately, there are no development packages for OpenSSL-1.1 available any more in Bookwork (they are still in Bullseye) and thus the installation failed.
In this particular case, and as it is a testbed, I simply removed the OpenSSL dependency in
cURL-8.0.1-GCCcore-12.3.0.eband setso it is falling back to the system SSL. This should be safe, as that is basically what the OpenSSL from EasyBuild does as well: fallback to system if system is reasonably new.
Following a discussion on Slack, that is a problematic way in general forward as it cannot be done for all software packages yet. See here for example.
Also following a discussion on Slack this appears also a problem for RHEL9, which apparently also uses OpenSSL-3.
Specially for EasyBuild-5, we should have at least an idea how to mitigate the problem initially before we can solve it. Sticking to
OpenSSL-1.1.xis in my opinion not a good way forward, equally patching all the older software which is not able to useOpenSSL-3is a too big task to do.One potential way forward could be to say from the
2023and onward toolchain we predominantly supportOpenSSL-3and hopefully only need to patch a few program and from2024onward we only supportOpenSSL-3. Not ideal, as that might mean quite some patching etc, but we might be able to do that with the help of the maintainers of the software packages, maybe, hopefully.