On all platforms, a 1.5+ JRE is required to run Hudson. This is a challenge on FreeBSD 4.9, since the FreeBSD organization no longer supports this major version, and no 1.5+ JRE was ever licensed for distribution on the FreeBSD 4 platform. The FreeBSD Foundation did later license the Java JDK and JRE from Sun, but it is only available for FreeBSD 5 and later. If you are on FreeBSD 5 or later, just get your Java tools from the FreeBSD Foundation.
Failed Quick Solutions
- Get a pre-built JRE or JDK for FreeBSD 4. To the best of my knowledge, they don't exist, due to licensing problems when FreeBSD 4 was current.
- Get a Linux 1.5+ JRE to run on FreeBSD 4. Linux compatibility under FreeBSD 4 is not sufficient for the 1.5 and later JREs to run.
- Use the OpenJDK or IcedTea. I haven't tried this, but I suspect it won't build on FreeBSD 4, as few people are using FreeBSD 4
A working solution: build an older version of the 1.5 JDK
Steps to build your own 1.5 JRE:
- Get a 1.4 JDK installed and running, which is required as part of the 1.5 bootstrap build process
- Enable Linux compatibility in the FreeBSD kernel. Run "kldload linux" with root permissions.
- Enable Linux procfs compatibility.
- Add "linproc /compat/linux/proc linprocfs rw 0 0" to your /etc/fstab
- Load the procfs kernel module "kldload linprocfs"
- Mount the filesystem "mount /compat/linux/proc"
- Install Linux libraries. The machine I am using already had these installed - check /compat/linux/lib for a bunch of .so files. If there aren't any, install one of the linux emulation ports under /usr/ports/emulators
- Install the Linux 1.4.2.11 JDK. Later releases of the 1.4.2 JDK use Linux functionality that FreeBSD 4.x is not able to satisfy, and none of the tools will run.
- Run javac from the 1.4.2.11. If you get the usage screen, you are done with installing a bootstrap JDK.
- Get the JRL/JIUL source distribution and installation binaries from Sun
- Get the BSD patches from eyesbeyond.com
- Apply patch and build
- Follow the instructions in the file BUILD, inside the eyesbeyond tarball.
- Use the newly built JRE to start Hudson as a master, or more likely, as a slave