segunda-feira, 25 de agosto de 2008

Firefox 3 GTK+ 2.10 horror show - community response


Blind belief in authority is the greatest enemy of truth.

Albert Einstein




Introduction

Our previous post, about the difficulties of installing Firefox 3 on reasonably recent Linux distributions, has triggered a strong reaction from some “Linux supporters”. Since the Mozilla Foundation will stop supporting Firefox 2 in December, the whole GTK+ 2.10 dependency discussion is even more “on topic”.


It's interesting that somehow the original post was seen as criticism of Linux, whereas it targeted the Mozilla Foundation decision to have Firefox 3 depend on GTK+ >= 2.10 without providing a portable package. Although there are many things that we'd like to see improved on Linux, there is nothing here that is Linux's fault. However, the kind of comments we got in “defense of Linux” are telling of some users mindset and worth a public reply.


Meanwhile, we found that this has also been discussed elsewhere and linked from the Linux Haters blog. If you're coming from there, we're sorry to inform you that we don't hate Linux... it's well the opposite. We also inform you that the blog author got it wrong. We're not "blaming Firefox for not supporting old distros” (like Suse 6.3 or Red Hat 7). We're talking about systems that are 1.5-2 years ago. Those systems are not old. In fact they are very new compared to say... Windows XP.


Feedback analisys

We can easily sort the received comments into four categories:

1) you don't know Linux, Linux is not like Windows

2) your distribution is too old – just upgrade it,

3) please compile and install new version of GTK+

4) complain to your Linux distributor


For obvious reasons we don't feel the need to address the first category.


Software distribution vs Linux distributions

One major problem we saw in the community response was the confusion between software distribution and Linux distributions. It is true that Linux distributions pack a serious amount of software in an easy-to-install form. However this doesn't mean that Firefox 3 should be regarded exclusively as part of a Linux distribution but also as software that is distributable. In fact, the Mozilla Foundation has setup the Spread Firefox campaign, not the Spread [insert your favorite distro here] campaign. Thus it seems reasonable to expect that the Firefox 3 package available from mozilla.com will work across Linux installations which are not pre-historic. As we stated before: it works for Windows 2000 which is 8 years old. Why would it not work for a 1.5 year old Linux distribution?


Some have said that Firefox needs to depend on a GTK+ version which is not available for all distributions but can't distribute a portable package to prevent.... code bloat. Well, the “no bloat rule” is generally correct. We definitely don't want a copy of gtk / cairo / pango / glib for each program that makes use of it on a Linux distribution. But Firefox 3 is not libfoo2_1.1. It is very important software that is supposed to spread independently. Does “spread” mean a different thing when it comes to Linux?


It doesn't take much effort to conclude that bandwidth and disk space are nowadays much less expensive than hours of specialized work. Engineering is about making reasonable choices, knowing that the rules must be followed while cleverly evaluating the need for exceptions.


A stable operating system

Linux is a stable operating system. It takes some time to setup and tweak, hardware integration can be quite time consuming but once it's running it runs forever. The initial effort surely pays off. With Linux the system performance doesn't degrade as time goes by, it doesn't get slower if there are additional programs installed and you don't get strange error messages for no reason. On a controlled environment a Linux desktop of a certain version may perfectly run for 3-5 years with surgical updates applied when needed. In fact this is highly recommended for corporate customers, as they don't want OS upgrades performed too often and an OS upgrade on multiple machines is not free of risk.


For non-technical home users the principle applies. When you install Linux for a home user that had stability issues with Windows, he/she will like to enjoy the newly acquired stability. And that includes not upgrading the OS too frequently. As the user starts feeling familiar with the system – and since it works well – it will not seem logical to upgrade it more often than say every 2 or 3 years.


Apart from security updates the most obvious candidates for updating an existing Linux installation are Firefox and Open Office, since both projects are evolving rapidly in terms of quality and features. But now Firefox 3 doesn't run on reasonably new Linux distributions. As previously said: this is NOT Linux's fault. However we think it is a paradox that while Linux is a very stable operating system some “supporters” find it acceptable that people have to upgrade the whole OS because of a web browser. This prevents the “perceived stability” of the user experience to match the stability of such an excellent OS.


