Mobile/Build/cs2007q3: Difference between revisions

no edit summary
m (fix yes command)
No edit summary
 
(12 intermediate revisions by 8 users not shown)
Line 1: Line 1:
<h1>Setting up scratchbox with the cs2007q3 toolchain</h1>
== Introduction ==
<code><pre>
 
These are instructions for building [[Fennec]] for Nokia Maemo using the Scratchbox cross-compilation environment on Linux.
 
== Maemo 5 (Fremantle) ==
 
We currently use the Maemo 4 SDK for our official Firefox for Maemo 1.x builds, because Maemo 5 is not compatible with the Nokia N800/N810.  If you want to build with the Maemo 5 SDK, see the instructions at [[/Fremantle]].
 
== Maemo 4 (Chinook) ==
 
<pre>
sudo su
sudo su
echo "deb http://scratchbox.org/debian/ stable main" >> /etc/apt/sources.list
echo "deb http://scratchbox.org/debian/ stable main" >> /etc/apt/sources.list
Line 8: Line 17:


##############
##############
# 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.
# 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
# add the following to /etc/sysctl.conf


vm.vdso_enabled = 0
vm.vdso_enabled = 0
Line 40: Line 55:
   -d cputransp:debian-etch:doctools:maemo3-tools:perl \
   -d cputransp:debian-etch:doctools:maemo3-tools:perl \
   -t /scratchbox/devkits/cputransp/bin/qemu-arm-cvs-m
   -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 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 install CHINOOK-ARMEL-2007 -cedFGS
sb-conf select CHINOOK-ARMEL-2007
sb-conf select CHINOOK-ARMEL-2007
Line 52: Line 68:
fakeroot echo "deb file:/home/$USER/maemo-sdk-nokia-binaries_4.0.1 chinook explicit" >> /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 update
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  
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
#these packages are needed as of March 3, 2009 for a plugins fix
fakeroot apt-get install libxdamage-dev libxcomposite-dev
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
#you now need Python 2.4 to build also
fakeroot apt-get install python2.4
yes | fakeroot apt-get install python2.4


exit
exit
</pre>
Now continue to [[Mobile/Build/Fennec]] to check out and build the Fennec source code.


</pre></code>
== Electrolysis ==


= Notes on 64 Bit Ubuntu Ibex =  
To build the [[Electrolysis]] branch, see [[Mobile/e10s]].
 
== Qt ==
 
Future versions of Maemo will be based primarily on Qt instead of GTK.  To build with Qt see [[User:Pjohnsen/MozillaQtBuild]].
 
== 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.
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.
Line 76: Line 114:
* make certain binfmt_misc is loaded (modprobe -a binfmt_misc)
* make certain binfmt_misc is loaded (modprobe -a binfmt_misc)
* inside chroot make sure /proc is mounted (mount /proc)
* inside chroot make sure /proc is mounted (mount /proc)
= Upgrading a centos ref vm with scratchbox installed =
'''These instructions are now moved to [https://wiki.mozilla.org/ReferencePlatforms/Linux-CentOS-5.0#Fixup_Scratchbox_Install].'''
OBSOLETE - DO NOT USE - START.
On Centos5, need to make the following changes to sysctl.conf
<code><pre>
$ su
# vi /etc/sysctl.conf
...and append
vm.vdso_enabled = 0
vm.mmap_min_addr = 4096
#
# /sbin/sysctl -p
...
vm.vdso_enabled = 0
vm.mmap_min_addr = 4096
# exit
su -
cd ~
wget http://scratchbox.org/download/files/sbox-releases/stable/tarball/scratchbox-toolchain-cs2007q3-glibc2.5-arm6-1.0.7-3-i386.tar.gz
wget http://scratchbox.org/download/files/sbox-releases/stable/tarball/scratchbox-devkit-cputransp-1.0.7-i386.tar.gz
cd /
tar zxvf ~/scratchbox-toolchain-cs2007q3-glibc2.5-arm6-1.0.7-3-i386.tar.gz
tar zxvf ~/scratchbox-devkit-cputransp-1.0.7-i386.tar.gz
cd /scratchbox
wget https://bugzilla.mozilla.org/attachment.cgi?id=334232
chmod a+x moz_scratchbox
cd /scratchbox/etc
mv resolv.conf resolv.conf.orig
cp /etc/resolv.conf .
# exit from running as root, now back to cltbld account.
/scratchbox/moz_scratchbox
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
exit
wget http://repository.maemo.org/stable/chinook/maemo-sdk-nokia-binaries_4.0.1.sh
chmod +x maemo-sdk-nokia-binaries_4.0.1.sh
## following line failed out with permission errors
## sh ./maemo-sdk-nokia-binaries_4.0.1.sh
## so did the following instead:
$ su -
# cd /scratchbox
# sh /home/cltbld/maemo-sdk-nokia-binaries_4.0.1.sh
## you'll have to type 'I accept'
## you'll have to space/more to the end of the EULA, and then enter 'I accept'
/scratchbox/login
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
fakeroot apt-get update
fakeroot apt-get install libgtk2.0-dev libxaw7-dev libfreetype6-dev libxi-dev libhildonmime-dev libosso-dev libidl-dev liblocation-dev libasound2-dev
exit
</pre></code>
Also, need to do https://wiki.mozilla.org/ReferencePlatforms/Linux-CentOS-5.0#Move_Scratchbox to avoid filling root partition.
OBSOLETE - DO NOT USE - END.
canmove, Confirmed users
1,584

edits