From 9846305fee6992a0fa6da066bf381aee3e703ce5 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 9 Nov 2025 18:11:31 -0500 Subject: [PATCH] Switch to libgit2 experimental Just patch the package for now, but we should make Nixpkgs provide what we need (whether that the experimental variant, or a 2.x release with the new API made non-experimental) before releasing this change. --- packaging/dependencies.nix | 10 +++++ src/libfetchers-tests/git-utils.cc | 16 +++---- src/libfetchers-tests/git.cc | 2 +- src/libfetchers-tests/meson.build | 2 +- src/libfetchers/git-lfs-fetch.cc | 8 ++-- src/libfetchers/git-utils.cc | 42 +++++++++---------- .../include/nix/fetchers/git-lfs-fetch.hh | 2 +- src/libfetchers/meson.build | 2 +- 8 files changed, 47 insertions(+), 37 deletions(-) diff --git a/packaging/dependencies.nix b/packaging/dependencies.nix index 6b2dafcfa..517f55de3 100644 --- a/packaging/dependencies.nix +++ b/packaging/dependencies.nix @@ -74,4 +74,14 @@ scope: { buildPhase = lib.replaceStrings [ "--without-python" ] [ "" ] old.buildPhase; installPhase = lib.replaceStrings [ "--without-python" ] [ "" ] old.installPhase; }); + + libgit2 = pkgs.libgit2.overrideAttrs (attrs: { + cmakeFlags = (attrs.cmakeFlags or [ ]) ++ [ + (lib.mesonBool "EXPERIMENTAL_SHA256" true) + ]; + + postInstall = (attrs.postInstall or "") + '' + substituteInPlace $(find $dev/include -type f) --replace-quiet '#include "git2/' '#include "git2-experimental/' + ''; + }); } diff --git a/src/libfetchers-tests/git-utils.cc b/src/libfetchers-tests/git-utils.cc index 774934d26..f04835264 100644 --- a/src/libfetchers-tests/git-utils.cc +++ b/src/libfetchers-tests/git-utils.cc @@ -1,19 +1,19 @@ #include "nix/fetchers/git-utils.hh" #include "nix/util/file-system.hh" #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #include #include "nix/util/fs-sink.hh" #include "nix/util/serialise.hh" #include "nix/fetchers/git-lfs-fetch.hh" -#include -#include +#include +#include namespace nix { diff --git a/src/libfetchers-tests/git.cc b/src/libfetchers-tests/git.cc index 4f0e0d974..3a9306b56 100644 --- a/src/libfetchers-tests/git.cc +++ b/src/libfetchers-tests/git.cc @@ -5,7 +5,7 @@ #include "nix/fetchers/fetchers.hh" #include "nix/fetchers/git-utils.hh" -#include +#include #include #include diff --git a/src/libfetchers-tests/meson.build b/src/libfetchers-tests/meson.build index a18f64d79..2f8c54714 100644 --- a/src/libfetchers-tests/meson.build +++ b/src/libfetchers-tests/meson.build @@ -33,7 +33,7 @@ deps_private += rapidcheck gtest = dependency('gtest', main : true) deps_private += gtest -libgit2 = dependency('libgit2') +libgit2 = dependency('libgit2-experimental') deps_private += libgit2 subdir('nix-meson-build-support/common') diff --git a/src/libfetchers/git-lfs-fetch.cc b/src/libfetchers/git-lfs-fetch.cc index 936976e55..90f030381 100644 --- a/src/libfetchers/git-lfs-fetch.cc +++ b/src/libfetchers/git-lfs-fetch.cc @@ -7,10 +7,10 @@ #include "nix/util/hash.hh" #include "nix/store/ssh.hh" -#include -#include -#include -#include +#include +#include +#include +#include #include diff --git a/src/libfetchers/git-utils.cc b/src/libfetchers/git-utils.cc index 1bd5b0b94..8eca1fe91 100644 --- a/src/libfetchers/git-utils.cc +++ b/src/libfetchers/git-utils.cc @@ -13,27 +13,27 @@ #include "nix/util/thread-pool.hh" #include "nix/util/pool.hh" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include diff --git a/src/libfetchers/include/nix/fetchers/git-lfs-fetch.hh b/src/libfetchers/include/nix/fetchers/git-lfs-fetch.hh index b59da391a..c46278c05 100644 --- a/src/libfetchers/include/nix/fetchers/git-lfs-fetch.hh +++ b/src/libfetchers/include/nix/fetchers/git-lfs-fetch.hh @@ -5,7 +5,7 @@ #include "nix/util/serialise.hh" #include "nix/util/url.hh" -#include +#include #include diff --git a/src/libfetchers/meson.build b/src/libfetchers/meson.build index d34dd4f43..d5ad8ecc3 100644 --- a/src/libfetchers/meson.build +++ b/src/libfetchers/meson.build @@ -28,7 +28,7 @@ subdir('nix-meson-build-support/subprojects') nlohmann_json = dependency('nlohmann_json', version : '>= 3.9') deps_public += nlohmann_json -libgit2 = dependency('libgit2', version : '>= 1.9') +libgit2 = dependency('libgit2-experimental', version : '>= 1.9') deps_private += libgit2 subdir('nix-meson-build-support/common')