The free users of Linux

Linux is a Free operating system. It's no doubt Free as in Freedom and sometimes Free as in free beer. According to many comments we received people should “complain to their Linux distributor” or “compile GTK+ and corresponding dependencies”. Does this mean that users of the Free operating system are now dependent on their distributor's willingness to backport GTK+ and friends because of a web browser? Or are they dependent on their guru friend to come around for some hours and build GTK+, pango, cairo....? We do know that many community distributions only backport security fixes, right? How free does Linux look when installing a browser on a perfectly working system takes several hours of a highly experienced person?


Another paradox. Seems that freedom comes at a cost.


Of course there's nothing wrong with Linux. The problem lies on the Firefox 3 package from the Mozilla Foundation. It's just that the situation makes Linux really look bad, and the arguments presented by some “supporters” don't help at all.


This way of thinking prevents Linux from spreading more quickly to users who might otherwise love it, fact which paradoxically goes against the will of its true supporters.


An example from the competition

Let's say we want to install another browser: Opera. We head to opera.com and just select the right package according the our Linux distribution.


Where does it run? Mandriva (10.1 to 2008.1), Fedora Core (All versions), Red Hat (6.2 to Enterprise Linux 5), Suse Linux (7.x to 10.3), Ubuntu (4.10 to 8.04) and many others.


Did Opera have to build one different package for each distribution version? No. They built packages for different versions of Qt / gcc and set up some trivial logic mapping the distribution version to the right package. They also have static binaries available.


The whole set of packages can be found here:

ftp://ftp.opera.com/pub/opera/linux/952/final/en/i386/


In our test the package we chose got installed in a minute and ran without any problems in the same system Firefox 3 refused to run.


Opera download options example


What can we conclude from here? Opera is really willing to distribute their browser to Linux users. Thus, they took care of any integration issue centrally so that the users could download something that just works. The Mozilla Foundation left the integration for each distributor / user making the work redundant for some and painful for many.


Conclusion

Linux is an excellent OS. Linux distributions do a fine job on packaging software.


The Mozilla Foundation made a bad engineering decision on delivering the hot potato of upgrading GTK+ and friends, to the users and distributors. This left many users without a reasonable option and distributors with the risky task of upgrading a core library upon which many other programs depend.


We think improvement is achieved by recognizing the problems and working on solutions. As Linux and Open Source supporters we believe action is better than denial. Thus, we have solved the problem by backporting the necessary packages (and dealing with the side effects) while recognizing that many individual users won't be able to do this. And we have expressed our opinion about this situation.


In short: this is not a Linux problem but it would have been better for Linux if it hadn't happened. It sure leaves a bad impression to the ones that go through it.


About us

We are an Open Source system integrator in Portugal. We support Linux, not by blind believing that it is perfect in every sense but by delivering high quality services to our customers. We have business customers from different markets running Linux servers, desktops and network elements. As system integrators we have contributed with either code or bug reporting to projects such as Mozilla, pam_mount, kmime2mozilla, aMSN, Kaffeine, OpenOffice.org, Scribus and Caixa Mágica, We are true believers of the Open Source development principles and founding members of ESOP - the Portuguese Open Source Business Association. Although we're also committed to server and network services we see Desktop Linux as a top priority. We're heavy users of Firefox.


18 comentários:

Bart Cramer disse...

Excellent blog post!

Kirk disse...

As was the case with the last article, it's the responsibility of the distribution to provide the packages required to run the application not the Mozilla Foundation.

If you want to run newer software on an old version of what you may consider to be an operating system, you will probably be left with needing to compile everything on your own.

In the Windows world that is like saying you want to run a Windows Vista program on Windows 3.1x and expect the organization to provide the necessary framework for this to happen. Obviously this is an extreme case but it illustrates the point.

Your actual proposed solution appears to be statically linking in libraries or write their own implementations of the libraries that they need. This isn't good for a variety of reasons but it is simply something companies aren't going to do. You may also see your post that you believe GTK should never be updated, but if it is you shouldn't ever use it.

Why do you need to upgrade FireFox so badly without upgrading other various packages? I doubt they decided to willy nilly require a newer package without a good reason. There are a large number of changes in FireFox 3 that aren't seen on the surface such as Cairo and Pango. Your previous post complained about these as well.

