ReferencePlatforms/Linux-CentOS-5.0: Difference between revisions

From MozillaWiki
Jump to navigation Jump to search
(remove dup md5sum)
No edit summary
Line 1: Line 1:
This procedure will re-create the CentOS 5.0-based reference VM image.
This procedure will re-create the CentOS 5.0-based reference VM image. The current version is '''Version 4'''


== Install CentOS 5.0 from CDs ==
= Things Done For You =
== Version 2 ==
=== Install CentOS 5.0 from CDs ===


  f749d7e17fa01604b9956304efba2333  CentOS-5.0-i386-bin-1of6.iso
  f749d7e17fa01604b9956304efba2333  CentOS-5.0-i386-bin-1of6.iso
Line 10: Line 12:
  9e6f91a5292f46b02777133765fc03fe  CentOS-5.0-i386-bin-6of6.iso
  9e6f91a5292f46b02777133765fc03fe  CentOS-5.0-i386-bin-6of6.iso


 
=== Package Selection ===
= Package Selection =


'''The Easy Way''': the installer kickstart file.
'''The Easy Way''': the installer kickstart file.
Line 37: Line 38:
** Turn ''on'' System Tools
** Turn ''on'' System Tools


== Some Sys-prepping ==
=== Some Sys-prepping ===


On first boot, CentOS will ask some questions:
On first boot, CentOS will ask some questions:
Line 47: Line 48:
# Login; install VMwareTools-3.0.1-32039.rpm
# Login; install VMwareTools-3.0.1-32039.rpm
# vmware-config-tools.pl
# vmware-config-tools.pl
# add clock=pit line to /boot/grub/grub.conf
# add clock=pit and vdso=no lines to /boot/grub/grub.conf
# turn on syncTime in VMware config
# turn on syncTime in VMware config
# for s in auditd avahi-daemon acpid bluetooth cpuspeed hplip hidd mcstrans pcscd ntpd cups cups-config-daemon mdmonitor openibd smartd pcmcia isdn atd gpm anacron autofs apmd kudzu yum-updated; do chkconfig $s off; done
# for s in auditd avahi-daemon acpid bluetooth cpuspeed hplip hidd mcstrans pcscd ntpd cups cups-config-daemon mdmonitor openibd smartd pcmcia isdn atd gpm anacron autofs apmd kudzu yum-updated; do chkconfig $s off; done
Line 61: Line 62:
  export TBOX_CLIENT_CVS_DIR="/builds/tinderbox/mozilla/tools"
  export TBOX_CLIENT_CVS_DIR="/builds/tinderbox/mozilla/tools"


== Install Sun Java JDK ==
=== Install Sun Java JDK ===


Note: we should archive this binary somewhere
Note: we should archive this binary somewhere
Line 79: Line 80:
  ln -s jdk1.5.0_10/ jdk
  ln -s jdk1.5.0_10/ jdk


== Make GCC 4.1 (redhat branch) ==
=== Make GCC 4.1 (redhat branch) ===
  md5sum gcc-4.1.1-30.src.rpm
  md5sum gcc-4.1.1-30.src.rpm
  # 555b8cb95d3d7d851b2ebd5c3cec7837   
  # 555b8cb95d3d7d851b2ebd5c3cec7837   
Line 91: Line 92:
  make install 2>&1 | tee ../gcc-4.1.1-make_install.log
  make install 2>&1 | tee ../gcc-4.1.1-make_install.log


= Build Python 2.5 =
=== Build Python 2.5 ===


  wget http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2
  wget http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2
Line 104: Line 105:
  cd /tools/
  cd /tools/
  ln -s python2.5.0/ python
  ln -s python2.5.0/ python
== Version 3 ==
=== Make directories ===
  mkdir -p /tools/dist/logs
  mkdir -p /builds/logs
