Sep 21 2008
wxMax on Ubuntu Linux: I give up
I’ve spent the last two days setting up virtual machines with VMWare Fusion 2 for Ubuntu 8.04.1 and Windows Vista Ultimate Edition, both in their 32 Bit flavors. The idea was to have build systems for cross platform BlitzMax development.
I wanted to build all the modules myself and not simply download and install the pre-built binaries, and I needed quite a lot of help from Bruce A. “Brucey” Henderson, the author of the BlitzMax port of wxWidgets, to get wxMax compiled and running on Vista. Microsoft’s latest OS requires some minor changes of the wxMax source code, but it now works and runs beautifully. This opens the door for serious cross platform application development in BlitzMax, at least between OS X and Windows. wxMax offers many more mature and sophisticated GUI widgets than MaxGUI does, and wxMax is object oriented from top to bottom, which is more as I like it.
But there is a third platform supported by BlitzMax and wxMax: The penguin OS, Linux.
Now why would I be interested in Linux? It’s rather simple: In the near future, I need to move to a new web server. My current server is a Linux box owned by a former colleague of mine who is now retiring and closing his business. I am using this as an opportunity to get my own (virtual) server with full root/administrator privileges, including the option to install my own binary software. You usually get better deals for Linux servers than for Windows Server machines, so I wanted to find out if I could use BlitzMax on Linux and thus gave the most popular Linux distribution, Ubuntu, a shot. Ubuntu is also the Linux distribution recommended by Blitz Research, and most web hosting companies offer Ubuntu-based servers.
So I’ve downloaded Ubuntu 8.04.1, created a VM for Ubuntu in VMWare Fusion and installed it. That part was a piece of cake. Fusion’s support for non-Windows XP operating systems is outstanding, while in Parallels Desktop (for which I also have a license) the OS would not even boot. Parallels is great for Windows XP, but for everything else, I suggest that you use VMWare Fusion.
After the OS was running and also had VMWare Tools installed, I’ve checked out the HEAD development revision of BlitzMax, Brucey’s modules and wxMax from their respective SVN repositories and also downloaded a source distribution of wxWidgets.
I then needed to download and install tons of additional stuff via apt-get and Ubuntu’s graphical package manager (when I didn’t know the exact names of the packages that I needed) until I was finally able to compile everything. If anybody wants to make Linux more end user friendly, here’s your first stop: Consolidate the damn platform and fix the annoying dependency issues! No user on the planet wants to mess around with crap like that!
When I tried to run one of the wxMax sample applications, I got this error:
/usr/bin/ld: warning: libstdc++.so.6, needed by /usr/bin/../lib/libcairo.so.2, may conflict with libstdc++.so.5 Fatal Error: Mismatch between the program and library build versions detected. The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx containers,compatible with 2.6), and your program used 2.8 (no debug,Unicode,compiler with C++ ABI 102,wx containers,compatible with 2.6). Aborted
It supposedly has something to do with different versions of gcc that have been used to build different parts of the packages. Now word has it that BlitzMax is built with gcc 3, so I went and made sure that all of my stuff was also built with that version of the GNU compiler. It didn’t help; the error remained.
After having wasted more than a day on this alone and although I had received a lot of support from Brucey and the BlitzMax community, I was not able to find a working solution and therefor I am now giving up.
Seeing that deployment on Linux obviously still is a nightmare, I drop the thought of getting myself a Linux server entirely. I do not want to run into the situation that I build something on my development system and then find out that it won’t run on my server.
As a teenager, I found the sort of problems that I’d been facing for the last one to two days interesting. But I’m 38 and nowadays expect things to work. I am no longer willing to waste my lifetime on crap like that.
Linux has failed me for the last time, as Darth Vader would phrase it.