Subject: Re: [bug#74664] [PATCH v5] gnu: libgit2: Update to 1.8.4.

From: Ludovic Courtès <[email-masked]>
Date: Mon, 16 Dec 2024 19:45:13 +0100

Hi,

(Cc: Maxim for libjami questions.)

Aaron Covrig <[email-masked]> skribis:

> From: Ashish SHUKLA <[email-masked]>
>
> * gnu/packages/version-control.scm (libgit2-1.8): Update to 1.8.4.
> ---
> Restoring the original reference base as the build system hasn't picked
> this up and it looks like the arm64 substitute count is getting close to
> being enough for the CI instance to start processing other architectures
> again.

The upgrade apparently breaks libjami:

--8<---------------cut here---------------start------------->8---
jamidht/conversationrepository.cpp: In member function ‘std::string jami::ConversationRepository::Impl::createMergeCommit(git_index*, const string&)’:
jamidht/conversationrepository.cpp:801:34: error: invalid conversion from ‘git_commit* const*’ to ‘const git_commit**’ [-fpermissive]
  801 |                                  &parents_ptr[0])
      |                                  ^~~~~~~~~~~~~~~
      |                                  |
      |                                  git_commit* const*
In file included from /gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2/repository.h:14,
                 from /gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2/annotated_commit.h:11,
                 from /gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2.h:11,
                 from jamidht/conversationrepository.h:21,
                 from jamidht/conversationrepository.cpp:18:
/gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2/commit.h:515:27: note:   initializing argument 9 of ‘int git_commit_create_buffer(git_buf*, git_repository*, const git_signature*, const git_signature*, const char*, const char*, const git_tree*, size_t, const git_commit**)’
  515 |         const git_commit *parents[]);
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~
jamidht/conversationrepository.cpp: In member function ‘std::string jami::ConversationRepository::Impl::commit(const string&, bool)’:
jamidht/conversationrepository.cpp:1887:34: error: invalid conversion from ‘git_commit* const*’ to ‘const git_commit**’ [-fpermissive]
 1887 |                                  &head_ref[0])
      |                                  ^~~~~~~~~~~~
      |                                  |
      |                                  git_commit* const*
In file included from /gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2/repository.h:14,
                 from /gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2/annotated_commit.h:11,
                 from /gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2.h:11,
                 from jamidht/conversationrepository.h:21,
                 from jamidht/conversationrepository.cpp:18:
/gnu/store/1bwhw59mfrs2zk98l31ymhr6qw7cp45p-libgit2-1.8.4/include/git2/commit.h:515:27: note:   initializing argument 9 of ‘int git_commit_create_buffer(git_buf*, git_repository*, const git_signature*, const git_signature*, const char*, const char*, const git_tree*, size_t, const git_commit**)’
  515 |         const git_commit *parents[]);
      |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~
--8<---------------cut here---------------end--------------->8---

(From <https://ci.guix.gnu.org/build/7230853/details>.)

Can we “just” upgrade libjami?  Is there a patch upstream we can take?
What would you recommend, Maxim?

Ludo’.