手机版firefox浏览器fennec编译测试eg

标签: Linux技术 Qt技术 其他平台技术 browser embedded | 发表时间:2010-08-27 23:46 | 作者:shiroki 三十不归
出处:http://www.cuteqt.com/blog

fennec是firefox在嵌入式平台的简化版, 也被称为firefox的手机版,是Meego平台使用的浏览器。 因为被Meego使用的缘故, 它提供了一套基于Qt的界面实现。

fennec是一种生活在撒哈拉大沙漠里的长耳狐, 长得很是可耐, 上个片片给大家欣赏一下:

可耐到让俺很垂涎的地步。 应bug的要求, 尝试编译了一下这个工程。 既然fennec这么可耐, 咱爱屋及乌,当然编译这个浏览器也要尽心尽力拉。

下载+解压缩

下载源码包:http://repo.meego.com/MeeGo/builds/trunk/preview/core/repos/source/fennec-qt-2.0a1pre0721.4-1.1.src.rpm

俺一般用mc(midnight commander)去解压rpm和里面的cpio文件, 得到一组文件列表, 我们只用其中的fennec源码包, 如下:

tar jxvf fennec-tip-91da083f3478-af67cbcea09d.tar.bz2

解压出mozilla-central目录

构建

构建之前要设置环境变量设置:
$ export QTDIR=/usr/local/Trolltech/Qt-4.6.3

编译的命令: make -f client.mk build NSDISTMODE=copy

这个命令是autoconf+configure的集合体, 所以耗时很长, 大概要几分钟。 这个命令会在mozilla-central目录下创建一个qtdebug目录, 然后所有的Makefile都生成在这个目录里, 类似shadow build的效果。

如果你不幸在运行编译命令之前忘记export QTDIR了, 那么恭喜你, 前面等待的时间算是白费拉。 必须要make distclean才能让新的环境变量起作用。 环境清理的命令是:

$ make -f client.mk distclean

编译过程中的问题和解决方法

笔者在编译的过程中遇到了两个主要的问题, 一是找不到cpuid.h头文件。 出问题的代码在mozilla-central/xpcom/glue/SSE.h

240 #if __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)
241 #if 0//BJBJ
242 // cpuid.h is available on gcc 4.3 and higher on i386 and x86_64
243 #include <cpuid.h>
244 #define MOZILLA_SSE_HAVE_CPUID_DETECTION
……

这里对gcc的版本做了一个检测, 并认为gcc在4.3以上的话就会带有cpuid.h文件。 这个假设比较奇怪,因为笔者的系统上gcc确实是在4.3以上, 但却没有这个头文件, 太囧了! 没办法, 将这段代码注释掉, 一直注释到namespace mozilla结束。(简单看了一下代码, 应该没有什么影响。)

第二个问题是出现下面的编译错误:
mozilla-central/gfx/thebes/GLContextProviderEGL.cpp:600: error: ‘GLContextProviderEGL’ has not been declared

这个EGL相关的东西一看就是只有嵌入式上才有的, 我们在桌面编译当然不可能有拉, 翻了翻代码, 发现除了EGL的实现之外还有GLX(对应于X的GL)、WGL(windows的GL)和CGL(MAC下cocoa的GL), 应该是有个开关控制具体编译哪个GL支持。 再翻翻, 发现这个开关在gfx/thebes/目录下的Makefile.in中。 修改这部分代码如下:

397 ifeq ($(MOZ_WIDGET_TOOLKIT),qt)
398 ifdef MOZ_PLATFORM_MAEMO
399 GL_PROVIDER = EGL
400 else
401 GL_PROVIDER = GLX
402 endif
403 endif

看起来是比较神奇的代码,其实是从上面一段关于gtk的代码照抄过来的。 ^_^

修改Makefile.in之后不需要重新configure, 笔者的做法是直接到qtdebug目录里去make。 后面就是比较漫长的编译过程, 大概需要二十多分钟的时间。

运行

$ export LD_LIBRARY_PATH=/usr/local/Trolltech/Qt-4.6.3:path_to_fennec/mozilla-central/qtdebug/dist/lib
$ path_to_fennec/mozilla-central/qtdebug/dist/bin/fennec

第一行脚本指定运行时库的载入路径, 笔者的机器上需要加上Qt的路径, 因为系统里自带了4.3和笔者用的4.6会冲突。 其他就没什么特别的拉。 总的来说还算顺利~

来个帅帅的截图证明咱不是忽悠人的

相关 [机版 firefox 浏览器] 推荐:

