python3Packages.sigrok: init at 0.5.1
python*Packages.sigrok is a version of libsigrok which additionally builds its python bindings. Sadly bindings and package don't seem to be buildable independently of each other without a lot of patching. The main thing we need to do is patch Makefile.am to pass --single-version-externally-managed, so the installed sigrok module ends up in PYTHONPATH properly.
This commit is contained in:
parent
97052019cd
commit
b876a7e549
62
pkgs/development/python-modules/sigrok/default.nix
Normal file
62
pkgs/development/python-modules/sigrok/default.nix
Normal file
|
@ -0,0 +1,62 @@
|
|||
{ 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
|
||||
];
|
||||
};
|
||||
}))
|
16
pkgs/development/python-modules/sigrok/python-install.patch
Normal file
16
pkgs/development/python-modules/sigrok/python-install.patch
Normal file
|
@ -0,0 +1,16 @@
|
|||
diff --git a/Makefile.am b/Makefile.am
|
||||
index 280cf64d..e10eb79f 100644
|
||||
--- a/Makefile.am
|
||||
+++ b/Makefile.am
|
||||
@@ -888,8 +888,9 @@ $(PDIR)/timestamp: $(PDIR)/sigrok/core/classes.i \
|
||||
|
||||
python-install:
|
||||
$(AM_V_at)$(MKDIR_P) "$(DESTDIR)$(prefix)" "$(DESTDIR)$(exec_prefix)"
|
||||
- destdir='$(DESTDIR)'; $(setup_py) install $${destdir:+"--root=$$destdir"} \
|
||||
- --prefix "$(prefix)" --exec-prefix "$(exec_prefix)"
|
||||
+ destdir='$(DESTDIR)'; $(setup_py) install --root=$${destdir:-/} \
|
||||
+ --prefix "$(prefix)" --exec-prefix "$(exec_prefix)" \
|
||||
+ --single-version-externally-managed
|
||||
|
||||
python-clean:
|
||||
-$(AM_V_at)rm -f $(PDIR)/timestamp
|
|
@ -8925,6 +8925,8 @@ in {
|
|||
|
||||
signedjson = callPackage ../development/python-modules/signedjson { };
|
||||
|
||||
sigrok = callPackage ../development/python-modules/sigrok { };
|
||||
|
||||
sigtools = callPackage ../development/python-modules/sigtools { };
|
||||
|
||||
simanneal = callPackage ../development/python-modules/simanneal { };
|
||||
|
|
Loading…
Reference in a new issue