The BeleniX 0.6 Ride
BeleniX 0.6 got released last Tuesday after quite a gap of about 6 months. Several months of this time have been way too busy for most of the folks including myself. As I had blogged earlier, travels and engagements took a significant toll in terms time and energy.
Even then work had been progressing slowly and various folks have been doing their bits. It was the middle of April that I finally decided to put all the pieces together and get the delayed release done. But it was easier thought than done - of course you can think at the speed of Tachyons swimming past Einstein's limits. You can however work only at the pace of dead slow human I/O mechanisms and frustratingly slow home computing power. Restricted budgets matter sigh. Even more importantly luck matters, and it can run out at the worst possible moment!
Here's a sequence of happenings leading up to the release. A little long read:
- First on my agenda was to get complete Solaris packages built for the OpenSolaris base. Of course doing a make install in the usr/src/pkgdefs failed with missing objects. Closed source non-redistributable stuff. So I updated the prototype files for the package in question and repeated the build. It failed for another package. I kept updating and rebuilding till I fixed them all; 30 packages in total took about 3 hours of drudgery.
- Next move to Xorg 7.2. After pondering a little I decided it was best to base my work on the X-Consolidation source drop. Since this source drop is partial I had to implement a full modular Xorg build adding more Makefiles and packages. This was a significant undertaking, a lot of which was grunt work. Build, fix, build fix, build, build packages, fix packages, add packages, build packages, fix packages, install packages, fix packages, fix Makefiles, build, build packages, install packages, fix ... All these took 10 days of my outside-work waking hours and some sleeping hours as well!
- Next update various libraries and software in BeleniX. Several days of effort and you have to rebuild some other dependent software as well.
- In all these I had to generate ISO images, burn them on a DVD-R/W and test now and then. One complete ISO generation took at least 3.5 hours, during which I will have to wait doing nothing but monitor the build for errors! You can't do any other work as the system will be heavily loaded and sluggish to even keypresses. I'd need to free up as much RAM in my 1GB as possible and use either CDE or better still TWM! After all this you find a *single character syntax error* in a startup script and possibly repeat the process #%@$%*
- And while doing heavy duty development, even my Athlon64 dual-core 2.6 GHz with 7200RPM Sata drive just feels way too sluggish slowing down my pace of work. Just the time one could put one of the M-Series screamers to good use: http://blogs.sun.com/jonathan/entry/i_love_mainframes SIGH.
- Next build Compiz 0.5.0. This went fine without troubles.
- Integrate the Solaris Parted port. Lots of compiling of libsigc++, Glibmm, Gtkmm, cairomm, GParted. Stuff mostly worked. Fixed a few issues.
- Update startup scripts to integrate the Compiz desktop and various other script cleanups. Rebuild and test ISO multiple times.
- Add/fix various other things including KSH93, Compact shell, Usbdump etc.
- Rebuild and test ISO. Give ISO to a couple of other folks to test who come up with a bunch of issues.
- Fix issues and look at updating to Kdevelop latest release. This is when disaster strikes just 5 days before the projected release date of 22nd May ...
- My 1KVA APC UPS powering my workhorse, for some inexplicable reason decides that the Battery is screwed. It refuses to pass the self-test and power the equipment :-O I am able to run the UPS without batteries but that is not of much use.
- On the Friday before 22nd I decided to get the battery replaced. In the worst case shell out cash and buy a new one. Morning I rushed to a nearby APC authorised center and they asked me to go the shop from where I purchased the UPS. They did not have spares either.
- I had purchased the UPS from SJP Road in Bangalore, a market for all kinds of Electronics and Electrical stuff you can find. Heck you can even get old Sparcstation 20s or Ultra 5s if you search hard enough. That road is however far from my house. So I went to office to catch up on some work and finish lunch. Since I was late I had to park my car on a road outside the office - sorry parking full

- After lunch I grabbed the 5.1KG battery and hopped on an Autorickshaw in the blazing Sun. There is simply no way you can find car parking in the congested SJP road.
- The shop guys gave me APC 24x7 service numbers which I have to call and they will provide on-site service. Exasperation! Why didn't you give me the damned numbers when I purchased the Unit. The user manual did not list the numbers unfortunately.
- So now back to square zero. How do I work at home ? I remembered a spare 0.5KVA UPS lying at office that I had returned along with the old home PC that SUN had given me a long time back. I rushed to office grabbed the 7.5 KG unit rushed 6 floors down the stairs out into the blazing Sun and then into my Car.
- Reaching home I called UPS and spoke to a very helpful customer service person who asked me the serial number and to do some tests which appeared to be successful. Finally he asked me to do a 15hour zero load battery charging test.
- I hooked up the 0.5KVA UPS and was able to work on my system.
- The Kdevelop build failed with some inexplicable C++ template error Ugh! I decided to give up on Kdevelop for now and look at getting Koffice 1.6.2
- But the CD was getting close to capacity and I had to figure out innovative ways of squeezing out more space and trim down Koffice components to get the most important Kword, Kpresenter etc. in and leave space for future when I will have full packaging.
- Unfortunately it is not possible to predict exactly how much extra space my efforts will lead to till I build the complete ISO, 3.5 hours ouch. On top of that the 0.5 KVA UPS was quite old and was not able to switch fast enough on a power failure that happened during the fag end of an ISO generation process. Comp shuts off and I had to repeat the process.
- Finally I decided to look at the CD build procedure and see whether it is possible to improve things. 22nd was getting near, I was hardly sleeping and still time was not on my side. The situation was: while generating the compressed files the program will compress a 128K chunk and write it out. Essentially thousands of disk I/O requests to compress 1.8GB. Since I have large swap and sufficient RAM I decided to create the file entirely in swap and finally copy it out to the appropriate location. Believe it or not this shaved off almost an hour from the whole build, hardly much disk I/O, yay
The machine was running much cooler than the room heater it used to be earlier, I was being eco-friendly and reducing hdd wear and tear
. - Finally after much testing during the next 2 days I managed to push 0.6 out. During this I found GParted corrupting libc heap and coring in a malloc at the last momment! I decided to try and debug this using Libumem at 2:30 AM in the night and the problem disappeared! I fired off a CD build set an alarm for 5:30 AM morning and crashed. I made a change to always run GParted with Libumem.
- BTW a 15 hour battery charge did not fix the UPS problem and APC replaced the entire unit no questions asked after 2 working days. I was quite happy with their service.
- Finally on 23rd I gorged on Rum, Fries, Fish and Chicken with a friend and slept for 8 hours at a stretch.