mirror of
https://gitlab.alpinelinux.org/alpine/aports.git
synced 2025-07-16 20:55:20 +03:00
works around a bug in abuild where apk info --who-owns on the .so files returns -stage0 (the package name of this bootstrap), which then adds it to the depends of pypy, which makes it uninstallable as they cannot be pulled in at the same time. like this, it will instead add pypy-bootstrap, which will be resolved by itself.
45 lines
1.8 KiB
Text
45 lines
1.8 KiB
Text
diff -ru Python-2.7.12.orig/Lib/ctypes/util.py Python-2.7.12/Lib/ctypes/util.py
|
|
--- Python-2.7.12.orig/Lib/ctypes/util.py 2016-06-26 00:49:30.000000000 +0300
|
|
+++ Python-2.7.12/Lib/ctypes/util.py 2016-11-03 16:05:46.954665040 +0200
|
|
@@ -204,6 +204,41 @@
|
|
def find_library(name, is64 = False):
|
|
return _get_soname(_findLib_crle(name, is64) or _findLib_gcc(name))
|
|
|
|
+ elif True:
|
|
+
|
|
+ # Patched for Alpine Linux / musl - search manually system paths
|
|
+ def _is_elf(filepath):
|
|
+ try:
|
|
+ with open(filepath, 'rb') as fh:
|
|
+ return fh.read(4) == b'\x7fELF'
|
|
+ except:
|
|
+ return False
|
|
+
|
|
+ def find_library(name):
|
|
+ from glob import glob
|
|
+ # absolute name?
|
|
+ if os.path.isabs(name):
|
|
+ return name
|
|
+ # special case for libm, libcrypt and libpthread and musl
|
|
+ if name in ['m', 'crypt', 'pthread']:
|
|
+ name = 'c'
|
|
+ elif name in ['libm.so', 'libcrypt.so', 'libpthread.so']:
|
|
+ name = 'libc.so'
|
|
+ # search in standard locations (musl order)
|
|
+ paths = ['/lib', '/usr/local/lib', '/usr/lib']
|
|
+ if 'LD_LIBRARY_PATH' in os.environ:
|
|
+ paths = os.environ['LD_LIBRARY_PATH'].split(':') + paths
|
|
+ for d in paths:
|
|
+ f = os.path.join(d, name)
|
|
+ if _is_elf(f):
|
|
+ return os.path.basename(f)
|
|
+
|
|
+ prefix = os.path.join(d, 'lib'+name)
|
|
+ for suffix in ['.so', '.so.*']:
|
|
+ for f in glob('{0}{1}'.format(prefix, suffix)):
|
|
+ if _is_elf(f):
|
|
+ return os.path.basename(f)
|
|
+
|
|
else:
|
|
|
|
def _findSoname_ldconfig(name):
|