diff options
Diffstat (limited to 'gnu/packages/patches/python-hiredis-use-system-hiredis.patch')
-rw-r--r-- | gnu/packages/patches/python-hiredis-use-system-hiredis.patch | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/gnu/packages/patches/python-hiredis-use-system-hiredis.patch b/gnu/packages/patches/python-hiredis-use-system-hiredis.patch new file mode 100644 index 0000000000..622f049da7 --- /dev/null +++ b/gnu/packages/patches/python-hiredis-use-system-hiredis.patch @@ -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 + |