pythonPackages.cocotb: Ensure the required dynamic libraries are stated

cocotb uses dlopen so that it's dynamic libraries are python version
agnostic. Here we patch its dynamic libraries to make sure the correct
libpython is found and used.
This commit is contained in:
Hugo McNally
2026-01-05 11:27:07 +00:00
parent 686c736c3e
commit 794348a645
@@ -4,6 +4,7 @@
fetchFromGitHub,
setuptools,
setuptools-scm,
python,
cocotb-bus,
find-libpython,
pytestCheckHook,
@@ -46,6 +47,14 @@ buildPythonPackage rec {
substituteInPlace setup.py --replace "'cocotb-bus<1.0'" ""
'';
# cocotb uses dlopen so that it's dynamic libraries are python version agnostic.
# Here we patch its dynamic libraries to make sure the correct libpython is found and used.
preFixup = lib.optionalString stdenv.hostPlatform.isLinux ''
for lib in $out/lib/python*/site-packages/cocotb/libs/*.so; do
patchelf --add-rpath ${python}/lib --add-needed libpython3.so $lib
done
'';
disabledTests = [
# https://github.com/cocotb/cocotb/commit/425e1edb8e7133f4a891f2f87552aa2748cd8d2c#diff-4df986cbc2b1a3f22172caea94f959d8fcb4a128105979e6e99c68139469960cL33
"test_cocotb"