=== Initial Setup Steps ===
export PYTHONHOME="/tools/python"
export PATH="/tools/python/bin:$PATH"
=== Installing Zope Interface ===
cd /tools/dist/
wget http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz
tar xfvz zope.interface-3.3.0.tar.gz
cd zope.interface-3.3.0/
python setup.py install --prefix=/tools/zope-interface-3.3.0
cd /tools; ln -s zope-interface-3.3.0/ zope-interface
export PYTHONPATH="/tools/zope-interface/lib/python2.5/site-packages/:$PYTHONPATH"
=== Installing Twisted ===
cd /tools/dist/
wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/TwistedCore-2.4.0.tar.bz2
wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/Twisted-2.4.0.tar.bz2
tar xfvj TwistedCore-2.4.0.tar.bz2
tar xfvj Twisted-2.4.0.tar.bz2
cd TwistedCore-2.4.0
python setup.py install --prefix=/tools/twisted-core-2.4.0
pushd /tools/; ln -s twisted-core-2.4.0/ twisted-core; popd
export PYTHONPATH="/tools/twisted-core/lib/python2.5/site-packages:$PYTHONPATH"
cd /tools/dist/Twisted-2.4.0/
python setup.py install --prefix=/tools/twisted-2.4.0
cd /tools; ln -s twisted-2.4.0 twisted
export PYTHONPATH="/tools/twisted/lib/python2.5/site-packages/:$PYTHONPATH"
== Version 4 ==
=== Installing Mercurial ===
wget http://www.selenic.com/mercurial/release/mercurial-0.9.5.tar.gz
tar -zvxf mercurial-0.9.5.tar.gz
cd mercurial-0.9.5
export PYTHONHOME="/tools/python"
export PATH="/tools/python/bin:$PATH"
python setup.py install
=== Installing Scratchbox ===
As root:<br />
wget http://repository.maemo.org/stable/chinook/maemo-scratchbox-install_4.0.1.sh
chmod a+x ./maemo-scratchbox-install_4.0.sh
./maemo-scratchbox-install_4.0.sh -s /scratchbox
/scratchbox/sbin/sbox_adduser cltbld yes
As cltbld:<br />
Comment out the PYTHONHOME and PATH entries in ~/.bash_profile.
source ~/.bash_profile
wget http://tablets-dev.nokia.com/chinook/maemo-sdk-install_4.0.1.sh
chmod +x maemo-sdk-install_4.0.sh
bash maemo-sdk-install_4.0.sh
/scratchbox/login
wget http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-0.8.9.tar.gz
tar -xzvf libIDL-0.8.9.tar.gz
cd libIDL-0.8.9
./configure --prefix=/usr
make
make install
Remove the comments from the PYTHONHOME and PATH entries in ~/.bash_profile and source it again.
=== Installing Nagios NRPE Daemon ===
wget http://dag.wieers.com/rpm/packages/nagios-plugins/nagios-plugins-1.4.9-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/nagios-nrpe/nagios-nrpe-2.5.2-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/nagios-nrpe/nagios-plugins-nrpe-2.5.2-1.el5.rf.i386.rpm
rpm --nodeps -i *.rpm
chkconfig --level 235 nrpe on
# todo: make sure this is right after configs get checked in
cvs co -d nagios mozilla/tools/nagios
mv nagios/nrpe-linux.cfg /etc/nagios/nrpe.cfg
= Post-Install Setup =
Post-install instructions are written for the latest version (currently, Version 4).<br />
You should have a /builds drive added to the VM before completing this section.
== Move Scratchbox ==
Scratchbox takes up a non-trivial amount of space and should be moved to a different partition.
# Boot into single user mode (append 'init=/bin/sh' to the kernel params from grub).
# mount -o remount,rw /
# mv /scratchbox /builds
# ln -s /builds/scratchbox /scratchbox
# mount -o remount,ro /
# Reboot the VM.
== Installing BuildBot ==
Because our Buildbot code changes fairly regularly we don't keep a copy of it on the VM.
export PATH="/tools/twisted/bin:/tools/twisted-core/bin:$PATH"
cd /tools
cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbot-076 -r BUILDBOT_0_7_6_BRANCH mozilla/tools/buildbot
cd /tools/buildbot-trunk
export PYTHONPATH=.:$PYTHONPATH
python setup.py install --prefix=/tools/buildbot-076
cd /tools/dist
cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d botrunner mozilla/tools/botrunner.py
cp botrunner/botrunner.py /tools/buildbot-trunk/bin/
rm -rf botrunner/
cd /tools; ln -s buildbot-trunk buildbot
== Path Setup ==
Add the appropriate paths to the cltbld user's .bash_profile
export PYTHONPATH="/tools/buildbot/lib/python2.5/site-packages:/tools/twisted/lib/python2.5/site-packages:/tools/twisted-corelib/python2.5/site-packages/:/tools/zope-interface/lib/python2.5/site-packages/"
export PATH="/opt/local/bin:/tools/buildbot/bin:/tools/twisted/bin:/tools/twisted-core/bin:$PYTHONHOME/bin:$PATH"


== To build mozilla ==
== To build mozilla ==

Revision as of 15:59, 3 March 2008

This procedure will re-create the CentOS 5.0-based reference VM image. The current version is Version 4

Things Done For You

Version 2

Install CentOS 5.0 from CDs

f749d7e17fa01604b9956304efba2333  CentOS-5.0-i386-bin-1of6.iso
963258ceafda5c5e6f79be86028b6b3d  CentOS-5.0-i386-bin-2of6.iso
a08ec9ccfdc89c24f3d6567219f90c42  CentOS-5.0-i386-bin-3of6.iso
b31c239009b780d1c89c311c192e43be  CentOS-5.0-i386-bin-4of6.iso
0c3990be2271bf44c1495aa0003b5552  CentOS-5.0-i386-bin-5of6.iso
9e6f91a5292f46b02777133765fc03fe  CentOS-5.0-i386-bin-6of6.iso

