diff --git a/pkgs/tools/misc/hdf5/1.10.nix b/pkgs/tools/misc/hdf5/1.10.nix new file mode 100644 index 00000000000..1a972daf610 --- /dev/null +++ b/pkgs/tools/misc/hdf5/1.10.nix @@ -0,0 +1,50 @@ +{ lib, stdenv +, fetchurl +, removeReferencesTo +, zlib ? null +, enableShared ? !stdenv.hostPlatform.isStatic +}: + +let inherit (lib) optional optionals; in + +stdenv.mkDerivation rec { + version = "1.10.7"; + pname = "hdf5"; + src = fetchurl { + url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-${lib.versions.majorMinor version}/${pname}-${version}/src/${pname}-${version}.tar.bz2"; + sha256 = "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082"; + }; + + outputs = [ "out" "dev" ]; + + nativeBuildInputs = [ removeReferencesTo ]; + + propagatedBuildInputs = optional (zlib != null) zlib; + + configureFlags = optional enableShared "--enable-shared"; + + patches = [ + ./bin-mv.patch + ]; + + postInstall = '' + find "$out" -type f -exec remove-references-to -t ${stdenv.cc} '{}' + + moveToOutput 'bin/h5cc' "''${!outputDev}" + moveToOutput 'bin/h5c++' "''${!outputDev}" + moveToOutput 'bin/h5fc' "''${!outputDev}" + moveToOutput 'bin/h5pcc' "''${!outputDev}" + ''; + + meta = { + description = "Data model, library, and file format for storing and managing data"; + longDescription = '' + HDF5 supports an unlimited variety of datatypes, and is designed for flexible and efficient + I/O and for high volume and complex data. HDF5 is portable and is extensible, allowing + applications to evolve in their use of HDF5. The HDF5 Technology suite includes tools and + applications for managing, manipulating, viewing, and analyzing data in the HDF5 format. + ''; + license = lib.licenses.bsd3; # Lawrence Berkeley National Labs BSD 3-Clause variant + homepage = "https://www.hdfgroup.org/HDF5/"; + platforms = lib.platforms.unix; + }; +} diff --git a/pkgs/tools/misc/hdf5/default.nix b/pkgs/tools/misc/hdf5/default.nix index 712fae7f71f..37ebbe630ca 100644 --- a/pkgs/tools/misc/hdf5/default.nix +++ b/pkgs/tools/misc/hdf5/default.nix @@ -10,6 +10,7 @@ , enableShared ? !stdenv.hostPlatform.isStatic , javaSupport ? false , jdk +, usev110Api ? false }: # cpp and mpi options are mutually exclusive @@ -50,7 +51,8 @@ stdenv.mkDerivation rec { ++ optional (szip != null) "--with-szlib=${szip}" ++ optionals mpiSupport ["--enable-parallel" "CC=${mpi}/bin/mpicc"] ++ optional enableShared "--enable-shared" - ++ optional javaSupport "--enable-java"; + ++ optional javaSupport "--enable-java" + ++ optional usev110Api "--with-default-api-version=v110"; patches = [ ./bin-mv.patch diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 1c62b787e0d..cb4fdf06a71 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5330,6 +5330,8 @@ in szip = null; }; + hdf5_1_10 = callPackage ../tools/misc/hdf5/1.10.nix { }; + hdf5-mpi = appendToName "mpi" (hdf5.override { szip = null; mpiSupport = true; @@ -17659,7 +17661,9 @@ in inherit (llvmPackages) openmp; }; - vigra = callPackage ../development/libraries/vigra { }; + vigra = callPackage ../development/libraries/vigra { + hdf5 = hdf5.override { usev110Api = true; }; + }; vlock = callPackage ../misc/screensavers/vlock { }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index bdcf445b076..7ff9ae6eca6 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -8149,9 +8149,13 @@ in { tableaudocumentapi = callPackage ../development/python-modules/tableaudocumentapi { }; tables = if isPy3k then - callPackage ../development/python-modules/tables { } + callPackage ../development/python-modules/tables { + hdf5 = pkgs.hdf5_1_10; + } else - callPackage ../development/python-modules/tables/3.5.nix { }; + callPackage ../development/python-modules/tables/3.5.nix { + hdf5 = pkgs.hdf5_1_10; + }; tablib = callPackage ../development/python-modules/tablib { };