commit:     3a6516ace7f757905a3a1e14fe68d61e29faac11
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 28 05:52:57 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Tue Sep 28 06:20:44 2021 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3a6516ac

dev-python/pygit2: Enable libgit2 1.2.0 support

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 .../pygit2/files/pygit2-1.6.1-libgit2-1.2.0.patch  | 48 ++++++++++++++++++++++
 dev-python/pygit2/pygit2-1.6.1-r2.ebuild           | 45 ++++++++++++++++++++
 2 files changed, 93 insertions(+)

diff --git a/dev-python/pygit2/files/pygit2-1.6.1-libgit2-1.2.0.patch 
b/dev-python/pygit2/files/pygit2-1.6.1-libgit2-1.2.0.patch
new file mode 100644
index 00000000000..d3e097ba62b
--- /dev/null
+++ b/dev-python/pygit2/files/pygit2-1.6.1-libgit2-1.2.0.patch
@@ -0,0 +1,48 @@
+From dcde9eff5950492ab0d2565a07fd18d765332a96 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?J=2E=20David=20Ib=C3=A1=C3=B1ez?= <[email protected]>
+Date: Thu, 16 Sep 2021 11:19:04 +0200
+Subject: [PATCH] Upgrade to libgit2 1.2
+
+Closes #1089
+---
+ Makefile                         |  2 +-
+ build.sh                         | 14 +++++++-------
+ pygit2/decl/remote.h             |  2 ++
+ src/types.h                      |  4 ++--
+ 10 files changed, 29 insertions(+), 25 deletions(-)
+
+diff --git a/pygit2/decl/remote.h b/pygit2/decl/remote.h
+index 
ff84371c3e1ce81a7e9914d4d4592638f41376bb..4e912c065cd6eaf19ef6d0304b0fd8f646edbff4
 100644
+--- a/pygit2/decl/remote.h
++++ b/pygit2/decl/remote.h
+@@ -23,6 +23,7 @@ typedef struct {
+
+ typedef int (*git_push_negotiation)(const git_push_update **updates, size_t 
len, void *payload);
+ typedef int (*git_push_update_reference_cb)(const char *refname, const char 
*status, void *data);
++typedef int (*git_remote_ready_cb)(git_remote *remote, int direction, void 
*payload);
+ typedef int (*git_url_resolve_cb)(git_buf *url_resolved, const char *url, int 
direction, void *payload);
+
+ struct git_remote_callbacks {
+@@ -38,6 +39,7 @@ struct git_remote_callbacks {
+       git_push_update_reference_cb push_update_reference;
+       git_push_negotiation push_negotiation;
+       git_transport_cb transport;
++      git_remote_ready_cb remote_ready;
+       void *payload;
+       git_url_resolve_cb resolve_url;
+ };
+diff --git a/src/types.h b/src/types.h
+index 
ff967b81f76688f8f0958638d99a06f7bbacb99c..89ad3a00149a1326c3edfa20d2d69d629cb1d2a2
 100644
+--- a/src/types.h
++++ b/src/types.h
+@@ -32,8 +32,8 @@
+ #include <Python.h>
+ #include <git2.h>
+
+-#if !(LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR == 1)
+-#error You need a compatible libgit2 version (1.1.x)
++#if !(LIBGIT2_VER_MAJOR == 1 && LIBGIT2_VER_MINOR == 2)
++#error You need a compatible libgit2 version (1.2.x)
+ #endif
+
+ /*

diff --git a/dev-python/pygit2/pygit2-1.6.1-r2.ebuild 
b/dev-python/pygit2/pygit2-1.6.1-r2.ebuild
new file mode 100644
index 00000000000..fa7f6c1fbf6
--- /dev/null
+++ b/dev-python/pygit2/pygit2-1.6.1-r2.ebuild
@@ -0,0 +1,45 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+inherit distutils-r1
+
+DESCRIPTION="Python bindings for libgit2"
+HOMEPAGE="https://github.com/libgit2/pygit2 https://pypi.org/project/pygit2/";
+SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz"
+
+LICENSE="GPL-2-with-linking-exception"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+       =dev-libs/libgit2-1.2*:=
+       dev-python/cached-property[${PYTHON_USEDEP}]
+       >=dev-python/cffi-1.0:=[${PYTHON_USEDEP}]
+"
+DEPEND="${RDEPEND}"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+       local PATCHES=(
+               "${FILESDIR}"/${P}-libgit2-1.2.0.patch
+       )
+
+       distutils-r1_src_prepare
+
+       # unconditionally prevent it from using network
+       sed -i -e '/has_network/s:True:False:' test/utils.py || die
+
+       # we need to move them away to prevent pytest from forcing '..'
+       # for imports
+       mkdir hack || die
+       mv test hack/ || die
+       ln -s hack/test test || die
+}
+
+python_test() {
+       epytest hack/test
+}

Reply via email to