MacDevCenter    
 Published on MacDevCenter (http://www.macdevcenter.com/)
 See this if you're having trouble printing code examples


A Survey of Open Source Apps Available for Mac OS X

by John Littler
04/26/2006
Your Life in Web Apps

History: Apple's Efforts to Befriend OS World

In the pre-OS X days, there was nothing to be said about Open Source on a Mac. There were quite a few shareware apps, but that was it. And there was very little in the way of shared information other than exchanges on newsgroups.

Open Source Apple

Times have changed. Since the introduction of Mac OS X, there has been a steady trickle of ports from Open Source projects. Today, there are both package management systems and standalone apps.

The main reasons for this shift are the open source-based FreeBSD 5 and Mach 3 microkernel, the UNIX environment, and the free spread of tools--including compilers--from Apple's Developer Connection and on the DVDs accompanying new Macs.

Mac OS X isn't completely open, however. Areas such as Aqua, the GUI code, and the CoreAudio and CoreVideo libraries remain proprietary.

The main way through which Apple invites open source developers to participate is OpenDarwin, which Apple describes as follows:

OpenDarwin.org, jointly founded in April 2002 by Internet Systems Consortium and Apple Computer, provides development resources for open source development of Mac OS X and related products.

The mission of the OpenDarwin project is to improve Mac OS X by creating a community of developers who work with and on the Mac OS X operating system. We provide hosting and a development community for open source products built on and for Mac OS X.

A couple of years prior to OpenDarwin, Dr. Michael Love founded GNU-Darwin. Its objective was to bring free software to Apple users. This was a full-fledged distribution; until very recently, GNU-Darwin was the only way to run Darwin on X86 platforms. It doesn't, as you'd expect, link to any of Apple's proprietary libraries.

Open Source Package Systems of Today

Although there are quite a few standalone applications that can be downloaded in .dmg form, which we'll discuss shortly, there are also packaging systems that are useful for getting lots of smaller packages. To use one of these systems, you must download an installer first and then choose your packages.

Fink: Fink was the first widely recognized system. Its website offers the following description:

The Fink project wants to bring the full world of Unix Open Source software to Darwin and Mac OS X. We modify Unix software so that it compiles and runs on Mac OS X ("port" it) and make it available for download as a coherent distribution. Fink uses Debian tools like dpkg and apt-get to provide powerful binary package management. You can choose whether you want to download precompiled binary packages or build everything from source.

Fink lists 6405 packages, which you can browse here.

OpenDarwin's DarwinPorts: At the time of this writing, DarwinPorts has 3252 "completed and usable" ports. This page allows you to search what packages are available. Here is a brief excerpt from the audio section:

Package Description Maintainer Categories Platforms Dependencies
audiofile 0.2.6 Library for dealing with SGI audio files. toby at opendarwin.org audio darwin
audioslicer 1.0.3 MP3 file splitter. toby at opendarwin.org aqua audio darwin
bladeenc 0.94.2 Blade's MP3 Encoder (BladeEnc), a freeware MP3 encoder. darwinports at opendarwin.org audio darwin freebsd
ccaudio 1.1.1 Library and software for manipulating audio data. blb at opendarwin.org audio darwin commoncpp2
cd-discid 0.9 Read CD and get CDDB disc ID information. jrdittmann at wisc.edu audio darwin
cdparanoia 0.9.8 An audio extraction tool for sampling CDs. jrdittmann at wisc.edu audio darwin
csound 4.23f13gbs.0 A language used to describe sound synthesizers. yves at opendarwin.org audio darwin fltk

If you're interested in audio, you'll find some quite interesting packages here.

GNU-Darwin: Gnu-Darwin can run by itself and from a bootable CD, as well as on top of Mac OS 10.3 and 10.4. You can browse their PPC packages here. I'm not sure of the numbers, but my impression is that they're somewhere between Fink and OpenDarwin.

Which system is most useful for you depends on your special interests, although Fink appears to win on a pure numbers basis. If you think proprietary libraries are evil, then your only choice is GNU-Darwin.

Your Life in Web Apps

Essential Reading

Your Life in Web Apps
By Giles Turnbull

Have you dreamed of a simpler life where web apps and a browser meet all of your computing needs? All you need is a network connection. In this PDF Giles Turnbull introduces you to a day of web apps-only, then he surveys the best and most innovative web apps from the current crop available right now. He also addresses practicality, security issues, and backup strategies for living the web app life. Is it really possible? This PDF will help you decide.


Read Online--Safari
Search this book on Safari:
 

Code Fragments only

Standalone Packages of Note

Here's a list of some big-name packages that have made it across from Linux to Mac OS X.

Audacity: You'd be hard-pressed to read an article on podcasting that doesn't mention this program. It is a sound editor and recording interface that allows you to record into it, edit it, and then (with the LAME library) export MP3s for publication as podcasts. It is easy to use and, in my experience, "just works."

Ardour: This is a Linux app developed to compete with top-end sound recording programs such as Pro Tools. It works with control surfaces and multi-in cards. Critics have called it nonintuitive and hard to set up. Other users swear by it (rather than at it). The bottom line is that complexity, on any platform, requires some learning. Also, because Ardour is Open Source, you can voice any issues quite easily and, if you're in a position to write the code yourself, fix what you don't like.

GPG: The GNU Privacy Guard is a program that provides encryption and decryption for email and the like. Its website provides this description:

Mac GNU Privacy Guard (Mac GPG for short) is, after a fashion, the Mac OS X port of GnuPG, licensed under the GNU GPL. The aims of the project are to make GnuPG easy to install, develop a framework to make it easy for other developers to incorporate GnuPG functionality into their applications, write services to allow for the use of GnuPG functions in most Cocoa applications, and write a Mac GPG Keys type application so that you no longer have to go to the commandline to manage your keys. For those who don't know, GnuPG is a free OpenPGP client (PGP=Pretty Good Privacy). It can encrypt text (usually email or other messages sent between people) and sign text to prove who wrote it. A further discussion of this can be found elsewhere.

By the way, Phil Zimmerman, the creator of PGP, believes that everyone should use encryption. To learn more, check out this Mstation podcast.

The Gimp: The Gimp is the big boy for image manipulation in the open source world--a Photoshop competitor if you like. It doesn't have Photoshop's breadth in terms of richness of plugins, but what it does, it does very well.

For instance, I recently received a pdf that I needed to convert for the web. Illustrator read the file but garbled the text. pdftohtml lost the photos. The Gimp (2.2) imported the files just fine.

There are a few ways of getting The Gimp; its website lists the following:

OpenOffice: OpenOffice defines its goal as follows: to create, as a community, the leading international office suite that will run on all major platforms and provide access to all functionality and data through open-component based APIs and an XML-based file format.

In other words, it is offered as an alternative to Microsoft's Office Suite. The project is under the wing of Sun Microsystems.

Scribus: Scribus is a desktop publishing app intended as an alternative to Quark Express or Adobe InDesign--not that it can swap files with them, and not that it attempts to be a clone of either, but it can generate its own output that can be handled by printers.

XEmacs: You already have Emacs and Vim through the Terminal, but if you would like something more graphical and more mouse-friendly, then XEmacs is worth a look. Emacs and XEmacs can become a hobby in themselves because their extensibility has yielded a wide range of packages that do everything from connecting to IRC to reading news and email, and, yes, editing text and code.

The best bet to get XEmacs is to use Fink, but there are a couple of other alternatives.

This link is best for people who like to compile themselves. You download the code, then apply patches to make it "play nicely" with OS X. The last OS X version mentioned is 10.3.

If you'd prefer a simpler alternative, this link is an easily installed package. The last OS version mentioned is 10.2.4.

Other Apps or Compiling Your Own

With the developer tools installed, you can actually compile quite a few Open Source applications with only a minimum of effort. There is no particular need to learn Mac OS X's developer IDE Xcode. If it's a simple command line application, the chances are fairly good that you'll end up with a usable binary. Simply cc it and see how it goes; although, if you're reading this article, I've assumed you have the ability to scan code for any nastiness.

If it doesn't compile, you'll need more knowledge and more work to get it done. Once you've accomplished this, why not make the results available to others?

John Littler is chief gopher for Mstation.org.


Return to the Mac DevCenter

Copyright © 2009 O'Reilly Media, Inc.