Upgraded HDF5 library to 1.10.2 and added linux support 95/1695/6
authorTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Sun, 8 Apr 2018 22:01:52 +0000 (01:01 +0300)
committerTuukka Lehtonen <tuukka.lehtonen@semantum.fi>
Tue, 10 Apr 2018 13:42:46 +0000 (16:42 +0300)
Amend by Miro:
Ran patchelf -set-rpath \$ORIGIN libhdf5_java.so and updated README

refs #7858

Change-Id: Ibe6d56443b8d02c4e2896adaed9b76f86e042f6e

13 files changed:
bundles/hdf.hdf5lib/.classpath
bundles/hdf.hdf5lib/META-INF/MANIFEST.MF
bundles/hdf.hdf5lib/README.md
bundles/hdf.hdf5lib/about.html
bundles/hdf.hdf5lib/build.properties
bundles/hdf.hdf5lib/hdf5-src.zip [new file with mode: 0644]
bundles/hdf.hdf5lib/hdf5_java.dll
bundles/hdf.hdf5lib/jarhdf5-1.10.0.jar [deleted file]
bundles/hdf.hdf5lib/jarhdf5-1.10.2.jar [new file with mode: 0644]
bundles/hdf.hdf5lib/libhdf5.so.101 [new file with mode: 0755]
bundles/hdf.hdf5lib/libhdf5_java.so [new file with mode: 0755]
bundles/hdf.hdf5lib/pom.xml
features/hdf.hdf5.feature/feature.xml

index 3d562776027966d08664beeea98c9f572d6e2f61..f0eb4b56abb59f7d0032b4434b70a25c10865c25 100644 (file)
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="UTF-8"?>\r
 <classpath>\r
-       <classpathentry exported="true" kind="lib" path="jarhdf5-1.10.0.jar" sourcepath="C:/work/hdf5/CMake-hdf5-1.10.0-patch1/hdf5-1.10.0-patch1/java/src"/>\r
+       <classpathentry exported="true" kind="lib" path="jarhdf5-1.10.2.jar" sourcepath="hdf5-src.zip"/>\r
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>\r
        <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>\r
        <classpathentry kind="src" path="src"/>\r
index c7ef8a4dad92a5cf1cc0717f5cc298e7174005c8..91af2505722634e9fb08cf9d511b71ba94734a39 100644 (file)
@@ -2,14 +2,15 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: Java HDF5 Interface (JHI5)
 Bundle-SymbolicName: hdf.hdf5lib
-Bundle-Version: 1.10.0.patch1
+Bundle-Version: 1.10.2
 Bundle-Vendor: Semantum Oy
 Bundle-RequiredExecutionEnvironment: JavaSE-1.8
 Bundle-ClassPath: .,
- jarhdf5-1.10.0.jar
+ jarhdf5-1.10.2.jar
 Export-Package: hdf.hdf5lib,
  hdf.hdf5lib.callbacks,
  hdf.hdf5lib.exceptions,
  hdf.hdf5lib.structs
-Bundle-NativeCode: hdf5_java.dll; processor=x86_64; osname=win32
+Bundle-NativeCode: hdf5_java.dll; processor=x86_64; osname=win32,
+ libhdf5.so.101; libhdf5_java.so; processor=x86_64; osname=linux
 Require-Bundle: org.slf4j.api;bundle-version="1.7.2"
index ea6445a44ea8d153fa3e306a29ebf2197bd94d1f..a7a2b9aa73ac2d0b59db3737e2bc396e8e56a8ae 100644 (file)
@@ -1,4 +1,160 @@
 The Java HDF5 interface library and the accompanying hdf5_java.dll JNI library\r
 are built without both separately licensed ZLIB and SZIP open source libraries.\r
 The native library (DLL) has been compiled with Visual Studio 2015 and dynamic\r
