// we are

On Freedom in FOSS Projects

2013-07-25 Update

Part of this article has been self-censored to keep it strictly focused on its main topic, now that it’s disconnected from the reality that it was referring to. Only the bits relevant to working on a large FOSS project and how release cycles can make contributions pointless remain.

As a Free Software developer, there is of course one thing that I cherish very much: Freedom. Today, I’m going to talk about my involvement in some particular FOSS projects – and how I think my freedom to contribute to and use these projects has been restricted, in a way that I can not accept anymore.

Contributions to Xubuntu

As you may know, I contributed to Xubuntu in its last release cycle. I worked on integrating NotifyOsd, from the Ayatana team, which I will speak about below. I also contributed to the Exaile media player in order to make it suitable for the replacement of Listen, due to performance regressions in Listen that were not making it a player of choice anymore. Besides, I wrote xfce4-volumed to match a need from Xubuntu users to have their volume keys automatically managed on Xubuntu. I also worked on Xubuntu’s artwork – especially the GTK+ theme, with James Schriver and Pasi Lallinaho. Finally, I proposed the use of Ristretto and Xfce4-power-manager, in an attempt to help identify possible bugs in these applications, so we could fix them for our next LTS release, Xubuntu 10.04.

Though, it is now clear to me that my contributions to Xubuntu 10.04 will be rather limited. During these six months in the Xubuntu team, I have often had the feeling that most of what we were accomplishing was trying to keep the daily Xubuntu LiveCD in a workable state, constantly having to fix packages because of decisions from the Ubuntu Desktop Team that had quite disastrous consequences on Xubuntu. I do not think such things should be happening, if Canonical was to really care about its official child projects.

So, what happened exactly during this development cycle that disgusted me enough to not give me the motivation to continue working on Xubuntu?

The new GDM…

One thing that is always reproached to Xubuntu is it’s massive use of GNOME desktop components. Sometimes for the lack of a credible alternative, sometimes also for the lack of motivation to make sure the change to an XFCE component is smooth from Xubuntu developers (I may write one day about why I think it is crucial for an XFCE distribution to stick with components not tied to another Desktop Environment).

Among those GNOME components is GDM, the GNOME Desktop Manager you use to login in your Xubuntu system. Karmic testers will have noticed how slow and ugly the new GDM is, and how inconvenient it is compared to the old one. What they will never know is how painful it has been to us – and especially to Lionel Le Folgoc, who had to fix several issues related to that new GDM.

So, what happened to the new GDM 2.28? Well, first, the whole theme engine was replaced by pure GTK+. With a dependency on gnome-session for a reason I still didnt catch, a hacked – and impossible to properly theme – panel with a notification area, and a dependency on gnome-power-manager, because it’s absolutely critical for a desktop manager. Also, a dependency on gnome-settings-daemon – to set you GTK+ theme… Oh, and I think there were other ones, for the GDM wallpaper for instance. Anyway, thanks to all of this, our LiveCD magically went above 700MB, featuring a whole GNOME session alongside the XFCE one. And making it impossible for us to default to the XFCE one, at the same time.

Thanks to Lionel’s work and Chris Coulson’s help, GDM can now work with a stripped-down gnome-session binary, with xsettingsd for the theme, and feh for the wallpaper. It’s still slow and ugly, but at least it doesn’t install GNOME anymore. I still don’t understand the motivation of the GNOME developers to make such drastic changes to such a widely used application – including outside the scope of GNOME. It shows, in my opinion, little respect to the users of other Desktop Environments, that still opt in for GDM. Especially considering there currently are no decent alternatives to GDM (Slim being unmaintained and LXDM under development, KDM pulling KDE in, and XDM being rather outdated).

I completely failed to properly theme this new GDM, because of course it would be too easy if it was properly using widgets. It’s so much funnier to have several widgets not respecting the theme’s gtkrc file, and to have to write a whole new GTK+ theme. The gain over the previous GDM is, in my opinion, completely lousy when it comes to theming.

In this first problem, which took several weeks to fix, we received no help from the Canonical Desktop Team, who basically let Lionel fix the whole thing on his own. Actually, a member of the Desktop Team has actually refused to let us do changes to GDM that would make it slightly less broken for our own use – it finally got sorted out thanks to Martin Pitt. But it’s really discouraging and very disappointing to see how an official Ubuntu derivative – albeit not officially supported – can be looked down on by some people.

The Ayatana project

