[BlueOnyx:25598] Re: AlmaLinux 9 - BlueOnyx 5211R development
Michael Stauber
mstauber at blueonyx.it
Fri Aug 26 00:58:25 -05 2022
Hi all,
Some more updates on the BlueOnyx 5211R development:
It turned out we need in fact a separate PHP for AdmServ. Which is
something we wanted to avoid for reasons posted above. But it turns out
it cannot be avoided for reasons beyond our control.
Shop PKGs with PHP GUI pages are encoded with IonCube encoder. Most
prominently the NewLinQ GUI pages, as these handle the license
management. Obviously we need to protect the means and methods used
within these. Hence the encoding in those and as proprietary commercial
add-ons they are shipped under a different license than BlueOnyx itself.
Whereas all GUI pages that ship with BlueOnyx itself are free of such
encoding to adhere to the Open Source ideals.
Now I got to a point where I was building the "solarspeed-ioncube" RPM
to satisfy the dependencies we need to let AdmServ (and the regular OS
provided PHP 8.0.13) use the IonCube Loader. Turns out: IonCube does NOT
offer a loader for PHP-8.0. They do have one for PHP-8.1, though.
When asked about this oddity they explained that they had skipped
PHP-8.0 to chafe off a few months of development and had gone straight
to PHP-8.1. "Which is better anyway." Yeah, sure <sigh>.
So ... no IonCube for PHP-8.0. What now?
That meant we had to use another PHP version for AdmServ. One for which
IonCube provides a loader. Like PHP-7.4 or PHP-8.1. Now PHP-7.4 would
have the benefit that the GUI would run on it "as is" w/o further
changes. At least as far as older CodeIgniter 3 and the PHP pages are
concerned. But I'll not ship BlueOnyx 5211R with an outdated CodeIgniter
and a PHP-7.4 that is already EOL or as good as EOL. I'm not even sure
if PHP-7.4 would compile on EL9 due to OpenSSL 3 and the more picky GCC
it uses.
So PHP-8.1.9 it is for the moment. I scripted an automatic update
process on a devel box that will spit out updated "admserv-php" RPMs for
5211R whenever a new PHP-8.1 version is released. That script then
publishes the RPM and SRPM to an internal YUM repository from which I
can test them before release. So we got that covered nicely. Eventually
when PHP-8.1 goes EOL, the GUI will switch to a more modern PHP version.
The change to PHP-8.1 for AdmServ also necessitate the switch to
CodeIgniter 4.2 for the GUI, which is a process that was already started
anyway. PHP-8.1 also required that we ditch the PHP PECL extension
"crack". That provides PHP with an interface to "cracklib" for password
strength tests. That extension hasn't been maintained in more than a
decade. While it was still available for PHP-8.0 it finally doesn't play
nice with PHP-8.1 anymore. But we already had a replacement for that for
years (via an internal PHP Class), as it was clear that this would
eventually happen.
There are some more causalities:
* Mailman: "It's dead, Jim!"
I can't get it to build and so far nobody has Mailman 3
RPMs/SRMS that work with EL9 due to an insane amount of Python 3
related dependencies.
Should this situation change and evenutally someone builds EL9
RPMs for Mailman (and its dependencies!), then it will be added
back in. But for now: It's gone.
* Net2FTP: We used that PHP based file manager in 5209R and 5210R to
allow people with FTP, SCP or Shell access to manage their files
via the GUI. That project is dead since 2019 and the PHP code of it
failed horribly under PHP-8.0. I don't even need to test it under
PHP-8.1 to know that it won't work.
So that one is a goner, too. Any other good solution I found is either
payware, or so horribly insecure or so bland, that it would be madness
to include it. Eventually I'll throw in a simple file manager via
regular GUI methods as replacement, though.
Other than that things are looking good. For the rest of the stuff I
have all dependencies satisfied. With CodeIgniter 3 and PHP-8.0 I had
the GUI working except for some minor glitches. And with PHP-8.1 and
CodeIgniter 4 I'm in a stage where I'm still sorting out a lot of
fundamentals because of the many changes in both CodeIgniter and PHP,
which require a lot of tinkering in pretty much any library, module and
GUI page.
That work is progressing nicely by the day (and nights), but it's too
early to say when an end to that might be in sight. But this is bread
and butter coding without any large surprises.
--
With best regards
Michael Stauber
More information about the Blueonyx
mailing list