Merge pull request #113349 from astro/hdfview

This commit is contained in:
Sandro 2021-02-17 23:32:28 +01:00 committed by GitHub
commit 0c2cdb13d0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 59 additions and 60 deletions

View File

@ -4,11 +4,15 @@
, fixDarwinDylibNames , fixDarwinDylibNames
, cmake , cmake
, libjpeg , libjpeg
, uselibtirpc ? stdenv.isLinux
, libtirpc , libtirpc
, zlib , zlib
, szip ? null , szip ? null
, javaSupport ? false
, jdk
}: }:
let uselibtirpc = stdenv.isLinux; let
javabase = "${jdk}/jre/lib/${jdk.architecture}";
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "hdf"; pname = "hdf";
@ -52,9 +56,9 @@ stdenv.mkDerivation rec {
libjpeg libjpeg
szip szip
zlib zlib
] ++ lib.optionals uselibtirpc [ ]
libtirpc ++ lib.optional javaSupport jdk
]; ++ lib.optional uselibtirpc libtirpc;
preConfigure = lib.optionalString uselibtirpc '' preConfigure = lib.optionalString uselibtirpc ''
# Make tirpc discovery work with CMAKE_PREFIX_PATH # Make tirpc discovery work with CMAKE_PREFIX_PATH
@ -75,6 +79,11 @@ stdenv.mkDerivation rec {
"-DHDF4_ENABLE_Z_LIB_SUPPORT=ON" "-DHDF4_ENABLE_Z_LIB_SUPPORT=ON"
"-DHDF4_BUILD_FORTRAN=OFF" "-DHDF4_BUILD_FORTRAN=OFF"
"-DJPEG_DIR=${libjpeg}" "-DJPEG_DIR=${libjpeg}"
] ++ lib.optionals javaSupport [
"-DHDF4_BUILD_JAVA=ON"
"-DJAVA_HOME=${jdk}"
"-DJAVA_AWT_LIBRARY=${javabase}/libawt.so"
"-DJAVA_JVM_LIBRARY=${javabase}/server/libjvm.so"
] ++ lib.optionals (szip != null) [ ] ++ lib.optionals (szip != null) [
"-DHDF4_ENABLE_SZIP_ENCODING=ON" "-DHDF4_ENABLE_SZIP_ENCODING=ON"
"-DHDF4_ENABLE_SZIP_SUPPORT=ON" "-DHDF4_ENABLE_SZIP_SUPPORT=ON"

View File

@ -8,6 +8,8 @@
, mpiSupport ? false , mpiSupport ? false
, mpi , mpi
, enableShared ? !stdenv.hostPlatform.isStatic , enableShared ? !stdenv.hostPlatform.isStatic
, javaSupport ? false
, jdk
}: }:
# cpp and mpi options are mutually exclusive # cpp and mpi options are mutually exclusive
@ -17,11 +19,11 @@ assert !cpp || !mpiSupport;
let inherit (lib) optional optionals; in let inherit (lib) optional optionals; in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.10.6"; version = "1.10.7";
pname = "hdf5"; pname = "hdf5";
src = fetchurl { src = fetchurl {
url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/${pname}-${version}/src/${pname}-${version}.tar.bz2"; url = "https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/${pname}-${version}/src/${pname}-${version}.tar.bz2";
sha256 = "1gf38x51128hn00744358w27xgzjk0ff4wra4yxh2lk804ck1mh9"; sha256 = "0pm5xxry55i0h7wmvc7svzdaa90rnk7h78rrjmnlkz2ygsn8y082";
}; };
passthru = { passthru = {
@ -35,7 +37,8 @@ stdenv.mkDerivation rec {
buildInputs = [] buildInputs = []
++ optional (gfortran != null) gfortran ++ optional (gfortran != null) gfortran
++ optional (szip != null) szip; ++ optional (szip != null) szip
++ optional javaSupport jdk;
propagatedBuildInputs = [] propagatedBuildInputs = []
++ optional (zlib != null) zlib ++ optional (zlib != null) zlib
@ -46,7 +49,8 @@ stdenv.mkDerivation rec {
++ optional (gfortran != null) "--enable-fortran" ++ optional (gfortran != null) "--enable-fortran"
++ optional (szip != null) "--with-szlib=${szip}" ++ optional (szip != null) "--with-szlib=${szip}"
++ optionals mpiSupport ["--enable-parallel" "CC=${mpi}/bin/mpicc"] ++ optionals mpiSupport ["--enable-parallel" "CC=${mpi}/bin/mpicc"]
++ optional enableShared "--enable-shared"; ++ optional enableShared "--enable-shared"
++ optional javaSupport "--enable-java";
patches = [ patches = [
./bin-mv.patch ./bin-mv.patch

View File

@ -1,27 +0,0 @@
{ lib, stdenv, fetchurl, cmake, javac }:
stdenv.mkDerivation rec {
pname = "hdf-java";
version = "3.3.2";
src = fetchurl {
url = "http://www.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/hdfjni-${version}/src/CMake-hdfjava-${version}.tar.gz";
sha256 = "0m1gp2aspcblqzmpqbdpfp6giskws85ds6p5gz8sx7asyp7wznpr";
};
nativeBuildInputs = [ cmake javac ];
dontConfigure = true;
buildPhase = "./build-hdfjava-unix.sh";
installPhase = ''
mkdir -p $out
cp -r build/_CPack_Packages/Linux/TGZ/HDFJava-3.3.2-Linux/HDF_Group/HDFJava/${version}/* $out/
'';
meta = {
description = "A Java package that implements HDF4 and HDF5 data objects in an object-oriented form";
license = lib.licenses.free; # BSD-like
homepage = "https://support.hdfgroup.org/products/java/index.html";
platforms = lib.platforms.linux;
};
}

View File

@ -1,39 +1,58 @@
{ lib, stdenv, fetchurl, ant, javac, hdf_java }: { lib, stdenv, fetchurl, ant, jdk, nettools, hdf4, hdf5, makeDesktopItem, copyDesktopItems }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "hdfview"; pname = "hdfview";
version = "2.14"; version = "3.1.2";
src = fetchurl { src = fetchurl {
url = "https://support.hdfgroup.org/ftp/HDF5/hdf-java/current/src/${pname}-${version}.tar.gz"; url = "https://support.hdfgroup.org/ftp/HDF5/releases/HDF-JAVA/${pname}-${version}/src/${pname}-${version}.tar.gz";
sha256 = "0lv9djfm7hnp14mcyzbiax3xjb8vkbzhh7bdl6cvgy53pc08784p"; sha256 = "0kyw9i3f817z71l0ak7shl0wqxasz9h5fl05mklyapa7cj27637c";
}; };
nativeBuildInputs = [ ant javac ]; nativeBuildInputs = [
ant jdk
nettools # "hostname" required
copyDesktopItems
];
HDFLIBS = hdf_java; HDFLIBS = (hdf4.override { javaSupport = true; }).out;
HDF5LIBS = (hdf5.override { javaSupport = true; }).out;
buildPhase = '' buildPhase = ''
ant run runHook preBuild
ant package
ant createJPackage
runHook postBuild
''; '';
desktopItem = makeDesktopItem rec {
name = "HDFView";
desktopName = name;
exec = name;
icon = name;
comment = meta.description;
categories = "Science;DataVisualization;";
};
installPhase = '' installPhase = ''
mkdir $out runHook preInstall
# exclude jre
cp -r build/HDF_Group/HDFView/*/{lib,share} $out/ mkdir -p $out/bin $out/lib
mkdir $out/bin cp -a build/dist/HDFView/bin/HDFView $out/bin/
cp -r build/HDF_Group/HDFView/*/hdfview.sh $out/bin/hdfview cp -a build/dist/HDFView/lib/app $out/lib/
chmod +x $out/bin/hdfview ln -s ${jdk}/lib/openjdk $out/lib/runtime
substituteInPlace $out/bin/hdfview \
--replace "@JAVABIN@" "${javac}/bin/" \ mkdir -p $out/share/applications $out/share/icons/hicolor/32x32/apps
--replace "@INSTALLDIR@" "$out" cp src/HDFView.png $out/share/icons/hicolor/32x32/apps/
runHook postInstall
''; '';
meta = { meta = {
description = "A visual tool for browsing and editing HDF4 and HDF5 files"; description = "A visual tool for browsing and editing HDF4 and HDF5 files";
license = lib.licenses.free; # BSD-like license = lib.licenses.free; # BSD-like
homepage = "https://support.hdfgroup.org/products/java/index.html"; homepage = "https://portal.hdfgroup.org/display/HDFVIEW/HDFView";
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
}; };
} }

View File

@ -5109,13 +5109,7 @@ in
hdf5-blosc = callPackage ../development/libraries/hdf5-blosc { }; hdf5-blosc = callPackage ../development/libraries/hdf5-blosc { };
hdfview = callPackage ../tools/misc/hdfview { hdfview = callPackage ../tools/misc/hdfview { };
javac = jdk8; # TODO: https://github.com/NixOS/nixpkgs/pull/89731
};
hdf_java = callPackage ../tools/misc/hdfjava {
javac = jdk8; # TODO: https://github.com/NixOS/nixpkgs/pull/89731
};
hecate = callPackage ../applications/editors/hecate { }; hecate = callPackage ../applications/editors/hecate { };