sábado, 9 de agosto de 2008

Firefox 3 GTK+ 2.10 horror show - open question to the Mozilla Foundation

So it seems that the previously small group of 10 people, who now turned into a 160 employee organization has lost the notion of common sense during the last beast rebirth.

With the release of Firefox 3, the Mozilla Foundation decided to integrate the browser further with GTK+ 2. That is not a problem in itself and we understand the merits... the problem is depending on GTK+ 2.10 or newer which only the most recent distros have included. The worst part of it is not acknowledging that this is a problem and just passing the hot potato to the users and distributors. As a consequence users of Ubuntu 7.10, Red Hat Enterprise Linux 4, Mandriva 2006/2007 and many other distributions need backported packages to be able to run Firefox 3.


Firefox installation on Windows (even Windows 2000 which is 8 years old)

Firefox installation on Linux (unless you distribution is less than 1.5 years old)


Yeah, sure.... you *only* have to upgrade GTK + to version 2.10 or newer... and compile pango, cairo, glib, libthai, libdatrie..etc. And yes, you'll be upgrading, on your production machines, a set of critical libraries on which a huge number of applications depend to be able to install Firefox 3. Who knows what that may break? The alternative: upgrading the whole distribution even though it's working perfectly.

Why does the Mozilla Foudation think that instead of providing a self contained Firefox 3 package with the necessary version of GTK it is better to have each single Linux distributor backporting critical packages or users suffering with horrible compilation issues? Is it efficient to, instead of having the problem solved centrally, force everyone to go through it? What if OpenOffice.org now decides to depend on GTK+ 2.12?

But let's accept the unacceptable for a moment. Let's backport the necessary packages (and ensure all the relevant dependencies) so that Firefox can be upgraded on our customer desktop machines with a single click.

Trivial backporting process (history)

After all this, we come to find out that GTK 2.10 or newer, is not OK if we don't want Firefox 3 to crash everytime the user tries to print. Although it's not written anywhere, except on comment 28 of bug 422916, it has to be GTK 2.10.6 or newer. Let the whole rebuilding fest restart.

For the record, when everything was solved we had rebuilt exactly 25 RPM packages:

gdk-pixbuf-loaders-0.22.0-9.1
gtk+2.0-2.12.9-1.1
glib-gettextize-2.12.3-2.1
libthai0-0.1.9-2.1
ia_ora-gnome-1.0.8-0.1
libcairo2-1.2.4-1.1
thai-data-0.1.9-2.1
libgdk-pixbuf2-0.22.0-9.1
libgdk-pixbuf-gnomecanvas1-0.22.0-9.1
libgdk-pixbuf-xlib2-0.22.0-9.1
libgtk+2.0_0-2.12.9-1.1
libdatrie0-0.1.2-0.1
libia_ora-gnome-1.0.8-0.1
libgdk_pixbuf2.0_0-2.12.9-1.1
perl-Cairo-1.00-0.1
perl-ExtUtils-Depends-0.205-1.1
perl-ExtUtils-PkgConfig-1.07-1.1
perl-Glib-1.140-0.1
perl-Gtk2-1.140-0.1
glib2.0-common-2.14.1-1.1
libglib2.0_0-2.14.1-1.1
libgtk+-x11-2.0_0-2.12.9-1.1
libpango1.0_0-1.20.0-0.1
libpango1.0_0-modules-1.20.0-0.1
pango-1.20.0-0.1

I find this situation total nonsense and honestly think it issues a very negative message to the Firefox Linux users, because we all know this would never happen on the windows version (imagine Firefox depending on Microsoft backporting some newer Vista dll to Windows 2000....).

We should have in mind that this article is not about bashing the average small-saturday-afternoon single developer open source project. Firefox is now a huge project with an important mission and relevant market share. The Mozilla Foudation has enough resources to make it easily installable without breaking production systems or requiring guru-level skills for installation. This was surely not a question of resources. It was just.... a very bad decision.

After all should we spread firefox or shred firefox?

20 comentários:

Anónimo disse...

This is how packaging on Linux works. Has nothing to do with Firefox.

Why don't you read a book first, before you post lame rantings of a child?

Panoramix disse...

Dear reader,

Thanks for telling us how packaging in Linux works.

This is in fact how it works if one doesn't want to have the software safely distributed.

If you think upgrading a package GTK+ is acceptable on corporate production systems, probably you never administered more than a dozen desktops and don't know anything about risk management.

See for example Open Office, AMSN (autopackage), Opera, Skype, Firefox 1.x and 2.x for examples of portable packaging. Surely this is not feasible for all software. But Firefox 3 is not exactly libfoo2-1.1-3.

Anónimo disse...

I dare to differ. Building *Beta* version of Firefox Linux build on top of newest GTK lib is IMO pretty reasonable and the right way to go. Refusing this practice is on the verge of idiocy. Mozilla is by no means to blame for incompatibility of some distros. There's unwritten rule, new apps is built on top of the newest libs. Distros vendors are the right place to cry at.

Panoramix disse...

There's unwritten rule, new apps is built on top of the newest libs. Distros vendors are the right place to cry at.

The opposite. Should be built against the oldest version that still fits the minimum requirements. And this starts with libc.... Everyone who has done serious packaging knows about this. It's a requirement to maximize compatibility.

If Firefox needs GTK 2.10.6 and it isn't available for everyone, offer a bundled build as an option.

