5210R: Development has started
With yesterdays release of the RHEL8 Beta the development of BlueOnyx 5210R for RHEL8 and CentOS 8 has started today.
Here are some ballpark figures of which software versions we can expect in RHEL8/CentOS 8. These are at least the version now present in the RHEL8 beta:
- Kernel 4.18
- Perl 5.26.4
- Apache 2.4.35
- Nginx 1.14.0
- Sendmail 8.15.2
- Dovecot 2.2.36
- MariaDB 10.3.10
- OpenSSL 1.1.1
- OpenSSH 7.8p1
- Systemd 239-8
- Python 2.7.15 plus Python 3.6.6
- RPM 4.14.2
- Glibc 2.28
- Glib2 2.56
- Java 1.8.0
I had already set the model number 5210R aside for it and had done some preliminary checks of what would be needed to port the GUI to any newer version of PHP.
Right now the core of the GUI (base-alpine) uses CodeIgniter v2.2.6 (which is EOL) and for 5210R we certainly want to use a newer version. Such as the stable v3.1.9, which also supports PHP-7.1 and PHP-7.2 out
of the box.
But the fun starts right there:
Every GUI page is a CodeIgniter PHP class. PHP class names must start with a capitalized character. Example: "TestClass" is fine, but "testClass" is not. We already honored this religiously throughout the GUI.
Since CodeIgniter 3.0.0 the file names for these classes also *must* have their leading character capitalized. Which we have not. A handfull of Classes under /usr/sausalito/ui/ci/application/libraries/ and all* classes under /usr/sausalito/ui/ci/application/modules/ don't follow the new mandatory naming conventions.
That means all of these must be renamed (and the CI routing tables must be updated) and it must be checked that filename and classname are identical both in name and capitalization.
That's around 250-300 PHP classes that need fixing right off the bat.
Plus there will be several things that changed behavior between PHP versions and we're moving right from PHP-5.4.16 to PHP-7.2.11. That's the biggest PHP version gap BlueOnyx *ever* had to bridge: We're moving five *major* versions of PHP ahead in one go.
It's not *that* bad (I hope), as a lot of the heavy lifting of the GUI is done by CodeIgniter itself or had been externalized into shared libraries and PHP Classes that are re-used throughout the GUI. Still: I expect to run into some unexpected glitches that need a fixing.
The next couple of challenges are adjusting the GUI to the updated services. Like from Apache 2.4 to 2.8. Nginx is no surprise and we've already go the same version on 5209R that RedHat brings in RHEL8. Sendmail? Trivial changes. Dovecot? Good to go w/o changes. FTP? We bring our own, so no surprises either. Making these adjustments should be fairly quick, with the new Apache being the only real complication.
We'll drop Apache Tomcat in 5210R, though. It already doesn't work right in 5209R and dragging that dead carcass over to 5210R makes no sense.
I think that by the end of this year or more probably in January 2019 I'll have a draft of 5210R ready that can quickly be adjusted to whatever slightly modified realities we'll find once CentOS 8 is officially out.
I'll get it covered.
FWIW: By that time I also hope to have "EasyMigrate" ready, so moving from 5207R/5208R/5209R to 5210R should be easier and more comfortable than doing it with CMU.