From b2c1a651fac68ffdcdb5d82988bd0666c644a9ce Mon Sep 17 00:00:00 2001 From: Chuang Zhu Date: Tue, 18 Oct 2022 13:42:45 +0800 Subject: [PATCH] python310Packages.py-libzfs: init at 22.02.4 --- .../python-modules/py-libzfs/default.nix | 44 +++++++++++++++++++ pkgs/top-level/python-packages.nix | 2 + 2 files changed, 46 insertions(+) create mode 100644 pkgs/development/python-modules/py-libzfs/default.nix diff --git a/pkgs/development/python-modules/py-libzfs/default.nix b/pkgs/development/python-modules/py-libzfs/default.nix new file mode 100644 index 000000000000..21663ba80238 --- /dev/null +++ b/pkgs/development/python-modules/py-libzfs/default.nix @@ -0,0 +1,44 @@ +{ lib +, stdenv +, buildPythonPackage +, fetchFromGitHub +, cython +, zfs +}: + +buildPythonPackage rec { + pname = "py-libzfs"; + version = "22.02.4"; + + src = fetchFromGitHub { + owner = "truenas"; + repo = pname; + rev = "TS-${version}"; + sha256 = "sha256-BJG+cw07Qu4aL99pVKNd7JAgr+w/6Uv2eI46EB615/I="; + }; + + nativeBuildInputs = [ cython ]; + buildInputs = [ zfs ]; + + # Passing CFLAGS in configureFlags does not work, see https://github.com/truenas/py-libzfs/issues/107 + postPatch = lib.optionalString stdenv.isLinux '' + substituteInPlace configure \ + --replace \ + 'CFLAGS="-DCYTHON_FALLTHROUGH"' \ + 'CFLAGS="-DCYTHON_FALLTHROUGH -I${zfs.dev}/include/libzfs -I${zfs.dev}/include/libspl"' \ + --replace 'zof=false' 'zof=true' + ''; + + pythonImportsCheck = [ "libzfs" ]; + + meta = with lib; { + description = "Python libzfs bindings"; + homepage = "https://github.com/truenas/py-libzfs"; + license = licenses.bsd2; + maintainers = with maintainers; [ chuangzhu ]; + # The project also supports macOS (OpenZFS on OSX, O3X), FreeBSD and OpenSolaris + # I don't have a machine to test out, thus only packaged for Linux + platforms = platforms.linux; + }; +} + diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5823cd11d4ac..dca0da1f3061 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8111,6 +8111,8 @@ in { pylitterbot = callPackage ../development/python-modules/pylitterbot { }; + py-libzfs = callPackage ../development/python-modules/py-libzfs { }; + py-lru-cache = callPackage ../development/python-modules/py-lru-cache { }; pylnk3 = callPackage ../development/python-modules/pylnk3 { };