手机版firefox浏览器fennec编译测试eg

- 三十不归 - CuteQt Blog
fennec是firefox在嵌入式平台的简化版, 也被称为firefox的手机版,是Meego平台使用的浏览器. 因为被Meego使用的缘故, 它提供了一套基于Qt的界面实现. fennec是一种生活在撒哈拉大沙漠里的长耳狐, 长得很是可耐, 上个片片给大家欣赏一下:. 应bug的要求, 尝试编译了一下这个工程.

Firefox统治印尼浏览器市场

- Wuvist - Solidot
根据StatCounter的统计,开源浏览器Firefox在印度尼西亚的市场占有率高达75%至80%,在亚洲国家中最高. Mozilla正在印尼建立一支志愿者大军,帮助定制Firefox和推荐附件. 大约1千名精通技术的志愿者将在本月举行会议,探索进一步本地化的方法. Mozilla并不完全清楚为什么它会在印尼如此受欢迎.

Chrome和Firefox联手开发跨浏览器Web App应用

- pansin - Solidot
whuhacker 写道 "Mozilla曾经计划发布一个开放的跨浏览器Web App Store,使得Web应用可以运行于Firefox、Chrome、IE、Safari、Opera等多种浏览器. 现在,Chrome正和Firefox联手推进这项计划. 一个名为Web Intents的框架正在开发以帮助Web Apps更加顺畅地运行.

银联“在线支付”全面兼容Firefox浏览器

- Will - ITeye资讯频道
银联的“在线支付”已经可以全面兼容Firefox浏览器. 这意味着,Firefox用户将不再为网络支付问题所困扰,通过使用“银联在线支付”,可以完成全部支付功能,享受到安全、快捷、全球化的银联互联网支付服务. 在此之前,很多Firefox用户一直为网络支付所困扰,使用网银支付时需要切换到其它浏览器才能完成,使用上十分不便.

Windows 8平台浏览器PK:IE10 vs Firefox vs Chrome

- 洞箫 - cnBeta.COM
Windows 8对HTML5标准的支持体现在很多方面,其中就包括对HTML5浏览器的支持,那么在Windows 8上究竟哪款HTML5浏览器的表现最好呢. 国外媒体日前就做了这样一个比对:IE10 vs Firefox vs Chrome,测试平台选取了惠普TouchSmart TM2笔记本.

lifehacker最新浏览器跑分测试 Firefox 7成绩加入

- 洞箫 - cnBeta.COM
Mozilla Firefox 7今天正式发布,本次更新几乎没有任何功能改进,Mozilla将所有精力放在了性能上,因此新版的性能跑分令人期待. Lifehacker率先公布了包含Firefox 7在内的新快浏览器的成绩,不过从事实看来,苦修内功的Firefox依然玩不过Opera和Chrome,但大多数据比IE9要强一些.

Chrome将取代Firefox成为第二流行浏览器

- xing - Solidot
根据StatCounter的统计,Google的Chrome浏览器即将取代Firefox成为第二流行的浏览器. 截至本周,Chrome的全球市场份额占23.6%,Firefox占26.8%,IE为41.7%. 根据Chrome的增长趋势,它将在12月左右取代Firefox成为世界第二受欢迎的浏览器.

Firefox 6已达Web浏览器网络流量的8%

- Antoine - cnBeta.COM
8月16日Mozilla发布了Firefox稳定分支的最新版本Firefox 6,Chitika今天统计了16日到22日短短一周的数据,结果发现Firefox用户跟随新版本的能力非常强,Firefox 6在短时间内拿下了全球WWW互联网8%的流量,与此同时,Firefox 6在所有版本的Firefox浏览器中的流量达到45%,以下是统计图表:.

Firefox下的浏览器兼容性检测工具——Compatibility Detector

- mingelz - 携程UED
这里给大家推荐一个Firefox下的浏览器兼容性检测工具——Compatibility Detector. 这个工具对于新手来说是非常不错的一个东东,下面我就简单说下它的优点. 作为一个前端开发者来说,最痛苦的事情之一就是要兼容现在各种五花八门的浏览器,而在实际的调试中这个调试过程又是让人劳心劳力.

Firefox仍然是世界第二流行的浏览器

- - Solidot
根据Net Marketshare的统计,Firefox仍然是世界第二流行的浏览器. 2012年9月,IE和Firefox基本无变化,各自增加了0.03个百分点至 53.63%和20.08%,Chrome下降0.27%至18.86%,Safari增加0.16%至5.26%,Opera减少0.04%至1.62%.