New Ticket     Tickets     Wiki     Browse Source     Timeline     Roadmap     Ticket Reports     Search
Last modified 2 years ago Last modified on 01/17/12 22:17:04

GNOME

GNOME is a project, a foundation, a developer's platform (with a related set of language bindings), and a user's desktop environment. New releases of the developer's platform and the desktop are released at the same time.

Version Scheme

The GNOME Foundation uses the version scheme where odd minor versions indicate that a package or product is a development version, such that GNOME 2.27.x is a development version, considered unstable, while 2.26.x is a release version that is considered stable.

Running GNOME

The GNOME desktop may be run by issuing the command gnome-session & from an xterm, adding the line USERWM=gnome-session to a script in your ~/.xinitrc.d directory, or adding the command exec gnome-session to a script in your ~/.xinitrc.d directory.

Environment

The environment that GNOME runs in requires that the following variables be set. These are shown with the values for a default MacPorts installation:

XDG_DATA_DIRS
/opt/local/share (defined in the XDG Base Directory Specification)
XDG_DATA_HOME
/opt/local/share (defined in the XDG Base Directory Specification)
XDG_CONFIG_DIRS
/opt/local/etc/xdg (defined in the XDG Base Directory Specification)
ESPEAKER
localhost (this allows sound to play at least on Mac OS X 10.5 Leopard)
See the sample .xinitrc.d scripts for examples of how to set these variables.

Sample .xinitrc.d script

WARNING: If you have a ~/.xinitrc file on Leopard or SnowLeopard, delete it and instead use the ~/.xinitrc.d directory as directed below.

The following examples are for use with MacPorts X11 server (xorg-server or xorg-server-devel), the Leopard X11 server, or the SnowLeopard X11 server. For Tiger support, you will need to make a custom ~/.xinitrc file rather than a custom ~/.xinitrc.d/90-gnome.sh script. The script must be set executable.

The following ~/.xinitrc.d/90-gnome.sh uses quartz-wm for the WM:

 # make the freedesktop menu entries work
 export XDG_DATA_DIRS=/opt/local/share
 export XDG_DATA_HOME=/opt/local/share
 export XDG_CONFIG_DIRS=/opt/local/etc/xdg
 
 # enable sound
 export ESPEAKER=localhost

 # use Apple's window manager
 exec quartz-wm &
 
 # start GNOME
 exec gnome-session

This ~/.xinitrc.d/90-gnome.sh uses GNOME's builtin window manager, Metacity:

 # make the freedesktop menu entries work
 export XDG_DATA_DIRS=/opt/local/share
 export XDG_DATA_HOME=/opt/local/share
 export XDG_CONFIG_DIRS=/opt/local/etc/xdg
 
 # enable sound
 export ESPEAKER=localhost

 # use GNOME's window manager
 exec metacity &
 
 # start GNOME
 exec gnome-session

Settings

GNOME settings are stored in a number of hidden directories in your home directory:

.fonts.cache-1
.gconf
.gconfd
.gnome
.gnome2
.gnome2_private
.gtkrc-1.2-gnome2
.nautilus

On MacPorts

The GNOME ports are currently updated to the GNOME 2.26.3 stable release versions, although not all packages in the release have been ported as of yet. Our aim is to provide the latest stable GNOME release available (release x.y.z where y is even and x is greater than 0.)

Assistance

Email

The macports-users mailing list is available for your assistance, and is the best place to resolve issues running the MacPorts distribution of GNOME. Note that since most of the GNOME ports are maintained by nomaintainer@… that mailing list also gets most bug reports for our GNOME ports.

Meta Ports

A meta port is a port that is simply a collection of dependencies on other ports. There are a number of GNOME-oriented meta ports in MacPorts:

gnome
This meta port is currently a shorthand for the gnome-desktop-suite and the gnome-desktop-suite and optionally the gnome-bindings-suite with some variants for additional software.
gnome-desktop-suite
This meta port contains all the software packages that the GNOME Foundation distributes as part of the GNOME desktop.
gnome-platform-suite
This meta port contains all the libraries and support programs that GNOME software written in the C language may require to run. This corresponds to the GNOME Developer's Platform from the GNOME Foundation.
gnome-developer-tools
This meta port contains tools and documentation that are helpful to developers who wish to create new GNOME applications. This corresponds to the GNOME Developer's Tools from the GNOME Foundation.
gnome-bindings-suite
This meta port is a collection gnome-bindings-language meta ports that include the libraries required for GNOME programs in C++, C#, Perl, and Python to run. This contains the GNOME Foundation's officially supported languages with the exception of Java.

TODOs

The following TODOs are specific to GNOME packaging on MacPorts:

  • Port the remaining modules in the GNOME 2.26 stable branch that have not yet been ported to MacPorts before the next stable release date.
  • Review all GNOME ports that are not part of the official release to ensure that they are up to the latest available revision, removing any ports that are no longer compatible with the latest release code or have been deprecated and/or replaced by other, more current, applications.
  • Create a test repository for modules in the GNOME 2.27 unstable branch in preparation for the GNOME 2.28 stable release
  • Provide a full GNOME 2.28 stable release in MacPorts as soon as practical after the official release date.

The current stable release is GNOME 2.26.3 released on Wed 1 July 2009

The next stable release will be GNOME 2.28.0 currently scheduled for release on Wed 23 Sept 2009.

Specific Ports

gdm

gdm uses PAM (Pluggable Authentication Modules) to authenticate users. PAM is a core part of the Mac OS X security system, and as such there is a manual process that needs to be completed before gdm can be used:

In Terminal:

cd /etc/pam.d
sudo cp login gdm

This creates a file that allows logging into gdm to behave basically identical to logging into Mac OS X using the standard means. Tweaking the settings of /etc/pam.d/gdm will change the authentication possibilities for gdm.

Additional Information

[1] fink-gnome-core, the Fink project's office GNOME email list.

[2] Current status of the GNOME packages on MacPorts