GNOME 2.0 Release Notes

1. Introduction

GNOME 2.0.2 is the newest version of the complete, free and easy-to-use GNOME desktop environment. In addition to basic desktop functionality, it includes a powerful application framework for software developers, with support for object embedding, internationalization and accessibility. GNOME is part of The GNU Project, and is free software.

The GNOME 2.0.2 Desktop and Developer platform includes a complete suite of libraries necessary to support GNOME applications. It also includes all the basic utilities for your day-to-day computing, from a simple weather monitor to a powerful file manager.

GNOME 2.0.2 is compatible with a number of platforms, including GNU/Linux, Solaris, HP-UX, Unix and BSD.

2. What's New in GNOME 2

The lengthy GNOME 2 development cycle allowed the introduction of a number of features that improve performance and usability. It also includes a powerful new framework that can be leveraged by developers.

2.1. Improved Fonts and Graphics

  • Fonts can be antialiased (or not, or only antialiased at certain sizes, or whatever you like).
  • No flicker in GTK apps
  • Images are composited onto backgrounds with full alpha channel, accelerated via MMX and the RENDER extension.
  • New enhanced icons.

2.2. Usability

Streamlining, consistency and coherence have been the primary foci for GNOME 2 Usability work. Above all we have tried to consider you, the user, as the focus of our design.

Streamlining: Rather than adding a great pile of new gadgets and preferences, GNOME 2 has been streamlined. Interface clutter had led to a GNOME where you could almost literally "do less with more". GNOME 2 removes many obscure or rarely used features (one or two of which may have been dear to you personally). In exchange you will find that most of the features you care about are much easier to access because they are not obscured by a million other items.

Consistency: Interfaces that behave according to consistent patterns are easier to learn, faster to use, and less prone to error. The GNOME Human Interface Guidelines have helped make the GNOME 2 interface more predictable, producing consistency between applications and promoting usable patterns within individual applications.

Coherence: The GNOME 2 desktop fits together well. From "Log In" to "Log Out", usability studies, countless brainstorming hours, and tireless hacking have produced a holistic desktop - more than a loose confederation of modules.

Specific user-visible improvements include:

2.2.1. Menus and Panel

  • Windows can be dragged between workspaces with the Workspace Switcher applet
  • Menus scroll when they get too big
  • Smarter menus accommodate diagonal mouse movements

2.2.2. Dialogs

  • File selector doesn't forget filenames when selecting a different directory
  • Revamped color and font selectors
  • New Run Program dialog with command completion
  • Text fields include right-click menus for cutting, copying and pasting text

2.2.3. Icons and Themes

  • New stock icons and color palette
  • Support for theming of stock icons
  • CD Player and login screens are now themeable
  • A clean and attractive default appearance

2.2.4. Applications

  • Redesigned and easier to use Search Tool
  • Brand new lightweight help application, Yelp
  • Control center applications for controlling GNOME 2 properties have been greatly simplified and reduced in number
  • Increasing compliance with freedesktop.org standards
  • Rewritten terminal application with tabs and profiles
  • A brand new dynamic, centralized configuration system
  • Many applications have been renamed to better suit their purpose

2.3. Performance

GNOME 2.0.2 exhibits notable performance improvements over its predecessors and some competitors, even on older, slower machines:

2.3.1. Bradley Shuttleworth

Just installed it smoothly on a P2-233 with 96 Mb RAM. Nautilus fires up a new window in under 5 seconds (which, given that Nautilus took longer than that in 1.4 on my Gigahertz laptop, is a pleasant change).

(And to brag, its faster than Windows XP on my laptop, too... XP takes a shine longer to fire up Explorer, and various other tasks are slightly faster.)

2.3.2. Mads Villadsen

I run it quite comfortably on a K6-300 with 96MB RAM. Everything feels at least as fast as with GNOME 1.4 - and Nautilus has become really usable as well. All in all it is pleasure to use :-)

2.4. Keyboard Navigation

Thanks to the GNOME Accessibility Project, GNOME 2 has improved keyboard navigation, including mnemonics that are easier for developers to implement, improved keyboard navigation of the new tree widget and key bindings that are more consistent where standards already exist.

2.5. Accessibility

Keyboard navigation is a key part of accessibility support that will be useful to all users, but there are many other aspects to it.

The core of accessibility support is a set of hooks in GTK that allow an external program to query applications about their GUI. For example, an external program can ask what buttons and menu items there are, their state, what their labels contain, and so on. This can be used by a screen reader to tell a blind user what's on the screen, for example.

This would allow a high-level scripting feature with commands such as "activate the File menu, choose Open, Select All, Copy" This kind of scripting would use high level user comprehensible GUI features and would not depend on special application support for scripting. It would just work automatically with any GTK app.

2.6. Internationalization

Internationalization has two major changes:

  • GNOME 2 has moved to Unicode throughout, so you can mix multiple languages and scripts in the same document, and use funky symbols such as bullets and dingbats in a document.
  • GNOME 2 handles “hard” languages such as right-to-left languages and languages that have ligatures and reordering.
One major implication of Unicode is that the same code paths will now be used for European and Asian text, so GNOME will almost certainly work out-of-the-box for people in all countries (except for input methods).

2.7. XML

GNOME 2 marks the first GNOME release to use libxml2, one of the most complete and standards-compliant free XML libraries available. It includes libxslt, a complete implementation of the XSLT specification.

3. Beyond the Desktop

While the GNOME 2 Desktop and Developer Platform was designed so that users could continue to user their GNOME 1.x applications, in many cases they will not have to wait long for GNOME 2 versions of their favorite software. A number of developers have already begun porting their applications to the new platform prior to its release in order to take advantage of its new features. Examples include:

Gnumeric

Gnumeric, the spreadsheet. The 1.1.x series contains the GNOME 2 versions.

GNOME-DB

GNOME-DB, a database integration toolkit.

Galeon

Galeon web browser. A port is underway, but depends on completion of the GTK+ 2 port of Mozilla.

GIMP

GIMP, the GNU Image Manipulation Program.

Xchat

Xchat, an IRC client

MrProject

MrProject project management software.

File Roller

File Roller, an archive manager.

Bluefish

Bluefish HTML editor.

Gthumb

Gthumb, an image manager.

Eclipse

Eclipse development platform.

4. Installation

4.1. Build Order

The packages should be built in the following order:

  1. libxml2
  2. libxslt
  3. intltool
  4. scrollkeeper
  5. pkgconfig
  6. audiofile
  7. esound
  8. gtk-doc
  9. glib
  10. linc
  11. atk
  12. gnome-common
  13. pango
  14. libIDL
  15. ORBit2
  16. bonobo-activation
  17. gtk+
  18. GConf
  19. libart_lgpl
  20. libzvt
  21. libbonobo
  22. gnome-mime-data
  23. gnome-vfs
  24. libglade
  25. libgnome
  26. libgnomecanvas
  27. libbonoboui
  28. libgnomeui
  29. libwnck
  30. libgnomeprint
  31. libgnomeprintui
  32. libgtop
  33. librsvg
  34. gail
  35. eel
  36. libgtkhtml
  37. gtk-engines
  38. gnome-desktop
  39. gnome-panel
  40. gnome-session
  41. gnome-terminal
  42. gnome-utils
  43. gnome-applets
  44. control-center
  45. gnome-games
  46. bug-buddy
  47. eog
  48. nautilus
  49. gnome-system-monitor
  50. yelp
  51. gedit
  52. librep
  53. rep-gtk
  54. sawfish
  55. gnome-media
  56. gdm
  57. at-spi
  58. libgail-gnome
  59. gconf-editor
  60. gnome2-user-docs
In addition to the disk space required to build each package (give after the dash in the above list), the total space required to install these packages is 341 MB.

It is possible to build all these packages in a different location from the default /usr/local (by passing the

--prefix= location
flag to the configure script in each tarball). If you do that, however, you should put the new location as the first component of your $PATH (to avoid existing versions of scrollkeeper being picked up, for example). This new $PATH should be visible to each package as it compiles (so that it sees, for example, the pkg-config files from the earlier packages in the build).

4.2. Parallel Install

GNOME 2.0.2 may be installed in parallel with the GNOME 1.4.1 release libraries, allowing you to use GNOME 2.0.2's primary desktop functions - panels, Nautilus, etc. - while also running applications that have not yet been ported and therefore still require GNOME 1.4 libraries.

For some GNOME 1.x apps, you need the GNOME 1.x control-center (eg: gnome-pilot for use in Evolution).

4.3. GARNOME

GARNOME builds GNOME 2.0.2 from released tarballs. It is maintained by Jeff Waugh, the GNOME 2 release coordinator, and can be found here.

4.4. GNOME Installation Guide

Karsten Reincke has written a GNOME Installation Guide.

4.5. Upgrading from GNOME 1.4

