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

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 18 Dec 2024 16:18:43 +0900

Hi,

Ludovic Courtès <[email-masked]> writes:

> 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:
>
> 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[]);
>       |         ~~~~~~~~~~~~~~~~~~^~~~~~~~~
>
> (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?

There may be a commit that could be cherry picked, but ideally we should
just update all Jami components to its latest nightly, if it supports
the latest libgit2 1.8.x.

I have an upgrade of Jami on a local branch, but it's not finished, and
I haven't checked yet if it would resolve that particular problem.

-- 
Thanks,
Maxim