Closed jnoordsij closed 7 months ago
Rebased onto #1464, that should be merged first.
Note that NextCloud 25 has now been dropped; see also https://github.com/nextcloud/docker/pull/2102.
Looking at https://fosstodon.org/@php/111483350076351502 it looks EOL is official.
It also drops the PHP 8.1 Alpine 3.16 variant, that was temporarily added in #1412, but should be obsolete now that Nextcloud 25 is EOL. (Which returns the
versions.sh
script finally back to a more clean state ;) ).
Can we keep the Alpine 3.16 variant for PHP 8.1 (till EOL of PHP 8.1, i.e. for about one more year)? The underlying issue that PHP 8.1 won't work with OpenSSL 3 as of Alpine 3.17 and 3.18 persists. Nextcloud isn't the only affected app by this, it's any app that still uses PHP 8.1 and requires OpenSSL. An example is LimeSurvey: it officially only supports up to PHP 8.1 (see manual, "LS 6.x from PHP 7.4.x to 8.1.x"), and requires OpenSSL ("The following PHP modules/libraries should be enabled: […] openssl").
It also drops the PHP 8.1 Alpine 3.16 variant, that was temporarily added in #1412, but should be obsolete now that Nextcloud 25 is EOL. (Which returns the
versions.sh
script finally back to a more clean state ;) ).Can we keep the Alpine 3.16 variant for PHP 8.1 (till EOL of PHP 8.1, i.e. for about one more year)? The underlying issue that PHP 8.1 won't work with OpenSSL 3 as of Alpine 3.17 and 3.18 persists. Nextcloud isn't the only affected app by this, it's any app that still uses PHP 8.1 and requires OpenSSL. An example is LimeSurvey: it officially only supports up to PHP 8.1 (see manual, "LS 6.x from PHP 7.4.x to 8.1.x"), and requires OpenSSL ("The following PHP modules/libraries should be enabled: […] openssl").
Do you have any example of things actually breaking with the PHP 8.1 Alpine 3.17/3.18 images? That might help in sorting out if an Alpine 3.16 variant is still required. (Also that might be something worth reporting upstream, given that OpenSSL 1.1.1 has reached EOL).
As actually PHP 8.1 does work with OpenSSL 3 (see also https://www.php.net/manual/en/openssl.requirements.php), that's why it was not given special treatment when introducing the Alpine 3.17 variant (see also https://github.com/docker-library/php/pull/1348) and is still built perfectly fine with OpenSSL 3 as of today. I'm not sure why exactly the Nextcloud build was failing, but I'd assume that was through some direct dependency on OpenSSL 1.1 related functions/calls, because as said there should be no generic issue with OpenSSL 3 + PHP 8.1.
It doesn't work for us with Alpine 3.17+ / OpenSSL 3 because Alpine no longer delivers it with Blowfish.
So something like openssl_encrypt($data, 'BF-ECB', $secretKey, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING);
fails.
Do you have any example of things actually breaking with the PHP 8.1 Alpine 3.17/3.18 images? That might help in sorting out if an Alpine 3.16 variant is still required.
I was just about to write a report about the issue with my LimeSurvey container and explaining what's going on, but in the course of creating a proper reproducer I noticed that my issue simply was that there was an implicit dependency to openssl-dev
with Alpine 3.16, but not with Alpine 3.18. I just made the openssl-dev
dependency explicit and yeah, it works now :see_no_evil:
Happens if one just assumes but never actually verifies that it is the same issue as for Nextcloud :see_no_evil:
Sorry for the noise, thank you very much for taking it into consideration @jnoordsij!
As usual, thank you for your thoroughness, @jnoordsij! :bow:
Based on #1349.
PHP 8.0 will reach EOL on November 26 2023 (see https://www.php.net/supported-versions.php). This PR removes the 8.0-based images and aliases.
It also drops the PHP 8.1 Alpine 3.16 variant, that was temporarily added in https://github.com/docker-library/php/pull/1412, but should be obsolete now that Nextcloud 25 is EOL. (Which returns the
versions.sh
script finally back to a more clean state ;) ).It is probably unwanted to merge this before November 26nd and before any final confirmation, hence the draft state. However, given no activity on the 8.0 branch since August (see https://github.com/php/php-src/commits/PHP-8.0), one may expect a last-minute release seems unlikely.