I'm still afraid you're overall theme is to prevent new future features in software. How do you actually propose software developers improve free software while you take away others free software that helps you implement them?

Panoramix disse...

As was the case with the last article, it's the responsibility of the distribution to provide the packages required to run the application not the Mozilla Foundation.

As was the case with the last article you misunderstand us. Probably we're not good at explaining....

Firefox was never tied to a Linux distribution before version 3 nor it should be.

You should be able to download and install it. It's just a browser. It should be distributable in a way that works.


If you want to run newer software on an old version of what you may consider to be an operating system, you will probably be left with needing to compile everything on your own.

In the Windows world that is like saying you want to run a Windows Vista program on Windows 3.1x and expect the organization to provide the necessary framework for this to happen. Obviously this is an extreme case but it illustrates the point.

It illustrates the point perfectly. If we follow your argument we end up asking ourselves why Windows is supported up to Windows 2000 whereas you can't run Firefox 3 on recent some Linux distributions.


Your actual proposed solution appears to be statically linking in libraries or write their own implementations of the libraries that they need. This isn't good for a variety of reasons but it is simply something companies aren't going to do.

See the example from Opera

You may also see your post that you believe GTK should never be updated, but if it is you shouldn't ever use it.

No one said that.

Why do you need to upgrade FireFox so badly without upgrading other various packages? I doubt they decided to willy nilly require a newer package without a good reason. There are a large number of changes in FireFox 3 that aren't seen on the surface such as Cairo and Pango. Your previous post complained about these as well.

Our complain is about not having a portable package, nothing else.

I'm still afraid you're overall theme is to prevent new future features in software. How do you actually propose software developers improve free software while you take away others free software that helps you implement them?

This one was amusing. You have discovered our secret agenda.

Gerry disse...

Please read the following link from the support pages on the Mozilla web-site:
http://support.mozilla.com/en-US/kb/Installing+Firefox+on+Linux

You will notice the recommendation to get the browser package from your distribution. I will quote the recommendation again for your benefit:

[QUOTE]Generally, you should install from package management[/QUOTE]

Before spreading false stories through your blog, you should first RTFM.

Gerry disse...

Also, if you indeed have a good reason to install fire-fox directly - i.e. outside of any package management system - you should again RTFM in greater detail. The steps cover this case and indeed recommend sticking to the latest update of FireFox 2 if your distribution doesn't have appropriate library support.

Mozilla has always behaved as an up-stream source for GNU/Linux distributions. This should come as no surprise to you if you have any experience of GNU/Linux at all. For instance, you would no go about blaming kernel.org for an incompatible up-stream kernel, would you? You would expect your distribution to incorporate the most recent kernel possible. So why do you expect Mozilla to provide packages for every distribution under the sun?

Free (as in freedom) software comes with licenses that allow such flexibility. And it is only right to expect distributions to integrate software packages that come with appropriate licenses.

It is completely incorrect to compare Fire-Fox with Opera. Opera doesn't distribute compilable source-code. Nor does it come with a license that allows re-distribution. YOU - the end user - have to get it yourself. Therefore Opera MUST provide appropriate packages for EVERY distribution they wish to support. Mozilla comes with a license that ALLOWS redistribution - it is therefore ENTIRELY LOGICAL to expect the DOWNSTREAM distributions to integrate and package appropriately for distribution.

Panoramix disse...

Also, if you indeed have a good reason to install fire-fox directly - i.e. outside of any package management system - you should again RTFM in greater detail. The steps cover this case and indeed recommend sticking to the latest update of FireFox 2 if your distribution doesn't have appropriate library support.

Stick to Firefox 2 (but EOL for FF2 is coming) or complain to your distributor. Good solutions to installing a browser.

It is completely incorrect to compare Fire-Fox with Opera. Opera doesn't distribute compilable source-code. Nor does it come with a license that allows re-distribution. YOU - the end user - have to get it yourself. Therefore Opera MUST provide appropriate packages for EVERY distribution they wish to support.

Nice one. So because Firefox is Open Source it is OK that it isn't distributable. Opera which is closed source and proprietary is the one who spreads easily.

Gerry disse...

