setting up SubVersion repositories

I was stumped when I wanted to set up SubVersion repositories, but figured it out, so here are my notes (for myself when I forget again, or anyone else who finds it helpful).

If SubVersion is not enabled, you’ll find that clicking on “SubVersion repositories” under Webmin/Servers shows the message “You do not have access to any Virtualmin servers”.

Here’s how to set up SubVersion repositories:

  1. Enable SubVersion repositories under Virtualmin "Plugin Modules" (afterward SubVersion repositories will appear under "Available Features").

  2. Click on a domain under Virtualmin Virtual Servers and tick “Allow SubVersion repositories?”. You’ll see the message “Adding SubVersion directives to website configuration”.

Now go back to “SubVersion repositories” under Webmin/Servers and you will see “No SubVersion repositories have been defined in any of your servers yet.” You’ll see a form to “Create SubVersion Repository”.

Not all so simple, apparently.

When I attempted to restart Apache after the above steps, Apache failed to start, with the error:

Failed to start service :
Starting httpd: Syntax error on line 1124 of /etc/httpd/conf/httpd.conf:
Unknown DAV provider: svn
[[FAILED]]

The httpd.conf file looks like this (chevrons removed):

Location /svn
DAV svn
SVNParentPath /home/myuser/svn
AuthType Basic
AuthName mydomain.com
AuthUserFile /home/myuser/etc/svn.basic.passwd
Require valid-user
AuthzSVNAccessFile /home/myuser/etc/svn-access.conf
Satisfy Any
/Location

I had the exact same issue, and have disabled subversion until i have time to investigate.

Hey guys,

I’m looking into it. It sounds like the SVN DAV module package didn’t get installed. I may have simply left it out of the installer dependencies…Yep, that’s it.

Run this:

yum install mod_dav_svn

And try again.

Thanks for the heads up! This will be fixed in the next virtualmin-base package.

Oh, yeah, note that on RHEL 4 and SUSE, the install command would be different:

up2date -i mod_dav_svn

Or:

yast -i mod_dav_svn

RHEL3/CentOS3, on the other hand, would also use yum (since we provide the Subversion packages). CentOS4 can use either yum or up2date. Confused yet? :wink:

Joe,

SuSE 10.0
The yast -i mod_dav_svn returns a package not found error. I did some checking and found that the mod_dav_svn.so is bundled into the subversion-server package.

I installed this package and checked the /usr/lib/apache2/ directory and the mod_dav.svn.so file was present.

Set up a respository for a vertial server and got the following error when restarting apache server:

Failed to start service :

Starting httpd2 (prefork) Syntax error on line 16 of /etc/apache2/vhosts.d/xxxx.xxx.conf:
Unknown DAV provider: svn

The command line was:
/usr/sbin/httpd2-prefork -f /etc/apache2/httpd.conf -DSSL

[[1A…failed

Hey Kevin,

You’re absolutely right. SUSE confuses me a bit sometimes. :wink:

I suspect you need to modify /etc/sysconfig/apache2 to add the DAV module. The SUSE Apache package gave me fits, as it isn’t quite as automagic as the Red Hat based packages, but once I realized that everything was happening in the /etc/sysconfig/apache2 file, it all started looking more sensible.

I believe you’ll have to edit at least APACHE_MODULES and probably also APACHE_SERVER_FLAGS. I’ll add this to the installer in the next release of virtualmin-base.

I did "yum install mod_dav_svn" and Apache starts without an error. Initially I got an error
"Failed to start service: Starting httpd: Syntax error on line 1124 of /etc/httpd/conf/httpd.conf: Expected but saw"
but I believe this was an artifact of copying and pasting from another file. Should have used emacs :slight_smile:

Haven’t tried SubVersion itself after this set-up but will soon.

Ubuntu fix:
sudo apt-get install libapache2-svn

Got far enough to attempt to access the SubVersion repository using a remote client. Tried:

%svn co --username admin http://www.myserver.com/svn/repository somedir

and found "authorization failed" for user "admin".

The missing step is to enable a SubVersion login for a user. From the page "Virtualmin Virtual Servers" click the name of a virtual server that has SubVersion enabled and then "Edit Mail and FTP Users" and then click a user and say yes to "SubVersion login enabled?" specifying a repository.

After enabling SubVersion login for a user, I was able to access the SubVersion repository and checkout the empty repository.

Bottom line: A year ago, I tried to install Subversion on a Cobalt RAQ server and gave up. Now, thanks to Centos and Virtualmin, it’s running without any headaches of compiling special versions of Apache 2.0, etc. Thanks Virtualmin!