April 26, 2006

The slippery slope of open source

When you start down the path of building your own software, you may be in for more than you bargained for

If you work with open source software, you’ve been to the place I’ll describe in this column more times than you care to count. It always starts innocently enough. In my case, I needed to re-create a Linux-based development environment on my Apple PowerBook. The essential ingredients were Apache, Berkeley DB, mod_python, and libxml2. Pretty standard stuff, but I’d never assembled all the pieces on Mac OS X.

If you don’t work with open source software, it’s hard to explain how weird this process of assembly can be. I’ve never actually run Autoconf, the GNU tool that’s used to generate the configuration scripts that probe every nook and cranny of your operating system, compiler, and libraries. But I’ve run lots of configuration scripts, and I fondly remember the cover of a 1988 issue of The Perl Journal. It depicted an Underwood typewriter, circa 1940, with this transcript rolling across the platen:

# sh ./Configure

Beginning of configuration questions for Perl 5.

Hmm … this looks like an Underwood portable.

AFS does not seem to be running…

Installation prefix to use? (/usr)

Warning: no “1” key detected. Using “l” instead.

Use which C compiler? (CC)

This perfectly captures the experience of building free software from source. It’s rarely so hopeless, but it often turns into a dizzying game of chutes and ladders -- especially on a Mac.

In this case, the slide down the slippery slope began when mod_python told me it preferred Apache 2 to the stock Apache 1.3 that Apple ships. That upgrade went smoothly, but I knew Apple’s stock Python 2.3.5 wasn’t the one I wanted mod_python to use. So I pointed its configure script at /opt/local, where I’d built a Python 2.4 with the libxml2 and Berkeley DB bindings I wanted. But when I fired up Apache, it reported a mod_python built with Python 2.3.5, not 2.4.

Yeah, I shoulda read the instructions. It’s been a while since I used mod_python, and although it used to let you point to any instance of Python, now it will use only the installed one.

Well, OK. I’d been meaning to upgrade to the newest production Python, 2.4.3, which was released last month. And lo, there’s even a binary installer for Mac Python. Joy! Except it doesn’t include the libxml2 bindings, and when I try to build them, the tool chain can’t cope with the universal binaries the installer gave me. Sorrow.

Well, OK. Binary installers are for wimps, anyway. Real men and women build from source. So I try, GCC spews forth alarming messages about “semwait” and “bad file descriptors.” Inevitably, I wind up Googling for these obscure error messages.

The first proposed workaround sounds plausible: Switch from GCC 4 to GCC 3. No dice. The second sounds unlikely: Download the source again and start over. But I do, and for no apparent reason, this time it works.

Now admittedly, most of the issues I ran into were Mac-related. Linux is home base for open source software, and things always go much more smoothly in that environment. I can almost understand how some folks throw away OS X and install Linux on Apple hardware -- almost, but not quite. Until Linux feels better than OS X on a laptop, I guess I’ll keep playing these games. … although I’ve got my eye on a nice-looking Underwood typewriter.

Close

On Twitter now

Application development

Powered by Twitter

White Paper

D2D Virtual Tape Library Replication Primer

This whitepaper explains the terminology and concepts behind Data Replication technologies and establishes some sizing rules through worked examples. Learn the new paradigm in disaster tolerance—protect data anywhere.

Download now »

White Paper

An Alternative to Virtualization for Datacenter Cost Savings

Server virtualization is a popular option for dealing with mounting datacenter costs. Another equally promising approach is the use of an Application Delivery Controller. Citrix NetScaler provides a low-cost way for organizations to reduce their server count and accrue cost savings from a reduction in space, cooling, power and personnel.

Download now »

White Paper

Why Your Firewall, VPN, and IEEE 802.11i Aren't Enough to Protect Your Network

The emergence of WLANs has created a new breed of security threats to enterprise networks.

Included in HP ProCurve WLAN solutions is security technology that alleviates threats from WLANs through:
* Monitoring wireless activity inside and out of the enterprise
* Classifying WLAN transmissions into harmful and harmless
* Preventing transmissions that pose a security threat to the enterprise network
* Locating participating devices for physical remediation

Download now »

White Paper

Bringing the Edge to the Data Center

Effectively address data protection challenges, implementing solutions that help store and protect business–critical data while cutting costs and improving efficiency and reliability.

Download now »

Sign up to receive InfoWorld Resource Alerts

Subscribe to the Developer World Newsletter

Receive a weekly roundup about the art and science of software development.

©1994-2009 Infoworld, Inc.