[25.05] guile-git: 0.9.0 -> 0.10.0 (#441744)

This commit is contained in:
Weijia Wang
2025-09-12 08:27:33 +02:00
committed by GitHub
3 changed files with 9 additions and 178 deletions

View File

@@ -1,80 +0,0 @@
From cc70ed70b19a712babd834806d6fc700b20c020a Mon Sep 17 00:00:00 2001
From: Emily <hello@emily.moe>
Date: Wed, 22 Jan 2025 23:25:51 +0000
Subject: [PATCH 1/2] =?UTF-8?q?structs:=20Omit=20=E2=80=98free=E2=80=99=20?=
=?UTF-8?q?field=20from=20=E2=80=98%config-entry=E2=80=99=20on=20libgit2?=
=?UTF-8?q?=201.9+.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* configure.ac: Check for the free field of git_config_entry.
* git/configuration.scm.in (%have-config-entry-free?): New variable.
* git/structs.scm (%config-entry): Omit free field conditionally.
---
configure.ac | 10 ++++++++++
git/configuration.scm.in | 4 ++++
git/structs.scm | 4 +++-
3 files changed, 17 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b04ca6b..7f8f0b9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -87,6 +87,16 @@ else
fi
AC_SUBST([HAVE_CONFIG_ENTRY_BACKEND_TYPE])
+dnl Does 'git_config_entry' have 'free'? Removed in 1.9.
+AC_CHECK_MEMBER([git_config_entry.free], [], [],
+ [[#include <git2.h>]])
+if test "x$ac_cv_member_git_config_entry_free" = "xyes"; then
+ HAVE_CONFIG_ENTRY_FREE="#true"
+else
+ HAVE_CONFIG_ENTRY_FREE="#false"
+fi
+AC_SUBST([HAVE_CONFIG_ENTRY_FREE])
+
dnl Does 'git_diff_options' have 'oid_type'? It's new in 1.7.
AC_CHECK_MEMBER([git_diff_options.oid_type], [], [],
[[#include <git2.h>]])
diff --git a/git/configuration.scm.in b/git/configuration.scm.in
index e10b195..864b9ff 100644
--- a/git/configuration.scm.in
+++ b/git/configuration.scm.in
@@ -24,6 +24,7 @@
%have-fetch-options-depth?
%have-diff-options-oid-type?
%have-config-entry-backend-type?
+ %have-config-entry-free?
%have-GIT_OPT_SET_SERVER_CONNECT_TIMEOUT?
%have-GIT_OPT_SET_HOMEDIR?
%have-GIT_OPT_SET_USER_AGENT_PRODUCT?))
@@ -48,6 +49,9 @@
(define %have-config-entry-backend-type?
@HAVE_CONFIG_ENTRY_BACKEND_TYPE@)
+(define %have-config-entry-free?
+ @HAVE_CONFIG_ENTRY_FREE@)
+
(define %have-GIT_OPT_SET_SERVER_CONNECT_TIMEOUT?
@HAVE_GIT_OPT_SET_SERVER_CONNECT_TIMEOUT@)
diff --git a/git/structs.scm b/git/structs.scm
index beebd11..b35ae6d 100644
--- a/git/structs.scm
+++ b/git/structs.scm
@@ -505,7 +505,9 @@
'())
(include-depth ,unsigned-int)
(level ,int) ;git_config_level_t
- (free ,(bs:pointer int))
+ ,@(if %have-config-entry-free?
+ `(free ,(bs:pointer int))
+ '())
,@(if %have-config-entry-backend-type?
'()
`((payload ,(bs:pointer int))))))) ;removed in 1.8
--
2.47.0

View File

@@ -1,84 +0,0 @@
From 595b850c85f55592b94d2218a12084fd7050b508 Mon Sep 17 00:00:00 2001
From: Emily <hello@emily.moe>
Date: Wed, 22 Jan 2025 23:55:45 +0000
Subject: [PATCH 2/2] =?UTF-8?q?structs:=20Add=20=E2=80=98update-refs?=
=?UTF-8?q?=E2=80=99=20field=20to=20=E2=80=98%remote-callbacks=E2=80=99=20?=
=?UTF-8?q?on=20libgit2=201.9+.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* configure.ac: Check for the update_refs field of
git_remote_callbacks.
* git/configuration.scm.in (%have-remote-callbacks-update-refs?): New
variable.
* git/structs.scm (%remote-callbacks): Add update-refs field
conditionally.
---
configure.ac | 10 ++++++++++
git/configuration.scm.in | 4 ++++
git/structs.scm | 5 ++++-
3 files changed, 18 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 7f8f0b9..a2575f4 100644
--- a/configure.ac
+++ b/configure.ac
@@ -107,6 +107,16 @@ else
fi
AC_SUBST([HAVE_DIFF_OPTIONS_OID_TYPE])
+dnl Does 'git_remote_callbacks' have 'update_refs'? New in 1.9.
+AC_CHECK_MEMBER([git_remote_callbacks.update_refs], [], [],
+ [[#include <git2.h>]])
+if test "x$ac_cv_member_git_remote_callbacks_update_refs" = "xyes"; then
+ HAVE_REMOTE_CALLBACKS_UPDATE_REFS="#true"
+else
+ HAVE_REMOTE_CALLBACKS_UPDATE_REFS="#false"
+fi
+AC_SUBST([HAVE_REMOTE_CALLBACKS_UPDATE_REFS])
+
dnl 'GIT_OPT_SET_SERVER_CONNECT_TIMEOUT' & co. are new in 1.7.
GUILE_GIT_CHECK_DECLARATION([GIT_OPT_SET_SERVER_CONNECT_TIMEOUT])
diff --git a/git/configuration.scm.in b/git/configuration.scm.in
index 864b9ff..1e82c24 100644
--- a/git/configuration.scm.in
+++ b/git/configuration.scm.in
@@ -25,6 +25,7 @@
%have-diff-options-oid-type?
%have-config-entry-backend-type?
%have-config-entry-free?
+ %have-remote-callbacks-update-refs?
%have-GIT_OPT_SET_SERVER_CONNECT_TIMEOUT?
%have-GIT_OPT_SET_HOMEDIR?
%have-GIT_OPT_SET_USER_AGENT_PRODUCT?))
@@ -52,6 +53,9 @@
(define %have-config-entry-free?
@HAVE_CONFIG_ENTRY_FREE@)
+(define %have-remote-callbacks-update-refs?
+ @HAVE_REMOTE_CALLBACKS_UPDATE_REFS@)
+
(define %have-GIT_OPT_SET_SERVER_CONNECT_TIMEOUT?
@HAVE_GIT_OPT_SET_SERVER_CONNECT_TIMEOUT@)
diff --git a/git/structs.scm b/git/structs.scm
index b35ae6d..664a7c1 100644
--- a/git/structs.scm
+++ b/git/structs.scm
@@ -670,7 +670,10 @@ type to 'specified for this to take effect."
(transport ,(bs:pointer uint8))
(remote-ready ,(bs:pointer void))
(payload ,(bs:pointer uint8))
- (resolve-url ,(bs:pointer uint8)))))
+ (resolve-url ,(bs:pointer uint8))
+ ,@(if %have-remote-callbacks-update-refs?
+ `((update-refs ,(bs:pointer uint8)))
+ '()))))
(define-record-type <remote-callbacks>
(%make-remote-callbacks bytestructure)
--
2.47.0

View File

@@ -10,22 +10,17 @@
texinfo,
}:
stdenv.mkDerivation rec {
stdenv.mkDerivation (finalAttrs: {
pname = "guile-git";
version = "0.9.0";
version = "0.10.0";
src = fetchFromGitLab {
owner = "guile-git";
repo = pname;
rev = "v${version}";
hash = "sha256-lFBoA1VBJRHcZkP3h2gnlXQrMjDFWS4jl9RlF8VVf/Q=";
repo = "guile-git";
tag = "v${finalAttrs.version}";
hash = "sha256-ihKpEnng6Uemrguecbd25vElEhIu2Efb86aM8679TAc=";
};
patches = [
./0001-structs-Omit-free-field-from-config-entry-on-libgit2.patch
./0002-structs-Add-update-refs-field-to-remote-callbacks-on.patch
];
strictDeps = true;
nativeBuildInputs = [
autoreconfHook
@@ -52,11 +47,11 @@ stdenv.mkDerivation rec {
__darwinAllowLocalNetworking = true;
meta = with lib; {
meta = {
description = "Bindings to Libgit2 for GNU Guile";
homepage = "https://gitlab.com/guile-git/guile-git";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ ethancedwards8 ];
license = lib.licenses.gpl3Plus;
maintainers = with lib.maintainers; [ ethancedwards8 ];
platforms = guile.meta.platforms;
};
}
})