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