commit:     38fd2191f8e4fe49055e5dd4aea3e4815ad114c4
Author:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
AuthorDate: Sun Apr  2 18:29:02 2023 +0000
Commit:     Bernard Cafarelli <voyageur <AT> gentoo <DOT> org>
CommitDate: Sun Apr  2 18:29:54 2023 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=38fd2191

app-backup/rdiff-backup: backport py3.11 support to current stable

2.2 changes a few things, so will move to stable a bit later

Closes: https://bugs.gentoo.org/903135
Signed-off-by: Bernard Cafarelli <voyageur <AT> gentoo.org>

 .../files/rdiff-backup-2.0.5-py311.patch           | 42 ++++++++++++++++++++++
 .../rdiff-backup/rdiff-backup-2.0.5-r1.ebuild      |  1 +
 2 files changed, 43 insertions(+)

diff --git a/app-backup/rdiff-backup/files/rdiff-backup-2.0.5-py311.patch 
b/app-backup/rdiff-backup/files/rdiff-backup-2.0.5-py311.patch
new file mode 100644
index 000000000000..87531ca7c4a6
--- /dev/null
+++ b/app-backup/rdiff-backup/files/rdiff-backup-2.0.5-py311.patch
@@ -0,0 +1,42 @@
+From 5e5cc54b5a633d3c6c0469283b2f26dbdde7908f Mon Sep 17 00:00:00 2001
+From: Frank Crawford <fr...@crawford.emu.id.au>
+Date: Sun, 2 Jan 2022 18:44:57 +1100
+Subject: [PATCH] Added patch for Python3.11 as per bpo-39573.
+
+---
+ src/_librsyncmodule.c | 15 +++++++++++++--
+ 1 file changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/src/_librsyncmodule.c b/src/_librsyncmodule.c
+index a46567fc4..158104d2e 100644
+--- a/src/_librsyncmodule.c
++++ b/src/_librsyncmodule.c
+@@ -25,6 +25,16 @@
+ #include <librsync.h>
+ #define RSM_JOB_BLOCKSIZE 65536
+ 
++/* ----------------------------------------------------------------------- *
++ * Update for Python 3.11 - Contributed by Victor Stinner in bpo-39573.
++ * Compatibility macro for older Python versions.
++ * ----------------------------------------------------------------------- */
++#if PY_VERSION_HEX < 0x030900A4 && !defined(Py_SET_TYPE)
++static inline void _Py_SET_TYPE(PyObject *ob, PyTypeObject *type)
++{ ob->ob_type = type; }
++#define Py_SET_TYPE(ob, type) _Py_SET_TYPE((PyObject*)(ob), type)
++#endif
++
+ static PyObject *librsyncError;
+ 
+ /* Sets python error string from result */
+@@ -540,8 +550,9 @@ PyMODINIT_FUNC PyInit__librsync(void)
+ {
+   PyObject *m, *d;
+ 
+-  Py_TYPE(&_librsync_SigMakerType) = &PyType_Type;
+-  Py_TYPE(&_librsync_DeltaMakerType) = &PyType_Type;
++  /* Update for Python 3.11 - bpo-39573. */
++  Py_SET_TYPE(&_librsync_SigMakerType, &PyType_Type);
++  Py_SET_TYPE(&_librsync_DeltaMakerType, &PyType_Type);
+   static struct PyModuleDef librsync_def = {
+             PyModuleDef_HEAD_INIT, "_librsync", "RSync Lib", -1, 
_librsyncMethods, };
+   m = PyModule_Create(&librsync_def);

diff --git a/app-backup/rdiff-backup/rdiff-backup-2.0.5-r1.ebuild 
b/app-backup/rdiff-backup/rdiff-backup-2.0.5-r1.ebuild
index fc69bee691f8..8c9cb96bac99 100644
--- a/app-backup/rdiff-backup/rdiff-backup-2.0.5-r1.ebuild
+++ b/app-backup/rdiff-backup/rdiff-backup-2.0.5-r1.ebuild
@@ -26,6 +26,7 @@ RDEPEND="dev-python/pylibacl[${PYTHON_USEDEP}]
 
 PATCHES=(
        "${FILESDIR}/${PN}-2.0.3-no-docs.patch"
+       "${FILESDIR}/${P}-py311.patch"
 )
 
 python_install_all() {

Reply via email to