Bug 280685

Summary: devel/libgit2: Update to 1.8.1
Product: Ports & Packages Reporter: Nuno Teixeira <eduardo>
Component: Individual Port(s)Assignee: Matthias Fechner <mfechner>
Status: Open ---    
Severity: Affects Only Me CC: eduardo
Priority: --- Flags: eduardo: maintainer-feedback+
Version: Latest   
Hardware: Any   
OS: Any   
Bug Depends on: 280684, 280704, 280709, 280710, 280711, 280706, 280707, 280708, 280713    
Bug Blocks: 278837    
Attachments:
Description Flags
Update to 1.8.1 none

Description Nuno Teixeira freebsd_committer freebsd_triage 2024-08-08 12:48:30 UTC
Created attachment 252607 [details]
Update to 1.8.1

Hello,

Still doing a run test.

For now, devel/libgit2-glib fails.
Comment 1 Matthias Fechner freebsd_committer freebsd_triage 2024-08-09 06:27:41 UTC
If the chain of updates are fine, please feel free to commit this update.
You have my permission, so please feel free to continue at your speed (I will be on holiday for 4 weeks and will maybe not answer anymore)
Comment 2 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-09 13:44:36 UTC
exp-run 141amd64:

Failed ports:

[1] devel/cargo-c:build
[2] devel/cargo-udeps:build
[3] devel/git-repo-manager:build
[4] devel/py-pygit2@py311:build
[5] devel/grv:build
[6] devel/rubygem-rugged:stage
[7] devel/tabby:build
[8] devel/libgit2-glib:build
[9] deskutils/basket:build

logs: https://people.freebsd.org/~eduardo/exp-run/libgit2-181/
Comment 3 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-09 17:54:01 UTC
Note to self:

Most of the failed cargo ports are due to lack of libgit2 >=1.8.0 support:

<snip>
pkg-config exited with status code 1
pkg-config --libs --cflags libgit2 libgit2 >= 1.7.2 libgit2 < 1.8.0

[libgit2-sys 0.16.2+1.7.2] The system library `libgit2` required by crate `libgit2-sys` was not found.
[libgit2-sys 0.16.2+1.7.2] The file `libgit2.pc` needs to be installed and the PKG_CONFIG_PATH environment variable must contain its parent directory.
[libgit2-sys 0.16.2+1.7.2] The PKG_CONFIG_PATH environment variable is not set.
[libgit2-sys 0.16.2+1.7.2] 
[libgit2-sys 0.16.2+1.7.2] HINT: if you have installed the library, try setting PKG_CONFIG_PATH to the directory containing `libgit2.pc`.
<snip>

And with pkg-config step failed:

[libgit2-sys 0.16.2+1.7.2] cargo:warning=libgit2/src/libgit2/transports/ssh.c:11:10: fatal error: 'libssh2.h' file not found

Upstream PRs should be checked/opened for libgit2 >= 1.8.0 support (?).
Comment 4 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-10 09:13:09 UTC
(In reply to Nuno Teixeira from comment #3)

(...)

Unbundle libssh2 and libgit2 crates from port and use system devel/libgit2 and security/libssh2 like jbeich@ have done in https://cgit.freebsd.org/ports/commit/?id=001fd50e85b9
Comment 5 Matthias Fechner freebsd_committer freebsd_triage 2024-08-10 09:31:59 UTC
I see here some dependencies that need to get fixed first.
Maybe it is to early for this update?

But it is maybe a good collection here to get updates upstream first.
Comment 6 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-10 09:55:12 UTC
(In reply to Matthias Fechner from comment #5)

Hello,

Yes, I did collect all deps that needs go get fixed so we can track it better.
Comment 7 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-10 10:04:32 UTC
(In reply to Nuno Teixeira from comment #3)

(...)

[NOT TO DO] workaround:
---
post-patch:
# XXX Need devel/libgit2 < 1.8.0; libgit2 depends on libssh2, so bundle both
	@${REINPLACE_CMD} 's/if try_to_use_system_libgit2/if false/' \
		${WRKSRC}/cargo-crates/libgit2-sys-*/build.rs
	@${REINPLACE_CMD} '/env::var/s/LIBSSH2.*PKG/disabled_&/' \
		${WRKSRC}/cargo-crates/libssh2-sys-*/build.rs
---
:)
Comment 8 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-10 10:15:23 UTC
As discussed with diizzy@, build bundled libgit2/libssh2 as workaround because upstream doesn't support libgit2 > 1.7.2, seems not to be the best and correct solution as problems could sort out after these changes.

PRs should be openned at upstream so they can catch up with new support.

I will start doing it laters today.
Comment 9 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-10 10:45:55 UTC
(In reply to Nuno Teixeira from comment #8)

(...)

I can see some upstream action to catch up:

https://github.com/rust-lang/git2-rs/commit/b534e13f38c6

applied in commit:

https://cgit.freebsd.org/ports/commit/?id=84ce872284e30424e2691199d40023a852b13563
Comment 10 Nuno Teixeira freebsd_committer freebsd_triage 2024-08-13 10:36:53 UTC
Summary:

(committed)
[1] FIXED #280706 devel/cargo-c:build
[2] FIXED #280707 devel/cargo-udeps:build
[3] FIXED #280708 devel/git-repo-manager:build
[7] FIXED #280713 devel/tabby:build

(to be committed toguether with this PR)
[4] UPDATE #280709 devel/py-pygit2@py311:build
[8] PATCH #280684 devel/libgit2-glib:build

(waiting on maintainer/issue opened upstream)
[5] #280710 devel/grv:build
[6] #280711 devel/rubygem-rugged:stage

(mark broken and deprecate unless we can fix it)
[9] #280704 deskutils/basket:build