Site Meter

2009年2月8日

自編全新 WebKit 讓 KDE / Konqueror 如虎添翼

KDE4Plasma 引入了 WebKit 做為桌面環境的預設排版引擎,雖然瀏覽網頁的工作依然是交給 KHTML ,但是 Konqueror 現在也只要安裝相對應的套件就能使用 WebKit 了! 對於在 Web 2.0 應用這方面比 KHTML 強很多的 WebKit 對於瀏覽網頁來說當然是個不可或缺的搭檔。

雖然 Konqueror 可以搭配 WebKit ,但是在 Ubuntu 套件庫中的 QtWebKit 版本卻非常的陳舊,不但 Acid3 測出來只有 41 分,而且連 GMail 都無法好好使用。 另一方面速度之慢,令人難以忍受。雖然 WebKit 是水果牌的東西,但好歹它也是個開源的(從 KHTML 改來的嘛),既然不滿意,那就自己抓新的下來編吧! 用 Konqueror 來上 GMail ? 聽起來跟美夢一樣,不過就快成真了! :)

如果要讓 Konqueror 能使用 WebKit 來上網的話,之前已經有介紹過了,請按這篇文章裡寫的下去做吧!

在開始編譯之前,先來裝一些編譯會用到的道具(?),好讓我們順利編譯:
$ sudo apt-get build-dep libqtwebkit1d
$ sudo aptitude install libqt4-dev libxslt-dev gperf bison libsqlite3-dev flex build-essential

接著是使用 SVN 調出最新的 WebKit 原始碼(就是最新 Nightly 版),雖然 WebKitGecko 比起來很嬌小,但還是要抓不少東西,包括各平台的 WebKit 都是用同一份原始碼,以我個人來說大概抓了 20 分鐘左右:
$ svn checkout http://svn.webkit.org/repository/webkit/trunk WebKit
注意,這個動作使用到 Subversion 這玩意,所以如果你不曾安裝它,請事先將它裝上才能調出 WebKit 原始碼:
$ sudo aptitude install subversion

在原始碼調出的過程中,你可以先另開一個終端機來處理一下 QMake 的問題,由於 /usr/bin/qmake 這玩意是 Qt3QMake ,也就是 /usr/bin/qmake-qt3 這玩意,但是在編譯時需要使用的是 /usr/bin/qmake-qt4 ,但 Script 預設會去用 /usr/bin/qmake 這傢伙,所以如果不先動個手腳的話等一下一定會出錯:
$ sudo mv /usr/bin/qmake /usr/bin/qmake.bak
$ sudo ln -s /usr/bin/qmake-qt4 /usr/bin/qmake

OK! 大功告成,接著可以喝杯茶,然後去上個廁所,等 WebKit 抓完。

抓完了以後就可以開始編譯了,因為是要給 KDEKonqueror 用,所以編 QtWebKit 就好,其它東西也用不到就不用啦!
# QTDIR=/usr/share/qt4/ WebKit/WebKitTools/Scripts/build-webkit --qt

接著會經過一段非常漫長的編譯過程,將近一小時。 這段期間你可以好好享用一下晚餐,或者是看個電視之類的。

當編譯好以後接著就是把編好的東西搬去給 Konqueror / KDE 用了! 其中編好的程式庫會在 WebKit/WebKitBuild/Release/lib 中,檔名叫作「libQtWebKit.so.4.4.3」,用它取代掉原本在 /usr/lib 裡的 libQtWebKit.so.4.4.3 就可以了 :)
$ rm -Rf /usr/lib/libQtWebKit.so.4.4.3
$ cp WebKit/WebKitBuild/Release/lib/libQtWebKit.so.4.4.3 /usr/lib/libQtWebKit.so.4.4.3

最後把 QMake 物歸原位:
$ sudo rm /usr/bin/qmake
$ sudo mv /usr/bin/qmake.bak /usr/bin/qmake

一切都完成以後就可以用 WebKit 來打開 GMail 享受編譯過後的成果了喔! :)
GMail in Konqueror

2 則留言:

  1. 感謝提供~不過新版的kubuntu 9.04 beta裏面的webkit版本好像是最新的,acid3測試出來是100分。不過看gmail感覺還是怪怪的XDD

    回覆刪除
  2. 皓綸 :沒錯!托 Qt 4.5 的福,新版 KDE 的 WebKit 已經是近代版本了 (XD)
    不過如果想衝新版的還是可以自己編 :P

    回覆刪除

請注意,在較舊的文章留言並不會馬上出現在回應區!