Building From Source

Building the Bruce replication system from the source code is relatively simple. However, there are a few prerequisites you'll need to take care of before you start. In many cases, the versions specified are guidelines. They are what we are using in development, and other versions of a given tool may work just fine.

The core developers for Bruce use Macbook Pros with 2GB RAM and Mac OSX 10.4 for development. Continuous integration builds happen on a Linux box (need hardware and OS info here). Performance testing happens on Fedora Core 7 with both PostgreSQL 8.1 and 8.2 within a single cluster.

Prerequisites

Ant

You'll probably do fine with a 1.6.x version, but we've developed the system using 1.7, so it's up to you. Get it from http://ant.apache.org

Java

We use annotations and other 1.5 features. There's no getting around this one. Download from http://java.sun.com/j2se/1.5.0/. If you use Java 6, please let us know how it goes by sending a message to the dev@bruce.codehaus.org.

Make & GCC

Bruce uses a C-based PostgreSQL extension. You'll need to compile and install this. In our development environments we use GCC version 4.0.1 and GNU Make version 3.8.

Postgres

This one is important. When the unit and acceptance tests run as a part of the build, the bruce extension is compiled and installed. You will need to have read/write access to the PostgreSQL lib directory. We have found that, for development purposes, it's best to have a personal installation of PostgreSQL in your home directory. The postgres.properties file in the root directory of the source tree contains paths and other configurable properties so that you can customize your build to use a custom PostgreSQL install location. Just remember - wherever it's installed, you'll need to have read and write access to the lib directory!

We have developed and tested Bruce on both PostgreSQL 8.1 and 8.2 lines. Other, earlier versions are less likely to succeed, but please report any success or failures you have if you attempt to build and run against a different version.