the upstream provided (gh#redis/hiredis-py!161) 161-use-system-hiredis.patch for proper use of the system hiredis library. OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-hiredis?expand=0&rev=17
73 lines
2.2 KiB
Diff
73 lines
2.2 KiB
Diff
From dacfaf17e3a8383d7a6cc377cf99b44770b04d06 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-provided 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 | 29 ++++++++++++++++++++++++++---
|
|
1 file changed, 26 insertions(+), 3 deletions(-)
|
|
|
|
--- 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,38 @@ 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"))
|
|
+ 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():
|