Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
home:darix:apps
python-hiredis
161-use-system-hiredis.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 161-use-system-hiredis.patch of Package python-hiredis
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():
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor