Frederic Peters, the current GNOME Release Manager, is 33 and lives in Brussels. He still remembers his very first contribution to GNOME: “That was the conversion of Havoc Pennington’s book (GNOME and GTK+ Advanced Development, GGAD for short) from whatever it was written in to DocBook in 1999. At that time, I was still at school and I had made a few contributions to Free Software, the most important one being a Debian Developer.” But Peters didn’t get proerly involved in GNOME until sometime later. It took several years and various adventures in his real life before he came back to the project – in 2006 – thanks to the GNOME Love initiative.
“Luis Villa had comments on the difficulty of setting up a build environment, and how useful it would be to track build failures so they wouldn’t have to wait for a beginner to stumble upon them, so I started such a system. Later on we met at GUADEC and founded the Build brigade, an effort to automate discovery and reporting of GNOME build errors, which would make testing of GNOME’s development version easy for everyone. Various people helped (my thanks to Iago Toral Quiroga and John Carr!) and we got build.gnome.org up and running.”
What Peters did then was actually a precursor of his current position as GNOME Release Manager. As the developers had build.gnome.org running, they needed to keep an eye on it and fix failures in various modules. “This gave me a good overview of the GNOME project, in terms of code as well as in terms of people. I believe this is still what I do as release manager nowadays: knowing things left and right, pointing whoever needs it to the right place or person, and so on. On top of this, there is some higher level management, definitely shared between the members of the release team. Examples of these tasks are defining the exact schedule, tracking blocker bugs, making sure the releases appear on time, and other such things.”
While GNOME 3 has a radically different design than GNOME 2, we can’t say the same about the applications. However, in GNOME 3.4 the developers began to have applications adopt a design fit for GNOME 3. Of course this was the case for the new applications like Documents and Contacts, but it also happened to existing applications. For instance, the web browser Epiphany morphed into Web. “In 3.6 this trend will persist, with more applications being redesigned,” Peters maintains.
While KDE offers various workspaces, each for a specific form factor, such as Plasma Desktop for the classical desktop, Plasma Netbook for netbooks, and Plasma Active for mobile devices, GNOME 3 has a one-size-fits-all user interface. Its primary focus is still on the desktop, but according to Peters the GNOME developers do pay attention to also work well on netbooks, as it’s quite close to a desktop. “Moreover, problems like huge dialog windows, which typically manifest themselves on small netbook screens, are a general usability concern. Of course there are also GNOME developers paying attention to tablets and new kinds of devices, and their existence has an influence on the work of the GNOME designers, but at the moment our target is still somehow homogeneous enough to warrant a one-size-fits-all interface.”
GNOME 3.4 also introduced a new concept, the Application Menu, which offers a global menu for applications. Its use by applications was quite limited in GNOME 3.4, but according to Peters this has expanded in 3.6: “We use the Application Menu in many applications now, from Baobab to Nautilus, from Empathy to Gucharmap, and so on. We noticed several shortcomings in its first implementation in 3.4 and they’re being addressed. For example, there were some problems for sloppy-focus users and in multi-monitor configurations.”
Under the hood
Most users see the improvements on the visual side, with GNOME Shell, but GNOME 3 is a lot more. Under the hood there are a lot of libraries, and there has been a tremendous amount of work going on in the graphical toolkit GTK+: “We have new widgets in GTK+, such as GtkLevelBar, a widget to use as a strength indicator, GtkSearchEntry, a subclass of GtkEntry that is set up to be used as a search entry, and GtkMenuButton, a button that pops up a menu. But we have also improved performance, notably in the CSS theming code.” GNOME will also get to use GStreamer 1.0, and many pieces have already been ported to benefit from WebKit 2, although the official switch is only planned for GNOME 3.8.
In GNOME 3.0, accessibility support was quite limited because of the move to the Clutter framework. This has been improved in each subsequent version, and it now even goes further than in the 2.x times, Peters emphasises: “We will ship GNOME 3.6 with accessibility turned on by default. The most important consequence is that users won’t need to log out and in again after enabling it to activate the screen reader Orca or other accessibility tools. Orca also has improved and we have new high contrast icons (many thanks to Meg Ford for those).”
Currently, GNOME Documents can handle Google Docs if you have set up a Google account in GNOME Online Accounts. In 3.6, users also get access to documents that are available in Windows Live SkyDrive if you have set up a Windows Live account in GNOME Online Accounts. Moreover, you can also set up an Exchange account in Online Accounts in GNOME 3.6, after which Evolution uses this information to access your email. Another interesting new feature is ‘infinite scrolling’ in Empathy, Peters remarks: “This is a favourite of mine: it offers seamless scrolling to previous discussions.” He can’t say much about the long-term direction of GNOME: “GNOME 3 is still very young, so we are more in a period of getting things settled, and there’s no plan to get things shaken up another time. Perhaps it’s boring not to have long-term plans, but I believe this is because the present is already exciting enough.”
A couple of months ago, Linus Torvalds complained in his well-known style about the lack of customisation of GNOME 3, as well as about broken GNOME extensions. Peters has an interesting response to the problems Torvalds faced with GNOME extensions: “His rant about GNOME extensions reminds me of Firefox add-ons a few years ago. You installed some add-ons, you upgraded Firefox, some add-ons broke, or they even broke Firefox, but still that ecosystem of add-ons was and is an important factor for the popularity of Firefox, and nowadays upgrade problems are solved. I wish the same happens with GNOME extensions.” Peters also mentions that Jasper St. Pierre worked quite a bit on extensions this release cycle. He is building a tool to translate the extensions from the online GNOME Shell extensions website into RPM packages for easier deployment for system administrators.
GNOME 3 also surprised many users because it doesn’t show the poweroff button by default in the user menu, but Suspend. However, GNOME 3.6 will reintroduce this button by default instead of only after pressing the Alt key. According to Peters, this change came for several reasons, including listening to user feedback. “GNOME developers are not interface nazis,” he jokingly says, “but seriously: this change is part of a larger set of modifications to the user menu. Apart from user feedback, another reason is that suspending usually involves another action, such as closing the lid of the laptop.”
Not everyone was happy when GNOME 3 was released, and although the developers have worked on some of the most important issues people faced, they couldn’t prevent some forks. Two important forks in this situation are Cinnamon and MATE. Cinnamon is a GNOME Shell fork with a more familiar GNOME 2 interface for users that don’t like the GNOME 3 interface, while MATE is a fork of GNOME 2, which really wants to keep developing the traditional GNOME 2 desktop environment. Peters is happy that these forks exist as they serve users, just like other desktop environments such as KDE and XFCE are doing, but he sees some maintainability problems: “Both projects inflicted some painful and difficult job upon themselves, as it looks like they started by importing tarballs into Git repositories, instead of starting from our existing repositories. This means it’s now a totally manual job for them to pick fixes that are happening in our modules. And of course the reverse is also true: if they fix something that could be interesting for GNOME 3, we also have to manually pick the fixes.”
The GNOME Foundation is the organization that deals with money in GNOME land, for instance for funding of development and things like developer travel for GUADEC: “Expenses are discussed in its board and the myriad of details are then handled by the travel committee.” Sponsorship comes from various sources. Some core sponsors part of the advisory board are companies like Canonical, Red Hat, SUSE and Google, but also organizations like the Free Software Foundation and the Software Freedom Law Center. “We also get more sponsors for specific events, such as hackfests and conferences.”
“While corporate sponsorship is our main source of money at the moment, it’s also possible to help as an individual,” Peters emphasises. “We have been running the ‘Friends of GNOME’ program for a few years now, and we are now concluding a special call we made to sponsor accessibility. Our goal is $20000, and we are now at $19010. If you want to donate $25 or more to help us reach our goals, take a look at http://www.gnome.org/friends/.”
Collaboration with distributions
The collaboration with distribution makers is going well according to Peters: “All major distributions will be shipping GNOME 3. Even Debian with its focus on “when it’s ready” has 3.4 in their repository and will ship it in the next release, Wheezy.” But Peters admits that some things could be better, such as the collaboration with Ubuntu: “It’s a bit of a difficult position, as we were really close a couple of years ago. Ubuntu adopted our release schedule and it was a really nice distribution to try the development versions. Nowadays, they are not in an easy spot. They still do rely on many GNOME components, but their primary environment is now Unity; at the same time they still have their schedule tightly coupled to GNOME. Perhaps this should change, so they have more time to absorb the changes that are made in GNOME.”
The GNOME developers primarily focus on running on GNU/Linux, but other open source operating systems are not left in the cold, Peters says: “We regularly get patches to improve the way GNOME works on *BSD, and they’re usually committed quite fast. For instance, the last one I noticed was about allocating pseudo-TTYs required for SSH authentication. A patch was committed that uses the openpty(3) function on OpenBSD.”
Although running GNOME on non-Linux operating systems is becoming more difficult because of the growing dependency on the Linux-only systemd component, Peters clarifies that systemd is not a hard dependency: “Mostly we have a dependency on a few D-Bus interfaces, for instance to change the date/time or the hostname, but these are easy to reimplement as standalone programs. Ubuntu did this already in the ubuntu-system-service package, so *BSD systems should also be able to do it. Then there’s session tracking, done by systemd-logind, but it’s still possible to use ConsoleKit for it, which is maintained now by Canonical’s Martin Pitt.”
Of course the GNOME developers are also collaborating with KDE on cross-desktop and Freedesktop.org topics, such as systemd and NetworkManager. “Another successful example is the Telepathy framework for instant messaging and voice/video calling: it was originally developed for GNOME (with Empathy as the canonical client), but it’s now adopted by KDE too. But the best example of cross-desktop collaboration at the moment may be the new Secret Service D-Bus API, which is implemented by both gnome-keyring and ksecretservice.”