AIXSubversionCompilation

Compiling Subversion on AIX

Subversion is one of the most requested software by the users I work with. Most of them are programmers, and they really need their Subversion to be happy.

I almost never found a good explanation on how to compile Subversion on AIX, and I have put this page as a reference. Don't worry about compiling the whole thing: it's not that difficult.

Presentation

The following applies to modern versions of Subversion (1.4 - 1.5) and AIX 5.x (AIX 5.2 and 5.3, to be precise). I suppose the following could be adapted to work on, say, AIX 6.x, but I ma not so sure. If you have more information on this, feel free to drop me a line.

Before you start

Make sure the following software is installed on your AIX machine:

You can download all of these from the Linux toolbox for AIX page. See also the AIXInstallRPM page if you need help installing RPM-packages software on AIX.

If you are in a hurry, the following command should work on all AIX versions:

rpm --install -vv --percent ./file_name.rpm

Replace file_name.rpm by the name of the RPM package you are trying to install, of course...

Compiling OpenSSL and Zlib

Sometimes, downloading the RPM from the IBM site may not work, and you may find yourself having to compile both OpenSSL and Zlib yourself. Again, this is no big deal, just follow the steps below (make sure GNU make is installed, though):

For OpenSSL, the magic "words" are:

./config && /usr/bin/gmake all && /usr/bin/gmake test
/usr/bin/gmake install

And for Zlib, the magic words are:

./configure -s && /usr/bin/gmake
/usr/bin/gmake install

In the above commands, the "/usr/bin/gmake" is, of course, GNU make. You should always check that this is still the case whenever IBM updates the Linux Toolbox. Some versions of GNU make may be installed in other directories, such as: "/usr/local/bin/make".

Compiling Subversion itself

Once the software detailed above has been installed, please make sure you download the two files below from the Subversion site -- both files are needed, unless you want to spend a lot of time configuring your machine...

The files are:

  1. subversion-1.4.6.tar.gz
  2. subversion-deps-1.4.6.tar.gz

Of course, this is for the "1.4.6" version of Subversion. The latest version, as I write this is 1.5.5, and you should modify the version number accordingly in the rest of this page.

Then, unpack the source code archive using the traditional commands:

gzip subversion-1.4.6.tar.gz && tar xvf subversion-1.4.6.tar
gzip subversion-deps-1.4.6.tar.gz && tar xvf subversion-deps-1.4.6.tar

This should create one directory, named "subversion-1.4.6". The rest is just as easy to do:

cd subversion-1.4.6
./configure --with-ssl --with-libs=/usr/local/ssl

If necessary, don't forget to modify the option "--with-libs=/usr/local/ssl" to make it point to where your OpenSSL version is installed.

Finally, just enter the following to compile and install Subversion:

/usr/bin/gmake all
/usr/bin/gmake install

Once again, don't forget to modify these commands to make them point to the correct version of GNU Make.

After a few minutes of work, Subversion should be ready to go, with the most common options compiled in, including access through the "http" and "https" protocols.

For instance:

andre@galactus$ ls /usr/local/bin/sv*
/usr/local/bin/svn            /usr/local/bin/svnserve
/usr/local/bin/svnadmin       /usr/local/bin/svnsync
/usr/local/bin/svndumpfilter  /usr/local/bin/svnversion
/usr/local/bin/svnlook

andre@galactus$ /usr/local/bin/svn --version
svn, version 1.4.4 (r25188)
   compiled Jul 31 2007, 10:59:51

Copyright (C) 2000-2006 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_dav : Module for accessing a repository via WebDAV (DeltaV) protocol.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

andre@galactus$ uname -a
AIX galactus 2 5 000AE52CD600

The above is, of course, a Subversion 1.4.4 compiled -- using the above instructions -- on an AIX 5.2 machine.

Compilation with further options -- such as support for Berkeley DB -- is left as an exercise to the reader...