[OSSTEST PATCH] ts-xen-build-prep: force use of git protocol v2

Anthony PERARD posted 1 patch 9 months, 2 weeks ago
Failed in applying to current master (apply log)
Osstest/TestSupport.pm | 8 ++++++++
1 file changed, 8 insertions(+)
[OSSTEST PATCH] ts-xen-build-prep: force use of git protocol v2
Posted by Anthony PERARD 9 months, 2 weeks ago
Recent version of QEMU (to be 8.1) started to use meson subproject to
clone extra repo. With the example of the subproject "dtc", they do a
shallow clone with a sha1. Meson end up running:

    git fetch --depth 1 origin b6910bec11614980a21e46fbccc35934b671bd81

This command fails. I think the error message is something like "the
remote end hung up unexpectedly", on Debian Buster. A more useful
message with more recent version of git seems to be "couldn't find
remote ref".

If we allow git to communicate with the protocol v2, then the shallow
clone works. But git on buster still use v1 by default. Force it to
use v2.

This needs a git-cache-proxy version that can allow to switch to v2 of
the protocol. A bug is open upstream to track this change:
    https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040476

Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>
---

Notes:
    I've already apply the patch to our git-cache-proxy version in the
    testlab.
    
    Also, I've been using this osstest patch a few times, and none of my
    flights broke because if it, so I guess git-protocol v2 work well enough
    in buster, even if it isn't the default yet in this git version.

 Osstest/TestSupport.pm | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/Osstest/TestSupport.pm b/Osstest/TestSupport.pm
index 360cfdea..f0e087aa 100644
--- a/Osstest/TestSupport.pm
+++ b/Osstest/TestSupport.pm
@@ -3254,6 +3254,14 @@ sub gitcache_setup ($) {
         insteadOf = ${proxy}$urlprefix
 END
     }
+
+    # Adding mandadory use of Git protocol v2
+    # necessary on buster when building QEMU v8.1
+    $gitcfg .= <<END;
+[protocol]
+	version = 2
+END
+
     target_putfilecontents_stash($ho,30,$gitcfg,"/home/osstest/.gitconfig",
                                  'home-osstest-gitconfig');
 }
-- 
Anthony PERARD
Re: [OSSTEST PATCH] ts-xen-build-prep: force use of git protocol v2
Posted by Roger Pau Monné 9 months, 2 weeks ago
On Mon, Jul 17, 2023 at 03:17:45PM +0100, Anthony PERARD wrote:
> Recent version of QEMU (to be 8.1) started to use meson subproject to
> clone extra repo. With the example of the subproject "dtc", they do a
> shallow clone with a sha1. Meson end up running:
> 
>     git fetch --depth 1 origin b6910bec11614980a21e46fbccc35934b671bd81
> 
> This command fails. I think the error message is something like "the
> remote end hung up unexpectedly", on Debian Buster. A more useful
> message with more recent version of git seems to be "couldn't find
> remote ref".
> 
> If we allow git to communicate with the protocol v2, then the shallow
> clone works. But git on buster still use v1 by default. Force it to
> use v2.
> 
> This needs a git-cache-proxy version that can allow to switch to v2 of
> the protocol. A bug is open upstream to track this change:
>     https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1040476
> 
> Signed-off-by: Anthony PERARD <anthony.perard@citrix.com>

Acked-by: Roger Pau Monné <roger.pau@citrix.com>

Thanks, Roger.