-linking.
\ No newline at end of file
+linking.\r
+\r
+## Building HDF5 Linux native libraries\r
+\r
+Current libraries have been using the 1.10.2 source code release.\r
+\r
+* Get source code from https://www.hdfgroup.org/downloads/hdf5/source-code/\r
+  * The configure-version, not the CMake source\r
+\r
+* Extract source code package\r
+\r
+* According to the build instructions at\r
+  https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-1.10/hdf5-1.10.2/src/unpacked/release_docs/INSTALL\r
+  configure the source using:\r
+\r
+      ./configure --enable-java --enable-build-mode=production --without-zlib --without-szlib --disable-sharedlib-rpath\r
+\r
+  and you'll get a listing like this in the end:\r
+\r
+~~~\r
+            SUMMARY OF THE HDF5 CONFIGURATION\r
+            =================================\r
+\r
+General Information:\r
+-------------------\r
+                   HDF5 Version: 1.10.2\r
+                  Configured on: Fri Apr  6 15:13:51 EEST 2018\r
+                  Configured by: lehtonen@dev2\r
+                    Host system: x86_64-unknown-linux-gnu\r
+              Uname information: Linux dev2 4.4.0-96-generic #119-Ubuntu SMP Tue Sep 12 14:59:54 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux\r
+                       Byte sex: little-endian\r
+             Installation point: /home/lehtonen/hdf/hdf5-1.10.2/hdf5\r
+\r
+Compiling Options:\r
+------------------\r
+                     Build Mode: production\r
+              Debugging Symbols: no\r
+                        Asserts: no\r
+                      Profiling: no\r
+             Optimization Level: high\r
+\r
+Linking Options:\r
+----------------\r
+                      Libraries: static, shared\r
+  Statically Linked Executables:\r
+                        LDFLAGS:\r
+                     H5_LDFLAGS:\r
+                     AM_LDFLAGS:\r
+                Extra libraries: -ldl -lm\r
+                       Archiver: ar\r
+                       AR_FLAGS: cr\r
+                         Ranlib: ranlib\r
+                                                \r
+Languages:\r
+----------\r
+                              C: yes\r
+                     C Compiler: /usr/bin/gcc\r
+                       CPPFLAGS:\r
+                    H5_CPPFLAGS: -D_GNU_SOURCE -D_POSIX_C_SOURCE=200112L   -DNDEBUG -UH5_DEBUG_API\r
+                    AM_CPPFLAGS:\r
+                        C Flags:\r
+                     H5 C Flags:   -std=c99 -pedantic -Wall -Wextra -Wbad-function-cast -Wc++-compat -Wcast-align -Wcast-qual -Wconversion -Wdeclaration-after-statement -Wdisabled-optimization -Wfloat-equal -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-declarations -Wmissing-include-dirs -Wmissing-prototypes -Wnested-externs -Wold-style-definition -Wpacked -Wpointer-arith -Wredundant-decls -Wshadow -Wstrict-prototypes -Wswitch-default -Wswitch-enum -Wundef -Wunused-macros -Wunsafe-loop-optimizations -Wwrite-strings -Wlogical-op -Wlarger-than=2048 -Wvla -Wsync-nand -Wframe-larger-than=16384 -Wpacked-bitfield-compat -Wstrict-overflow=5 -Wjump-misses-init -Wunsuffixed-float-constants -Wdouble-promotion -Wtrampolines -Wstack-usage=8192 -Wvector-operation-performance -Wdate-time -Warray-bounds=2 -Wc99-c11-compat -fstdarg-opt -s -Wno-inline -Wno-aggregate-return -Wno-missing-format-attribute -Wno-missing-noreturn -Wno-suggest-attribute=const -Wno-suggest-attribute=pure -Wno-suggest-attribute=noreturn -Wno-suggest-attribute=format -O3\r
+                     AM C Flags:\r
+               Shared C Library: yes\r
+               Static C Library: yes\r
+\r
+\r
+                        Fortran: no\r
+\r
+                            C++: no\r
+\r
+                           Java: yes\r
+                  Java Compiler: /usr/bin/java (openjdk 1.8.0_162)\r
+\r
+\r
+Features:\r
+---------\r
+                  Parallel HDF5: no\r
+             High-level library: yes\r
+                   Threadsafety: no\r
+            Default API mapping: v110\r
+ With deprecated public symbols: yes\r
+         I/O filters (external):\r
+                            MPE: no\r
+                     Direct VFD: no\r
+                        dmalloc: no\r
+ Packages w/ extra debug output: none\r
+                    API tracing: no\r
+           Using memory checker: no\r
+Memory allocation sanity checks: no\r
+            Metadata trace file: no\r
+         Function stack tracing: no\r
+      Strict file format checks: no\r
+   Optimization instrumentation: no\r
+\r
+~~~\r
+\r
+* Build the library and utilities: `make -j -l6`\r
+\r
+* Copy the artifacts from the source tree into this directory:\r
+  * Hdf5 library: `hdf5-1.10.2/src/.libs/libhdf5.so.101`\r
+  * Hdf5 JNI library: `hdf5-1.10.2/java/src/jni/.libs/libhdf5_java.so`\r
+\r
+* IMPORTANT:\r
+  * Linux .so files do not automatically look at the same directory they exist in for required .so files.\r
+  * We can add this behaviour with the "patchelf" commandline tool:\r
+  * apt-get update && apt-get install patchelf\r
+  * patchelf --set-rpath \$ORIGIN libhdf5_java.so\r
+\r
+## Building HDF5 Windows native libraries\r
+\r
+* Get CMake source code for Windows from https://www.hdfgroup.org/downloads/hdf5/source-code/#cmake\r
+* Build instructions are at https://portal.hdfgroup.org/display/support/Building+HDF5+with+CMake\r
+  \r
+Here's our version in a nutshell:\r
+  \r
+* Unpack CMake-hdf5-1.10.2.zip and step into the extracted directory \r
+* Edit HDF5options.cmake\r
+  * Release build\r
+    ~~~\r
+    set(CTEST_BUILD_CONFIGURATION "Release")\r
+    ~~~\r
+  * Build shared libraries:\r
+    ~~~\r
+    set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DBUILD_SHARED_LIBS:BOOL=ON")\r
+    ~~~\r
+  * Disable C++ library:\r
+    ~~~\r
+    set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_CPP_LIB:BOOL=OFF")\r
+    ~~~\r
+  * Enable Java:\r
+    ~~~\r
+    #############################################################################################\r
+    ####      java enabled      ####\r
+    set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=ON")\r
+    ####      java disabled      ####\r
+    #set (ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_BUILD_JAVA:BOOL=OFF")\r
+    ~~~\r
+  * Disable zlib and szip\r
+    ~~~\r
+       ### disable ext zlib building\r
+    set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_Z_LIB_SUPPORT:BOOL=OFF")\r
+    ### disable ext szip building\r
+    set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_SUPPORT:BOOL=OFF")\r
+    set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_ENABLE_SZIP_ENCODING:BOOL=OFF")\r
+       ~~~\r
+  * Disable packaging\r
+    ~~~\r
+    #############################################################################################\r
+    ### disable packaging\r
+\r
+    set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_NO_PACKAGES:BOOL=ON")\r
+    ### Create install package with external libraries (szip, zlib)\r
+    #set(ADD_BUILD_OPTIONS "${ADD_BUILD_OPTIONS} -DHDF5_PACKAGE_EXTLIBS:BOOL=ON")\r
+    ~~~\r
+* Run build-VS2015-64.bat and wait\r
+* Copy build\bin\hdf5_java.dll into this directory
\ No newline at end of file
index 80b486768c4019eac9661c007b3ddb213e37877b..af353e432bcd31b844301226ac59f2829314b5d6 100644 (file)
@@ -7,16 +7,16 @@
 <body lang="EN-US">\r
 <h2>About This Content</h2>\r
  \r
