Mobile/Build/cs2007q3
Setting up scratchbox with the cs2007q3 toolchain
sudo su
echo "deb http://scratchbox.org/debian/ stable main" >> /etc/apt/sources.list
apt-get update
apt-get install scratchbox-toolchain-cs2007q3-glibc2.5-arm6
exit
##############
# do the section below if on ubuntu 8.04, skip for Ubuntu 7.1. Other OS may
# also have this problem. If you see a problem when running nsinstall that
# says something "mmap - permission denied", come back here an try this.
# Ubuntu 8.10 sets vm.mmap_min_addr /etc/sysctl.d/10-process-security.conf
# So it is probably better to set the following variables in
# /etc/sysctl.d/40-scratchbox
# and then run 'sudo invoke-rc.d procps restart'
##############
# add the following to /etc/sysctl.conf
vm.vdso_enabled = 0
vm.mmap_min_addr = 4096
Then run
sudo sysctl -p
##############
# Continue from here for all versions of Ubuntu, including 7.10
##############
wget http://repository.maemo.org/stable/chinook/maemo-scratchbox-install_4.0.1.sh
sudo chmod a+x ./maemo-scratchbox-install_4.0.1.sh
sudo ./maemo-scratchbox-install_4.0.1.sh -s /scratchbox
sudo /scratchbox/sbin/sbox_adduser $USER yes
# you may need to relog into your machine here.
sudo /scratchbox/sbin/sbox_ctl start
wget http://tablets-dev.nokia.com/4.0.1/maemo-sdk-install_4.0.1.sh
chmod +x maemo-sdk-install_4.0.1.sh
bash maemo-sdk-install_4.0.1.sh
/scratchbox/login
sb-conf setup CHINOOK-ARMEL-2007 -c cs2007q3-glibc2.5-arm6 \
-d cputransp:debian-etch:doctools:maemo3-tools:perl \
-t /scratchbox/devkits/cputransp/bin/qemu-arm-cvs-m
sb-conf rootstrap CHINOOK-ARMEL-2007 \
http://repository.maemo.org/stable/4.0.1/armel/maemo-sdk-rootstrap_4.0.1_armel.tgz
sb-conf install CHINOOK-ARMEL-2007 -cedFGS
sb-conf select CHINOOK-ARMEL-2007
wget http://people.mozilla.com/~vladimir/misc/execstack.armel
chmod a+x execstack.armel
fakeroot mv execstack.armel /usr/bin/execstack
execstack -c `find /lib/ -name \*.so.\* -type f`
execstack -c `find /usr/lib/ -name \*.so.\* -type f`
fakeroot echo "deb http://repository.maemo.org/extras-devel chinook free non-free" >> /etc/apt/sources.list
fakeroot echo "deb file:/home/$USER/maemo-sdk-nokia-binaries_4.0.1 chinook explicit" >> /etc/apt/sources.list
yes | fakeroot apt-get update
yes | fakeroot apt-get install \
libgtk2.0-dev libxaw7-dev libfreetype6-dev libxi-dev \
libhildonmime-dev libosso-dev libidl-dev liblocation-dev \
libasound2-dev libhildon1-dev libiw-dev
#these packages are needed as of March 3, 2009 for a plugins fix
yes | fakeroot apt-get install libxdamage-dev libxcomposite-dev
#this package is needed as of May, 2009 for an alerts service feature in toolkit
yes | fakeroot apt-get install libnotify-dev
#this package is needed as of Oct, 2009 for using native hildon file picker in toolkit
yes | fakeroot apt-get install libhildonfm2-dev
#this package is needed as of Nov, 2009 for using conic for auto network connections
yes | fakeroot apt-get install libconic0-dev
#you now need Python 2.4 to build also
yes | fakeroot apt-get install python2.4
exit
Notes on 64 Bit Ubuntu Ibex
Scratchbox contains 32 bit binaries which must be accommodated on a 64 bit system. The easiest way to do this is with a 32 bit chroot. Scratchbox also uses a chroot - so they will be executing 2 deep when the build is done.
Steps 1 through 4 in http://danielkitta.org/howto/maemo-amd64 provide a guide to setting up a 32 bit chroot under ubuntu. Use "hardy" or "intrepid" instead of "dapper" in the instructions in order to have a glibc current enough to run scratchbox.
When that is complete, change to the chroot (linux32 dchroot -c hardy-i386 -d) and you can install scratchbox largely based on the instructions above, with a few modifications:
- change `uname -m` in maemo-scratchbox-install to be `linux32 uname -m`
- in sysctl.conf, instead of vm.vdso_enabled =0 , use abi.vsyscall32 = 0 (do this in the real root, not the chroot), Indeed this is needed for either 32 or 64 bit Ibex.
- make certain binfmt_misc is loaded (modprobe -a binfmt_misc)
- inside chroot make sure /proc is mounted (mount /proc)
Building Fennec and XULRunner
After setting up scratchbox, continue to Mobile/Build/Fennec to check out and build the Fennec source code.