[QUOTE]Nice one. So because Firefox is Open Source it is OK that it isn't distributable. Opera which is closed source and proprietary is the one who spreads easily.[/QUOTE]

Ha! So are you saying to me that if Gnome 2.4 uses newer libraries which are incompatible with your current distribution, you would blame Gnome? If the latest Knoqueror depends on KDE 4.x, you will blame the Konqueror team because they no longer ship the latest Konqueror in a state that works with KDE 3.x that your distribution uses?

How long have you used GNU/Linux? 2 seconds? You must tell me what you drink. It sounds far more fun than what I've ever come across. Of course I must remember to keep my mouth shut after drinking what you have.

Jackson disse...

Comments are being made about sw that is not comparable.

There is sw that needs to be upgraded on stable systems, the browser and probably the office suite, but not much more - all the remaining sw is most probably going to remain the same version during the entire lifetime of the system. The stability should not be affected by changing too much!

Sticking to FF2 is simply not an option anymore - not at least according to the EOL statement.

The discussion is not about > 10yrs (Windows 3.1x) systems is about systems around 3yrs old. The task of installing FF3 there should be eased, not the other way around!

No one is putting the great work of the Mozilla Foundation down. Given the high profile of this particular sw package, they probably could make the extra mile.

Gerry disse...

[QUOTE]The task of installing FF3 there should be eased, not the other way around!

No one is putting the great work of the Mozilla Foundation down. Given the high profile of this particular sw package, they probably could make the extra mile.[/QUOTE]

So then, tell me which one is easier:
1. Open your distribution package manager, search for fire-fox, select and update/install

or

2. Open your current browser, go to Mozilla site, download and follow installation instructions?

Note that (1) will install the browser SYSTEM-WIDE - all users of that system have the browser installed for them. Note also that (2) will install it for the user that downloaded it - not for all OTHER users of the system.

It seems to me that this blog has singularly got the whole concept of how Free/Open Source Software Projects work with GNU/Linux Distributors to package and distribute software completely wrong.

Comparing the way Opera is packaged with the way Fire-Fox is packaged is just plain stupid. Opera CAN NOT BE RE-DISTRIBUTED. PERIOD. Opera therefore HAS TO PACKAGE THEIR SOFTWARE FOR WHATEVER DISTRIBUTION THEY WANT TO BE USED ON. Otherwise NOBODY WILL USE it.

This is not the case with Fire-fox. Fire-fox CAN AND IS PACKAGED AND RE-DISTRIBUTED BY EVERY DISTRIBUTION THAT AGREES TO THE TERMS OF RE-DISTRIBUTION. This way, Fire-fix becomes an UP-STREAM project and the work of packaging and distribution is MANAGED BY EACH DOWN-STREAM DISTRIBUTOR. This is an easy way to spread the work and THIS IS HOW ALL FREE/OPEN-SOURCE PROJECTS WORK. Note that Gnome doesn't distribute RPMs, or DEBs or any other package format. Note also that Konqueror isn't available as RPMs or DEBs or any other package format. DISTRIBUTORS PACKAGE GNOME AND KONQUEROR AND WHATEVER OTHER (appropriately licensed) SOFTWARE THEY WANT TO MAKE AVAILABLE IN THEIR DISTRIBUTIONS.

This blog author seriously needs to stop drinking whatever it is he/she drinks and then try to understand HOW THE FREE SOFTWARE COMMUNITY WORKS.

Installing ANY PACKAGE from the distribution's Repository is VERY easy. Package dependency management is MEANT to make it easy and transparent to the user. If Fire-fox makes use of a set of new libraries, your distribution's package manager will TRANSPARENTLY UPGRADE ALL REQUIRED PACKAGES.

I don't know what distribution YOU use. But ALL the current, modern distributions have Fire-fox 3 in their repositories. So how is installing Fire-fox 3 on ANY MODERN DISTRIBUTION any more difficult than installing Opera?

Panoramix disse...

Ha! So are you saying to me that if Gnome 2.4 uses newer libraries which are incompatible with your current distribution, you would blame Gnome? If the latest Knoqueror depends on KDE 4.x, you will blame the Konqueror team because they no longer ship the latest Konqueror in a state that works with KDE 3.x that your distribution uses?


