LWN.net Logo

GNOME on non-Linux platforms

By Jake Edge
July 29, 2009

Supporting multiple platforms in a free software project can be difficult; even more so when the software needs to closely interact with the underlying hardware. The GNOME project is currently struggling with that issue a bit, as some would like to see a definitive statement that the GNOME desktop environment is targeted for Linux exclusively, while others see supporting Solaris and the various flavors of BSD as essential. But, because the majority of GNOME developers are Linux-based, there will always be something of a Linux-bias, as most new features, especially low-level features, get their start on Linux.

We have seen this kind of thing crop up before. The DRI/DRM project for supporting 3D graphics for the X Window system ran into a similar problem last September. When the bulk of the development community is based on just one of the target platforms, it is difficult to fully support the minority targets. For GNOME, that means that the BSDs and Solaris have to play catch-up on some low-level features like HAL or, more recently, things like DeviceKit and PolicyKit.

Christian Schaller started things off with a request on the gnome-desktop-devel mailing list: "So I would like to ask the GNOME release team to please come forward and clearly state that the future of GNOME is to be a linux desktop system as opposed to a desktop system for any Unix-like system." His point was that it was already a fait accompli, but that the GNOME community—and release team—should formalize the decision, rather than just continue to handle things that way.

As one might guess, there was far from uniform agreement with that idea. Sun folks, in particular, were not particularly enamored with officially proclaiming GNOME to be "Linux only". Sun is a long-time contributor to GNOME and would rather see the multi-platform nature of GNOME continue. As Calum Benson put it:

Anyway, if anything, I guess I'd argue that it's time to actually reinforce the notion that the GNOME desktop is intended for use on any Unix-like system, and to figure out how to better distribute the development and QA workload to make that happen, so that non-Linux contributors have more chance to make significant contributions upstream again instead of spending most of their time treading downstream water.

One of the problems with that approach is the testing burden that it causes. Developers would need to check that their code works on multiple different systems, many of which are either not available or not particularly interesting to those developers. Those who want to see GNOME supported on their OS will clearly need to do the bulk of the work to make that happen. But there is an additional problem, as David Zeuthen points out:

You know, maybe if the non-Linux platforms actually participated in _designing_ and _developing_ the core plumbing bits, threads like this wouldn't have to happen.

In that message, Zeuthen outlined how he had seen several GNOME features get added to Solaris long after there were Linux implementations, which resulted in a lot more pain for Solaris. He would much rather see Sun (and other interested parties) start working on these new features as they are being developed, so that portability and other problems are identified earlier and fixed—before they become set in stone. Benson agreed: "Oh, there's no doubt Sun and our ilk have to do much better as well". Artem Kachitchkine, who did the initial HAL port to Solaris, also agreed, but thinks that it is still possible to do timely multi-platform releases:

To give a simplified example, what we had during HAL development sometimes, say, 0.x.y was released based on Linux exclusively and we had to follow that up with a 0.x.y.1 release to fix FreeBSD/Solaris issues. With an established N-way commitment from all interested platforms, I believe such issues could be resolved upfront, leading to higher quality releases (less iterations) and a more even cost distribution, with little effect on schedule.

So from a bystander's point of view, maintaining GNOME's platform neutrality requires effort from both sides: from the ideological leaders, maintaining portability as a core requirement, built in not screwed on; and from interested platforms, continuous participation and timely response.

Though the Sun folks participating in the discussion made it clear they weren't necessarily representing the company's views, the discussion does show that some Sun engineers are aware of the issues—and would like to see them get resolved. On the other hand, no one from the BSD camp spoke up, or provided any glimpse into the thinking of the other main GNOME desktop platforms. If Kachitchkine's vision is to come about, the BSDs would need to get on board as well.

Somewhat ironically, supporting GNOME on Windows and Mac OS X is quite a bit easier, as they do not require the desktop functionality. As Jason Clinton points out, those two platforms are "application target platforms" as opposed to "desktop target platforms" like Solaris, Linux, and the BSDs. He also notes that the BSD situation is rather different than that for Solaris:

On the *BSD side of things, the desktop-related driver situation is lamentable. However, *BSD has a huge thing going for it: vast parts of the user space are nearly identical to Linux. So with exception given to the absence of udev, it really isn't all that different. Indeed, there is even a semi-official *BSD kernel for Debian.

