How to build Subversion on Debian GNU/Linux

Looks like a trivial question? Unfortunately, because of this bug standard “configure + make + sudo make install” approach doesn’t work.

The problem occurs because Subversion sources contain libsvn_XXX libraries in it. But if libsvn1 package is installed, it contains these libraries too, and they are confused. If libsvn1 package is not installed, compilation succeeds, but anyway the number of features supported depends on the currently installed libraries.

Fortunately, Subversion sources contain a script that downloads all necessary dependencies in Maven-like fashion and doesn’t touch local libraries (except openssl). The algorithm is:

1. Install packages necessary to run the script.

$ sudo aptitude install subversion gperf autoconf libssl-dev make gcc binutils libtool libxml2-dev

2. Download and run the script.

$ mkdir build
$ cd build
$ svn co https://svn.apache.org/repos/asf/subversion/trunk/tools/dev/unix-build
$ ln -s unix-build/Makefile.svn Makefile
$ make

If the script fails (e.g. because of absence of some utility or library) one can solve the problem and continue with just

$ make

The build result will be put to svn-trunk directory.

$ svn-trunk/subversion/svn/svn --version
svn, version 1.8.0-dev (under development)
   compiled Jun 16 2012, 21:01:03

Copyright (C) 2012 The Apache Software Foundation.
This software consists of contributions made by many people; see the NOTICE
file for more information.
Subversion is open source software, see http://subversion.apache.org/

The following repository access (RA) modules are available:

* ra_svn : Module for accessing a repository using the svn network protocol.
  - with Cyrus SASL authentication
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme
* ra_serf : Module for accessing a repository via WebDAV protocol using serf.
  - handles 'http' scheme
  - handles 'https' scheme

Comments are closed.