diff --git a/openslide/python.nix b/openslide/python.nix deleted file mode 100644 index 67d47cb..0000000 --- a/openslide/python.nix +++ /dev/null @@ -1,39 +0,0 @@ -with import {}; - -let - - openslide = import ./default.nix; - -in - - python27Packages.buildPythonPackage rec { - version = "1.1.1"; - name = "openslide-python-${version}"; - - src = fetchFromGitHub { - owner = "openslide"; - repo = "openslide-python"; - rev = "v${version}"; - sha256 = "1is8g8vy8s1xgfw8q76gdx8ygwvj56cl0vxfd3lx0iys15wzs7a4"; - }; - - patches = [ ./zero-size-test-skip.patch ]; - - postPatch = '' - sed -i 's|LoadLibrary('\'''libopenslide.so.0'\''')|LoadLibrary('\'''${openslide}/lib/libopenslide.so.0'\''')|' openslide/lowlevel.py - ''; - - buildInputs = [ - openslide - ]; - - propagatedBuildInputs = [ - python27Packages.pillow - ]; - - meta = { - homepage = "http://openslide.org"; - description = "Python bindings for OpenSlide."; - license = licenses.lgpl2; - }; - } diff --git a/pkgs/all-packages.nix b/pkgs/all-packages.nix index 78c1e2f..44e81af 100644 --- a/pkgs/all-packages.nix +++ b/pkgs/all-packages.nix @@ -7,4 +7,8 @@ self: pkgs: with pkgs; { meraculous = callPackage ./meraculous.nix { }; openfoam = callPackage ./openfoam.nix { }; + + openslide = callPackage ./openslide { }; + openslide-python = callPackage ./openslide/python.nix { }; } + diff --git a/openslide/default.nix b/pkgs/openslide/default.nix similarity index 64% rename from openslide/default.nix rename to pkgs/openslide/default.nix index 8ea04eb..cb25295 100644 --- a/openslide/default.nix +++ b/pkgs/openslide/default.nix @@ -1,4 +1,5 @@ -with import { }; +{ stdenv, autoreconfHook, pkgconfig, fetchFromGitHub +, zlib, openjpeg, libtiff, cairo, libpng, gdk_pixbuf, libxml2, sqlite }: stdenv.mkDerivation rec { version = "3.4.1"; @@ -24,6 +25,11 @@ stdenv.mkDerivation rec { sqlite ]; + # Not sure why this Windows test isn't failing under Linux + postPatch = '' + sed -i -e 's|AM_CONDITIONAL(\[WINDOWS_RESOURCES\], \[test x$RC != x\])|AM_CONDITIONAL([WINDOWS_RESOURCES], [false])|' configure.ac + ''; + meta = with stdenv.lib; { homepage = http://openslide.org; description = "A C library that provides a simple interface to read whole-slide images."; diff --git a/pkgs/openslide/python.nix b/pkgs/openslide/python.nix new file mode 100644 index 0000000..8d0a7ce --- /dev/null +++ b/pkgs/openslide/python.nix @@ -0,0 +1,34 @@ +{ lib, fetchFromGitHub +, python27Packages, openslide }: + +python27Packages.buildPythonPackage rec { + version = "1.1.1"; + name = "openslide-python-${version}"; + + src = fetchFromGitHub { + owner = "openslide"; + repo = "openslide-python"; + rev = "v${version}"; + sha256 = "1is8g8vy8s1xgfw8q76gdx8ygwvj56cl0vxfd3lx0iys15wzs7a4"; + }; + + patches = [ ./zero-size-test-skip.patch ]; + + postPatch = '' + sed -i 's|LoadLibrary('\'''libopenslide.so.0'\''')|LoadLibrary('\'''${openslide}/lib/libopenslide.so.0'\''')|' openslide/lowlevel.py + ''; + + buildInputs = [ + openslide + ]; + + propagatedBuildInputs = [ + python27Packages.pillow + ]; + + meta = with lib; { + homepage = "http://openslide.org"; + description = "Python bindings for OpenSlide."; + license = licenses.lgpl2; + }; +} diff --git a/openslide/zero-size-test-skip.patch b/pkgs/openslide/zero-size-test-skip.patch similarity index 100% rename from openslide/zero-size-test-skip.patch rename to pkgs/openslide/zero-size-test-skip.patch