mirror of
https://git.in.rschanz.org/ryan77627/guix.git
synced 2025-01-23 11:09:41 -05:00
gnu: python-hiredis: Update to 2.2.2 and enable tests.
* gnu/packages/databases.scm (python-hiredis): Update to 2.2.2. [source]: Fetch via git and apply patches. [build-system]: Use pyproject-build-system. [arguments]: Enable tests. Add #:phases. [native-inputs]: New field. [inputs]: Likewise. * gnu/packages/patches/python-hiredis-fix-header.patch: New file. * gnu/packages/patches/python-hiredis-use-system-hiredis.patch: Likewise. * gnu/local.mk (dist_patch_DATA): Register them.
This commit is contained in:
parent
9956638943
commit
20fa738123
4 changed files with 155 additions and 11 deletions
|
@ -1738,6 +1738,8 @@ dist_patch_DATA = \
|
|||
%D%/packages/patches/python-docopt-pytest6-compat.patch \
|
||||
%D%/packages/patches/python-execnet-read-only-fix.patch \
|
||||
%D%/packages/patches/python-fixtures-remove-monkeypatch-test.patch \
|
||||
%D%/packages/patches/python-hiredis-fix-header.patch \
|
||||
%D%/packages/patches/python-hiredis-use-system-hiredis.patch \
|
||||
%D%/packages/patches/python-ipython-documentation-chars.patch \
|
||||
%D%/packages/patches/python-ipython-documentation-repro.patch \
|
||||
%D%/packages/patches/python-keras-integration-test.patch \
|
||||
|
|
|
@ -3904,18 +3904,29 @@ (define-public python-mysqlclient
|
|||
(define-public python-hiredis
|
||||
(package
|
||||
(name "python-hiredis")
|
||||
(version "0.2.0")
|
||||
(source
|
||||
(origin
|
||||
(method url-fetch)
|
||||
(uri (pypi-uri "hiredis" version))
|
||||
(sha256
|
||||
(base32
|
||||
"1dfm2k9l9zar9nw9fwmm74zrgraxdxs04vx9li56fjcf289qx5fa"))))
|
||||
(build-system python-build-system)
|
||||
(version "2.2.2")
|
||||
(source (origin
|
||||
(method git-fetch) ;for tests
|
||||
(uri (git-reference
|
||||
(url "https://github.com/redis/hiredis-py")
|
||||
(commit (string-append "v" version))))
|
||||
(file-name (git-file-name name version))
|
||||
(sha256
|
||||
(base32
|
||||
"066rm5m7aa8skm0a57cf45153bwmbl9yyi4s60an14hb25n947gi"))
|
||||
(patches
|
||||
(search-patches "python-hiredis-fix-header.patch"
|
||||
"python-hiredis-use-system-hiredis.patch"))))
|
||||
(build-system pyproject-build-system)
|
||||
(arguments
|
||||
;; no tests
|
||||
`(#:tests? #f))
|
||||
(list #:phases #~(modify-phases %standard-phases
|
||||
(add-before 'check 'delete-extraneous-__init__.py
|
||||
(lambda _
|
||||
;; The fix was forwarded upstream, see:
|
||||
;; https://github.com/redis/hiredis-py/pull/160.
|
||||
(delete-file "tests/__init__.py"))))))
|
||||
(native-inputs (list python-pytest))
|
||||
(inputs (list hiredis))
|
||||
(home-page "https://github.com/redis/hiredis-py")
|
||||
(synopsis "Python extension that wraps protocol parsing code in hiredis")
|
||||
(description "Python-hiredis is a python extension that wraps protocol
|
||||
|
|
49
gnu/packages/patches/python-hiredis-fix-header.patch
Normal file
49
gnu/packages/patches/python-hiredis-fix-header.patch
Normal file
|
@ -0,0 +1,49 @@
|
|||
Upstream status: https://github.com/redis/hiredis-py/pull/159
|
||||
|
||||
From c2a20695aae53de7b5160e29675344df0b805fa6 Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
Date: Sat, 18 Mar 2023 15:18:08 -0400
|
||||
Subject: [PATCH] pack: Replace sdsalloc.h with alloc.h
|
||||
|
||||
Fixes #158.
|
||||
|
||||
* src/pack.c: Replace sdsalloc.h with alloc.h.
|
||||
(pack_command): Replace s_malloc with hi_malloc.
|
||||
---
|
||||
src/pack.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/src/pack.c b/src/pack.c
|
||||
index 443e9d3..23e4004 100644
|
||||
--- a/src/pack.c
|
||||
+++ b/src/pack.c
|
||||
@@ -16,7 +16,7 @@ extern sds sdscpylen(sds s, const char *t, size_t len);
|
||||
extern sds sdsnewlen(const void *init, size_t initlen);
|
||||
#endif
|
||||
|
||||
-#include <hiredis/sdsalloc.h>
|
||||
+#include <hiredis/alloc.h>
|
||||
|
||||
PyObject *
|
||||
pack_command(PyObject *cmd)
|
||||
@@ -32,7 +32,7 @@ pack_command(PyObject *cmd)
|
||||
}
|
||||
|
||||
Py_ssize_t tokens_number = PyTuple_Size(cmd);
|
||||
- sds *tokens = s_malloc(sizeof(sds) * tokens_number);
|
||||
+ sds *tokens = hi_malloc(sizeof(sds) * tokens_number);
|
||||
if (tokens == NULL)
|
||||
{
|
||||
return PyErr_NoMemory();
|
||||
@@ -118,4 +118,4 @@ cleanup:
|
||||
sdsfreesplitres(tokens, tokens_number);
|
||||
hi_free(lengths);
|
||||
return result;
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
|
||||
base-commit: 8adb1b3cb38b82cdc73fa2d72879712da1f74e70
|
||||
--
|
||||
2.39.1
|
||||
|
82
gnu/packages/patches/python-hiredis-use-system-hiredis.patch
Normal file
82
gnu/packages/patches/python-hiredis-use-system-hiredis.patch
Normal file
|
@ -0,0 +1,82 @@
|
|||
Upstream status: https://github.com/redis/hiredis-py/pull/161
|
||||
|
||||
From 7b3c8a364f6167f4b1828dd9c48ada3d8b0786f6 Mon Sep 17 00:00:00 2001
|
||||
From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
|
||||
Date: Sat, 18 Mar 2023 21:32:21 -0400
|
||||
Subject: [PATCH] setup.py: Fallback to use the system hiredis library.
|
||||
|
||||
Fixes #158 fully, including using a system-prodived hiredis.
|
||||
|
||||
When the hiredis git submodule hasn't been initialized, print a
|
||||
message about it, and attempt to link against the a system-provided
|
||||
hiredis library instead.
|
||||
|
||||
* setup.py (is_hiredis_bundled): New procedure.
|
||||
(get_hiredis_bundled_sources): Likewise. Print a message when
|
||||
bundled_hiredis_sources is empty.
|
||||
(get_sources): Adjust to use the above procedure.
|
||||
(get_linker_args): Add -lhiredis when the bundled hiredis is not used.
|
||||
---
|
||||
setup.py | 30 +++++++++++++++++++++++++++---
|
||||
1 file changed, 27 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/setup.py b/setup.py
|
||||
index 905df59..a77aca3 100644
|
||||
--- a/setup.py
|
||||
+++ b/setup.py
|
||||
@@ -7,6 +7,7 @@ except ImportError:
|
||||
import importlib
|
||||
import glob
|
||||
import io
|
||||
+import os
|
||||
import sys
|
||||
|
||||
|
||||
@@ -17,16 +18,39 @@ def version():
|
||||
return module.__version__
|
||||
|
||||
|
||||
+def is_hiredis_bundled():
|
||||
+ hiredis_submodule = 'vendor/hiredis'
|
||||
+ if (os.path.exists(hiredis_submodule)
|
||||
+ and not os.path.isfile(hiredis_submodule)):
|
||||
+ return not os.listdir()
|
||||
+ return False
|
||||
+
|
||||
+
|
||||
+def get_hiredis_bundled_sources():
|
||||
+ hiredis_sources = ("alloc", "async", "hiredis", "net", "read",
|
||||
+ "sds", "sockcompat")
|
||||
+ if is_hiredis_bundled():
|
||||
+ return ["vendor/hiredis/%s.c" % src for src in hiredis_sources]
|
||||
+ return []
|
||||
+
|
||||
+
|
||||
+if not is_hiredis_bundled():
|
||||
+ print('the bundled hiredis sources were not found;'
|
||||
+ ' system hiredis will be used\n'
|
||||
+ 'to use the bundled hiredis sources instead,'
|
||||
+ ' run "git submodule update --init"')
|
||||
+
|
||||
+
|
||||
def get_sources():
|
||||
- hiredis_sources = ("alloc", "async", "hiredis", "net", "read", "sds", "sockcompat")
|
||||
- return sorted(glob.glob("src/*.c") + ["vendor/hiredis/%s.c" % src for src in hiredis_sources])
|
||||
+ return sorted(glob.glob("src/*.c") + get_hiredis_bundled_sources())
|
||||
|
||||
|
||||
def get_linker_args():
|
||||
if 'win32' in sys.platform or 'darwin' in sys.platform:
|
||||
return []
|
||||
else:
|
||||
- return ["-Wl,-Bsymbolic", ]
|
||||
+ return ["-Wl,-Bsymbolic", ] + \
|
||||
+ ['-lhiredis'] if not is_hiredis_bundled() else []
|
||||
|
||||
|
||||
def get_compiler_args():
|
||||
|
||||
base-commit: 8adb1b3cb38b82cdc73fa2d72879712da1f74e70
|
||||
--
|
||||
2.39.1
|
||||
|
Loading…
Reference in a new issue