{ lib, stdenv, libsigrok, toPythonModule, python, autoreconfHook, pythonImportsCheckHook, pythonCatchConflictsHook, swig, setuptools, numpy, pygobject3, }: # build libsigrok plus its Python bindings. Unfortunately it does not appear # to be possible to build them separately, at least not easily. toPythonModule ( (libsigrok.override { inherit python; }).overrideAttrs (orig: { pname = "${python.libPrefix}-sigrok"; patches = orig.patches or [ ] ++ [ # Makes libsigrok install the bindings into site-packages properly (like # we expect) instead of making a version-specific *.egg subdirectory. ./python-install.patch ]; nativeBuildInputs = orig.nativeBuildInputs or [ ] ++ [ autoreconfHook setuptools swig numpy ] ++ lib.optionals (stdenv.hostPlatform == stdenv.buildPlatform) [ pythonImportsCheckHook pythonCatchConflictsHook ]; buildInputs = orig.buildInputs or [ ] ++ [ pygobject3 # makes headers available the configure script checks for ]; propagatedBuildInputs = orig.propagatedBuildInputs or [ ] ++ [ pygobject3 numpy ]; postInstall = '' ${orig.postInstall or ""} # for pythonImportsCheck export PYTHONPATH="$out/${python.sitePackages}:$PYTHONPATH" ''; pythonImportsCheck = [ "sigrok" "sigrok.core" ]; meta = orig.meta // { description = "Python bindings for libsigrok"; maintainers = orig.meta.maintainers ++ [ lib.maintainers.sternenseemann ]; }; }) )