BlueOnyx 5209R Development
Small update on the BlueOnyx 5209R (on EL7) development.
The last two weeks I've worked relentlessly on BlueOnyx for RHEL7 clones (CentOS 7 / SL 7) again. Here is a small updated about the progress.
With porting BlueOnyx to RHEL7 clones we had a few pretty big obstacles ahead of us, which needed tackling. These were:
- Sausalito's cce.so PHP module was incompatible with PHP-5.4.16
- Sausalito's i18n.so PHP module was incompatible with PHP-5.4.16
- Sausalito's Cracklib PHP module was incompatible with PHP-5.4.16
- CCEd highly unstable (crashing every 10-15 seconds)
- Systemd instead of InitV
- MariaDB instead of MySQL
- Apache 2.4 instead of 2.2 (EL6) or 2.0 (EL5)
The most critical issues of course were the instability of CCEd and the inabiliy to adapt the age old PHP Zend API modules (cce.so, i18n.so and to some degree crack.so) to PHP-5.4.
After a suggestion from Steven Howes on the BlueOnyx developer list I rewrote Sausalito's Chorizo GUI to detect the presence of the special PHP modules. If they are present, they are used. If they are missing (and they will be missing on 5209R!), then native PHP classes will take over the functionality that these PHP modules provided so far.
The porting of the PHP modules to PHP classes took about two weeks and they are now (more or less) finished. Cracklib (for password strength tests) is another matter and I ditched it entirely for a PHP class that I borrowed somewhere. With that done, the GUI for 5209R on my developer box started to come to life and was reachable and (semi sort of) working in a browser for the first time.
The stability issue of CCEd on 5209R was also located. It was (yet again) a normally dormant debugging routine, which still got initialized and used a non signal safe function. The issue with these is that they might shoot the process into Zombie state if multiple child processes of the CCE daemon run at the same time. After a small fix in form of a band aid CCEd is now again rock solid and chumming along nicely.
The current "base-mysql" module of BlueOnyx 520XR kinda works with MariaDB, too (after some minimal tweaks). But for proper usage it will require a few (mostly cosmetic and minor) changes. For starters we want to change all the GUI texts to no longer show it being MySQL, when it in reality is running MariaDB instead.
Systemd continues to be the pain in the "gluteus maximus" that I expected it to be. For the most part our existing InitV scripts continue to work with it (after some "percussive maintenance" with a sledge hammer). But we need proper Systemd init scripts for the longer run.
I haven't yet tackled Apache and there will for sure be some tweaks and small changes that we need to throw at our base-vsite module for Vsite management. I also need to go over the list of loaded Apache modules with a fine toothed comb and see what kind of optimizations we want to apply to the general Apache config. Our base-ssl module for running HTTPS enabled websites also needs some small Apache 2.4 related tweaks as some options have changed.
There are still bits and pieces of the new GUI that throw errors at this time. Some of that are related to the PHP class that now handles the communication with CCEd, as it is just "mostly" compatible and still less forgiving when it finds programming errors in older GUI pages. So sometimes I see warnings about "undefined index" for arrays, which I'm fixing one after the other when I see them.
All in all the Chorizo GUI turned out to be pretty much ready for the jump from PHP-5.3 to PHP-5.4 and I encountered very few PHP errors in the GUI code that were related to that hughe transition itself. So far there were just a few Objects that needed to be pre-declared and somehow weren't. Anything else mostly works out of the box, except where the underlying mechanisms have changed due to the newer OS.
I don't want to make any solid promises for a release date of BlueOnyx 5209R. But January/February 2015 sounds kinda realistic. But like said: That's not a solid promise. The goal is to ship it when I'm confident that it's actually ready for production and I'm still far from seeing that at this time.