Otherwise let's just drop the Spread Firefox mantra and let the users spend days compiling things.

Anónimo disse...

I think the GTK number versioning is pants. It should really be 2.08 and not 2.8. otherwise 2.10 looks like an earlier version than 2.8. If you are going to use 2 digits in a version number then use it all the time to avoid confusion.

Anónimo disse...

I have to say this is how it works in the Linux world I'm afraid, and sure, its not the same world you're used to with Windows.

Thats why new distros mention things like KDE4, Firefox 3 etc, it gives you an idea of its release level.

Why don't you upgrade your distro to the latest extended support Ubuntu? It is Free afterall.

lionel disse...

I don't exactly understand why you simply didn't try to build with the latest stable versions of gtk+ instead of a buggy 2.10 version ?

The Linux desktop environment is moving fast, you can't expect distribution vendors to support new libraries on old distribution or Mozilla to provide huge downloads with embeded libraries (that probably won't integrate properly with your environment) just because that would be convenient for you.

On a Linux desktop if you want the latest stuff either use a source based distribution like Gentoo which will provide all the libraries you could need or upgrade at least once each year.

Anónimo disse...

I don't understand the point of this post. If you want a solid, stable system using software you've used for the past two years, why are you upgrading to a new point-oh browser?

If you want "new", use a distro that includes what you need for critical componenents. If you want stable, use a distro that's stable and be happy with your stability.

It's your system, you're in control. If it really bothers you that much, you could fork Firefox to utilize GTK 2.8 or whatever if you wanted.

AS disse...

It's amusing that every time someone points out something *wrong* related to Linux, the replies arrive fast and furious, tending to be "you don't understand Linux" or "you are used to Windows". Look again. We love Linux probably more than you.

The fact that we are Linux providers, and can compile everything we want so that our customers install packages with minimum effort doesn't mean we're blind to mistakes like this one. When we fail to see such mistakes, we also fail to improve.

Meanwhile the problem is solved, for us and our customers as we backported the necessary packages.

But it's not solved for the average user who has a stable distribution installed and will have to upgrade it in order to install Firefox 3.

The fact is: Firefox 3 is much less distributable than some proprietary software packages for Linux (Acrobat, Opera, etc), when it should be just the opposite.

AS disse...

Please use your google or OpenID account, to comment.

Panoramix disse...

I don't understand the point of this post. If you want a solid, stable system using software you've used for the past two years, why are you upgrading to a new point-oh browser?

Because Mozilla convinced me to download Firefox 3, use it and spread it.And because a browser changes much faster then all the other software which can be kept stable for years


If you want "new", use a distro that includes what you need for critical componenents. If you want stable, use a distro that's stable and be happy with your stability.


yes, and when Firefox 2.x reaches EOL for security fixes, please upgrade to a new distro. And when Firefox 3.0.x is dead upgrade to the next one.... An OS is not meant to be upgraded because of a browser.

It's your system, you're in control. If it really bothers you that much, you could fork Firefox to utilize GTK 2.8 or whatever if you wanted.

As I said, the problem is gone for us. However not every Linux user should be forced to go through it. A Windows 2000 user can use Firefox 3 without touching his "distro". Linux is obviously on a worst situation.

Jackson disse...

Bottom line is, if we all want to help spread FF, then this task should be made as painless and as easy as possible...

Enough has been said at the right place:
https://bugzilla.mozilla.org/show_bug.cgi?id=418885

All this because of a print dialog!

sam disse...

Ubuntu has had gtk 2.10 since 6.10 edgy.

There is no good reason to still be running dapper, or earlier, unless you have very strong stability needs in which case why do you want firefox 3? (by stability i mean that you want versions to stay the same, rather than you want no crashes.)

alex disse...

Stop Whyning!

Its a new thing, depends on new libs. If you are still running rhel4 on your desktop, you are just a masochist: if you still have your RHN, you can go dl the rhel five packages. If you need rhel4 for some app that only runs there, you can use xen or vbox for that (and thats free as well).

Man....

Panoramix disse...

Its a new thing, depends on new libs. If you are still running rhel4 on your desktop, you are just a masochist

Maybe this is not the best argument out there. There's a little difference between maintaining Linux on your bedroom and on a business environments.

Christoffer disse...

This is entirely Linux' fault.

If distros were built with multiple libraries side-by-side in mind, firefox 3 would be easily installable. GoboLinux can do it, so why can't the big distros?

I don't expect the distros to do other than complain when it's *their* job to fix this core issue.

Get your head out of the sand.

ParadiseLost disse...

Dude, if you don't like chaos don't use Linux. Use a software platform that remains predictable and stable for years. I don't know... like Windows?

Alexei disse...

This is why the whole idea of "package management" is about as viable as communist economy. Not to mention the fact that there is no such thing as a standard widget set in X.

Panoramix disse...

@christoffer, @paradiselost, @alexei,

This isn't Linux fault at all. The package management systems work very well.

It's just that Firefox 3 shouldn't be only seen as "part of a Linux distribution" but rather as "software that is distributable" for all Linux versions.

Try to install Opera on Linux. You'll see that it gets installed in less then 2 minutes. This means Opera is indeed willing to distribute their browser independently of the Linux distributors and library versions.

The same should be done for Firefox 3. The Mozilla Foundation should build a distributable package, rather than depending on Linux distributors and/or users to do complicated upgrades on their systems because of a browser.

LTSmash disse...

What's this about?
Simply compile FF3 statically.