Package Selection

The Easy Way: the installer kickstart file.

The Hard Way:

While installing, select a the GNOME Desktop and then select Custom package development; the following categories were selected:

  • Desktop Environments
    • Gnome Desktop Environment
  • Applications
    • Editors
    • Test-based internet
      • Add lynx
  • Development
    • Development Tools
    • Development Libraries
    • X Software Development
    • GNOME Software Development
    • Legacy Software Development
  • Servers
    • Turn all off, except for "Printing Support
  • Base System
    • Turn off Dialup Networking
    • Turn on System Tools

Some Sys-prepping

On first boot, CentOS will ask some questions:

  • Turn the firewall off (we run our build machines on their own network, behind a firewall)
  • Disable SELinux
  • Enable NTP
  1. Login; install VMwareTools-3.0.1-32039.rpm
  2. vmware-config-tools.pl
  3. add clock=pit and vdso=no lines to /boot/grub/grub.conf
  4. turn on syncTime in VMware config
  5. for s in auditd avahi-daemon acpid bluetooth cpuspeed hplip hidd mcstrans pcscd ntpd cups cups-config-daemon mdmonitor openibd smartd pcmcia isdn atd gpm anacron autofs apmd kudzu yum-updated; do chkconfig $s off; done
  6. chkconfig vncserver on
  7. Copy over cltbld's ssh keys from another tinderbox
  8. Edit /etc/mail/sendmail.cf and add mail.build.mozilla.org as the "Smart Relay"
  9. rm /etc/sshd/ssh_host_*

Add the following lines to ~/.bash_profile

export CVS_RSH=ssh
export JAVA_HOME=/builds/jdk
export TBOX_CLIENT_CVS_DIR="/builds/tinderbox/mozilla/tools"

Install Sun Java JDK

Note: we should archive this binary somewhere

d916c24bed9eef7aebc2626115e14a11  jdk-1_5_0_10-linux-i586.bin
  • Save to /tools
cd /tools
chmod 0755 ./dist/jdk-1_5_0_10-linux-i586.bin 
./dist/jdk-1_5_0_10-linux-i586.bin 
# type 'yes' to accept the license
ln -s jdk1.5.0_10/ jdk

Make GCC 4.1 (redhat branch)

md5sum gcc-4.1.1-30.src.rpm
# 555b8cb95d3d7d851b2ebd5c3cec7837  
rpm2cpio gcc-4.1.1-30.src.rpm | cpio -i gcc-4.1.1-20061011.tar.bz2
tar xfvj gcc-4.1.1-20061011.tar.bz2 
mkdir gcc-obj-release
cd gcc-obj-release/

../gcc-4.1.1-20061011/configure --enable-long-long --enable-threads=posix --enable-__cxa_atexit --enable-languages=c,c++ --with-system-zlib --prefix=/tools/gcc-4.1.1 2>&1 | tee ../gcc-4.1.1-configure.log
make 2>&1 | tee ../gcc-4.1.1-make.log
make install 2>&1 | tee ../gcc-4.1.1-make_install.log

Build Python 2.5

wget http://www.python.org/ftp/python/2.5/Python-2.5.tar.bz2

# ddb7401e711354ca83b7842b733825a3  Python-2.5.tar.bz2

tar xfvj dist/Python-2.5.tar.bz2 
cd Python-2.5/
./configure --prefix=/tools/python-2.5.0 2>&1 | tee /tools/dist/logs/python2.5.0-configure.log 
make 2>&1 | tee /tools/dist/logs/python2.5.0-make.log 
make install 2>&1 | tee /tools/dist/logs/python2.5.0-make_install.log
cd /tools/
ln -s python2.5.0/ python

Version 3

Make directories

 mkdir -p /tools/dist/logs
 mkdir -p /builds/logs

Initial Setup Steps

export PYTHONHOME="/tools/python"
export PATH="/tools/python/bin:$PATH"

Installing Zope Interface

cd /tools/dist/
wget http://www.zope.org/Products/ZopeInterface/3.3.0/zope.interface-3.3.0.tar.gz
tar xfvz zope.interface-3.3.0.tar.gz 
cd zope.interface-3.3.0/
python setup.py install --prefix=/tools/zope-interface-3.3.0
cd /tools; ln -s zope-interface-3.3.0/ zope-interface
export PYTHONPATH="/tools/zope-interface/lib/python2.5/site-packages/:$PYTHONPATH"

Installing Twisted