After building and/or installing all of the packages successfully, there are a couple of things that need to be done start using the latest release.

Ensure that any existing GNOME 1.x sessions have been exited and check that GConfd has stopped (run ps ax | grep [g]conf). If gconf is still running, execute the command gconftool-1 --shutdown to stop it.

In order to have anti-aliased fonts in menus and applications, you will need to make sure that the environment variable GDK_USE_XFT is exported before running the appropriate applications, enabling rendering to use GNOME 2's new font architecture. For example, you might put the following in $HOME/.gnomerc:

		export GDK_USE_XFT=1
		exec gnome-session
      
(This assumes you are using gdm as your interface to log into GNOME. If you are starting X from a command prompt - using startx - then just put the above lines into your $HOME/.xinitrc file.)

With this set, fonts will then be rendered according to the configuration of /etc/X11/XftConfig (moving to /etc/fonts/fonts.conf in a future version, as we move to fontconfig instead of Xft1). Settings in XftConfig or fonts.conf determine how fonts are rendered, including whether to use hinting and antialiasing.

There have been cases of the initial login to GNOME 2 not going quite smoothly and a lot of errors about CORBA connections not being completed popping up in error boxes (and nothing else starting). This can be probably fixed by stopping the session (returning to the gdm screen or to the command prompt) and then (in a terminal) removing the /tmp/orbit-user directory (and all of its contents), where user is replaced with the appropriate user's login name.

4.6. Platforms

4.6.1. BSD

The FreeBSD GNOME Project is providing ports.

4.6.2. Solaris

Notes about building on Solaris.

The following packages above and beyond those found on a complete Solaris system are needed:

  • gettext 0.10.40
  • popt 1.6.2
  • freetype >= 2.0.2
  • libaudiofile >= 0.2.3
  • sox >= 12.17.3
  • jpeg v6b
  • libpng 1.0.12
  • tiff 3.55
  • scrollkeeper 0.3.10
  • ghostscript 6.53

In addition, you need a compiler, either gcc or Forte 6 update 2. Older versions of forte/Sunpro have been known to cause problems.

There are a number of patches recommended for building GNOME on Solaris, which can be obtained from http://sunsolve.Sun.COM/pub-cgi/show.pl?target=patches/patch-access:

	* Solaris8/sparc:
        108528-14  108827-20  108989-02  110934-07  111293-04  112396-02
        108652-51  108987-09  110380-04  111111-03  111310-01  112438-01

    * Solaris8/x86:
        108529-14  108828-22  108990-02  110935-07  111294-03  111311-01
        112439-01  108653-41  108988-09  110403-04  111112-03  111307-03
        112397-02
	

If you are using the native iconv implementation on Solaris instead of libiconv, you'll need to make sure that you have the converters between locale encodings and UTF-8 installed. At a minimum you'll need the SUNWuiu8 package. You probably should also install the SUNWciu8, SUNWhiu8, SUNWjiu8, and SUNWkiu8 packages.

4.6.3. Darwin

With the latest releases, the GTK family builds cleanly out of the box. More work is needed to get GNOME running, however. A gnome-darwin-list has been set up for those interested in working on issue.

4.6.4. GNU/Linux

Building GNOME 2.0.2 on GNU/Linux requires a number of standard packages included with most distributions. Below are listings of the packages as they are named in several of the most common distributions.

4.6.4.1. Debian

  1. libpng2-dev
  2. libjpeg-dev
  3. libtiff-dev
  4. xlibs-dev
  5. libpopt-dev
  6. libgdbmg1-dev (librep)
  7. libgmp3-dev (librep)
  8. texinfo (librep)
  9. libbz2-dev, zlib1g-dev (gnome-vfs, others)
  10. python2.2 + python2.2-xml (libglade)
  11. docbook-xml (Docbook DTD 4.1.2) + docbook-xsl (Docbook XSL Stylesheets)

4.6.4.2. Red Hat

