Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Nov 2009 16:21:32 -0500
From:      Greg Larkin <glarkin@FreeBSD.org>
To:        Glen Johnson <nelgmj@verizon.net>
Cc:        freebsd-questions@freebsd.org, Steve Bertrand <steve@ibctech.ca>
Subject:   Re: Apache22 + Subversion 1.6.6 = No go.
Message-ID:  <4B07085C.8010207@FreeBSD.org>
In-Reply-To: <08a7defd2c8ad208f116c883a7fbe175@verizon.net>
References:  <0c5bf2a922ecbc1096da03be5670e3e1@verizon.net>	<4B0575A0.707@FreeBSD.org>	<6b6f6c5e02e38af4ded7a3884301c1ac@verizon.net>	<4B06223B.2010900@FreeBSD.org> <08a7defd2c8ad208f116c883a7fbe175@verizon.net>

next in thread | previous in thread | raw e-mail | index | archive | help
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Glen Johnson wrote:
> 
> On Nov 19, 2009, at 11:59 PM, Greg Larkin wrote:
> 
>> Glen Johnson wrote:
>>> On Nov 19, 2009, at 11:43 AM, Greg Larkin wrote:
>>>>
>>>> Glen Johnson wrote:
>>>>> FreeBSD-questions,
>>>>> I am attempting to use FreeBSD as my Subversion server.  I have
>>>>> Subversion working, and I have Apache working.  However when I try to
>>>>> use http:/my_server/svn/my_project I get:
>>>>> <?xml version="1.0" encoding="utf-8"?>
>>>>> <D:error xmlns:D="DAV:" xmlns:m="http://apache.org/dav/xmlns"
>>>>> xmlns:C="svn:">
>>>>> <C:error/>
>>>>> <m:human-readable errcode="2">
>>>>> Could not open the requested SVN filesystem
>>>>> </m:human-readable>
>>>>> </D:error>
>>>>>
>>>>> 1 I tried chmod -R 777 /home/svn/repos.
>>>>> 2 I tried recompiling apache, db, and subversion.
>>>>> 3 I looked at /var/log/http-error.log (partial list below)
>>>>> [Thu Nov 19 09:35:52 2009] [notice] Graceful restart requested, doing
>>>>> restart
>>>>> [Thu Nov 19 09:35:53 2009] [notice] Digest: generating secret for
>>>>> digest
>>>>> authentication ...
>>>>> [Thu Nov 19 09:35:53 2009] [notice] Digest: done
>>>>> [Thu Nov 19 09:35:54 2009] [notice] Apache/2.2.13 (FreeBSD)
>>>>> mod_ssl/2.2.13 OpenSSL/0.9.8e DAV/2 SVN/1.6.6 configured -- resuming
>>>>> normal operations
>>>>> [Thu Nov 19 09:36:10 2009] [error] [client 192.168.2.12]
>>>>> (20014)Internal
>>>>> error: Can't open file '/usr/home/svn/repos/default/format': No such
>>>>> file or directory
>>>>> [Thu Nov 19 09:36:10 2009] [error] [client 192.168.2.12] Could not
>>>>> fetch
>>>>> resource information.  [500, #0]
>>>>> [Thu Nov 19 09:36:10 2009] [error] [client 192.168.2.12] Could not
>>>>> open
>>>>> the requested SVN filesystem  [500, #2]
>>>>>
>>>>>
>>>>> What am I missing?
>>>>> Thank you,
>>>>> Glen
>>>>
>>>> Hi Glen,
>>>>
>>>> Please post the relevant bits from your httpd.conf where you set up the
>>>> SVNPath, etc.  It looks like maybe the SVNPath directive is pointing to
>>>> the wrong place.
>>>>
>>> Thanks for your reply.  I currently have this info in
>>> /usr/local/etc/apache22/Includes/svn.conf.  Apache22 loads all the conf
>>> files in this directory when httpd.conf is loaded.
>>> <Location /svn>
>>>         DAV svn
>>>         SVNParentPath /usr/home/svn/repos
>>>         SVNListParentPath on
>>>         SVNPathAuthz off
>>>         SVNIndexXSLT "/data-dist/svnindex.xsl"
>>>
>>>         # anonymous first
>>>         Satisfy Any
>>>         Require valid-user
>>>
>>>         # authenticating them valid ones
>>>         AuthType Basic
>>>         AuthName "Subversion Repositories"
>>>         AuthUserFile /usr/home/svn/access/users
>>> </Location>
>>>
> 
>> Hi Glen,
> 
>> At first glance, that looks OK to me. The next tests are:
> 
>> - - Does /usr/home/svn/repos/default exist? (I know, dumb question!)
> No, not so dumb.  It is good not to make assumptions that I may
> overlook.  This however is not one.  This is what I did to verify I do
> have a project.
> 1. svn co file:///usr/home/svn/repos def     # Then for fun I added
> hello.txt in def/trunk.  More about this below.
> 2. svn co svn://usr/home/svn/repos def    # Still works fine.
> 3. svn co file:///usr/home/svn/repos def    # SVN: Could not open the
> requested SVN filesystem (Error message from svn)
> 
>> - - If it does, are permissions set such that the httpd process user can
>> read the directory? You said "chmod 777" on the repository parent
>> directory didn't work.
> I tried:
> chmod -R 777 /usr/home/svn/repos
> chmod -R www:www /usr/home/svn/repos
> 
> By the way here are the settings for user www and group www.
> 
> grep www /etc/passwd
> www:*:80:80:World Wide Web Owner:/nonexistent:/usr/sbin/nologin
> 
> grep www /etc/group
> www:*:80:glen,root
> 
> 
>> - - Please post the output of "ls -laR /usr/home/svn/repos"
> First I noticed that there are some files that are owned by glen due to
> me adding repos/trunk/hello.txt.
> Ok you asked for this:
> total 24
> drwxrwxrwx  10 www   www  512 Nov 20 08:48 ./
> drwxrwxrwx   5 root  www  512 Nov 20 08:46 ../
> drwxrwxrwx   6 www   www  512 Nov 20 08:48 .svn/
> -rwxrwxrwx   1 www   www  229 Nov 20 08:46 README.txt*
> drwxrwxrwx   3 www   www  512 Nov 20 08:48 branches/
> drwxrwxrwx   2 www   www  512 Nov 20 08:46 conf/
> drwxrwxrwx   6 www   www  512 Nov 20 09:01 db/
> -rwxrwxrwx   1 www   www    2 Nov 20 08:46 format*
> drwxrwxrwx   2 www   www  512 Nov 20 08:46 hooks/
> drwxrwxrwx   2 www   www  512 Nov 20 08:46 locks/
> drwxrwxrwx   3 www   www  512 Nov 20 08:48 tags/
> drwxrwxrwx   3 www   www  512 Nov 20 08:48 trunk/
> 
[...]

Hi Glen,

Ok, I see what's going on now.  First, you have an SVNParentPath
directive in your httpd.conf file.  The directory on that line specifies
a place where multiple, separate Subversion repositories will appear, so
you could have a setup like this:

/usr/home/svn/repos
                   /internal-repos
                   /client-projects-repos
                   /oss-contrib-repos
                   ...
                   ...

In this case, each of those repository subdirectories would be created
like so:

svnadmin create /usr/home/svn/repos/internal-repos
svnadmin create /usr/home/svn/repos/client-projects-repos
svnadmin create /usr/home/svn/repos/oss-contrib-repos

So far, so good.

What I notice in your directory listings is that you have a Subversion
repository anchored at /usr/home/svn/repos, not in a subdirectory
therein.  This is going to cause problems with SVNParentPath, because it
will treat all subdirectories under there (e.g. conf/, db/, hooks/,
etc.) as Subversion repositories.  If you only plan to use that single
repository, your httpd.conf should read:

SVNPath /usr/home/svn/repos

instead of:

SVNParentPath /usr/home/svn/repos

Next, I notice that /usr/home/svn/repos also contains a Subversion
working copy, indicated by the directories .svn/, trunk/, tags/ and
branches/.  I recommend that you delete those and re-checkout your
repository into a new working directory somewhere else.

The reason you saw the message "error: Can't open file
'/usr/home/svn/repos/default/format': No such file or directory" was
because you had checked out the module "default" into the Subversion
repository directory, and then the SVNParentPath directive attempted to
enumerate the "default" directory as a Subversion repository.

Once you clean up those working copy directories and change
SVNParentPath to SVNPath, you should be in business.

Hope that helps,
Greg
- --
Greg Larkin

http://www.FreeBSD.org/           - The Power To Serve
http://www.sourcehosting.net/     - Ready. Set. Code.
http://twitter.com/sourcehosting/ - Follow me, follow you
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLBwhc0sRouByUApARAhYgAKCEn48Jw3UzJlxHhYR15qgWnVhiCwCbBFkC
wMMA6GWQbY2cFnUni/+oEDM=
=hfXh
-----END PGP SIGNATURE-----




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4B07085C.8010207>