ubuntu 8.04 hardy 从源码编译安装firefox解决字体渲染问题
最近发布的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 的控制,囧)。