All of the following packages are required for a full build. Most should be installed by default and all will be available from the distribution itself. Alternatively, www.rpmfind.net is a good place to find the appropriate packages. I have used the “official” Red Hat names for each one. This is taken from a Red Hat 7.3 box, so it should be the same names across all Red Hat 7.x boxes and there are possibly some small changes on the 6.x boxes (plus some version problems on those boxes, too).

  1. gcc
  2. make
  3. glibc-devel
  4. libpng
  5. libpng-devel
  6. libjpeg
  7. libjpeg-devel
  8. libtiff
  9. libtiff-devel
  10. XFree86
  11. XFree86-devel

    Plus whatever XFree86 packages are required for the system to run.

  12. freetype
  13. freetype-devel
  14. popt
  15. gdbm
  16. gdbm-devel
  17. gmp
  18. gmp-devel

    This is the GNU multi-precision library, not libgpm, the mouse library.

  19. texinfo
  20. bzip2
  21. bzip2-libs
  22. bzip2-devel
  23. zlib
  24. zlib-devel
  25. gettext
  26. byacc or bison
  27. flex
  28. python >= 2.0 with expat support

    This means you need to be able to start python, it has to be version 2.0 or greater and “from xml.parsers import expat” must work from the Python prompt. In other words, running python2 -c "from xml.parsers import expat" from a shell prompt and having no error reported is sufficient.

  29. openjade
  30. sgml-common
  31. docbook-dtds
  32. xml-common
  33. docbook-style-xsl
  34. docbook-style-dsssl

4.6.4.3. Mandrake

GNOME 2 binary packages are available in Mandrake Cooker (Mandrake's experimental / unstable) distribution).

These packages haven't yet been customized to fully integrate in Mandrake Linux (all available applications are not show in menu, some features available in Mandrake version of GNOME 1.4 have not been ported yet to GNOME 2).

These packages should only be used on full cooker system (not 8.2/cooker mixed system) and feedback for these packages should be sent to the cooker mailing list.

All of the following packages are required for a full Mandrake build. Most should be installed by default and all will be available from the distribution itself. Packages are from Mandrake Linux 8.2. (Hint : use urpmi my_package to install my_package)

  1. gcc
  2. make
  3. glibc-devel
  4. libpng3
  5. libpng3-devel
  6. libjpeg62
  7. libjpeg62-devel
  8. libtiff3-devel
  9. libtiff3-devel
  10. XFree86
  11. XFree86-devel (Plus whatever XFree86 packages are required for the system to run.)
  12. freetype2
  13. freetype2-devel
  14. popt
  15. libgdbm2
  16. libgdbm2-devel
  17. libgmp3
  18. libgmp3-devel (This is the GNU multi-precision library, not libgpm, the mouse library.)
  19. texinfo
  20. bzip2
  21. libbzip2_1
  22. libbzip2_1-devel
  23. zlib1
  24. zlib1-devel
  25. gettext
  26. byacc or bison
  27. flex
  28. python >= 2.0 with expat support. This means you need to be able to start python, it has to be version 2.0 or greater and “from xml.parsers import expat” must work from the Python prompt. In other words, running python2 -c "from xml.parsers import expat" from a shell prompt and having no error reported is sufficient.
  29. openjade
  30. sgml-common
  31. docbook-dtd41-sgml
  32. docbook-dtd412-xml
  33. docbook-style-xsl
  34. docbook-style-dsssl

4.6.4.4. Gentoo

Gentoo Linux provides GNOME 2 support. Details here.

4.7. System Requirements

As discussed Section 2.3 ― Performance, GNOME 2 requires less resources than GNOME 1.4. We recommend a P400 or equivalent with 128M RAM for using the desktop, but it has been known to work on a system with as little as a P166 with 64M RAM.

5. Themes

Themes - changing the look of your desktop - are a favorite preoccupation for many GNOME users. GNOME 2 offers abundant opportunities to play with themes, including gtk+, the window managers, GDM, Nautilus and more.

A GNOME themes web site, Sunshine in a Bag, has been established.

6. Quirks

Things that may bite or surprise... or both!

6.1. Panel Menus Disappear

With the return of menu editing, old vfolder configurations and changes may affect your menus in the 2.0.2 release. You can remove past menu changes by deleting your ~/.gnome2/vfolders/ directory and restarting the panel.

6.2. Dialogue Buttons

Dialogue buttons are slightly different in GTK+ and GNOME 2.x, to fit in with our new Human Interface Guidelines. Whilst the new button order may simply look 'backwards', they do adhere to a consistent and elegant design. It is described in the Alert Buttons section of the HIG.

6.3. Auto-apply

As a rule, preference dialogs are now auto-apply, so do not be surprised by the lack of an Apply button.

6.4. Tearable menus

Tearable menus are gone by default. To reinstate them, use gconf-editor and change the value of /desktop/gnome/interface/menubar_detachable to TRUE.

Changing this GConf key does not instantly apply. To ensure that the change takes place, you must log out, kill any GNOME daemons still running (such as bonobo-activation), and log in again.

6.5. Cut and Paste

The clipboard is a common source of confusion. GTK has always done the right thing for the clipboard, and the version used in GNOME 2 is no different. See http://www.freedesktop.org/standards/clipboards.txt. If the clipboard doesn't work it's because some application is not following the spec correctly; please file bug reports for those applications.

Qt 2 does not follow the clipboard specs correctly, so correct applications do not interoperate with Qt 2. Qt 3 fixes this problem.

6.6. Nautilus default desktop selections have changed colors

In the process of fixing bug bug 82194, the way nautilus displays selected text on the desktop was changed; this makes all existing nautilus themes use the gtk selection color in this case. This may look like a bug but it is, in fact, a feature :) If the old behavior is still desired, the theme has to be fixed. For more on this, including how to fix themes to display the old behavior, see Federico's emails to nautilus list.