The Ayatana project has been started by Canonical as a house for Canonical’s projects meant to improve usability and system-to-user communication. Canonical has setup an open mailing list for anyone to be able to contribute to what I fooled myself believing were meant to be cross-desktop projects. NotifyOsd, the libnotify daemon written by Mirco Müller, is one of those projects. It was first released in Ubuntu 9.04, and six months after, is still under development, with several accessibility issues still not addressed, despite my effort to do so.

Thanks to the six months release cycle and to the poor attention Canonical offers to other GNU/Linux distributions, several really broken releases of NotifyOsd have been made during Karmic’s cycle: releases with experimental design decisions, critical memory leaks, etc. This clearly didn’t help for Canonical and Ubuntu’s reputation in other GNU/Linux distributions communities. In fact, I received complaints from Arch users who switched to NotifyOsd, because of this.

Also, it is clear to me that with six month release cycles, less time was spent polishing the design in the first time, there was less time to implement those design decisions, more time has been spent stabilizing NotifyOsd because it has been developed in two phases, and finally, some issues were postponed far too long because Mirco had to run for the Desktop Team’s new ideas (a little note: this is my own personal opinion, and Mirco is not responsible for anything I wrote here).

Among those issues, two that I considered release-blockers for Xubuntu’s adoption of NotifyOsd:

  • NotifyOsd uses GNOME’s default font, no matter what desktop environment you run. While I can understand the technical reason that makes it work that way, it should have been addressed a long time ago. At the moment, you can end up with a font much much more little than yours, making notifications unreadable.
  • NotifyOsd does not allow any color scheme other than white on black. This causes trouble to some people with viewing impairments, who would prefer black on white, for instance.

I proposed a patch setting up the infrastructure that allows fixing both of these problems. It has still not been reviewed, a few months later. The Desktop Team works on usability, yet the least thing they seem to be concerned about is accessibility. Shameful.

While Ayatana was the place for design discussion about NotifyOsd and IndicatorApplet, and while several KDE and XFCE contributors showed interest in Ayatana’s projects, pretty much every design decision has been done in the shadow, without any discussion or exposition to the Ayatana mailing list. While it is perfectly logical that these projects belong to Canonical and only Canonical has a word on their road-map and design, I don’t see the point of a mailing that discusses strictly nothing, which is why I decided to leave.

Unsurprisingly, Mark Shuttleworth announced a few weeks later that Ayatana would become a private mailing list. Well, I’m not sure if it will help Canonical noticing other people than Ubuntu users are interested in what they do, and I’m not sure either that it will make it easier for these people to be heard by Canonical. I personally show little optimism towards this.

Recent surprises

We of course had other problems during Karmic’s cycle. Some bugs that were noticed very late, because packages change so fast we would need to constantly test all the desktop CD’s features, which takes a lot of time. Among those issues, a Gstreamer update that breaks Exaile’s (our default music player) CD plugin: you can’t play any CD on Xubuntu Karmic, yay…

I would also like to wish good luck to those of the Xubuntu users who expect gnome-screensaver to launch after a given time of inactivity: it will not if gnome-session is not running. Because Xorg’s idle timer isn’t cool enough for the GNOME guys, they use their own one. And to hell the people who use gnome-screensaver with another desktop environment! There are plenty of GTK+ alternatives with equivalent a11y quality, anyway: {Ø}.

Xubuntu community?

There is also a subject that has been debated several times in the #xubuntu-devel channel, without any improvements, in my opinion: the lack of communication from Xubuntu developers to the Ubuntu community (which also contains Xubuntu users). We don’t have a spokesperson, so the only news people can get from us are the blog posts of Pasi Lallinaho (Xubuntu Marketing Lead), who usually writes a few blog entries about Xubuntu, but who speaks only for himself, and the posts from Cody Somerville (Xubuntu Project Lead), who unfortunately doesn’t blog very often.

I mentioned this problem as a newcomer to the Xubuntu community, for the very reason that I found it very hard to know about what the developers were doing, how to get started contributing to Xubuntu, and what were the fields where Xubuntu was mostly lacking people. There surely are very satisfied Xubuntu users. In fact, most of the people I introduced to Xubuntu really enjoyed it. Despite this fact, we don’t have a community, and I can understand that. While I decided to just join #xubuntu-devel and see how things would turn, I understand other potential contributors may not dare do so.

I think there is a problem here, and I think Xubuntu should have its spokesperson speaking about progress of Xubuntu developers, issues in Xubuntu, etc. Of course, doing so would require more certainty about what will go on in the next months, which means we need to have more reliable information about what goes on in Ubuntu in general (I certainly do not mean the whole Ubuntu community is being selfish towards Xubuntu in particular – they owe us nothing. I mean we need to find a way to know what’s going on in realtime, and to let people doing changes in any relevant part of Ubuntu know about the possible consequences for us. This may or may not be possible without help, I don’t know so far).

