nixpkgs/pkgs/development/python-modules/sounddevice/fix-portaudio-library-path.patch
2026-06-29 17:39:31 +02:00

42 lines
1.4 KiB
Diff

diff --git a/src/sounddevice.py b/src/sounddevice.py
index 00fc6f8..72abede 100644
--- a/src/sounddevice.py
+++ b/src/sounddevice.py
@@ -59,36 +59,7 @@
from _sounddevice import ffi as _ffi
-try:
- for _libname in (
- 'portaudio', # Default name on POSIX systems
- 'bin\\libportaudio-2.dll', # DLL from conda-forge
- 'lib/libportaudio.dylib', # dylib from anaconda
- ):
- _libname = _find_library(_libname)
- if _libname is not None:
- break
- else:
- raise OSError('PortAudio library not found')
- _lib: ... = _ffi.dlopen(_libname)
-except OSError:
- if _platform.system() == 'Darwin':
- _libname = 'libportaudio.dylib'
- elif _platform.system() == 'Windows':
- if _platform.machine().lower() in ('arm64', 'aarch64'):
- _platform_suffix = 'arm64'
- else:
- _platform_suffix = _platform.architecture()[0]
- if 'SD_ENABLE_ASIO' in _os.environ:
- _libname = 'libportaudio' + _platform_suffix + '-asio.dll'
- else:
- _libname = 'libportaudio' + _platform_suffix + '.dll'
- else:
- raise
- import _sounddevice_data
- _libname = _os.path.join(
- next(iter(_sounddevice_data.__path__)), 'portaudio-binaries', _libname)
- _lib: ... = _ffi.dlopen(_libname)
+_lib: ... = _ffi.dlopen('@portaudio@')
_sampleformats: ... = {
'float32': _lib.paFloat32,