Confirmed users
3,104
edits
(34 intermediate revisions by 8 users not shown) | |||
Line 11: | Line 11: | ||
0c3990be2271bf44c1495aa0003b5552 CentOS-5.0-i386-bin-5of6.iso | 0c3990be2271bf44c1495aa0003b5552 CentOS-5.0-i386-bin-5of6.iso | ||
9e6f91a5292f46b02777133765fc03fe CentOS-5.0-i386-bin-6of6.iso | 9e6f91a5292f46b02777133765fc03fe CentOS-5.0-i386-bin-6of6.iso | ||
TB: Thunderbird build clients use a separate /buildbot partition of 80GB. Now that we reboot after each build, be sure to "tune2fs -c 0" the buildbot partition to avoid an fsck of it every 20 reboots. | |||
=== Package Selection === | === Package Selection === | ||
Line 24: | Line 26: | ||
* '''Applications''' | * '''Applications''' | ||
** Editors | ** Editors | ||
** | ** Text-based internet | ||
*** Add lynx | *** Add lynx | ||
* '''Development''' | * '''Development''' | ||
Line 104: | Line 106: | ||
make install 2>&1 | tee /tools/dist/logs/python2.5.1-make_install.log | make install 2>&1 | tee /tools/dist/logs/python2.5.1-make_install.log | ||
cd /tools/ | cd /tools/ | ||
ln -s | ln -s python-2.5.1 python | ||
== Version 3 == | == Version 3 == | ||
Line 527: | Line 529: | ||
==== Install EPEL ==== | ==== Install EPEL ==== | ||
As root, | As root, | ||
rpm -Uvh http:// | rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm | ||
==== Move the JDK ==== | ==== Move the JDK ==== | ||
Line 560: | Line 562: | ||
* Open /etc/sysconfig/puppet in an editor | * Open /etc/sysconfig/puppet in an editor | ||
* replace 'puppet' with production-puppet.build.mozilla.org | * replace 'puppet' with production-puppet.build.mozilla.org | ||
== Post-puppet packages == | |||
Since the deployment of Puppet, future changes to the ref platform are management by it. Because of this, providing _exact_ installation instructions can be tricky. All of the packages listed below are installed on the ref platform and some installation guidelines are provided. Looking at [http://hg.mozilla.org/build/puppet-manifests the puppet-manifests repository] may help if you are having trouble. | |||
=== jscoverage === | |||
* Build from revision 453 of [http://svn.siliconforks.com/jscoverage/trunk/ the jscoverage SVN repository] | |||
* 'jscoverage' and 'jscoverage-server' binaries installed to /usr/local/bin | |||
=== GCC 4.3.3 === | |||
GCC 4.3.3 was installed alongside the other GCC for use on newer branches: | |||
* Get http://ftp.gnu.org/gnu/gcc/gcc-4.3.3/gcc-4.3.3.tar.bz2 and unpack it to /tools/gcc-4.3.3/source | |||
* Pull the patch series from http://hg.mozilla.org/users/tglek_mozilla.com/gcc-moz-plugin-mq/ | |||
* Apply the following patches to the GCC sources using git-apply (patch -p1 will probably work as well): | |||
** gty.diff | |||
** plugin.diff | |||
** parm_attrs.diff | |||
** c_process_decl.diff | |||
* mkdir /tools/gcc-4.3.3/build | |||
* cd /tools/gcc-4.3.3/build | |||
* /tools/gcc-4.3.3/source/configure --prefix=/tools/gcc-4.3.3/installed --enable-__cxa_atexit --enable-languages=c,c++ | |||
* make install | |||
* The static analysis will require all of /tools/gcc-4.3.3 including the source/build/installed subdirectories | |||
=== libhildonfm2-dev === | |||
Installed inside of scratchbox with the following command: | |||
su - cltbld -c '/scratchbox/moz_scratchbox -p apt-get --yes --force-yes install libhildonfm2-dev | |||
=== libconic0-dev === | |||
Installed inside of scratchbox with the following command: | |||
su - cltbld -c '/scratchbox/moz_scratchbox -p apt-get --yes --force-yes install libconic0-dev' | |||
=== access keys from within scratchbox === | |||
/bin/mount --bind /scratchbox/users/cltbld/home/cltbld/.ssh /home/cltbld/.ssh/ | |||
=== Upgrade Scratchbox === | |||
Roughly, the Scratchbox upgrade was done with the following set of commands: | |||
su - | |||
unset PYTHONHOME | |||
unset PYTHONPATH | |||
export PATH=/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/cltbld/bin | |||
umount /home/cltbld/.ssh #until no longer mounted | |||
umount /builds/slave #might not be mounted | |||
/scratchbox/sbin/sbox stop | |||
/scratchbox/sbin/sbox_umount_all | |||
sh maemo-scratchbox-install_5.0.sh -U -s /scratchbox | |||
/etc/init.d/sbox start | |||
exit | |||
sh maemo-sdk-install_5.0.sh -y -d -s /scratchbox | |||
/scratchbox/login | |||
echo deb http://repository.maemo.org/fremantle/<token> nokia-binaries >> /etc/apt/sources.list | |||
fakeroot apt-get install autoconf2.13 libnotify-dev libIDL-dev libqt4-dev | |||
exit | |||
/scratchbox/moz_scratchbox | |||
sb-conf select FREMANTLE_ARMEL | |||
wget http://www.python.org/ftp/python/2.5.5/Python-2.5.5.tar.bz2 | |||
tar jxf Python-2.5.5.tar.bz2 | |||
cd Python-2.5.5 | |||
CC='host-gcc' --prefix=/usr/local | |||
make -j4 | |||
/scratchbox/moz_scratchbox | |||
openssl md5 openssl-0.9.8m.tar.gz Python-2.5.5.tar.bz2 | |||
#MD5(openssl-0.9.8m.tar.gz)= 898bf125370926d5f692a2201124f8ec | |||
#MD5(Python-2.5.5.tar.bz2)= 1d00e2fb19418e486c30b850df625aa3 | |||
tar jxf Python-2.5.5.tar.bz2 | |||
tar zxf openssl-0.9.8m.tar.gz | |||
cd openssl-0.9.8m | |||
CC=host-gcc CXX=host-g++ ./config shared --prefix=/usr/local | |||
make -j4 | |||
make install | |||
cd Python-2.5.5 | |||
CC=host-gcc CXX=host-g++ ./configure --prefix=/host_usr | |||
make -j4 | |||
make altinstall | |||
find /usr/local -name "*.so*" -exec ldd {} \; | grep "not found" # should have no output | |||
= Post-Install Setup = | = Post-Install Setup = | ||
Post-install instructions are written for the latest version.<br /> | Post-install instructions are written for the latest version.<br /> | ||
== Add slave(s) to configuration files == | |||
The following files need to be updated with new slaves (note that the production Buildbot config is explicitly not updated here, it will be done later): | |||
* [http://hg.mozilla.org/build/buildbot-configs/file/tip/mozilla2-staging/config.py buildbot-configs/mozilla2-staging/config.py] | |||
* [http://hg.mozilla.org/build/puppet-manifests/file/tip/site-production.pp puppet-manifests/site-production.pp] (or site-staging.pp for slaves that will be in staging permanently). | |||
Once | * For a permanent staging slave - edit /etc/sysconfig/puppet to staging-puppet | ||
Once your patches have landed, you need to update the following checkouts: | |||
* On staging-master: | |||
# as cltbld | |||
cd /builds/buildbot/user-configs/clean-configs | |||
hg pull && hg up | |||
cd ../../user-configs2/clean-configs | |||
hg pull && hg up | |||
* On production-puppet (or staging-puppet if you updated site-staging.pp): | |||
# as root | # as root | ||
cd /etc/puppet/manifests | cd /etc/puppet/manifests | ||
hg pull && hg up | hg pull && hg up | ||
* If a machine has been recloned/replaced then you also do this as root@production-puppet | |||
puppetca --clean moz2-linux-slaveNN.build.mozilla.org | |||
== Buildbot Setup == | |||
The buildbot.tac file will automatically be generated to send the slave to the correct staging master (staging-master or sm-staging-try-master). | |||
== | ===Run the slave through staging=== | ||
see [[ReleaseEngineering:BuildSlaveSetup]] | |||