Had you *read* the article you'd have understood that Firefox doesn't belong to the same category as KDE or GNOME. Those ones you don't need to upgrade to keep a system usable until you decide to upgrade the whole OS

How long have you used GNU/Linux? 2 seconds? You must tell me what you drink. It sounds far more fun than what I've ever come across. Of course I must remember to keep my mouth shut after drinking what you have.

I would suggest you do not to use this kind of language because it doesn't add anything to the credibility of your arguments, which as you know we disagree with

Kirk disse...
Este comentário foi removido pelo autor.
Kirk disse...

Obviously this is going to turn in to an unfortunate flame thread but I made a post earlier that you've replied to as well.

In your opinion, when is it okay to use newer libraries? I believe we all will agree that bleeding edge isn't good to use unless you have a huge reason to upgrade. This is quite the case in businesses which you've cited in your article. A stable machine shouldn't be upgraded, I also agree with you there. However you want to upgrade to a newer browser and come across a library that you don't have.

Opera is a strange case in deed, but it's hardly the rule. My opinion is simply that GTK 2.10 is going on 2.5 years old and has been used and fleshed out by GNOME itself since 2.16, now it is quite stable.

Two and a half years is a long time to wait before using the library and only to then criticize it's use. That is my main argument here. You're suggesting that Mozilla hold off on using a library even longer.

The reason that Windows 2000 works well still is that Windows is pretty much a sitting target and never changes except for service packs which in businesses are very taboo in the sense of actually doing the upgrading. Many businesses still use IE6 and XP SP2 due to the lack of need for anything newer.

Linux and Windows can be actually compared in this case. Microsoft is the distribution of Windows in this case and let's say Ubuntu is the distribution of Linux. Microsoft releases a major version after a few years, even Service Packs are few and far between compared to Linux distributions. Fedora normally does a version release every 6 months to a year and Ubuntu does every 6 months on the dot. Others like Debian are indeed slow but most users run testing or unstable as their distribution of it unless they are in production environments.

What Linux suffers from mostly is that it is in such a constant state of change as things settle. I'm a fan of release early and release often myself but for a company putting out software for Linux may find it very daunting to develop for with libraries changing all of the time and I'm certain most would say using GTK 2.10 is acceptable since it has had such a high mileage on it.

Instead of arguing about semantics and opinions, how about some options to resolve this. Maybe put in a bug report to Mozilla, but I'm sure that will just get closed, I probably would close it too unfortunately.

One good idea might be to take the time to compile FF3 with it's dependencies linked in to the package itself and create a .deb/.rpm/etc and distribute that through the work environment.

However, that's all I will say on this matter.

Jackson disse...

The mentioned bug report is:
https://bugzilla.mozilla.org/show_bug.cgi?id=418885

Panoramix disse...

In your opinion, when is it okay to use newer libraries?

When the previous ones do not have the needed features.

I believe we all will agree that bleeding edge isn't good to use unless you have a huge reason to upgrade. This is quite the case in businesses which you've cited in your article. A stable machine shouldn't be upgraded, I also agree with you there. However you want to upgrade to a newer browser and come across a library that you don't have.

People are forced to upgrade to Firefox 3 for security reasons and encouraged to upgrade by the Spread Firefox campaign.

Opera is a strange case in deed, but it's hardly the rule.

But the rule shouldn't apply here. What matters is that there are special software components that are critical upgrades even on stable machines. Firefox, OpenOffice and Amsn are examples that don't follow the rule

Even Adobe has better portability than Firefox 3. I can install w/o effort latest flash and latest Adobe Reader on realy old systems (4 years old for example).




My opinion is simply that GTK 2.10 is going on 2.5 years old and has been used and fleshed out by GNOME itself since 2.16, now it is quite stable.

It is GTK >= 2.10.6 as previous versions will crash on printing. And a 2 year old distro doesn't have it.

Two and a half years is a long time to wait before using the library and only to then criticize it's use. That is my main argument here. You're suggesting that Mozilla hold off on using a library even longer.

Well either hold off or produce a portable package (better).

The reason that Windows 2000 works well still is that Windows is pretty much a sitting target and never changes except for service packs which in businesses are very taboo in the sense of actually doing the upgrading.

This is theory. Things change between OS versions and service packs and software producers adapt to it. The untold truth is that no one dares to release software for windows that would require such a compiling mess on a 2 year old windows version.


One good idea might be to take the time to compile FF3 with it's dependencies linked in to the package itself and create a .deb/.rpm/etc and distribute that through the work environment.

This is how FF3 binaries should be distributed by Mozilla. It requires a recompilation on each release so it's not efficient to do it downstream of course.

We backported GTK which is a do-it-once solution, but many users will have problems.

Gerry disse...

[QUOTE]Had you *read* the article you'd have understood that Firefox doesn't belong to the same category as KDE or GNOME. Those ones you don't need to upgrade to keep a system usable until you decide to upgrade the whole OS[/QUOTE]

And had you *read* my comment, you would have noticed that I used a very apt analogy - Konqueror. Konqueror, in case you don't know it, happens to be the browser for the KDE environment and it uses WebKit as it's rendering engine. Now are you going to blame the Konqueror team for making the most recent release of Konqueror dependent on KDE 4.x, just because the distribution you use has KDE 3.x? Are you going to demand that the Konqueror team posts packages for every distribution under the sun that is compatible with both KDE 3.x and KDE 4.x for your benefit?

The work of packaging and distributing Free/Open Source software is done by the Distributor. This is the correct place to do the work as each distribution uses different package formats and has different dependencies. Only the Distributor can integrate and package software in an optimal manner.

What you are asking for harks to the old days where every Free/Open source software project distributed tar-balls and RPMs and perhaps DEBs for their projects. Users had the following choices:
1. Download tar, and configure, make, make-install
2. Download RPM and hope it works. If not, figure out what dependencies to download and keep trying until it works. If it doesn't try (1) and hope it works.
3. Download DEB and hope it works..etc. Try (1) if not.

If you're not aware of the term "dependency-hell" doing the above is a good way to find out what it means.

GNU/Linux distributions have made major progress in packaging and distribution to the point where it is now easier to install ANY package in the Distribution Repository than it is to install similar software on Windows or any other platform.

As I said, I don't know what distribution YOU use, but all the current major distributions support both:
1. easy, user-friendly ways to upgrade the system, and
2. FF3 in their current repositories.

So, unless you're trying to roll out your own distribution, in which case you SHOULD be prepared to do the work all other Distributors do, your blog is simply another misguided, ignorant rant on something you've proven not once, but twice that you don't understand.

Gerry disse...

[QUOTE]One good idea might be to take the time to compile FF3 with it's dependencies linked in to the package itself and create a .deb/.rpm/etc and distribute that through the work environment.

This is how FF3 binaries should be distributed by Mozilla. It requires a recompilation on each release so it's not efficient to do it downstream of course.[/QUOTE]

So, in other words, every Free/Open Source software project re-invents the wheel and repeats the same work of packaging and distribution - that the Distributor does anyway - again?

So Konqueror must be statically linked with KDE 3.x libraries and KDE 4.x libraries to make you happy because YOU use KDE3.x and can't upgrade to KDE 4.x? So what happens to the features that Konqueror inherits from KDE 4.x? Do you want the Konqueror team to back-port them to KDE 3.x for your benefit?

Come now, tell me you're joking... tell me you've had too much of that Kool-Aid.

Panoramix disse...

So Konqueror must be statically linked with KDE 3.x libraries and KDE 4.x libraries to make you happy because YOU use KDE3.x and can't upgrade to KDE 4.x? So what happens to the features that Konqueror inherits from KDE 4.x? Do you want the Konqueror team to back-port them to KDE 3.x for your benefit?

It is explained in the article and people already told you more than once that there is a fundamental difference. Please don't add noise to an otherwise objective discussion.

GothicX disse...

Nice article. You can also add something about the new Mozilla copyright enforcement.

" ABrowser 3 is an unbranded version of the popular Firefox webbrowser; it is written in the XUL language and designed to be lightweight and cross-platform.
This is a meta package that will point to the latest abrowser package in your distribution. Don't remove this if you want to receive automatic major version upgrades for this package in future."

http://packages.ubuntu.com/intrepid/abrowser