Pages

23 March 2011

Debian Firefox 4 Font Failure

[Update 2011-06-25: You should consider this post obsolete. See this post for more info. Iceweasel 5 installs most beautifully on Wheezy.] 
 
I just tried building Firefox 4 on Debian Wheezy. I build Firefox for my machines because (1) I want the latest FF and (2) I want subpixel rendering--which tends to get turned off sometimes|always in Debian and Ubuntu builds of Firefox and Iceweasel.

My first attempt failed. Why? Because if you enable-system-cairo in the build, FF4 insists that you have at least version 1.10 of libcairo2--and Wheezy and Squeeze are both at 1.8.10. One upshot of this is that there will be no way for Squeeze users to get subpixel rendering in FF4 using the default libcairo2 packages. Wheezy users will have to wait until the current Sid packages trickle down. Once that happens, it theoretically will be possible to backport the Wheezy libcairo2 to Squeeze (with patches even) , but I am frankly getting a little tired of this.

I am now making a second attempt to build FF4 wherein I did not enable-system-cairo, and it seems to building just fine. That should be ready for testing in another hour or so. But of course I expect font rendering to be just tragically bad. (Update: it built and runs fine and renders fonts every bit as badly as I expected.)

Tomorrow I will probably try building FF4 on Ubuntu 10.10, whose libcairo2 is at 1.10. I tried running the Linux prebuilt binaries from Mozilla on my Ubuntu machine, but as I have come to expect from Mozilla's FF builds, cairo did not seem to be enabled. (Update: Building on Ubuntu also failed. Apparently FF4 with enable-system-cairo also needs cairo-tee greater than 1.10, but Ubuntu's libcairo2 doesn't seem to be built with --enable-tee=yes.)

It seems every other post of mine in the last couple years has dealt with the agonies I've had in getting consistently good font rendering in Linux. It really shouldn't be this difficult.

14 comments:

Mithat said...

@Kelsey J : I accidentally deleted your comment! I meant to delete the *message* I got regarding your comment but carelessly deleted the comment itesel instead. If you resend it, I will post it here. In the meantime, here is your comment in full:

Kelsey J said...

This is the post I've been looking for for weeks. So this is why Firefox 4 font rendering is so hideous? Ugh... how frustrating. Why must it always be such a battle on our end...

Kelsey J said...

Haha no problem, I'm just glad that there are others as nitpicky as me when it comes to font rendering! For the last year or so I've been pulling my hair out over various programs that don't respect the system settings. Sometimes I wish I was oblivious to such things.

Eric said...

Just install Iceweasel 4 from : http://mozilla.debian.net/ .
Or look here : http://forums.debian.net/viewtopic.php?f=10&t=62416#p362197

Mithat said...

@Eric: Does Iceweasel 4 solve the font-rendering issue?

Pedro said...

It does but we have to repatch libcairo2 1.10 to have Ubuntu hinting system wide.

Pedro said...

I recommend building Wheezy libcairo2 source patched with Archlinux's patch only. Using a modified version of your build script I now have my fonts fixed everywhere. Cheers.

Mithat said...

@Pedro: Thanks for the heads up on Wheezy updating to libcairo2 1.10. Have you tried patching it with the Arch patches?

Mithat said...

@Pedro: I really need to read comments more carefully! Would you be willing to share your modified script with us? It will save me from doing the work.

Eric said...

Look here : http://debian-bits-and-snips.blogspot.com/2011/03/run-iceweasel-4-on-squeeze.html

Mithat said...

@Eric: Awesome. Thanx.

Pedro said...

Yeah, sure: http://dl.dropbox.com/u/170508/build-libcairo2.sh

I've just commented out everything that had to do with the ubuntu patches. Sorry I didn't have time to clean it up. There is no need to edit the script to set the version now. You just have to change the deb-src line in sources.list to debian testing. I have blogged about it here: http://varelasaraiva.com/retrovisor/2011/04/13/Ubuntu-fonts-on-Debian-stable.html

@Eric: From my experience, while Firefox 4 from the Debian Mozilla team has the right font rendering with libcairo2 from squeeze-backports, the remaining applications do not. I had to patch libcairo 1.10 with the Arch patch in order to have the Ubuntu font rendering everywhere.

Mithat said...

@Pedro Thanks. I'll post an update and point to your post after I've had a chance to update my own machines.

Eric said...

@Pedro. I found out that patching is not needed. It's OK with all applications no matter if you use version 1.10.2-1.1~bpo60+1 ( squeeze-backports ) or version 1.10.2-6 ( sid ). I run Debian squeeze amd64 ( gnome ). But it maybe depends on your .fonts.conf I guess.

Pedro said...

@Eric Possibly - I'll have a look. Thanks.