remicollet / remirepo

Issue tracker for

Home Page:https://rpms.remirepo.net/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Old PHP rpms for the RHEL9 / Rocky Linux 9

makhomed opened this issue · comments

On the RHEL 9 / Rocky Linux 9 right now only four PHP versions are supported:

php74
php80
php81
php82

Is it possible to build rpms with older PHP versions for the RHEL 9 / Rocky Linux 9 operating system?
For example, the same PHP versions set, which are build right now for the RHEL 8 / Rocky Linux 8 ?

php56
php70
php71
php72
php73
php74
php80
php81
php82

This is need for migrating multiple legacy PHP software from old servers with CentOS 6 / Rocky Linux 7 / 8 operating systems
to new servers and virtual machines with Rocky Linux 9.x operating system, which have planned EOL 31 May 2032.
Planned EOL 31 May 2032 means what support for the RHEL 9 / Rocky Linux 9 will ends in 8 years and 11 months.

FYI: EL-9 provides OpenSSL 3 which is only supported upstream by PHP >= 8.1

Having PHP 7.4 and 8.0 for EL-9 means I had to backport its support to these old versions, and this is a huge patch (to fix the build and the full test suite to pass).

I'm sorry, but I don't have any plan to support older EOL versions for EL-9.

If you really need EOL versions, keep EL-8 which is supported until 2029.

This means:

  • on EL-8 PHP 5.6 will be supported (if sustainable) for 10 years after its EOL (2019-2029)
  • on EL-9 PHP 7.4 will also be supported for 10 years (2022-2032)

which is already seriously crazy (nobody else does so much).

Don't forget this is a personal project, available for free, done on my spare time.

FYI: EL-9 provides OpenSSL 3 which is only supported upstream by PHP >= 8.1

Having PHP 7.4 and 8.0 for EL-9 means I had to backport its support to these old versions, and this is a huge patch (to fix the build and the full test suite to pass).

Ok, but older EOL versions of PHP supports build with older EOL versions of OpenSSL, right?

$ wget https://www.php.net/distributions/php-5.6.40.tar.gz
$ tar -xvf php-5.6.40.tar.gz
$ cd php-5.6.40
$  ./configure --help | grep "Include OpenSSL support"
  --with-openssl=DIR      Include OpenSSL support (requires OpenSSL >= 0.9.6)

I'm sorry, but I don't have any plan to support older EOL versions for EL-9.

But you already support older EOL versions for EL-8, changes to .spec files for add support older EOL versions for EL-9 will be minimal, and all build process of older EOL versions for EL-9 can be fully automated, as it now already fully automated for older EOL versions for EL-8.

I don't ask you to backport support of OpenSSL 3 to older EOL versions of PHP.

But can you, please, for EL-9 build older EOL versions of PHP using older EOL versions of OpenSSL ?

Changes to .spec files for older EOL versions of PHP will allow build this older EOL versions of PHP for EL-9 without any problems, something like this:

%if 0%{?rhel} == 9
# build PHP with older EOL version of OpenSSL
%else
# build PHP with system version of OpenSSL on all other operating systems
%endif

If you really need EOL versions, keep EL-8 which is supported until 2029.

I really need need EOL versions of PHP on the EL-9...

Don't forget this is a personal project, available for free, done on my spare time.

Yes, I understand this.

What is your typical hourly rate for such work?

How many working hours do you need to make these changes to the spec files of the older EOL versions of PHP?

Remi, I need EOL versions of PHP on EL-9... can you help me, please?

Ok, but older EOL versions of PHP supports build with older EOL versions of OpenSSL, right?

Right, but no so simple

Ex: Curl is build using OpenSSL 3
So if PHP is built using OpenSSL 1, with curl extension this mean the same process
will use both OpenSSL Versions

By experience, this is not working and raises various segfaults (encountered in Fedora during transition from OpenSSL 1 to 3)

So Building PHP with OpenSSL 3 also means rebuilding most of the distro with OpenSSL 1, which is not sustainable.

Remi, I need EOL versions of PHP on EL-9... can you help me, please?

Simple way is to run php-fpm in a container based on EL-8
Ex, see https://forum.remirepo.net/viewtopic.php?pid=12854#p12854

P.S. and OpenSSL is only one example, probably some other libraries may raise other compatibility issues

What is your typical hourly rate for such work?

My work for the repository is free
and I cannot contract and be paid for it (and don't want to, for now)

(btw, donations are accepted, only for hosting and builders' budget)

How many working hours do you need to make these changes to the spec files of the older EOL versions of PHP?

1 stack build is usually >1 full day of work
but this also implies more work on each new release, extending the current build matrix, which is quite huge.

@makhomed, you could try https://pkgs.sysadmins.ws/el9/modular/x86_64/ which appears to have packaged php56 for el9, but I've not tested it. I don't know anything about the Raven repo, so do your own security vetting.

Just a quick look, this repo uses my spec files (but is late, missing some security fixes)
They simply switch to use OpenSSL 1.1 which is a terrible idea as described in my previous comment