As of Ubuntu 14.10, the default subversion package from the repos is version 1.8. I will underline the steps required to install Subversion 1.7.x for Ubuntu based systems here. I needed 1.7.x for compatibility reasons.
To begin with, I could not find any ppa that had subversion Ubuntu package for version 1.7. Hence I had to follow the traditional approach of downloading the source and compiling the same.
We will be using the source of SVN version 1.7.9 for this installation purpose.
As of standard installation of Ubuntu 14.10, I found the following two dependencies missing
1. Apr Utils
2. libneon (For http/https support of svn url scheme). Without this we would get the error: svn: Unrecognized URL scheme for ‘https..
The Apr Utils development libraries can be installed using the package as shown below.
Installing neon libraries
The neon libraries can become tricky to install depending on the version of Ubuntu you are running.
Execute this command to check the neon version provided by the libneon27-dev
If it showed : Version: 0.29.6-1 # (Usually in Ubuntu Precise 12.04 based variants)
then run the below command as you have the correct library version required for subversion to have http/https support. You can skip to installing subversion after the below command is successful.
Else if it showed any other version like 0.30.0-4 (For Ubuntu 14.10), then follow the below instructions to get the correct version of neon library.
Download the correct version from here: Neon-0.29.6 to compile and install the same before compiling Subversion source.
Proceed to the folder where you have downloaded the file ‘neon-0.29.6.tar.gz’
Now untar the file by executing the below command
Now this version of neon has a bug. (I told you neon dependency is a tricky one 🙂
If you compile neon and when you try to use this library while compiling subversion, you will typically find the error as shown below:
ne_openssl.c:572: undefined reference to `SSLv2_server_method’
To fix the above error proceed to the file ne_openssl.c located under $neon-0.29.6/src
proceed to line 572
You will see the lines of code as shown below:
568 } else if (mode == NE_SSL_CTX_SERVER) { 569 ctx->ctx = SSL_CTX_new(SSLv23_server_method()); 570 SSL_CTX_set_session_cache_mode(ctx->ctx, SSL_SESS_CACHE_CLIENT); 571 } else { 572 ctx->ctx = SSL_CTX_new(SSLv2_server_method()); 573 SSL_CTX_set_session_cache_mode(ctx->ctx, SSL_SESS_CACHE_CLIENT); 574 } 575 return ctx; 576 }
The fix is to remove the else block starting from line 571 to 574, hence the effective code will be as shown below
568 } else if (mode == NE_SSL_CTX_SERVER) { 569 ctx->ctx = SSL_CTX_new(SSLv23_server_method()); 570 SSL_CTX_set_session_cache_mode(ctx->ctx,SSL_SESS_CACHE_CLIENT); 571 } 572 return ctx; 573 }
You can find further details about the bug here: https://www.mail-archive.com/ubuntu-bugs@lists.ubuntu.com/msg4077331.html
Now save the file and exit and go to the parent directory neon-0.29.6 to start to compile neon
By default the neon libraries will be installed at /usr/local .
Installing Subversion 1.7
Download the Subversion 1.7.9 from here
Untar the file subversion-1.7.9.tar.gz and proceed to the file directory subversion-1.7.9
Run
Among the messages you should also see this one below:
configure: checking neon library
checking for neon-config… /usr/local/bin/neon-config
checking neon library version… 0.29.6
if you don’t, then attempt again with below option in case you had to install neon manually
Now proceed to
If all goes well you should be able to see the installed svn version as shown below:
svn, version 1.7.9 (r1462340)
compiled Mar 13 2015, 22:24:18
Copyright (C) 2013 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_neon : Module for accessing a repository via WebDAV protocol using Neon.
– 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
Please do let me know if you have any alternate or easier method to install subversion 1.7.x in Ubuntu based systems, I will be glad to update the same here.