OpenSolaris, however, suffers from a legacy of esoterically cathedral-like design on some fundamental sub-systems. The work to make all the things mentioned above work is so, so much more than any other platform for GNOME.

Clinton floated the idea that Sun should just drop Solaris and move to Linux, though no one really wanted to see yet another Solaris vs. Linux flamewar. But his point about Solaris standing out from the rest of the desktop target platforms rings true, and it will be up to Sun—or the OpenSolaris community—to put the effort into making GNOME work on that platform. The right way to approach that, as Zeuthen and others said, is for Solaris folks to be working with the GNOME community, not just making GNOME work on their OS. Zeuthen cites a specific example of what he means:

The perception, at least from me personally, is that Sun isn't doing a very good job at *working* with the GNOME community. Case in point, if RBAC or Visual Panels are oh-so-much-better, why the heck are you guys not trying to push it for non-Linux? And actually do the integration work inside GNOME instead of bolting your work on after the fact? That would benefit both Sun, the rest of the GNOME community and it would make you guys look a lot better. At least in my eyes.

In the end, though, it is the evolution of what a "desktop environment" encompasses that underlies much of the difficulty with portability. With desktop environments taking on more and more of the functionality typically handled by the kernel and other low-level plumbing, it will be difficult to keep it easily portable to different platforms. Colin Walters sums it up this way:

Here's the fundamental problem as I see it - GNOME filled the "Unix like system desktop" checkbox over 10 years ago, on top of POSIX, X11, and some random bits. A lot of what we've been doing since is filling in the stuff for a *complete operating system*, because POSIX and X cover so little. Stuff like having USB devices work, power management, and networking are hard problems that cross every layer from the kernel to the desktop UI.

Those kinds of problems are only going to be solved—at least in a cross-platform manner—by all of the stakeholders working together, from the outset, on a solution. Currently, that doesn't seem to be happening, so the Linux-oriented solutions dominate. As GNOME continues to move more into the system-level services, which traditionally have been handled by the platform itself, there is clearly a need for the Solaris and BSD communities to get involved. Until that happens, we are likely to continue to see the "Linux first" style of GNOME development, either officially or tacitly.


(Log in to post comments)

GNOME on non-Linux platforms

