* 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.
		
			
				
	
	
		
			82 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
	
		
			2.5 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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
 | |
| 
 |