Anyway, with Xubuntu development being so discouraging due to the issues popping up randomly, and with contributing being so ungrateful during most of the development cycle (since so many things don’t go so well, and users don’t cheer developers up apart from just after releases), I sadly find it expectable that the Xubuntu team remains so little – which just makes it harder for the few – and awesome – Xubuntu developers who stay release after release.

After all, we’re all volunteers, we either study or have a work, or both, or several of each. Working on Xubuntu can be exhausting, and without more contributors to split the work and a community of users doing something else than moaning 90% of the time, one should not expect every contributor to stay forever. We all get fed up at some time; one of our tasks is to find people to continue the project. This will be easier if they can find more motivation in making Xubuntu better.

Wasn’t it about Freedom?

What does all this rant has to do with Freedom? Well, I’m not sure because Xubuntu is not what I intended to write about in the first time. I could say that it’s about freedom because I think Xubuntu developers and contributors are actually not free to do what they want for the project they work on, and I think I’d not be far from truth: with those constraints involved by being an Ubuntu derivative – release schedule, package management, discovering the changes in Ubuntu and their Xubuntu-specific consequences late in the release cycle – and the very little size of the Xubuntu developers team, it’s hard to get things done as one would like to, at least it’s my feeling.

Indeed, I tried to get NotifyOsd and Exaile into Xubuntu, and I am absolutely not satisfied by the result, even if it’s neither because of the NotifyOsd, Exaile or Xubuntu developers, but because of a lack of luck – or should I say a lack of control over the release cycle: it was not possible to fork NotifyOsd and add my patches to the fork with it being so heavily under development, and it was not possible to delay Xubuntu’s release for a few days, so that the Gstreamer bug breaking Exaile’s CD playback could be fixed. This results in two applications not being properly working on the Xubuntu 9.10 LiveCD, which certainly wasn’t my goal.

So, what could change?

If you ask me, I think Xubuntu development would be easier if Xubuntu had its own repositories, sync’d from the latest stable Ubuntu release, and if Xubuntu was released after each XFCE release, which would leave much more time for fixing bugs, working with upstream (both XFCE and applications like Abiword/Gnumeric/Exaile/Totem/Evince, etc) to fix bugs and implement features Xubuntu specifically needs. It would also make it easier, in my opinion, to get people to work on documentation and translations, and to get things done with people who also are upstream for Ubuntu, since they would not be focusing exclusively on the big distro if we had different release cycles (this happened for instance for our icon theme in Xubuntu 9.10. It has the same authors as the one used by Ubuntu, and the upstream artists preferred to work on the Ubuntu variant, which means some icon changes we requested for Xubuntu were postponed – I don’t blame them for that though, it’s indeed more important for them to work on the icon theme that will have most users, but it’s just not practical for the Xubuntu artwork team).

Another thing that would make Xubuntu developers’ life slightly easier is being able to know what Canonical expects to do before they do it – I’m certainly not gonna ask for every Ubuntu developer to take Xubuntu into account in each of their decisions, that’s not their role, after all. But I’d really love us to be able to know when changes as those made in GDM are done, and when packages get new dependencies. I don’t know Ubuntu so well, so I don’t really know how this can be addressed. If you do, please email me.

Of course, I don’t actually believe those changes will happen. And I’m not in the position to ask anything from Canonical, so I won’t. Instead, I’m going to work on another project: Shimmer. The goal is kind of the same of the role I’ve been trying to play in Xubuntu in the last six months: make desktop applications work better, provide all the extra bits for a great desktop, beginning with artwork, propose GUI changes to make things simpler to use, and – at least I hope to be able to do so – work on particular issues in XFCE, that may only be a concern for desktop users, or that just may have a too low priority for XFCE developers to have the time to address them.

Pretty much nothing is done so far, and while the people working on Shimmer already began several projects, there is nothing to show yet, and the website isn’t ready, so I won’t tell more about Shimmer right now, even though I will do so eventually when our first projects will be in a working state. (2013-07-25 update: The Shimmer Project mostly hosts GTK artwork and UI work - I retired though)

If you’ve read thus far, congratulations. If there is any information you would like to add, any point you would like to correct, any idea for Xubuntu you would like to propose, any insult you think would particularly well qualify to my (not at all) humble person, feel free to leave a comment.