diff --git a/configure.ac b/configure.ac index 107e6ca..20e9019 100644 --- a/configure.ac +++ b/configure.ac @@ -2,6 +2,7 @@ dnl Guile-Git --- GNU Guile bindings of libgit2 dnl Copyright © 2016-2018 Erik Edrosa dnl Copyright © 2017, 2019, 2020, 2021 Ludovic Courtès dnl Copyright © 2019 Mathieu Othacehe +dnl Copyright © 2021 Maxim Cournoyer dnl dnl This file is part of Guile-Git. dnl @@ -43,15 +44,20 @@ AS_IF([test "x$LIBGIT2_LIBDIR" = "x"], [ ]) AC_SUBST([LIBGIT2_LIBDIR]) +dnl Does the 'git_remote_callbacks' struct have a 'remote_ready' field? +dnl It was added in 1.2.0, obsoleting 'resolve_url'. +AC_CHECK_MEMBER([git_remote_callbacks.remote_ready], + [HAVE_REMOTE_CALLBACKS_REMOTE_READY="#true"], + [HAVE_REMOTE_CALLBACKS_REMOTE_READY="#false"], + [[#include ]]) +AC_SUBST([HAVE_REMOTE_CALLBACKS_REMOTE_READY]) + dnl Does the 'git_remote_callbacks' struct have a 'resolve_url' field? dnl It's missing in libgit2 0.28.5, added in 1.0. -AC_CHECK_MEMBER([git_remote_callbacks.resolve_url], [], [], +AC_CHECK_MEMBER([git_remote_callbacks.resolve_url], + [HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#true"], + [HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#false"], [[#include ]]) -if test "x$ac_cv_member_git_remote_callbacks_resolve_url" = "xyes"; then - HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#true" -else - HAVE_REMOTE_CALLBACKS_RESOLVE_URL="#false" -fi AC_SUBST([HAVE_REMOTE_CALLBACKS_RESOLVE_URL]) dnl Those binaries are required for ssh authentication tests. diff --git a/git/configuration.scm.in b/git/configuration.scm.in index c45f698..64c4360 100644 --- a/git/configuration.scm.in +++ b/git/configuration.scm.in @@ -19,11 +19,17 @@ (define-module (git configuration) #:export (%libgit2 + %have-remote-callbacks-remote-ready? %have-remote-callbacks-resolve-url?)) (define %libgit2 "@LIBGIT2_LIBDIR@/libgit2") +(define %have-remote-callbacks-remote-ready? + ;; True if the 'git_remote_callbacks' struct has a + ;; 'remote_ready' field. + @HAVE_REMOTE_CALLBACKS_REMOTE_READY@) + (define %have-remote-callbacks-resolve-url? ;; True if the 'git_remote_callbacks' struct has a 'resolve_url' field. @HAVE_REMOTE_CALLBACKS_RESOLVE_URL@) diff --git a/git/structs.scm b/git/structs.scm index ca51728..be3d050 100644 --- a/git/structs.scm +++ b/git/structs.scm @@ -637,6 +637,12 @@ type to 'specified for this to take effect." (push-update-reference ,(bs:pointer uint8)) (push-negotiation ,(bs:pointer uint8)) (transport ,(bs:pointer uint8)) + + ;; Added in libgit2 1.2.0. + ,@(if %have-remote-callbacks-remote-ready? + `((remote-ready ,(bs:pointer uint8))) + '()) + (payload ,(bs:pointer uint8)) ;; libgit2 1.0 added this field, which is missing from 0.28.5, ' of different systems....Efraim Flashner 2021-05-23gnu: bootstrap: Add support for powerpc-linux....Efraim Flashner 2021-03-23Add powerpc64le-linux as a supported Guix architecture....Chris Marusich 2021-03-17maint: Check whether Guile-zlib is recent enough....Ludovic Courtès 2021-02-04build: Add '--with-channel-commit' and related configure flags....Ludovic Courtès 2020-12-11maint: Avoid macros obsolete in Autoconf 2.70....Ludovic Courtès 2020-10-22git: Require Guile-Git 0.3.0 or later....Ludovic Courtès 2020-09-08Remove (guix json) and require Guile-JSON 4.3.0+....Ludovic Courtès 2020-08-29build: Remove check for Guile 2.2.1 bug....Ludovic Courtès 2020-08-24Use "guile-zlib" and "guile-lzlib" instead of (guix config)....Mathieu Othacehe 2020-07-20ssh: Speed up RPCs by using #:nodelay....Lars-Dominik Braun 2020-05-28doc: Remove explicit support for mips64el-linux....Efraim Flashner 2020-05-28maint: Check whether Guile-Gcrypt is recent enough....Ludovic Courtès 2020-02-22build: Depend on guile-ssh 0.12.0...Lars-Dominik Braun