HowToMeegoFennecDraft

From MozillaWiki
Revision as of 09:56, 13 January 2011 by Jeremias.bosch (talk | contribs)
Jump to navigation Jump to search

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.

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. Download File:Mozilla-meego-sdk-helper.tar.gz
  2. untar the tarbal

    (the meego-assistant script, will create a mount point and a working directory in the local directory!) you can edit the place by changing the variables in the script.)
  3. 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 https://wiki.mozilla.org/images/7/7c/Mozconfig.tar.gz
tar -xzf Mozconfig.tar.gz
make -f client.mk build 

MOZCONFIG, i386 Build File:Mozconfig.tar.gz

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


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