7. Known Issues

All software, when it is released, contains bugs the developers know about but have elected, for a variety of reasons, not to fix before releasing. Free software is no different in this regard from proprietary software, except that with free software, we tell users about them.

We also encourage our users to report bugs so that they can be fixed. The best way to report bugs found in GNOME 2.0.2 is to use the Simple Bug Guide. The Simple Bug Guide will take you through the necessary steps to file a quality bug report, and make sure that it is tagged appropriately. If you're too advanced for anything with the word 'simple' in it, there is also the traditional bug form. Please make sure to add the 'GNOME2' keyword to any bugs reported that way.

More details on bugs already reported can be found at our Bugzilla. Among the most prominent GNOME 2.0.2 bugs:

7.1. Internationalization of gnome-terminal is broken

Unfortunately, gnome-terminal is broken in many non-ASCII locales. A fix for this was proposed but caused many other problems and as a result, was withdrawn. The current progress can be tracked in bugzilla number bug 78007 or in the libzvt-i18n branch of the zvt module.

7.2. Some features formerly provided by viewports no longer available in Sawfish

In order to simplify sawfish code and user interface, viewports have been removed from Sawfish2. The current functionality replaces nearly all viewport functionality, except two-dimensional workspace navigation. This is bug number 82337.

The following has been reported as a workaround when added to .sawfishrc:

  ;; Get viewports back
  (setq customize-command-classes '(default viewport))

  ;; (setq viewport-dimensions '(NUMBER_OF_COLS . NUMBER_OF_ROWS))
  (setq viewport-dimensions '(6 . 1))  ;; example
		  

8. Fixed in this Release

The GNOME 2.0.x Desktop releases are devoted to bugfixes, translations, user interface consistency, and general polish of our major 2.0 Desktop release. In GNOME 2.0.2, you'll see the results of continued performance and stability work, and plenty of bug fixes:

Major bugs mentioned in the previous release notes have now been fixed and are listed here:

8.1. Menu editing returns

Menu editing returns in GNOME 2.0.2! Because a number of bugs existed in the menu editing implementation, and the best fixes for some of them were not reverse compatible, we did not include menu editing in previous releases. Details on the menu architecture and tips for manual editing of menus can be found in our menu editing guide.

8.2. New mime type handlers not always visible in nautilus

When a new mime-type handler was installed, it did not show up correctly in Nautilus right-click menus. Was fixed in GNOME 2.0.2.

8.3. NFS-mounted $HOME directory

For people with NFS-mounted $HOME directories, it was not possible to drag files from the Nautilus view windows to the trashcan (it would generate an error about the trash file not being a directory). This was fixed in GNOME 2.0.1 and was bug 82644.

8.4. .gnome

GNOME 2 uses $HOME/.gnome2 and $HOME/.gnome2_private as directories for storing stuff. However, you could not completely remove $HOME/.gnome, since gnome-vfs needs it and did not create it, so any modifications that gnome-vfs needs to save in the user's directory would not be saved. Thus, users needed to create a $HOME/.gnome directory before starting GNOME 2. This was fixed in 2.0.1 and was bug 84183.

8.5. Cannot drag and drop from Nautilus list view

It wasn't possible to drag and drop files from the list view as you can in the icon view. This was fixed in GNOME 2.0.1 and was bug 74974.

9. Getting Involved

The core of GNOME's success is its volunteers, both developers and users. As a user, your contribution can be as simple as filing good bug reports. GNOME's bugs are found at our Bugzilla. Bugmeister Luis Villa has set up a simple bug-filing interface to make it easier to file useful reports.

If you would like to take the next step, developers, documenters, web developers, documenters and bug handlers are always welcome. More information on getting involved can be found here.