Newsroom Update

Beginning in May, a special Today at Apple series titled “Made for Business” will offer small business owners and entrepreneurs free opportunities to learn how Apple products and services can support their growth and success. Learn more >

Looks like no one’s replied in a while. To start the conversation again, simply ask a new question.

10.8 & WebDAV & SVN / Problems, Findings and Solution

Hi, like many of you I'm trying to get SVN to work via HTTPS on my 10.8 server system. It's a hassle with no end, but I made some progress.


  1. As you know there are two Apache modules missing from 10.8 that are required to get SVN to work. These are: mod_authz_svn & mod_dav_svn
  2. You need to compile these by yourself. There are some posts how to do this, so I won't repeat. Just some important notes:
    • If you have MacPorts installed be sure to compile using Apple's files and not the MacPorts files you might have installed by installing some packages. This is ensured by the follwoing command:
    • ./configure --without-berkeley-db --with-apxs=/usr/sbin/apxs --with-apr=/usr/bin/apr-1-config --with-apr-util=/usr/bin/apr-1-config
    • You HAVE TO use the same subversion version that's used by your system. You can find out, by tpying: svn --version on the command line. Don't think about using any other subversion version. If you do, your web-server won't start.
  3. Than you need to make a .conf file that loads these two modules and provides a SVN WebDAV location. This needs to be loaded from httpd_server_app.conf (which is Apple's used httpd.conf) somewhere. So, something like this:


LoadModule dav_svn_module libexec/apache2/mod_dav_svn.so
LoadModule authz_svn_module libexec/apache2/mod_authz_svn.so


#CustomLog logs/svn_logfile "%t %u %{SVN-ACTION}e" env=SVN-ACTION


#<IfModule mod_dav.c>
#       DavLockDB "/var/run/davlocks/.davlockany_443_default"
#</IfModule>


<Location "/svn/privat">
        DAV svn
        SVNPath /Users/svn/svnroot/privat
        AuthType Digest
        Require valid-user
        <Limit GET HEAD OPTIONS CONNECT POST PROPFIND PUT DELETE PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
                Require user me you
        </Limit>
        AuthName "UserWebDAV Gateway"
</Location>


And if you do all this, it might work.


It didn't for me. I could access the SVN WebDAV via the browser, I could log in and see the repository. But I got an error when I tried to access it via a SVN client (Cornerstone in my situation). The error was a permission denied problem.


Some further investatigation brought up these points:


  1. Apple provides WebDAV file shares now. This is for IOS users, so they can access stored files.
  2. The files stored in a Wiki can be accessed via a WebDAV share as well. This can be turned on at the Wiki service menu.


If you enable ANY of these, Apple takes over the whole WebDAV setup. And than your SVN WebDAV stuff won't work. If you turn off ALL of these, it will work.


The WebDAV fileshare setup is spread over a bunch of apache config files located in /Library/Server/Web/Config/apache2/...


Take a look at:

  1. /Library/Server/Web/Config/apache2/httpd_server_app.conf
  2. /Library/Server/Web/Config/apache2/httpd_webdavsharing_sharepoints.conf
  3. /Library/Server/Web/Config/apache2/httpd_webdavsharing_template.conf
  4. /Library/Server/Web/Config/apache2/httpd_webdavsharing.conf
  5. /Library/Server/Web/Config/apache2/servermgr_web_apache2_config.plist
  6. /Library/Server/Web/Config/apache2/webdav_sharepoints.plist
  7. /Library/Server/Web/Config/apache2/httpd_corecollaboration_shared.conf


In 3. there is a bunch of config parameters and rewrite rules. If you look into this file you will see a comment like this: "No access to file system, with exceptions for share points" I suspect that this has something to do with the SVN WebDAV won't work if ANY of the WebDAV shares is enabled.


In 7. you see how the Wiki files are provided as WebDAV share. It uses a <Location "/">, which I suspect could collide with the other Locations uses for the SVN. But I'm not sure. IMO it would be better to use something like <Location "/wiki"> like you can see in 4. for the <Location "/webdav">, but I haven't tried out.


So, IMO it all comes down to decide: Do you need WebDAV for your own? If, don't use ANY of the build in WebDAV sharing things, because these will take over the whole topic and you can't make your way through it easly.


I'm sure it's possible to setup, with rewrite rules etc. but it's not an easy task. If anyone bite the bullet and sorts it out please let me know.

Posted on Nov 19, 2012 4:27 AM

Reply
3 replies

Sep 11, 2013 12:16 AM in response to LordLobby

I found the missing link at this URL

http://stackoverflow.com/questions/11712294/os-x-10-8-is-missing-mod-svn-so-libr aries


The key step is this:

"Edit the /Library/Server/Web/Config/apache2/httpd_webdavsharing.conf file, adding

RewriteCond %{REQUEST_URI} !^/svn/.*
just above the last
RewriteRule
. Not sure about the permanence of this fix, but got it to work."

10.8 & WebDAV & SVN / Problems, Findings and Solution

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple ID.