Operating System

Mac OS X Server 10.6 (Snow Leopard).

Users

A Gump user was created with as home /Users/Shared/Gump, and group gump. All users that need access to Gump should be a member of the group gump. The gump user has no shell, so no one can log in as it or su to it. sudo is possible by users who have that power, but be careful with the environment. For what it's worth, mail for the gump user forwards to general@gump.apache.org.

All users on the machine are set up per Infrastructure regulations, with centrally managed ssh keys. The only exception to the infra rules is OPIE, which is not supported by the OS.

Gump Location and Configuration

Gump has been checked out from the Live branch: http://svn.apache.org/repos/asf/gump/live

Gump Location

Gump and its auxiliary directories are located under /Users/Shared/gump, in the subdirectories

  • gump – The software
  • workspace – The run output, source code and artefacts
  • repoproxy – Document root for the local Maven Repository proxy
  • packages – Pre-built packages used by gump, checked out from private svn space.

All these directories have been made 2775 (group-writable with sticky setgid), as have their subdirectories through a find operation. All files have been made g+w. This may need to be repeated if users other than gump itself carry out actions that manipulate file permissions.

A .cvspass file was copied from the old installation on Clarus.

Gump Configuration

Host Configuration

adam:gump sctemme$ cat metadata/adam.xml 
<?xml version="1.0" ?>
<workspace basedir="/Users/Shared/gump/workspace"
	pkgdir="/Users/Shared/gump/packages"
	version="0.4" name="adam-test">
  <property name="build.sysclasspath" value="only"/>
  <sysproperty name="java.awt.headless" value="true"/>
<!--  <profile href="profile/gump.xml"/> -->
  <profile href="testbase/profile.xml"/>
</workspace>

Run Configuration

   
adam:gump sctemme$ cat cron/local-env-adam.sh 
GUMP_WORKSPACE=/Users/Shared/gump/gump/metadata/adam
JAVA_HOME=/Library/Java/Home
MAVEN_HOME=/opt/local/share/java/maven
M2_HOME=/usr/share/maven
M3_HOME=/opt/local/share/java/maven3
MVN_PROXY_HOME=/opt/repoproxy/lib
export GUMP_WORKSPACE JAVA_HOME MAVEN_HOME M2_HOME M3_HOME MVN_PROXY_HOME 

LANG=en_US.utf8
PATH=/usr/local/bin:/opt/local/bin:$PATH
export LANG PATH

Note that cron sets the PATH to /usr/bin:/bin. /opt/local/bin is the location of MacPorts, the contents of which may be overridden by what's in /usr/local/bin.

Crontab

adam:gump sctemme$ sudo crontab -l -u gump
Password:
MAILTO = sctemme@apache.org 
55 * * * * cd /Users/Shared/gump/packages; /usr/bin/svn up 
0,15,30,45 * * * * cd /Users/Shared/gump/gump/cron; /bin/bash gump.sh all

This is a frequent run with a limited workload to iron out the bugs. A full run will likely be started less often.

Maven Repo Proxy

A current build (0.5 at time of writing) of the Maven Repo Proxy is installed at /opt/repoproxy.

Web Server

The Mac OS X Server web server (which happens to be Apache 2.2) has been configured to the effect of

Alias "/gump" "/Users/Shared/gump/workspace/log"

Helper Software

MacPorts

Mac{{`Ports has been installed in /opt/local. A crontab runs at five after midnight each day to run port selfupdate and port upgrade outdated. Put /opt/local/bin on your PATH and run }}port installed active{{ to get a list of what's currently there; }}port list{{ to get a list of what's available and }}sudo port install foo{{ to install the port named foo. Mac}}`Ports does automatic dependency resolution.

MySQL

The MySQL installation supplied with Mac OS X Server hosts the Gump database. It has been configured (through the Server Admin GUI) to not listen on the network. To facilitate installation of the Python module (see below), headers and client-side libraries have been downloaded from http://www.opensource.apple.com/other/MySQL-49.binaries.tar.gz , which has been untarred into / .

Python

Gump runs on /usr/bin/python. A few modules have been installed through easy_install, notably MySQL-python.

I, SanderTemme, don't remember whether or which other modules I had to install to make it work. Update this when you find out.

Other Helpers

GNU libtool 1.5 has been installed in /usr/local since much software (notably, in the test collection, expat) can't deal with libtool 2.x provided by both the OS and Mac{{`Ports. Note that you need to run }}./configure --program-prefix=g{{ since buildconf scripts will look for }}glibtoolize` on the Mac (/usr/bin/libtool is a NeXT holdover and does different things).

A symbolic link to nant has been placed in /usr/local/bin:

adam:gump sctemme$ cd /usr/local/bin
adam:bin sctemme$ ls -l NAnt.exe 
lrwxr-xr-x  1 root  wheel  19 Nov  7 14:04 NAnt.exe -> /opt/local/bin/nant
  • No labels