about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/python-modules/pyeclib/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/python-modules/pyeclib/default.nix')
-rw-r--r--nixpkgs/pkgs/development/python-modules/pyeclib/default.nix35
1 files changed, 35 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/python-modules/pyeclib/default.nix b/nixpkgs/pkgs/development/python-modules/pyeclib/default.nix
new file mode 100644
index 000000000000..2c4169ea73ca
--- /dev/null
+++ b/nixpkgs/pkgs/development/python-modules/pyeclib/default.nix
@@ -0,0 +1,35 @@
+{ lib, buildPythonPackage, fetchPypi, liberasurecode, six }:
+
+buildPythonPackage rec {
+  pname = "pyeclib";
+  version = "1.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "sha256-gBHjHuia5/uZymkWZgyH4BCEZqmWK9SXowAQIJdOO7E=";
+  };
+
+  postPatch = ''
+    # patch dlopen call
+    substituteInPlace src/c/pyeclib_c/pyeclib_c.c \
+      --replace "liberasurecode.so" "${liberasurecode}/lib/liberasurecode.so"
+  '';
+
+  preBuild = ''
+    # required for the custom find_library function in setup.py
+    export LD_LIBRARY_PATH="${lib.makeLibraryPath [ liberasurecode ]}"
+  '';
+
+  buildInputs = [ liberasurecode ];
+
+  checkInputs = [ six ];
+
+  pythonImportsCheck = [ "pyeclib" ];
+
+  meta = with lib; {
+    description = "This library provides a simple Python interface for implementing erasure codes.";
+    homepage = "https://github.com/openstack/pyeclib";
+    license = licenses.bsd2;
+    maintainers = teams.openstack.members;
+  };
+}