Merge pull request #113349 from astro/hdfview
This commit is contained in:
commit
0c2cdb13d0
@ -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"
|
||||||
|
@ -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
|
||||||
|
@ -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;
|
|
||||||
};
|
|
||||||
}
|
|
@ -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;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -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 { };
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user