From cce12a644c8a4c5d540c6d30bba1fabff60e57db Mon Sep 17 00:00:00 2001 From: Josef Kemetmueller Date: Tue, 23 May 2017 20:53:04 +0200 Subject: [PATCH 1/2] hdf4: Init at 4.2.12 --- pkgs/tools/misc/hdf4/default.nix | 76 ++++++++++++++++++++++++++++++++ pkgs/top-level/all-packages.nix | 2 + 2 files changed, 78 insertions(+) create mode 100644 pkgs/tools/misc/hdf4/default.nix diff --git a/pkgs/tools/misc/hdf4/default.nix b/pkgs/tools/misc/hdf4/default.nix new file mode 100644 index 000000000000..a227030f0bc4 --- /dev/null +++ b/pkgs/tools/misc/hdf4/default.nix @@ -0,0 +1,76 @@ +{ stdenv +, fetchurl +, cmake +, libjpeg +, szip +, zlib +}: + +stdenv.mkDerivation rec { + name = "hdf-${version}"; + version = "4.2.12"; + src = fetchurl { + url = "https://support.hdfgroup.org/ftp/HDF/releases/HDF${version}/src/hdf-${version}.tar.bz2"; + sha256 = "020jh563sjyxsgml8l809d2i1d4ms9shivwj3gbm7n0ilxbll8id"; + }; + + buildInputs = [ + cmake + libjpeg + szip + zlib + ]; + + preConfigure = "export SZIP_INSTALL=${szip}"; + + cmakeFlags = [ + "-DBUILD_SHARED_LIBS=ON" + "-DBUILD_TESTING=ON" + "-DHDF4_BUILD_TOOLS=ON" + "-DHDF4_BUILD_UTILS=ON" + "-DHDF4_BUILD_WITH_INSTALL_NAME=OFF" + "-DHDF4_ENABLE_JPEG_LIB_SUPPORT=ON" + "-DHDF4_ENABLE_NETCDF=OFF" + "-DHDF4_ENABLE_SZIP_ENCODING=ON" + "-DHDF4_ENABLE_SZIP_SUPPORT=ON" + "-DHDF4_ENABLE_Z_LIB_SUPPORT=ON" + "-DHDF4_BUILD_FORTRAN=OFF" + "-DJPEG_DIR=${libjpeg}" + ]; + + doCheck = true; + + preCheck = '' + export LD_LIBRARY_PATH=$(pwd)/bin + '' + stdenv.lib.optionalString (stdenv.isDarwin) '' + export DYLD_LIBRARY_PATH=$(pwd)/bin + ''; + + excludedTests = [ + "MFHDF_TEST-hdftest" + "MFHDF_TEST-hdftest-shared" + "HDP-dumpsds-18" + "NC_TEST-nctest" + ]; + + checkPhase = let excludedTestsRegex = if (excludedTests != []) + then "(" + (stdenv.lib.concatStringsSep "|" excludedTests) + ")" + else ""; in '' + runHook preCheck + ctest -E "${excludedTestsRegex}" --output-on-failure + runHook postCheck + ''; + + outputs = [ "bin" "dev" "out" ]; + + postInstall = '' + moveToOutput bin "$bin" + ''; + + meta = { + description = "Data model, library, and file format for storing and managing data"; + homepage = https://support.hdfgroup.org/products/hdf4/; + maintainers = with stdenv.lib.maintainers; [ knedlsepp ]; + platforms = stdenv.lib.platforms.unix; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e4ed1329f9f2..fd8aa98c0dc2 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -2277,6 +2277,8 @@ with pkgs; hddtemp = callPackage ../tools/misc/hddtemp { }; + hdf4 = callPackage ../tools/misc/hdf4 { }; + hdf5 = callPackage ../tools/misc/hdf5 { gfortran = null; szip = null; From 7b25d31825efa3a05ad76277c9042f86f918d5ef Mon Sep 17 00:00:00 2001 From: Josef Kemetmueller Date: Wed, 24 May 2017 00:27:03 +0200 Subject: [PATCH 2/2] gdal: Add hdf4 support --- pkgs/development/libraries/gdal/default.nix | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/gdal/default.nix b/pkgs/development/libraries/gdal/default.nix index 7e296fb9d06e..07f370b42100 100644 --- a/pkgs/development/libraries/gdal/default.nix +++ b/pkgs/development/libraries/gdal/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, composableDerivation, unzip, libjpeg, libtiff, zlib , postgresql, mysql, libgeotiff, pythonPackages, proj, geos, openssl -, libpng, sqlite, libspatialite, poppler +, libpng, sqlite, libspatialite, poppler, hdf4 , libiconv , netcdfSupport ? true, netcdf, hdf5 , curl }: @@ -17,15 +17,20 @@ composableDerivation.composableDerivation {} (fixed: rec { }; buildInputs = [ unzip libjpeg libtiff libpng proj openssl sqlite - libspatialite poppler ] + libspatialite poppler hdf4 ] ++ (with pythonPackages; [ python numpy wrapPython ]) ++ stdenv.lib.optional stdenv.isDarwin libiconv ++ stdenv.lib.optionals netcdfSupport [ netcdf hdf5 curl ]; hardeningDisable = [ "format" ]; - # Unset CC and CXX as they confuse libtool. - preConfigure = "unset CC CXX"; + # - Unset CC and CXX as they confuse libtool. + # - teach gdal that libdf is the legacy name for libhdf + preConfigure = '' + unset CC CXX + substituteInPlace configure \ + --replace "-lmfhdf -ldf" "-lmfhdf -lhdf" + ''; configureFlags = [ "--with-jpeg=${libjpeg.dev}" @@ -41,6 +46,7 @@ composableDerivation.composableDerivation {} (fixed: rec { "--with-python" # optional "--with-static-proj4=${proj}" # optional "--with-geos=${geos}/bin/geos-config"# optional + "--with-hdf4=${hdf4.dev}" # optional (if netcdfSupport then "--with-netcdf=${netcdf}" else "") ];