Subject: bug#44827: tests/channels.scm: Test failures building on Debian i386 or armhf with libgit2-dev 1.0.1

From: Vagrant Cascadian <[email-masked]>
Date: Thu, 26 Nov 2020 23:22:24 -0800

On 2020-11-26, Ludovic Courtès wrote:
> Vagrant Cascadian <[email-masked]> skribis:
>
>> Updating the build dependency to libgit2-dev >= 1.0.1 (which pulls in a
>> similar version to what guix is using) fixes test suite failures ... but
>> only on the amd64 architecture. The same tests pass Using an older
>> version of libgit2-dev (0.28). FWIW, this is building with guile-3.0.
>
> [...]
>
>> actual-error:
>> + (git-error
>> +   #<<git-error> code: -1 message: "invalid version 0 on git_proxy_options" class: 3>)
>
> This error is the sign of an ABI mismatch issue between Guile-Git and
> libgit2 (like Guile-Git assuming a wrong layout for one of the C structs
> exposed by libgit2).
>
> Which version of Guile-Git are you using?  Do its tests pass?

0.4.0, tests passed when built against libgit2 0.28...

> In particular, Guile-Git 0.4.0 has this thing compile-time check to make
> sure it matches the ABI of the underlying libgit2 version (0.28 or 1.0):
>
>   https://gitlab.com/guile-git/guile-git/-/commit/2b4d077c6f55648f42af31ae783ca4d8c1c5f1de
>
> So if you change libgit2 versions, you need to rebuild Guile-Git.

Oh, this will be fun to keep track of in debian... :/ :)

Yeah, the guile-git was built with the older 0.28 version of libgit2-dev
(although also with all the architectures).

Interestingly enough, guix pull completely fails with the older
libgit2-dev version installed, but installing the new version it works
fine.

I'll build a newer guile-git version and force it to use the newer
libgit2-dev package, and see if that fixes the issues.

Then I'll have to come up with complicated versioned dependencies to
ensure it keeps working in Debian and it becomes detectable when it
needs to be rebuilt...

live well,
  vagrant