ubuntu 8.04 hardy 从源码编译安装firefox解决字体渲染问题

November 9th, 2009 | Categories: Computer | Tags: , , ,

最近发布的ubuntu 9.10 karmic 装在我的笔记本上问题重重,经过一番痛苦的折腾后,彻底放弃,降级回8.04 hardy。
但是hardy的源里面的firefox还是3.0版的,于是去Mozila官网下载最新的3.5.5编译好的包。但是运行后发现字体渲染不受System->Pereference->Appearance->Fonts中渲染设置的控制。
一通Google,在主目录下面放置.fonts.conf文件,如下内容:

<?xml version='1.0'?>
<match target="pattern" >
	<edit mode="assign" name="hinting" >
		<bool>true</bool>
	</edit>
	<edit mode="assign" name="hintstyle" >
		<const>hintfull</const>
	</edit>
	<edit mode="assign" name="autohint" >
		<bool>false</bool>
	</edit>
	<edit mode="assign" name="antialias" >
		<bool>true</bool>
	</edit>
	<edit mode="assign" name="rgba" >
		<const>rgb</const>
	</edit>
</match>

但是情况依旧。
把hintstyle用hintfull,hintmedium,hintslight尝试,意外的发现hintfull,hintmedium的效果是一样的。再一通Google,猜测Mozilla的官方编译包没有用–enable-system-cairo选项编译,于是只好自己重新编译。
好在编译firefox不是很复杂,网上相关的文章也多,比如http://gastly.iblogger.org/how-to-compile-firefox-35b4-from-source-with-nice-fonts/
首先安装必要的工具和相关的库:

$ sudo apt-get build-dep firefox-3.0
$ sudo apt-get install libcairo2 libcairo2-dev libasound2-dev libcurl4-openssl-dev libnotify-dev

然后从http://releases.mozilla.org/pub/mozilla.org/firefox/releases/下载最新的源码
然后解开源码包,进入源码目录,新建一个.mozconfig文件,包含如下内容:

mk_add_options MOZ_CO_PROJECT=browser
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/ff-opt
ac_add_options --enable-application=browser
ac_add_options --disable-tests
ac_add_options --disable-debug
ac_add_options --enable-default-toolkit=cairo-gtk2 --enable-system-cairo
ac_add_options --enable-optimize="-O2"
ac_add_options --enable-official-branding

这些选项的含义可以在https://developer.mozilla.org/en/Configuring_Build_Options查到,其中重要的是:

ac_add_options --enable-default-toolkit=cairo-gtk2 --enable-system-cairo

只有开启了这个选项,firefox才能正确的渲染字体。

ac_add_options --enable-official-branding

这一选项会让编译出的浏览器的userAgent为firefox,使用Mozilla的firefox图标,否则userAgent为Shiretoko,使用的是一个蓝色地球的图标,如果遇上对userAgent检查严格的网站可能会有问题。但是注意Mozilla是不允许分发非官方的构建时使用firefox的名称和图标的。
之后:

make -f client.mk build

开始编译,编译完成后:

cd ff-opt
make package

这里的ff-opt目录就是上面在.mozconfig文件中第二行配置的,执行make package后会在ff-opt/dist/下生成一个类似名如:firefox-3.5.5.en-US.linux-i686.tar.bz2的包,解压运行其中的firefox就可以了。
当然也可以在源码顶层目录中执行

make -f client.mk install

会安装在/usr/local下面。
现在字体可以正常的接受~/.fonts.conf的控制了(但依旧不接受 System->Pereference->Appearance->Fonts 的控制,囧)。

  1. 1 trackbacks