threads / discuss / 31131

PROPFIND 405 with git-http-backend and Smart HTTP

Subject: PROPFIND 405 with git-http-backend and Smart HTTP

## tl;dr

9 messages between Jul 29, 2012 and Aug 14, 2014.

replies: 8people: 4as markdown or json

Bo98· Jul 29, 2012, 18:52 UTC · lore

I'm setting up a git server with git-http-backend and Smart HTTP but I'm getting PROPFIND Error 405 with git push.

Here's my config:
    <VirtualHost *:8000>
      ServerName localhost
      DocumentRoot /opt/local/apache2/htdocs/repo
      SetEnv GIT_PROJECT_ROOT /opt/local/apache2/htdocs/repo
      SetEnv GIT_HTTP_EXPORT_ALL
      ScriptAlias /repo/ /usr/libexec/git-core/git-http-backend/
      AliasMatch ^/repo/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$         
/opt/local/apache2/htdocs/repo/$1
      AliasMatch ^/repo/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$
/opt/local/apache2/htdocs/repo/$1
      ScriptAliasMatch \
        "(?x)^/repo/(.*/(HEAD | \
        info/refs | \
        objects/(info/[^/]+ | \
            [0-9a-f]{2}/[0-9a-f]{38} | \
            pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
        git-(upload|receive)-pack))$" \
        /usr/libexec/git-core/git-http-backend/$1
      <LocationMatch "^/repo/.*/git-receive-pack$">
        AuthType Basic
        AuthName "Git"
        Require valid-user
        AuthUserFile /etc/apache2/other/htpasswd
      </LocationMatch>
    </VirtualHost>
And here's a snip from my access_log:
    ::1 - - [29/Jul/2012:18:34:34 +0100] "GET
/repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 200 117
    ::1 - - [29/Jul/2012:18:34:34 +0100] "GET /repo/myproject.git/HEAD
HTTP/1.1" 200 23
    ::1 - - [29/Jul/2012:18:34:34 +0100] "PROPFIND /repo/myproject.git/
HTTP/1.1" 405 247
Any ideas?

-- View this message in context: http://git.661346.n2.nabble.com/PROPFIND-405-with-git-http-backend-and-Smart-HTTP-tp7564017.html Sent from the git mailing list archive at Nabble.com.

Shawn Pearce· Jul 30, 2012, 01:00 UTC · re: Bo98 · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

On Sun, Jul 29, 2012 at 11:52 AM, Bo98 <BoEllisAnderson@aol.com> wrote:
> I'm setting up a git server with git-http-backend and Smart HTTP but I'm
> getting PROPFIND Error 405 with git push.

This suggests the client didn't see the server as one supporting smart HTTP. ...

Show 5 quoted lines
>
> And here's a snip from my access_log:
>
>     ::1 - - [29/Jul/2012:18:34:34 +0100] "GET
> /repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 200 117

Was this request actually served using the smart http-backend? Try the request yourself on the command line with curl, making sure to pass the ?service=git-receive-pack query parameter. A smart HTTP response will include a service=git-receive-pack line as the first line of the response body. I don't think Apache called the http-backend CGI, and so the client thought the server was not smart HTTP capable.

Bo98· Jul 30, 2012, 08:40 UTC · re: Shawn Pearce · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

Shawn Pearce wrote
Show 13 quoted lines
> 
>> And here's a snip from my access_log:
>>
>>     ::1 - - [29/Jul/2012:18:34:34 +0100] "GET
>> /repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 200 117
> 
> Was this request actually served using the smart http-backend? Try the
> request yourself on the command line with curl, making sure to pass
> the ?service=git-receive-pack query parameter. A smart HTTP response
> will include a service=git-receive-pack line as the first line of the
> response body. I don't think Apache called the http-backend CGI, and
> so the client thought the server was not smart HTTP capable.
> 
This is what curl returned:

2ddf56592a0f55456b8c42dc9f2cb9289f083f53 refs/heads/1.0.x 55079bb13d9af8a9164ad0d24b654cbfe119bc7e refs/heads/master

Looks okay. Those are the 2 branches I've got.

-- View this message in context: http://git.661346.n2.nabble.com/PROPFIND-405-with-git-http-backend-and-Smart-HTTP-tp7564017p7564056.html Sent from the git mailing list archive at Nabble.com.

Shawn Pearce· Jul 30, 2012, 16:37 UTC · re: Bo98 · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

On Mon, Jul 30, 2012 at 1:40 AM, Bo98 <BoEllisAnderson@aol.com> wrote:
Show 22 quoted lines
>
> Shawn Pearce wrote
>>
>>> And here's a snip from my access_log:
>>>
>>>     ::1 - - [29/Jul/2012:18:34:34 +0100] "GET
>>> /repo/myproject.git/info/refs?service=git-receive-pack HTTP/1.1" 200 117
>>
>> Was this request actually served using the smart http-backend? Try the
>> request yourself on the command line with curl, making sure to pass
>> the ?service=git-receive-pack query parameter. A smart HTTP response
>> will include a service=git-receive-pack line as the first line of the
>> response body. I don't think Apache called the http-backend CGI, and
>> so the client thought the server was not smart HTTP capable.
>>
>
> This is what curl returned:
>
> 2ddf56592a0f55456b8c42dc9f2cb9289f083f53        refs/heads/1.0.x
> 55079bb13d9af8a9164ad0d24b654cbfe119bc7e        refs/heads/master
>
> Looks okay. Those are the 2 branches I've got.
No, a smart HTTP response looks more like this:

1e# service=git-receive-pack 000000a5e7a3bcbbb8083e812ce07a5459f0e6d30edfb9fe HEAD include-tag multi_ack_detailed multi_ack ofs-delta side-band side-band-64k thin-pack no-progress shallow no-done

Looks like Apache isn't calling the smart-http CGI.
Bo98· Jul 30, 2012, 20:30 UTC · re: Shawn Pearce · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

Shawn Pearce wrote
Show 10 quoted lines
> 
> No, a smart HTTP response looks more like this:
> 
> 1e# service=git-receive-pack
> 000000a5e7a3bcbbb8083e812ce07a5459f0e6d30edfb9fe HEAD include-tag
> multi_ack_detailed multi_ack ofs-delta side-band side-band-64k
> thin-pack no-progress shallow no-done
> 
> Looks like Apache isn't calling the smart-http CGI.
> 

Oh ok, thanks! But do you have any idea why? Everything in my config looks okay to me. I've got my GIT_PROJECT_ROOT, my GIT_HTTP_EXPORT_ALL, my ScriptAlias and my LocationMatch. I'm not sure why it's like this.

-- View this message in context: http://git.661346.n2.nabble.com/PROPFIND-405-with-git-http-backend-and-Smart-HTTP-tp7564017p7564137.html Sent from the git mailing list archive at Nabble.com.

Shawn Pearce· Jul 30, 2012, 20:42 UTC · re: Bo98 · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

On Mon, Jul 30, 2012 at 1:30 PM, Bo98 <BoEllisAnderson@aol.com> wrote:
Show 16 quoted lines
>
> Shawn Pearce wrote
>>
>> No, a smart HTTP response looks more like this:
>>
>> 1e# service=git-receive-pack
>> 000000a5e7a3bcbbb8083e812ce07a5459f0e6d30edfb9fe HEAD include-tag
>> multi_ack_detailed multi_ack ofs-delta side-band side-band-64k
>> thin-pack no-progress shallow no-done
>>
>> Looks like Apache isn't calling the smart-http CGI.
>>
>
> Oh ok, thanks! But do you have any idea why? Everything in my config looks
> okay to me. I've got my GIT_PROJECT_ROOT, my GIT_HTTP_EXPORT_ALL, my
> ScriptAlias and my LocationMatch. I'm not sure why it's like this.
Maybe you forgot to enable ExecCGI?
Bo98· Jul 30, 2012, 21:39 UTC · re: Shawn Pearce · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

Shawn Pearce wrote
> 
> Maybe you forgot to enable ExecCGI?
> 

Whoops, completely forgot about that, but, assuming I did it right, it still doesn't seem to work.

Here's what I did:
  <Directory "/usr/libexec/git-core/">
    Options +ExecCGI
    Allow From All
  </Directory>

-- View this message in context: http://git.661346.n2.nabble.com/PROPFIND-405-with-git-http-backend-and-Smart-HTTP-tp7564017p7564144.html Sent from the git mailing list archive at Nabble.com.

Drew Northup· Aug 5, 2012, 18:30 UTC · re: Bo98 · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

On Mon, Jul 30, 2012 at 5:39 PM, Bo98 <BoEllisAnderson@aol.com> wrote:
Show 13 quoted lines
>
> Shawn Pearce wrote
>> Maybe you forgot to enable ExecCGI?
>>
> Whoops, completely forgot about that, but, assuming I did it right, it still
> doesn't seem to work.
>
> Here's what I did:
>
>   <Directory "/usr/libexec/git-core/">
>     Options +ExecCGI
>     Allow From All
>   </Directory>

Are all directory permissions set right? Is SELINUX enabled, and if so are all of the contexts set correctly? Does your Apache configuration recognize things NOT spelled *.cgi as CGI scripts / programs?

Besides, once you start asking Apache to do things outside of the base Document Root all sorts of interesting possibilities for failure become available.

I am pretty sure that this isn't a Git problem, it is a CGI hosting / configuration problem. An Apache-centric list may be able to help you better and is likely a better place to ask.

-- 
-Drew Northup
--------------------------------------------------------------
"As opposed to vegetable or mineral error?"
-John Pescatore, SANS NewsBites Vol. 12 Num. 59
lpicquet· Aug 14, 2014, 10:23 UTC · re: Drew Northup · lore

Re: PROPFIND 405 with git-http-backend and Smart HTTP

You need to allow the directory to be read?
	<directory Path/to/your/repositories>
  		Allow from all
	</directory>

-- View this message in context: http://git.661346.n2.nabble.com/PROPFIND-405-with-git-http-backend-and-Smart-HTTP-tp7564017p7616843.html Sent from the git mailing list archive at Nabble.com.

← back to recent threads