Posted Jul 30, 2009 1:53 UTC (Thu) by jabby (guest, #2648) [Link]

Suddenly the KDE4 approach of abstracting away the platform makes a lot of sense. Perhaps GNOME will eventually have to choose that approach if it decides to commit to a cross-platform future.

GNOME on non-Linux platforms

Posted Jul 30, 2009 2:49 UTC (Thu) by qg6te2 (guest, #52587) [Link]

Before concluding that KDE's approach is the way to go, let us first see how long it takes for KDE4 to stabilise. The amount of bugs in the 4.2.x series is bordering on being criminal.

(Background: I've used KDE all the way from the 1.x series, and switched to Gnome last month when a (apparently) font-related bug prevented me from logging into a KDE session -- this was the final straw)

GNOME on non-Linux platforms

Posted Jul 30, 2009 9:37 UTC (Thu) by morhippo (subscriber, #334) [Link]

The amount of bugs in KDE-4.2 was not very high. I have used it exclusively as my desktop and I DID NOT ENCOUNTER ANY BUGS I COULD NOT WORK AROUND EASILY. Many bugs were just minor annoyances, many of which have been fixed in KDE-4.3.

So calling that "criminal" is just bull-shit. Are you using kubuntu by any chance? Then the reason for your experience maybe packaging errors. Just use Debian.

GNOME on non-Linux platforms

Posted Jul 30, 2009 15:35 UTC (Thu) by bronson (subscriber, #4806) [Link]

Wow, that's amazing that you know everything about qg6te2's situation. Do you share an office or pair program with him or something?

GNOME on non-Linux platforms

Posted Aug 4, 2009 11:38 UTC (Tue) by nye (guest, #51576) [Link]

There are still a lot of people experiencing bugs which cannot be worked around so easily. Perhaps you're only using a limited subset of features, or your system is in some way different.

Regardless, only counting bugs which cannot be easily worked around eliminates a vast category of common problems. Could you work around them all easily if you weren't an experienced Linux user? What kind of impression would you get of the quality of Free Software?

The transition to KDE4, even in Debian unstable, really saddens me, not only because I now have to spend a noticeable amount of my time working around bugs and UI problems, but because I really can't recommend the use of KDE now to to anyone - the kind of user that would actually be able to use it successfully would already know about it.

GNOME on non-Linux platforms

Posted Jul 30, 2009 2:55 UTC (Thu) by walters (subscriber, #7396) [Link]

But it can't be turtles all the way down. Someone, at some point has to
write the code which actually does something. The thread is about the
projects driven by GNOME implementing the non-abstraction layer code and
targeting Linux.

It sounds like these projects may turn into abstraction layers again, just
hopefully in a cleaner way than HAL (which, being basically the only shared
userspace daemon across systems) grew into the do-everything daemon.

We'll see.

GNOME on non-Linux platforms

Posted Jul 30, 2009 6:40 UTC (Thu) by drag (subscriber, #31333) [Link]

> Suddenly the KDE4 approach of abstracting away the platform makes a lot of sense. Perhaps GNOME will eventually have to choose that approach if it decides to commit to a cross-platform future.

I don't think that your going to make a very good point in this discussion.

It appears that KDE 4.2.x can just barely be made to compile on Solaris by KDE developers, much less be remotely usable for desktop users on that platform or be compatible with much in the way of applications.

GNOME on non-Linux platforms

Posted Jul 30, 2009 12:10 UTC (Thu) by erwbgy (subscriber, #4104) [Link]

I think Solid needs to be given a little more time to work before dismissing it. They have completed the basics and are now doing "polishing" so we should see soon whether or not the approach pays off.

I am not sure if KDE on Solaris is a priority at the moment, but KDE on Windows seems to be progressing nicely. Unlike GNOME they are targetting Windows as a platform rather than just somewhere to run applications which seems positive to me. When most normal users stop caring about what underlying operating system they are using, the "Year of the Linux Desktop" will be that much closer :-)

GNOME on non-Linux platforms

Posted Jul 30, 2009 12:17 UTC (Thu) by jospoortvliet (subscriber, #33164) [Link]

Hmmm. Considering there are at most 2-3 ppl working on the solaris-KDE
port in their spare time while sun surely employs quite a few people to
keep Gnome running properly, I'd say the KDE guys do an impressive job...

GNOME on non-Linux platforms

Posted Jul 30, 2009 15:39 UTC (Thu) by drag (subscriber, #31333) [Link]

What? 'Not really usable' is impressive? I am sure that QT is nice and KDE is ultra-portable and all that.

I just find it silly to bring up KDE's superior portability over Gnome in a discussion about a Unix OS that KDE does is not portable to.

GNOME on non-Linux platforms

Posted Jul 30, 2009 17:30 UTC (Thu) by erwbgy (subscriber, #4104) [Link]

The discussion is also about portability to Windows, Mac OS X and BSD - see the article. Why should comments be limited to Solaris?

GNOME on non-Linux platforms

Posted Jul 30, 2009 19:25 UTC (Thu) by jospoortvliet (subscriber, #33164) [Link]

KDE works on Solaris, and isn't that far behind Gnome. That is impressive considering they're doing it with far less resources. KDE works very well on BSD. Pretty much all KDE apps work on windows, most work on Mac. And the teams doing that also have like 2-4 people working on it. While GNOME even has issues if a company is dedicated to have it on their platform!

I have no experience myself with porting efforts (but do occasionally run KDE on windows) so I won't say KDE is much easier to port but at the very least KDE is as portable as GNOME.

GNOME on non-Linux platforms

Posted Jul 30, 2009 8:11 UTC (Thu) by Frej (subscriber, #4165) [Link]

If the said approach of abstracting the platform is plain code, i don't think that's the problem. It's about getting the pltform specific code written.

Is there specific cases as to where KDE has 'abstracted away the platform'?

GNOME on non-Linux platforms

Posted Jul 30, 2009 10:35 UTC (Thu) by nix (subscriber, #2304) [Link]

Abstracting away the platform is basically Qt's raison d'etre.

GNOME on non-Linux platforms

Posted Jul 30, 2009 12:09 UTC (Thu) by davecb (subscriber, #1574) [Link]

That's the normal approach when one has more than tiny variances. Siemens used to build for more than 20 platforms over-night, just as a matter of QA good practice.

Currently the Samba team builds on AIX, H-P, Solaris, Novell, MVS and VMS, as well as for Debian, Fedora, RedHat and SuSE. Oddly enough I don't see the BSDs here either...

--dave

GNOME on non-Linux platforms

Posted Jul 30, 2009 2:01 UTC (Thu) by me@jasonclinton.com (subscriber, #52701) [Link]

A point of clarification: I am nobody and nothing I say should be given any particular credence. And the end of the day, I'm just some guy on a mailing list airing my stupid, biased opinion. If I had been contacted for this story, I would have asked that my opinion be left out. No one should read this story and think that my perspective in any way represents even a fraction of the opinions of other GNOME people--indeed, if the responses I got on and off list are any indication--no one agreed with me.

GNOME doesn't have much in the way of organizational decision making and to the extent that anything is done with a degree of weight, it is through the attainment of super-majority consensus after some limited discourse. So, if I were to draw any conclusion from the thread it would be that most people are either happy with the status quo (tacitly, as the author puts it) or want to explicitly make an effort to provide pluggable back-ends.

So, take all of this with a grain of salt.

GNOME on non-Linux platforms

Posted Jul 30, 2009 3:31 UTC (Thu) by Oddscurity (subscriber, #46851) [Link]

That's not necessarily a bad discussion to have, though. Working from the status quo because "we've always been at war with Eurasia" isn't healthy either. Perhaps more formally stating GNOME is indeed a cross platform project, and finding a way to make this development run smoother, is simply an idea who's time has come.

GNOME on non-Linux platforms

Posted Jul 30, 2009 5:40 UTC (Thu) by bronson (subscriber, #4806) [Link]

I don't quite understand the problem. If Sun finds it more effective just to just take a Gnome release and glue compatibility stuff on, then so be it. If they then that PulseAudio is a hell of a thing to port, well, it's their job to figure out how to solve that.

As Christian said in the email that started all this, Gnome has never let non-Linux platforms hold back development. So, develop and release on Linux, then let Sun cherry pick the bits that they like. Also let Sun package up AbiWord and Hugin and all the other apps that people may want to use.

Where's the conflict?

GNOME on non-Linux platforms

Posted Jul 30, 2009 6:55 UTC (Thu) by drag (subscriber, #31333) [Link]

If the Sun folks were more involved during the early stages then they could have more influence over the design and make it better able to support their platform. That is if you get in at the ground floor then you can help make design decisions that will prove to have little to no detriment for Linux support, but can make supporting Solaris and BSD much easier.

----------------

Personally I think that while 99.999999% of everybody who uses a desktop couldn't give a flying leap about solaris it will still be important to keep Gnome fairly cross-platform.

Why?

Because if you too-tightly integrate software or don't do proper design and figure out the proper abstraction levels then you end up with a very inflexible system were changes on one level can easily break another.

So you end up having people making decisions in kernel-space that accidentally break your browser and things of that nature.

Then you end up with a system like Windows were any small change to any system requires a massive amount of effort to test and stabilize... since you have spaghetti code paths criss crossing everything everywhere. At that point progress becomes prohibitively expensive.

So cross-platform design often helps with robustness and stability, even though it will probably have little direct effect on attracting a wider audience of users.

Of course it's bad when taken to extremes. It takes a balanced approach, I expect, to get the most benefit.

GNOME on non-Linux platforms

Posted Jul 30, 2009 12:42 UTC (Thu) by jond (subscriber, #37669) [Link]

Sometimes it's easy to forget that GNOME is a GNU project. Where's the HAL and pulseaudio support for Hurd? :)

GNOME on non-Linux platforms

Posted Jul 30, 2009 12:46 UTC (Thu) by jond (subscriber, #37669) [Link]

I wonder if the openssh approach would make sense: the core release is targeted at OpenBSD only, and the "p" suffix releases maintain the portability layer. Similarly, the core GNOME releases could be based on the systems which have the most participation (Linux and Solaris say) and "p" releases could be second-class citizens, not slowing down progress for the majority.

Don't worry about Solaris too much

Posted Jul 30, 2009 20:00 UTC (Thu) by rwmj (subscriber, #5474) [Link]

An ex-proprietary, partially free operating system, which doesn't have much adoption in the free software world outside the parent company, Sun. The parent company which has been taken over by Oracle. Oracle which is going to ruthlessly cut any marginal bits of Sun.

It's not long for this world ...

Rich.

Don't worry about Solaris too much

Posted Aug 6, 2009 6:03 UTC (Thu) by lysse (guest, #3190) [Link]

Wow. That's FUD Microsoft could be proud of.

Copyright © 2009, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds