i call bullshit

| 30 Comments

Chris Aillon, over at his blog tries to suggest that I'm a hypocrite for saying that Linux (and Fedora in particular) are failing to provide stability for third party developers. That's bullshit. When we realized we broke this API, we sat down, developed a plan to address it ASAP and are spinning up new builds as we speak.

When I complained to Chris the other day about his Fedora project dropping support for Mozilla's Firefox releases (by not including compat-libstdc++ version whatever,) his answer was that I wasn't supposed to use Mozilla's Firefox, I was supposed to get my Firefox from Fedora and Fedora only.

Chris, the difference is that we try hard not to break people and when we do - like in this case - we drop everything else and go about fixing it. You simply washed your hands and said "not our problem" when you broke Mozilla's Firefox on Fedora. Sure we can do better, but at least we're trying and not telling our users to get over it.

30 Comments

When you say "spinning up new builds", do you mean to replace the current 1.0.5 releases (like what happened with 1.0.1), or do you mean nightlies?

ChrisI, making a new release.

- A

Asa,

Thanks for "getting it" -- I would love to use Linux, but until someone in that camp can deliver a product as focused on the "end user" as you guys are, I will have to stick with the big M for operating systems. Most people would even call me a "techie", but that doesn't mean I don't want things made simple and quick as much as possible, my time is as important as everyone elses!

BTW, although I wish we could forget about 1.0.x and focus exclusively on the 1.1 alpha/beta stuff (which is all I use), I am glad to see you guys are making sure you are meeting existing user needs before "moving on"... (and admiting mistakes is important too! :)

That's the problem with alot of distro developers these days Asa... They want you to only download things from their archaic repositories. But by keeping this practice, it makes Linux less free than something like Windows. Luckily there are some guys working on a solution to the problem. There a great new project called Autopackage that is working on a distro neutral package format. I'd really love to see Mozilla come out with an official autopackage for their products, but I believe some people in the commnunity have already made a simple one.

I really see program installation as the last real hurdle keeping people from switching over easily, so hopefully this will take off soon. There are a few other similar projects, like Klik, but I'm not as familiar with them...

Also, have you given Ubuntu a shot yet? It's pretty heavily focused on the end user.

Well, I just checked back on the really long post from the other day and noticed that you already have tried Ubuntu...sorry ;) But, I really would like to know your opinions on systems like Autopackage :)

I have to take sides with and echo what Darin Grimm just said.

While I'm all for choice (it being one of the primary reasons why I use Linux), I would take exception to Derick's jab about "archaic repositories". The point of a smart package manager with repositories is not to lock the user in; rather, it's to provide a convenient way to install software. If you use Fedora, no-one from Red Hat watches over your shoulder and jabs you with a cattle prod if you decide to compile something yourself instead of installing with yum. No-one from Debian or Canonical will scream at you if you don't use apt-get. Nobody from Mandrake is going to hold a gun to your head and force you to use urpmi. The package manager and repositories are simply a convenience intended to do away with the need to compile all your software and its dependencies yourself (and if you particularly want to do that, well, try Gentoo).

Which gets back to Asa's point. The Fedora guys apparently only want you to use Fedora's builds. So long as it was still possible to use other builds or compile from source, that's OK. When they step over the line and start actively making it hard to install software the way you want it, then they're in the wrong. But I don't think "Linux" in general should be tarred with that brush because not every distro does it (and lest anyone think I'm a cheerleader for some other distro, or a Fedora hater, I happily ran on succeeding versions of Red Hat and Fedora for four years; I only switched away when it no longer suited my needs as well as other options. Which is that 'choice' thing that's so important).

As to Autopackage and its supposed world-saving capability, there's already a distribution-neutral format called 'source code'.

And Darin: by 'the big M' I do hope you mean 'Macintosh'. Also, there are people focusing on the end user and always have been; I use a distribution which does that, and I report bugs and problems I find (and patches when I find a problem I can fix) in the hopes of improving it for everyone. And I think that's a way of looking at software that's alien to people who come over from Windows; open-source projects are much more dependent on users as active participants in the development process, but to someone whose entire experience of software is with companies which basically say "here's the product, what you see is what you get" this is strange and often interpreted as demanding or arrogant and elitist.

Fedora's Firefox is a RPM package, meaning it is less complicated to install over Fedora (to update there is only one required command - "yum update firefox", with root privileges, and the user get alert by the time they put newer package on thier servers) - That's much simpler than the Mozilla-Way (executable binary installer which need to be downloaded and installed by the user), but they lack in updates. Fedora still has no package for Firefox, and it will take about a week until they get one.

From my point of view, Mozilla need to supply packages to the distos, this will make the process of putting the package on the distro servers much shorter, and will give Mozilla control over the package.

As for the update icon, it is useless if you not running it as root (or administrator, for that matter) - There need to be command-line parameter to get-and-install-updates in Firefox 1.1 and the update icon should check the see if it possible to install the update as the current user or alert "There is newer version of Firefox available. Please contact your system administrator.".

I've got to respond to ubernostrum:

Claiming that Red Hat would be "actively making it hard to install software the way you want it" is totally off base. Compiling Firefox should just fine, it will then be linked to the current version of libstdc++. If you want to install the mozilla.org build, you need to install a compatibility library since nothing in the distro needs that older version. They _do_ provide the compat library on the CDs so it's not exactly hard at all. Sure it isn't installed by default in, say, the "desktop" install, but they have to draw the line somewhere. Where exactly? Since Fedora is supposed to be Red Hat's cutting edge enthusiast-oriented distro, they choose not to install any legacy compatibility packages by default.

Well, when Aillon is right that there are API changes in the 1.0.5 release, than that is good point. I would go nuts if a bugfix-release of a product I develop for changes its API - no matter for what reason!
Personally, I tried FC3 and encountered some problems when trying to install some software myself. As an end-user, you have to dig too deep to get the libraries or whatever. As an interested student, it's nice to get deeper knowledge about your system.

Asa,

As I said before in a post when you first mentioned Fedora and libstdc++,
Mandriva too does not include libstdc++5 in its latest distro, but libstdc++6.

It's common for distros to include the newest release of libraries. And as
another poster to that original thread said, Firefox should include libstdc++
*statically*, if it really MUST require a specific version.

In my Windows days (thankfully long since gone), it was common to
install some cover CD app, only to find it required a certain version of
vbrunxxx.dll. But you could hardly bitch to Microsoft for developing VB,
or the developer for not sticking to some older version of the library.

Ok, this isn't fair. When you pick on Opera, they have a fanboy army to combat yours. I don't think Chris has the same fanboy resources you do, his forces will be overwhelmed!

I'm pretty much on board with you here. I just installed FC4 on a new laptop and was pissed to see the nasty theme that shipped for Firefox with FC4. I also wanted to be able easily to upgrade in the future. But when I tried to do a fresh install of Firefox, I couldn't b/c of this issue. I upgraded libstc++ and all systems were go, but I still found it irritating. I think Fedora's getting much much closer to being desktop-ready, though, if not laptop ready just yet.

The compat-libstdc++ issue has hit Autopackage too. We have resorted to binary deltas in the upcoming 1.2 version to work around the constantly broken state of C++ on Linux.

Specifically, the Fedora developers excuses of "well nothing in the core needs this" is total bullshit. I filed a bug on it, and (surprise) it was closed as WONTFIX.

This is totally lame because:

a) It goes against the stated "Just Works" goal of Fedora development. Dicking about with magic yum commands is not "Just Works". It also makes the release notes claim that Fedora is a "robust platform" for software development laughable. It's not robust at all, it's flakey and untrustworthy.

b) It saves 3mb of disk space. 3 whole megs. Wow.

c) It assumes that any software which isn't compiled against their particular set of libraries (which varies from release to release) is "legacy". Legacy! Ha ha ha, Firefox 1.0.4 is legacy now is it? What crap.

The idea that Fedora Core/Extras can contain everything any user ever needs is a naive fantasy. The evidence all points to it being an unattainable goal. Sooner or later we're going to have to take this into our own hands and just have autopackage add custom yum/apt repositories with a "desktop-linux-base" virtual package. It's the only way to make things work properly for the end user. We don't *want* to do this, but the proprietary "all your base" attitude of the major distributions is forcing our hand in the matter.

And yes, there's a Firefox autopackage. The custom Mozilla installer is nice but it's not written by a dedicated team: I'd love to see you guys focus on writing a fantastic browser and let us deal with Linux installers.

Amen Brother Asa!

Asa, you ARE supposed to install software from the the distribution repository. This is how a modern Linux dist works - it's simpler than going to download.com - just type "apt-get install firefox" or point-and-click on the synaptic gui. And it's safer - you get automatic security updates and you can be 99% sure that there aren't any viruses or spyware bundled.
Just because it isn't the "windows way" doesn't mean it isn't the right way, especially in an open source environment like linux.

If from some bizarre reason you don't want to install software from your dist - either install it from source and suffer all the unpleasantness of that, or install from the software's site where the SOFTWARE DEVELOPER should make sure that his software is installed correctly.
Your binaries don't work? don't blame fedora, blame your developers for not statically linking the libraries.

I mean, look at Skype - they offer their linux users two types of binaries - a dynamic one and a larger static one.

Besides, how many times did the firefox extension manager change, forcing all the extension builders to rebuild their extensions? Those were PLANNED api changes - so what if hundreds of extension developers needed to repackage on the api change from 0.8 to 0.9? we surely can make an exception in this case because it's the firefox code and we need to make progress. other software developers break api just for the kicks of it.

Per: I wasn't saying that they are, just that that sort of thing would be wrong if they were doing it. The impression I got from Asa's post was that he felt they were, but since a) I don't run Fedora on anything right now and b) I wouldn't try to build my own Firefox on it even if I did, I have nothing to say on whether that's what they're doing.

Amen to the comment about the nasty theme. Normally, getting a new theme is late in my process of setting up a new installation of firefox (if at all). In this case, I headed straight to the Mostly Crystal site to get rid of that monstrosity that they call the default theme.

4 releases with still untended bugs, deliberate damage to windows installations, and now this blatant disrespect to FF users and devs. The discs go in the trash. I've totally had it with the FC crap. It's worthless.

Just compare an install on Apple or even windows with a 'modern linux distro'... Even for long time linux users - RPM is a huge pain unless you stay within the distro walls. I stoped using Fedora long ago for those reasons.

The problem is not the package format. RPM/deb/ipkg/gentoo/tgz/zip - all can work equally well. I agree, the disrespect distros have for their users ( "we know better than them", "they should use only what we tell them to" ) is one problem.

But the real issue is the disrespect distros have for software authors, like Mozilla ( or Apache, open office, etc ). They feel they 'know better' how the software should be packaged and installed or upgraded. That's one of the reasons each distribution is different (the other way is simply attempt to lock-in).

However distros have only half the blame - the software authors share the other half. Mozilla ( and all other organizations ) should protect their users, and warn them not to use binary packages that alter the software layout or behavior. They should also protect their brand by not allowing packages with different layout or behavior to use their name.

Firefox has been tested with a particular combination of libraries - yes, it might work ( by luck ) with a different libc++, but how can anyone pretend it's the same quality with the one that was tested ? Changing the compiler or libraries results in a different binary, that might work differently than the original ( different ABI -> plugins won't work, changes in lib implementation -> behavior changes ).

Distros act in their own perceived self interest, even if in reallity it hurts them and linux in general. Simple short-sightness. So I personally think the people we should blame for the linux problems are the people who write the software, create nice packages for windows and mac, but refuse to consider their linux users and lets them hostage to the distros.

Autopackage - nice goals, but seems to repeat the mistakes made by rpm/deb/gentoo - yet another package database and package style, incompatible with everything else, using their own locations, etc. They still build the software with their own flags and gcc/lib versions.

Fedora didn't drop support for installing firefox from .mozilla.org. They never did. Fedora supports the software they ship, not yours.

In fact, I'm running Fedora Core right now and .mozilla.org's firefox binaries work just fine. FC4 includes compat-libstdc++-33 which includes libstdc++.so.5 needed by firefox. Beyond that, FC4 also includes compat-libstdc++-296 so even Netscape 4 works.

At some point they will stop shipping obsolete libraries, but so what? I'd prefer that they spend their limited resources making the current versions of software better than maintaining obsolete libraries. And of course, if I did want a linux distro that where the older libraries were more actively maintained, I'd be running Red Hat and not Fedora.

I agree with Chris.

Why are you distributing your software in a .bin installer?
RPM is the LSB standard. www.linuxbase.org

You guys could easily make rpm -bb builds for SuSE9.3, Mandriva10.2 FC4 and other modern systems. I happen to use those 3 on different machines.

I know somebody over there at Mozilla knows how to write spec files. Hopefully.

At any rate why MUST the linux installer be EXACTLY like windows, with GUI's and the EULA and the whole 9 yards of proprietaryness?
Why not have the EULA launch first thing when the rpm is installed and flag it in the ~/ settings folder for Mozilla as having been agreed to by each user instead?

Do we really need installshield type installers on linux?
Is that really necessary?

Does linux HAVE to be exactly like windows?

Do we really want to lose RPM, and the ability to manage packages even after they are installed and dep check, like windows?

I don't. Screw that.

Peace out, Beer

Asa,

Say for instance firefox depends on mfc42.dll, and longhorn doesn't ship that version of MFC. I don't use windows anymore, I'm not saying it does. This is just an example.

The same thing would happen on windows. The loader would look for the dll LD_LIBRARYPATH, or whatever messed up envvar windows uses, and it would not find it and fail. VOILA, the same freaking error.

And I bet the only thing that would come out of your collective mouths is oh, well, I guess we should rebuild or stick the dependancy in the installer.

I'm aware that a couple different builds of libstdc++ and related libraries were shipped with SuSE9.3, mandrivaLE and FC4. That's unfortunate, but that's life.
That's why RPM is the defacto packaging standard on linux, it can refuse to install if the right dependancy version is missing.

I can't say the same of windows install studio on VC++6, which is the last one I used before I shut down windows forever.

So just rpmbuild it, or work out a bootstrap on your bin installer and write the installer with C/glibc instead. Problem solved.

I assume you're screaming at your monitor telling me to shut up now, so I will.

Bye, bye.

LD_LIBRARY_PATH

grrr, there's no edit button. Oh well, you get my drift. A runtime dependancy can just as well be missing on windows. Look at all those poor sorry saps distributing .NET applications to people with dialup access and no way to get the runtime :(

actually :) mwahahaha

Beer and sorry saps must not have heard of Thinstall in that case.

What the heck does thinstall have to do with anything?

You can do that dll2lib on win for dll's(I have a registered copy), you can redistribute a compact version of the framework with the salamander product from remotesoft.

Firefox could statically link all of it's dependancies, including libstdc++ on it's linux version.

It doesn't because that's a total waste. It's what we in the software industry call bloatware.

On linux it's as easy as rpmbuild - ing your tar.gz with a spec file that lists the dependancy packages for your program. After you do that, fc4 with yum and up2date, and YaST with SuSE9.3 and urpmi with Mandriva10.2 will go and fill all the dependancies by itself.

It's what we call a "software package manager", and windows "doesn't have one"

On windows, an installer will simply either directly put a couple restore and uninstall keys in the registry that launch programs that recopy the files or launch an uninstaller, or have msi do it, msi is not a software package resolver/tracker. I have made my own windows installer in the past.(it's open source)

Putting every dependant function in your ".exe" is what is normally called "static linking". Unlike on windows, programs are encouraged NOT to have their own copy of duplicate libraries and functions on linux. We have /usr/lib and /lib for that.

Because libraries on linux are not all named the same no matter what version is being used, it also eliminates the "dll hell" and lets people link to a specific version of a library. You have that in .NET, but it's stored in the metadata.

Had linux had each version of libstdc++ named the same, and firefox used a function that was in version 6 but not 5, and version 5 was loaded into the process anyway like on windows, it would be a sigsev critical error, because the call to that function would be unresolved.

So what the author is complaining about is actually a critical safeguard against linking to the wrong version libraries like you can easily on windows, producing the "dll hell"

Had I written the .bin installer, extractor, I would have used glibc instead with gtk+ or xlib directly and simply displayed an error message if the proper c++ library could not be found on the load env path. Directing the user to actions to resolve the problem for each distro by launching a dynamically written helpme.txt in their ~/.hidden file with gedit & (popen).

Alot of companies like Sun with the JRE have also been making a .bin installer that launches RPM and that would be a great alternative also. That way they could have their "windows-like" gui, and still retain the safety of RPM installation.

It's fairly easy to have the su box come up, grab the pass, and relaunch the program as uid 0 to make sure the rpm will install. So the first thing the .bin installer could do is grab the pass and use pam or another auth method to switch to uid 0 and relaunch itself as root to the install GUI and launch RPM as the final install step, displaying the -h param of RPM as it's progess bar.

That would be a good thing to do and have an installer for each operating system, much like it has a different one for windows and mac.

Speaking of Linux and hardware, do you all follow the engaging rants and software tools from rixstep.com?

At last report they've gotten over their brief severe infatuation with Apple (carried over from a long affection for NexStep) and are recommending people go with the Macintosh computer but not OSX.

But they're still searching for an OS they can recommend.

Worth reading, I think, even if they do quote me in one of their collections somewhere.

E.g.:
...5 - Resource Forks
------------------
Only Apple would have something as silly as resource forks, just as only Apple would have something as silly as AppleTalk. The boggle minds. What is worse is that Apple claim to be running a POSIX compliant operating system.

Try telling that to Apple users who pull their hair out trying to figure out what happens to files they send friends on other Unix platforms. Apple today in their Tiger OS have their own compression utilities - essentially putting Aladdin out of business - and they do a horrible job.

For starters there's the abysmal .DS_Store. The programmer who designed and implemented .DS_Store was not fired on the spot, which is testimony already to there being something else wrong in the 2% Kingdom; when compressing files for sending across the ether, OF COURSE Apple's new compression stuff picks up files users don't normally see - as if a Linux user would benefit from a .DS_Store?
END QUOTE

I have to say it seems to me Apple's goal is profit renting its customers to the big corporate suppliers of rental entertainment, collecting a little percent of every transaction.

So -- I'm hoping someone will make Asa happy with a Linux version he can recommend for the rest of us, as we bail out of Apple's OS.

Because Mozilla kindly provides .rpm's and other packages for Linux. No. That's Opera. Sorry.

Monthly Archives