A GNOME Dictionary Explaining all those funny package names Peter Williams You've probably noticed that the list of packages that make up the GNOME Desktop is rather long and confusing. Not only is it sixty items long at last count, but it sounds like a zoo -- eel, nautlius, bonobo... There's not much we can do about the size of the list (except justify it as being "aggressively componentized" and "a very large project"), but this document aims to demystify the purposes of this plethora of packages. Here we go, in the order you need to compile them: * libxml2 This library, written by Daniel Veillard, provides basic functions for reading and writing XML data for other applications. * libxslt The companion to libxml2, this library implements the XSLT specification, which allows programs to translate and transform XML files into different formats. Yelp, for instance, uses it to change XML Docbook files into HTML files that you can read * scrollkeeper This is a tool for keeping a database of all the documentation on your computer. Programs register their documentation with it when they get installed, so that help softare, like Yelp, can show you a list of all the documentation on your computer. (Well, that's not quite true since not all software takes advantage of scrollkeeper, but all GNOME software should use it.) * pkgconfig Pkgconfig is a developer tool for keeping track of the different versions of packages that have been installed on your computer. Unless you plan on compiling your own software, you shouldn't have to worry about it. If you are compiling your own software, you should be thankful it makes life so easy! * audiofile The audiofile library is a low-level library that enables programs to read a variety of audio file formas, like WAV and RIFF. It is used by esound to help it play sounds. * esound ESound, the Enlightened Sound Daemon, is a background process that GNOME uses to play sounds. It solves the problem of playing sound over the network and allowing multiple programs to play sounds at the same time, which lower-level sound packages usually don't provide. * gtk-doc Gtk-doc is a set of tools for developers to use to automatically generate documentation for their software. It doesn't contain any documentation itself; it just makes it easier to create documentation. It was originally developed for use in GTK, hence the name. Like pkgconfig, you hopefully shouldn't ever have to worry about gtk-doc unless you're writing or compiling software. * glib GLib is a low-level library of common functions that almost all software needs. It makes it easy to implement such common programming tools as hash tables, linked lists, main loops, and lots of other little fiddly bits. It also makes it easier to write software that's portable to all sorts of operating systems and platforms. GLib is used by almost every piece of software in GNOME. * linc As you might infer from its name, linc is a library for helping connect programs. It provides low-level routines for interprocess communication (IPC) over a variety of channels -- TCP/IP, unix sockets, and more. * atk ATK is the Accessibility ToolKit. It provides a common basis for GNOME programs to describe their user interfaces, so that software like gail can help provide accessibility support to any GNOME program. * gnome-common Gnome-common is a package of very small developer utilities that don't really fit in anywhere else. * pango Pango is a system that lets GNOME programs render text in almost all of the world's varied languages. It can render scripts as simple as the Latin alphabet to as complicated as Chinese, Arabic, or Indic languages. Pango is one of the centerpieces of GNOME 2's improved internationalization. * libIDL LibIDL is a small library used by ORBit2 to load Interface Definition Language files. It's basically a subsystem of ORBit2 that happens to be split into a separate package. * ORBit2 ORBit2 is the GNOME 2 implementation of the CORBA specification. CORBA is a formalized way of performing interprocess communication (IPC) so that programs that know nothing about each other can talk to each other and share information. CORBA is the basis of technologies like Bonobo and is used in a variety of other places in GNOME. * intltool Intltool is another developer tool. This one helps documenters extract text that needs to be translated from a variety of files. * bonobo-activation Bonobo-activation is a companion to ORBit2 in a way. While ORBit helps programs talk to each other, it doesn't say how programs are supposed to find each other. Bonobo-activation is GNOME's solution to this task -- it helps programs locate and start each other. * GTK+ GTK+ is the graphical toolkit for GNOME. It provides the routines that let GNOME programs draw all their checkboxes, menus, and icons in a consistent manner. A lot of programs outside of GNOME 2 also use GTK+ because it's a powerful, stable toolkit with excellent internationalization and accessibility support. * GConf GConf is a system for storing simple configuration information in a centralized place. It's a little bit like the Windows Registry, except we only use it for non-critical preference information. * libart_lgpl Libart is a library written by Raph Levien that supports super-fast rendering of complex graphics. It is used in the places in GNOME where high performance is a must. * libzvt Zed's Virtual Terminal, written by Michael "Notzed" Zucchi, is a library that provides routines for embedding Unix terminals in GNOME software. Unsurprisingly, it is mainly used by the GNOME Terminal software. * libbonobo Libbonobo provides the basic functionality of Bonobo, GNOME's component embedding system. This is the technology that lets a Gnumeric spreadsheet contain an Abiword document, all inside an email being read in Evolution. Bonobo uses CORBA to give these applications a standard way to describe the documents that they can display. * gnome-mime-data This package is simply a database of MIME formats that all GNOME programs can use to determine how to display a wide variety of different kinds of documents. * gnome-vfs The GNOME Virtual File System lets GNOME programs access files on your hard disk, webpages, files on Windows machines, FTP sites, and more all in the same way. This enables software like Nautilus to be much more flexible. * libglade Glade is a program for helping developers create complex user interfaces without having to write a bunch of code. It creates Glade XML files that programs can load using libglade. * libgnome Libgnome provides most of the fundamental glue and utilities that help GNOME software look and feel consistent. It ties together many of the previous technologies to give programmers a basic way to fit their individual software with the desktop as a whole. * libgnomecanvas This library provides the GNOME Canvas, which is a specialized graphical element for creating complex, interactve graphical layouts like those seen in the program Dia. It uses libart_lgpl for fast drawing. * libbonoboui This library extends libbonobo with routines and interfaces specifically for applications with graphical user interfaces. * libgnomeui Similar to libbonoboui, libgnomeui extends libgnome with routines that are specialized for graphical applications. * libwnck This library helps GNOME software interact with the X window system to find information about currently open windows and desktop settings. It is used by some gnome-panel applets. * libgnomeprint This library provides a generic printing interface that can be used by GNOME software to print to a variety of different devices. * libgnomeprintui This library builds on top of libgnomeprint to provide graphical routines useful to applications that wish to implement printing support, such as a print preview and a page setup dialog box. * libgtop Libgtop provides a generic interface for software to gather information about the usage of system resources and currently running programs. It is primarily used by gnome-system-monitor. * librsvg RSVG stands for Raph's Scalable Vector Graphics, which is an implementation of the W3 SVG standard. * gail GAIL is an toolkit based upon atk. While atk provides a generic language for describing software accessibilty capabilites, gail applies that language to gtk-based software. * eel Eel is a set of utility routines mostly used by Nautilus. * libgtkhtml This library provides a toolkit for rendering HTML documents. It doesn't do everything a web browser can do, but it lets programmers embed HTML content directly in their software. * gtk-engines This is a set of small libraries that gtk can use to actually draw graphics on your screen. Different engines can be used to give your programs a different graphical style, or theme. * gnome-desktop This package provides tools for using freedesktop.org Desktop format files, which describe how to launch programs, what icon a program is associated with, what categories it falls into, and more. * gnome-panel The GNOME Panel, the taskbar at the edge of your screen, is provided by this package. * gnome-session The gnome-session library provides routines and programs for managing your X Windows session. This includes tasks such as determining which programs to start when you log in and letting you switch between different sessions while you're using your computer. * gnome-terminal This package installs the GNOME Terminal emulator, based on libzvt. * gnome-utils Just what it says. A bunch of utilities like a calculator and a character picker. * gnome-applets A bundle of applets that you can put in your panel to liven it up or show vital information. * control-center The Control Center is the main application in which you can edit your desktop preferences and tweak things to your liking. * gnome-games Contains diversions like aisleriot, a solitaire game, and gnomines, a Minesweeper clone. * bug-buddy A tool that enables you to automatically submit useful bug reports when your GNOME software crashes -- so of course you should only have to use it rarely :-) * eog The Eye of GNOME, an image-viewing program. * nautilus GNOME's file manager, like Windows Explorer or the Apple Finder. You can use it to manage the icons on your desktop and your files. * gnome-system-monitor A program for viewing the state of your computer's resources like memory, processor time, and disk space. * yelp Yelp is GNOME's help file viewer. It uses scrollkeeper and libgtkhtml to find and show you documentation. * gedit GEdit is a simple but powerful editing program along the lines of Windows' Notepad or Apple's SimpleText. * librep Librep is a library used by sawfish for executing a subset of the Scheme programming language. * rep-gtk Rep-gtk is a library that allows programs based on librep to use the gtk graphical toolkit. Sawfish uses rep-gtk to draw its menus and configuration dialog boxes. * sawfish Sawfish is the standard GNOME X window manager. It takes care of placing windows on the screen and drawing their borders. You can configure it to make certain windows always appear in the same place or have some windows have a unique appearance. * gnome-media This package provides several multimedia programs, like a CD player and a sound recorder. * gdm GDM is the GNOME Display Manager, which takes care of logging in a user to their X Windows session. It asks you for your username and password and looks very pretty while doing so. * at-spi This package provides a central server for accessibility information for all the programs that you run. This makes it possible for one program to provide an accessibility service, like a screen reader or an onscreen keyboard, to all the programs that you run. * libgail-gnome This extends libgail to provide accesibility services for GNOME-based software. * gconf-editor This utility allows you to poke around your GConf database and change values directly. It's not recommended for direct use, but you may find it useful for changing esoteric settings or proving that you're too cool for the control-center. * gnome2-user-docs Documentation for how to use the GNOME 2 platform and its many features.