HowToMeegoFennecDraft

Revision as of 09:41, 13 January 2011 by Jeremias.bosch (talk | contribs)

What this is About

This document explains "How to build Mobile Firefox for Meego Netbook Platform".

Versions

This is written for Meego 1.1 SDK. Target Device is the Lenovo Ideapad. Target Platform is the Intel Netbook Release.

Current State

Configuration successful, Build successful. Run successful with flash support in software mode.

Known Issues

Crash on Start

Issues with Mesa Drivers. Starting in EGL accelerated version does not work. Fennec is crashing with:

Mesa 7.9 implementation error: glIndexPointer should be mapped to 336, not 314
Please report at bugzilla.freedesktop.org
Mesa 7.9 implementation error: glUniformMatrix4fv should be mapped to 337, not 485
Please report at bugzilla.freedesktop.org

Solution: Disable hardware acceleration within mobile.js

Multitouch

Multitouch is not working in meego.com release TBI

Flash Renderspeed

For some people the Renderspeed with native is really slow, it seems to get better when using this for starting fennec:

 MOZ_QT_GRAPHICSSYSTEM=meego ./fennec -graphicssystem meego 

Setup your Netbook

I use a Lenovo Ideapad S10-3t supporting multitouch. This is the recommended target device of Intel. Follow Instructions

Presteps, Install the SDK on your System

Add the package respository of the SDK to your system: (see source for more)

On Ubuntu or Debian

  1. Add the following line to /etc/apt/sources.list.d/meego-sdk.list.
    Replace ${distribution}/${version} with one of the following: "debian/5.0", "ubuntu/09.10", "ubuntu/10.04" or "ubuntu/10.10".
    deb http://repo.meego.com/MeeGo/sdk/host/repos/${distribution}/${version}/ / 
  2. Add the repository public key:
    $ gpg --keyserver pgpkeys.mit.edu --recv 0BC7BEC479FC1F8A
    $ gpg --export --armor 0BC7BEC479FC1F8A | sudo apt-key add -
  3. Update the packages database:
    $ sudo apt-get update
  4. To check that the MeeGo repository has been correctly added, run the following command. The details of the MADDE package should be printed.
    $ apt-cache policy madde
  • Install
    $ sudo apt-get install meego-sdk

On openSUSE

  • To add the MeeGo repository, run the following command.
    Replace ${distribution}/${version} with one of the following values: "opensuse/11.2" or "opensuse/11.3".
    $ sudo zypper addrepo -f http://repo.meego.com/MeeGo/sdk/host/repos/${distribution}/${version}/meego-sdk.repo
  • Install
    $ sudo zypper install meego-sdk

Configure SDK

Download the mozilla-meego-assistant script from this website.

  1. untar the tarball
  2. sudo ./meego-assistant install

Steps

  1. sudo ./meego-assistant login
    On first start this actually does the final configuration of the Image. Like downloading basic build dependencies, installing mercurial and autoconf2.13.
  2. Get Mozilla Sources and apply Meego Developer Patches on it
cd /meegoWorkingDirectory 
hg clone http://hg.mozilla.org/mozilla-central cd mozilla-central hg clone http://hg.mozilla.org/mobile-browser mobile cd mobile/.hg hg clone http://hg.mozilla.org/users/romaxa_gmail.com/workbase_prc2 patches cd patches hg update -C mobile-browser cd ../../../.hg/ hg clone http://hg.mozilla.org/users/romaxa_gmail.com/workbase_prc2 patches cd ../ hg qpush --all cd mobile hg qpush --all cd .. wget [THIS MOZCONFIG] make -f client.mk build <span style="font-family: sans-serif;" />

MOZCONFIG, i386 Build

export LDFLAGS="-Wl,--no-keep-memory,-rpath-link,$PWD/dist/bin/:/usr/lib:/lib"
export LD_LIBRARY_PATH="/lib:/usr/lib:/usr/local/lib:/usr/X11R6/lib"

# Options for client.mk.
mk_add_options MOZ_BUILD_PROJECTS="xulrunner mobile"
mk_add_options AUTOCONF=autoconf2.13
mk_add_options MOZ_MAKE_FLAGS=-j9   
 
# XULRunner options
ac_add_app_options xulrunner --enable-application=xulrunner
ac_add_app_options xulrunner --disable-javaxpcom

# Mobile options
ac_add_app_options mobile --enable-application=mobile

#Enable RTTI
ac_cv_visibility_pragma=no

# Global options
ac_add_options --enable-default-toolkit=cairo-qt 
ac_add_options --enable-faststart
ac_add_options --enable-printing
ac_add_options --enable-codesighs
ac_add_options --enable-system-ffi 
ac_add_options --enable-cpp-rtti
ac_add_options -prefix=/usr

ac_add_options --disable-necko-wifi
ac_add_options --disable-wave
ac_add_options --disable-optimize
ac_add_options --disable-installer
ac_add_options --disable-crashreporter
ac_add_options --disable-javaxpcom
ac_add_options --disable-embedding-tests
ac_add_options --disable-elf-dynstr-gc
ac_add_options --disable-updater
ac_add_options --disable-pedantic
ac_add_options --disable-elf-dynstr-gc 
ac_add_options --disable-install-strip 
ac_add_options --disable-jemalloc 
ac_add_options --disable-logging 
ac_add_options --disable-logrefcnt 
ac_add_options --disable-tests --disable-mochitest
ac_add_options --disable-accessibility
ac_add_options --disable-thumb2 # see bug 619481


mk_add_options MOZ_OBJDIR=./obj-qt-buildxulrunner