May 26, 2005

OSS on OS X

Author: Mitchell Cohen

Apple recently released Mac OS X 10.4 Tiger, the latest update to the flagship operating system. Featuring developer-oriented features such as Core Data under the hood, the Unix-based Tiger and the introduction of powerful yet increasingly cost-effective Mac hardware is enticing many a curious Linux enthusiast to prowl over to the nearest Apple Store and get their paws on a Mac. And while the Mac OS opens up a world of elegant interface design and commercial software unseen on the Linux desktop, lacking out of the box is the plethora of open source software to which we are so accustomed. Luckily, a growing community of open source developers and advocates has been working since the birth of the platform to bring free software to Mac OS X.

There are two primary ways to install and use free software on the Mac. Each method offers varying degrees of convenience and integration with the system:

  1. Developers can take advantage of OS X technologies by using the Cocoa GUI toolkit to create native Aqua user interfaces, which are then rendered through Quartz. These programs look and feel like native OS X applications.
  2. Many more applications, particularly Linux ports, run in the the OS X Terminal application or, graphically, in Apple's free implementation of the X Window System. While such applications can generally be ported faster than native Aqua programs, they aren't integrated into the OS X user interface. Most of these apps can be installed with Fink, discussed below.

Native applications

When OpenOffice.org canceled development of its 2.0 Aqua port in March, Mac users were left searching for a native cross-platform open source office suite for OS X. Fortunately, the NeoOffice/J project was developing a version of OpenOffice.org 1.1.x using Java to provide users with a native Aqua interface. Along with all of the features present in OpenOffice.org 1.1.4, some of NeoOffice/J's OS X-specific features include:

  • No X11 requirement
  • Native drag-and-drop support
  • Native copy-paste support
  • Aqua menus
  • Integration with Finder and Mail
  • Support for system fonts

NeoOffice is not a complete Aqua port of OpenOffice.org. At this point, its biggest advantage over OpenOffice.org is that it does not require X11 to run. As of v1.1 Release Candidate 1, many interface elements, such as the toolbars, do not use the Aqua theme or follow OS X interface design guidelines. Still, each NeoOffice release promises to improve Aqua integration and overall speed and stability, bringing NeoOffice/J closer to becoming a viable alternative to Microsoft Office on the Mac.

For now, if you do not need the full feature set of NeoOffice/J or want to have a lightweight, free, and fully native word processor for your Mac, AbiWord's OS X port takes about four seconds to load on a Mac Mini and takes up only 25MB of disk space. AbiWord's interface, built entirely in Cocoa, is clean and user-friendly. In addition to standard text formatting, AbiWord has basic support for tables, images, mail merge, and Word import/export. Both AbiWord and NeoOffice/J have extensive internationalization support for non-English-speakers.

AbiWord on OSX -- click to enlarge

Mac OS X is bundled with the Safari Web browser, which renders HTML with an engine based on KDE's KHTML. Safari renders pages quickly and accurately, but the browser interface is not customizable nor is it open source. One well-known alternative is Mozilla Firefox. The OS X port features a special default theme and minimal Cocoa support (an example is the native Preferences dialog.) However, like NeoOffice, Firefox is not a true Aqua program. The OS X version is buggier than the Windows and Linux versions.

Until some of the issues in Firefox are fixed for v1.5, Mac users should look instead to Mozilla's Camino for a real Cocoa, Gecko-based browser. Designed from the ground up for the Mac, Camino blends into the OS X interface, using Keychain passwords, address book contacts, and other OS X settings. It also supports advanced browser features such as tabs, find-as-you-type search, and a search engine toolbar. One interesting feature in Camino's dual-pane bookmark manager, modeled after that of Safari, is the ability to create "tab folders" that open all bookmarks located in a folder in separate tabs when you click on the folder. Camino is well-integrated and attractive; its one major drawback is that it doesn't support the XUL extensions that make Firefox so useful, so you may want to use both browsers.

MPlayer OS X is an Aqua port of MPlayer, the open source world's most compatible media player. MPlayer OS X sports a lightweight Cocoa interface that includes buttons to control playback and a simple playlist manager. Users can add video files quickly to the playlist queue by dragging and dropping them from a Finder window. MPlayer OS X is compiled to support the G4/G5's AltiVec and outputs video through Quartz by default to provide smooth playback. As in the Linux version, MPlayer OS X is able to output through a variety of alternate video and audio devices, such as OpenGL, or even right onto the Desktop layer. And MPlayer OS X, just like its Linux equivalent, is bundled with enough codecs to play any media file you can throw at it. To play video in Apple's X11 and have access to more fine-tunable command line options, you can install MPlayer with Fink, as described below.

Open source the Fink way

Fink is a project that aims to provide Mac OS X users with ports of common Linux open source applications. The Fink package manager facilitates installing programs from the OS X command line by downloading application source code from a database of more than 5,000 packages, compiling it, and installing it using a port of Debian's APT. Fink's feature set includes full dependency support and the ability to bypass installing certain packages (like X) if you have already installed them through other methods. Fink installs all packages to its own/sw directory so that they will not interfere with the rest of the system, making it safe and easy to uninstall Fink by removing/sw.

To use Fink, you need to install Apple's Developer Tools and X Window System from the Mac OS X installation DVD. (There are other X11 implementations for OS X, but Apple's gives X apps integration with the Dock and the Quartz window manager.) Then grab the latest Fink binary and install it onto your system. Once Fink is installed, open Terminal.app (found in/Applications/Utilities) and type fink configure to set options such as which mirrors Fink should use and the verbosity level of its output. Next, run fink selfupdate to upgrade Fink to the latest release. This step is especially important for Tiger users since versions of Fink later than 0.24.5 use the newer 10.4-transitional tree to install software that is compatible with the new OS. Finally, run fink scanpackages to make sure the list of available packages is up-to-date.

Installing software with Fink is relatively simple. The command fink list keyword displays all packages in Fink's database matching the keyword you are searching for. Type fink install packagename to make Fink download, compile, and install your requested application. For example, to install the metapackage containing all of the applications in KDE 3.3.2, type fink install bundle-kde. Applications installed with Fink do not show up in the Finder, but they can be run from Terminal.app provided that/sw/bin is in your $PATH, which should be taken care of automatically after installing Fink. Typical console applications, such as the Pine mail reader (installable with Fink), require no further setup to use. Graphical applications requiring X, such as the GIMP or Bluefish (both installable with Fink!), can be run from an xterm window in X11.app or by using the command open-x11 applicationname in Terminal. Apple's X11 honors the contents of your ~/.xinitrc file and launches all commands found within it every time you start X. To make launching X applications a more transparent process, I add aliases to my ~/.bashrc file, such as: alias konq='open-x11 konqueror'.

Fink has many more commands and uses, including ports of the excellent apt-get and dselect programs from Debian. These are covered in the detailed documentation and FAQ on the Fink site. You can browse the Fink mailing lists for additional support. One community site that deserves special mention is Sao's Place, an essential resource for anything and everything about Fink and X11 on Mac OS X. For another method of installing open source software similar to Fink in purpose but different in implementation, check out DarwinPorts.

Click Here!