cd /tools/dist/
wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/TwistedCore-2.4.0.tar.bz2
wget http://tmrc.mit.edu/mirror/twisted/Twisted/2.4/Twisted-2.4.0.tar.bz2
tar xfvj TwistedCore-2.4.0.tar.bz2 
tar xfvj Twisted-2.4.0.tar.bz2 
cd TwistedCore-2.4.0
python setup.py install --prefix=/tools/twisted-core-2.4.0
pushd /tools/; ln -s twisted-core-2.4.0/ twisted-core; popd
export PYTHONPATH="/tools/twisted-core/lib/python2.5/site-packages:$PYTHONPATH"
cd /tools/dist/Twisted-2.4.0/
python setup.py install --prefix=/tools/twisted-2.4.0
cd /tools; ln -s twisted-2.4.0 twisted
export PYTHONPATH="/tools/twisted/lib/python2.5/site-packages/:$PYTHONPATH"

Version 4

Installing Mercurial

wget http://www.selenic.com/mercurial/release/mercurial-0.9.5.tar.gz
tar -zvxf mercurial-0.9.5.tar.gz
cd mercurial-0.9.5
export PYTHONHOME="/tools/python"
export PATH="/tools/python/bin:$PATH"
python setup.py install

Installing Scratchbox

As root:

wget http://repository.maemo.org/stable/chinook/maemo-scratchbox-install_4.0.1.sh
chmod a+x ./maemo-scratchbox-install_4.0.sh
./maemo-scratchbox-install_4.0.sh -s /scratchbox
/scratchbox/sbin/sbox_adduser cltbld yes

As cltbld:
Comment out the PYTHONHOME and PATH entries in ~/.bash_profile.

source ~/.bash_profile
wget http://tablets-dev.nokia.com/chinook/maemo-sdk-install_4.0.1.sh
chmod +x maemo-sdk-install_4.0.sh
bash maemo-sdk-install_4.0.sh
/scratchbox/login
wget http://ftp.gnome.org/pub/gnome/sources/libIDL/0.8/libIDL-0.8.9.tar.gz
tar -xzvf libIDL-0.8.9.tar.gz
cd libIDL-0.8.9
./configure --prefix=/usr
make
make install

Remove the comments from the PYTHONHOME and PATH entries in ~/.bash_profile and source it again.

Installing Nagios NRPE Daemon

wget http://dag.wieers.com/rpm/packages/nagios-plugins/nagios-plugins-1.4.9-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/nagios-nrpe/nagios-nrpe-2.5.2-1.el5.rf.i386.rpm
wget http://dag.wieers.com/rpm/packages/nagios-nrpe/nagios-plugins-nrpe-2.5.2-1.el5.rf.i386.rpm
rpm --nodeps -i *.rpm
chkconfig --level 235 nrpe on
# todo: make sure this is right after configs get checked in
cvs co -d nagios mozilla/tools/nagios
mv nagios/nrpe-linux.cfg /etc/nagios/nrpe.cfg

Post-Install Setup

Post-install instructions are written for the latest version (currently, Version 4).
You should have a /builds drive added to the VM before completing this section.

Move Scratchbox

Scratchbox takes up a non-trivial amount of space and should be moved to a different partition.

  1. Boot into single user mode (append 'init=/bin/sh' to the kernel params from grub).
  2. mount -o remount,rw /
  3. mv /scratchbox /builds
  4. ln -s /builds/scratchbox /scratchbox
  5. mount -o remount,ro /
  6. Reboot the VM.

Installing BuildBot

Because our Buildbot code changes fairly regularly we don't keep a copy of it on the VM.

export PATH="/tools/twisted/bin:/tools/twisted-core/bin:$PATH"
cd /tools
cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d buildbot-076 -r BUILDBOT_0_7_6_BRANCH mozilla/tools/buildbot
cd /tools/buildbot-trunk
export PYTHONPATH=.:$PYTHONPATH
python setup.py install --prefix=/tools/buildbot-076
cd /tools/dist
cvs -d:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot co -d botrunner mozilla/tools/botrunner.py
cp botrunner/botrunner.py /tools/buildbot-trunk/bin/
rm -rf botrunner/
cd /tools; ln -s buildbot-trunk buildbot

Path Setup

Add the appropriate paths to the cltbld user's .bash_profile

export PYTHONPATH="/tools/buildbot/lib/python2.5/site-packages:/tools/twisted/lib/python2.5/site-packages:/tools/twisted-corelib/python2.5/site-packages/:/tools/zope-interface/lib/python2.5/site-packages/"
export PATH="/opt/local/bin:/tools/buildbot/bin:/tools/twisted/bin:/tools/twisted-core/bin:$PYTHONHOME/bin:$PATH"

To build mozilla

The mozconfig for building mozilla should contain the following settings:

CC=/tools/gcc/bin/gcc
CXX=/tools/gcc/bin/g++