-<p>August 29th, 2016</p>\r
+<p>April 9th, 2018</p>\r
 <h3>License</h3>\r
 \r
                <h3>Third Party Content</h3>\r
                <p>The Content includes items that have been sourced from third parties as set out below.</p>\r
                <p><em>\r
-               <strong>Java HDF5 Interface (JHI5), version 1.10.0-patch1</strong> <br><br>\r
+               <strong>Java HDF5 Interface (JHI5), version 1.10.2</strong> <br><br>\r
                        This library has been obtained from the HDF Group\r
-                       (https://www.hdfgroup.org/HDF5/release/obtain5110.html) unmodified.\r
+                       (https://www.hdfgroup.org/downloads/hdf5/) unmodified.\r
                        See file COPYING for more information on the license.\r
                </em></p>\r
 \r
-</body></html>
\ No newline at end of file
+</body></html>\r
index 4a873ef6e7eabf20f4a18f14f43699b8298cfb97..391232811d490a469de0fc618a6c65b53e3b7542 100644 (file)
@@ -2,8 +2,10 @@ source.. = src/
 output.. = bin/\r
 bin.includes = META-INF/,\\r
                .,\\r
-               jarhdf5-1.10.0.jar,\\r
+               jarhdf5-1.10.2.jar,\\r
                hdf5_java.dll,\\r
+               libhdf5.so.101,\\r
+               libhdf5_java.so,\\r
                COPYING,\\r
                README.md,\\r
                about.html\r
diff --git a/bundles/hdf.hdf5lib/hdf5-src.zip b/bundles/hdf.hdf5lib/hdf5-src.zip
new file mode 100644 (file)
index 0000000..8004458
Binary files /dev/null and b/bundles/hdf.hdf5lib/hdf5-src.zip differ
index aed8a77059043d50dfbd09adfbe3f80deb16e6c1..915096b8e8d4fb31cf449af0418ff492bfefbb4e 100644 (file)
Binary files a/bundles/hdf.hdf5lib/hdf5_java.dll and b/bundles/hdf.hdf5lib/hdf5_java.dll differ
diff --git a/bundles/hdf.hdf5lib/jarhdf5-1.10.0.jar b/bundles/hdf.hdf5lib/jarhdf5-1.10.0.jar
deleted file mode 100644 (file)
index 1fcdb32..0000000
Binary files a/bundles/hdf.hdf5lib/jarhdf5-1.10.0.jar and /dev/null differ
diff --git a/bundles/hdf.hdf5lib/jarhdf5-1.10.2.jar b/bundles/hdf.hdf5lib/jarhdf5-1.10.2.jar
new file mode 100644 (file)
index 0000000..780a5c1
Binary files /dev/null and b/bundles/hdf.hdf5lib/jarhdf5-1.10.2.jar differ
diff --git a/bundles/hdf.hdf5lib/libhdf5.so.101 b/bundles/hdf.hdf5lib/libhdf5.so.101
new file mode 100755 (executable)
index 0000000..7f0641e
Binary files /dev/null and b/bundles/hdf.hdf5lib/libhdf5.so.101 differ
diff --git a/bundles/hdf.hdf5lib/libhdf5_java.so b/bundles/hdf.hdf5lib/libhdf5_java.so
new file mode 100755 (executable)
index 0000000..1ce6a1f
Binary files /dev/null and b/bundles/hdf.hdf5lib/libhdf5_java.so differ
index 5c00b7ab1431a1705abd6fb42033ec54174caceb..a64ceb4bc52c838a329abfe0fbf087273d83bc7c 100644 (file)
@@ -3,7 +3,7 @@
        <modelVersion>4.0.0</modelVersion>
        <artifactId>hdf.hdf5lib</artifactId>
        <packaging>eclipse-plugin</packaging>
-       <version>1.10.0.patch1</version>
+       <version>1.10.2</version>
 
        <parent>
                <groupId>org.simantics</groupId>
                                                        <os>win32</os>
                                                        <arch>x86_64</arch>
                                                </environment>
+                                               <environment>
+                                                       <os>linux</os>
+                                                       <arch>x86_64</arch>
+                                               </environment>
                                        </environments>
                                </configuration>
                        </plugin>
                </plugins>
        </build>
 
-</project>
\ No newline at end of file
+</project>
index d0cd9a1d5eb3fd0d8096a7b70fa244fe75bc22f5..0e47915d17f6f3951010e741636c4b8b7bf5d250 100644 (file)
@@ -2,7 +2,7 @@
 <feature
       id="hdf.hdf5"
       label="HDF5 for Java"
-      version="1.10.0.patch1"
+      version="1.10.2"
       provider-name="Semantum Oy">
 
    <description>
@@ -118,7 +118,7 @@ in HDF Products” (www.hdfgroup.org/doc_resource/SZIP/) for further details.
 
    <plugin
          id="hdf.hdf5lib"
-         os="win32"
+         os="linux,win32"
          arch="x86_64"
          download-size="0"
          install-size="0"