0

I have a Debian Squeeze server with Apache2 and Subversion on-board. The Subversion version is 1.6.12 (r955767). It is from debian repos. But recently I installed Subversion v1.7.7 from sources into /usr/local/ and now in console I see

root@test:~# svn --version
svn, version 1.7.7 (r1393599)
   compiled Dec  6 2012, 17:28:19

   ...

root@test:~# svnadmin --version
svnadmin, version 1.7.7 (r1393599)
   compiled Dec  6 2012, 17:28:19

   ...

root@test:~# svnserve --version
svnserve, version 1.7.7 (r1393599)
   compiled Dec  6 2012, 17:28:19

   ...

But when I access this server through Apache I'm getting the following server signature

Powered by Subversion version 1.6.12 (r955767).

Apache virtual host config is

<VirtualHost XXX.XXX.XXX.XXX:80>
        ServerAdmin aboritskiy@XXXXXXXXX.XX
        ServerName svn.XXXXXXXXX.XX
        HostnameLookups Off
        UseCanonicalName Off
        ServerSignature On

        <IfModule mod_userdir.c>
                UserDir public_html
                Include /etc/apache2/mod_userdir.conf
        </IfModule>
        <Directory "/var/svn/">
                Options FollowSymLinks
                AllowOverride All
                Order allow,deny
                Allow from all
        </Directory>
        <Location />
                DAV svn
                SVNParentPath /var/svn/repos

                AuthType Basic
                AuthName "Advance Digital Subversion Repository."
                AuthUserFile /etc/apache2/dav_svn.passwd
                Require valid-user
        </Location>
</VirtualHost>

So the question is: How does Apache choose the version of Subversion to work with? How to change this setting?

Anton Boritskiy
  • 115
  • 1
  • 7

2 Answers2

0

You also need to upgrade the Apache webDav / SVN module (libapache2-svn) so you'll either need to grab the Apache source as well and compile an updated version of Apache and the lib, else apt-get yourself the latest Apache, SVN and libapache2-svn packages.

arober11
  • 426
  • 3
  • 7
0

If you look in /etc/apache2/mods-enabled/dav_svn.load, you'll see

LoadModule dav_svn_module /usr/lib/apache2/modules/mod_dav_svn.so
LoadModule authz_svn_module /usr/lib/apache2/modules/mod_authz_svn.so

You can confirm that those point to Debian's Subversion 1.6.12 module:

$ strings /usr/lib/apache2/modules/mod_dav_svn.so | grep 'Powered by'
 <hr noshade><em>Powered by <a href="http://subversion.tigris.org/">Subversion</a> version 1.6.12 (r955767).</em>

You should modify /etc/apache2/mods-available/dav_svn.load to point to your self-built Subversion modules for Apache.

200_success
  • 4,771
  • 1
  • 25
  • 42