If there were ever a great argument for Linux, it's that open source software "just works". This is not - and has never been - the case with SCO UnixWare, and I cannot believe how much time I and another consultant have burned trying to get XML and SOAP software working on it. Ugh.
Our goal was to get SOAP::Lite (a great perl package for talking SOAP) and Apache xerces (for doing XML validations), and it's been one nightmare after another, much of which will ultimately prove to be non-billable time. "Non-billable time" are really sucky words in the consulting industry.
My consultant friend Kasia tried to get the xerces Java version working on OpenUNIX 8 (which is really just Unixware 7.1.2), but the Java runtime (1.3.0) had what appear to be broken JVM issues. Since we ultimately have to move this to the production machine running an even older Unixware (7.1.1) with an even older JVM (1.2.2), we did not think we were ultimately going to get anywhere on this.
So I tore into the C++ version of Xerces, and after a day's work came to the conclusion that the SCO UDK compiler simply was not up to the task. Xerces pretended to have support for Unixware in the configuration setup, but it was absolutely incomplete (for our version, at least), and it took hours to figure out where to add the stuff that was required. Then, once the object files started compiling, it then blew up in the "prelink" process in a certain module. I believe this involved dealing with template instantiation, and of course the compiler docs don't talk about the failure condition.
Fine, so we can't use the UDK: I had the customer install gcc 2.95.2pl1. I made many of the same changes to the Xerces source as I did before, plus had to even modify /usr/include/unistd.h for a compiler thing I couldn't work around. But then this blows up during linktime. Great0.
So a bit of rooting around the SCO web site shows a more recent gcc (2.95.3pl1), and installing this seems to do the trick. Now the library builds without error, and I'll wait until Kasia gets online to have her build the validator. We still have to modify the validator to have an XSD path, but that's not until we get the "base" part working. Then we see if the binary runs on the production Unixware 7 machine.
We had plenty of other issues along the same lines, but this gives a good flavor for how software is not portable unless it actually ports, and this has just been a lousy experience all around.
UnixWare is a tremendous commercial operating system: great commercial support, runs multiprocessors very well, and supports very large loads (my customer has 200 users).
We're still not finished with it yet, and I hope we get it working before it's time to retire.
Posted by Steve at August 27, 2002 01:07 PM | TrackBackOK, we give up. After two long days (recently, this wasn't the first effort) I'm telling my customer that he needs a Linux box to do this stuff. What a disaster.
Unixware blows.
Posted by: Steve on August 28, 2002 05:55 AM