Package: git-core
Version: 1:1.4.4.3-1
Severity: normal

http-fetch.c construct the pack info retreival based on the pased in base
which has deliberately added a "/" at the end in perl script. This results in
url of the form "http://base//objects/info/packs"; being submitted to the
server. I briefly go through the RFC and there is no specification saying
double slash(or multiple for that matter) should be compressed into a single
one. Though most apache installation does.

What I am using is amazon's S3 service which does not though. As a result, the
URL is not found. The result is that I cannot serve a packed repo on S3.

Below is a patch to fix this, please consider it or discuss it with upstream.

--- http-fetch.c.old    2006-12-21 04:11:12.000000000 +0800
+++ http-fetch.c        2007-02-06 12:27:18.000000000 +0800
@@ -400,7 +400,7 @@
                fprintf(stderr, "Getting index for pack %s\n", hex);
 
        url = xmalloc(strlen(repo->base) + 64);
-       sprintf(url, "%s/objects/pack/pack-%s.idx", repo->base, hex);
+       sprintf(url, "%sobjects/pack/pack-%s.idx", repo->base, hex);
 
        filename = sha1_pack_index_name(sha1);
        snprintf(tmpfile, sizeof(tmpfile), "%s.temp", filename);
@@ -479,7 +479,7 @@
 
                        /* Try reusing the slot to get non-http alternates */
                        alt_req->http_specific = 0;
-                       sprintf(alt_req->url, "%s/objects/info/alternates",
+                       sprintf(alt_req->url, "%sobjects/info/alternates",
                                base);
                        curl_easy_setopt(slot->curl, CURLOPT_URL,
                                         alt_req->url);
@@ -634,7 +634,7 @@
                fprintf(stderr, "Getting alternates list for %s\n", base);
 
        url = xmalloc(strlen(base) + 31);
-       sprintf(url, "%s/objects/info/http-alternates", base);
+       sprintf(url, "%sobjects/info/http-alternates", base);
 
        /* Use a callback to process the result, since another request
           may fail and need to have alternates loaded before continuing */
@@ -684,7 +684,7 @@
                fprintf(stderr, "Getting pack list for %s\n", repo->base);
 
        url = xmalloc(strlen(repo->base) + 21);
-       sprintf(url, "%s/objects/info/packs", repo->base);
+       sprintf(url, "%sobjects/info/packs", repo->base);
 
        slot = get_active_slot();
        slot->results = &results;
@@ -766,7 +766,7 @@
        }
 
        url = xmalloc(strlen(repo->base) + 65);
-       sprintf(url, "%s/objects/pack/pack-%s.pack",
+       sprintf(url, "%sobjects/pack/pack-%s.pack",
                repo->base, sha1_to_hex(target->sha1));
 
        filename = sha1_pack_name(target->sha1);

-- System Information:
Debian Release: 4.0
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.17-co-0.8
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages git-core depends on:
ii  libc6                        2.3.6.ds1-8 GNU C Library: Shared libraries
ii  libcurl3-gnutls              7.15.5-1    Multi-protocol file transfer libra
ii  libdigest-sha1-perl          2.11-1      NIST SHA-1 message digest algorith
ii  liberror-perl                0.15-8      Perl module for error/exception ha
ii  libexpat1                    1.95.8-3.3  XML parsing C library - runtime li
ii  perl-modules                 5.8.8-6.1   Core Perl modules
ii  rcs                          5.7-18      The GNU Revision Control System
ii  zlib1g                       1:1.2.3-13  compression library - runtime

Versions of packages git-core recommends:
ii  curl                         7.15.5-1    Get a file from an HTTP, HTTPS, FT
ii  git-doc                      1:1.4.4.1-1 content addressable filesystem (do
ii  less                         394-4       Pager program similar to more
ii  openssh-client [ssh-client]  1:4.3p2-7   Secure shell client, an rlogin/rsh
ii  patch                        2.5.9-4     Apply a diff file to an original
ii  python                       2.4.4-2     An interactive high-level object-o
ii  rsync                        2.6.9-2     fast remote file copy program (lik

-- no debconf information


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to