This page contains notes taken while installing a new FreeBSD jail in August 2010 - the new machine was named gump2 and later renamed to gump (which was the name of the old machine as well). It has been amended after the OS has been upgraded in March 2012
gump runs in a FreeBSD 9.0 jail on sigyn.
The installation procedure is pretty similar to that of VmgumpConfig so only the differences are note here.
OS level software installed via ports
This has been installed by the infrastructure team.
$ java -version openjdk version "1.6.0_30" OpenJDK Runtime Environment (build 1.6.0_30-b24) OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)
Other Dependencies
no differences to VmgumpConfig
Create the gump user
used adduser
interactively to create a user gump in group gump.
create the Gump directory structure
similar to VmgumpConfig but had to explicitly disable storing of svn password for root in /root/.subversion/config
- and checked out Gump's trunk instead of the live branch, i.e.
~$ cd /srv/gump/public /srv/gump/public$ sudo -u gump svn co https://svn.apache.org/repos/asf/gump/trunk/ gump
create a testbed workspace
similar to VmgumpConfig but the file names are /srv/gump/public/gump/metadata/gump.xml
and /srv/gump/public/gump/cron/local-env-gump2.sh
the later contains:
export GUMP_WORKSPACE=/srv/gump/public/gump/metadata/gump export JAVA_HOME=/usr/local/openjdk6 export MAVEN_HOME=/opt/maven export M2_HOME=/opt/maven2 export M3_HOME=/opt/maven3 export MVN_PROXY_HOME=/opt/repoproxy export LANG=en_US.UTF-8 export PATH=$PATH:$MAVEN_HOME/bin:$M2_HOME/bin
Some of the builds really only work with GNU make, so the workspace needs an attribute makeCommand="gmake"
.
make the results world-visible
configure /usr/local/etc/apache22/Includes/gump.zones.apache.org.conf
NameVirtualHost * <VirtualHost *> ServerAdmin private@gump.apache.org ServerName gump2.zones.apache.org DocumentRoot /usr/local/www/apache22/gump <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /usr/local/www/apache22/gump> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog /var/log/gump2.zones.apache.org.error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog /var/log/gump2.zones.apache.org.access.log combined ServerSignature On Alias /gump/public/ /srv/gump/public/workspace/log/ <Directory /srv/gump/> HeaderName /disclaimer.html Options Indexes MultiViews FollowSymLinks AllowOverride None Order allow,deny Allow from all </Directory> <Location /gump/public/workspace_defn.html> Order deny,allow Deny from all </Location> </VirtualHost>
~$ sudo mkdir /usr/local/www/apache22/gump ~$ sudo chown gump:gump /usr/local/www/apache22/gump ~$ sudo apachectl graceful
make it a real Gump instance
switch to the gump profile and set up crontab for Gump like described in VmgumpConfig
crontab needs an extra line
PATH=/usr/bin:/bin:/usr/local/bin
because python (and most anything else) is in /usr/local
help CVS
can be done before starting the Gump run, see VmgumpConfig
help svn
Unlike the svn client on Ubuntu systems the one found on FreeBSD doesn't accept server certificates automatically. I'm sure there is a setting somewhere that can (and should) be tweaked, for now I've accepted all cetificates manually so the updates will work on subsequent Gump runs.
help Maven 1.x
see VmgumpConfig
git
see VmgumpConfig
database
Applied recommendations from http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html
Created the gump_public database and the gump user as in VmgumpConfig.
Used the "create database from scratch" approach.
Added a database element to the profile.
Note this is obviously not enough to make Gump use the database, this topic is under investigation 8-)
Rename gump2 -> gump
Hostname has to be changed from outside the jail.
# mv /srv/gump/public/gump/cron/local-env-gump2.sh /srv/gump/public/gump/cron/local-env-gump.sh
edit /usr/local/etc/apache22/Includes/gump.zones.apache.org.conf and change ServerName to gump.zones.apache.org
$ sudo apachectl graceful