aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastien Fabbro <seb@cayenne.ist.utl.pt>2009-06-24 17:51:18 +0100
committerSebastien Fabbro <seb@cayenne.ist.utl.pt>2009-06-24 17:51:18 +0100
commite8ed47ccfec9384b4c0faca7a7042604ea8e4e62 (patch)
treee094163e7fa9644e859e902ce8cf9966cef2f3f0
parentrefmac test case added (diff)
downloadsci-e8ed47ccfec9384b4c0faca7a7042604ea8e4e62.tar.gz
sci-e8ed47ccfec9384b4c0faca7a7042604ea8e4e62.tar.bz2
sci-e8ed47ccfec9384b4c0faca7a7042604ea8e4e62.zip
test version of hdf5-1.8.x import
-rw-r--r--sci-libs/hdf5/ChangeLog13
-rw-r--r--sci-libs/hdf5/Manifest12
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch31
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-autotools.patch11
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch39
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch35
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-includes.patch11
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch92
-rw-r--r--sci-libs/hdf5/files/hdf5-1.8.3-signal.patch65
-rw-r--r--sci-libs/hdf5/hdf5-1.8.3.ebuild89
-rw-r--r--sci-libs/hdf5/metadata.xml16
11 files changed, 414 insertions, 0 deletions
diff --git a/sci-libs/hdf5/ChangeLog b/sci-libs/hdf5/ChangeLog
new file mode 100644
index 000000000..1f7a34708
--- /dev/null
+++ b/sci-libs/hdf5/ChangeLog
@@ -0,0 +1,13 @@
+# ChangeLog for sci-libs/hdf5
+# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
+# $Header: $
+
+*hdf5-1.8.3 (24 Jun 2009)
+
+ 24 Jun 2009; Sébastien Fabbro <bicatali@gentoo.org> +hdf5-1.8.3.ebuild,
+ +files/hdf5-1.8.3-as-needed.patch, +files/hdf5-1.8.3-autotools.patch,
+ +files/hdf5-1.8.3-destdir.patch, +files/hdf5-1.8.3-gnutools.patch,
+ +files/hdf5-1.8.3-includes.patch, +files/hdf5-1.8.3-noreturn.patch,
+ +files/hdf5-1.8.3-signal.patch, +metadata.xml:
+ Version bump. Many fixes and cleanups, rewrote ebuild from scratch
+
diff --git a/sci-libs/hdf5/Manifest b/sci-libs/hdf5/Manifest
new file mode 100644
index 000000000..7bce1b155
--- /dev/null
+++ b/sci-libs/hdf5/Manifest
@@ -0,0 +1,12 @@
+AUX hdf5-1.8.2-gcc43.patch 962 RMD160 b8d12d5b83ce87110b0d54f2c3fcc0fabab6ba97 SHA1 7cf5397964c574779c4156dfb5129f8835467888 SHA256 29274bda205c517bb57c3794bdd0c05eb42ad282e375258288d3bba09f824d33
+AUX hdf5-1.8.3-as-needed.patch 1378 RMD160 b62ceac589fc688354aa449ae9c4364c5b3a67d3 SHA1 26de66dffb9082c4bb29b715ad2d3ebe369feae3 SHA256 e50f220e74f34c40f855495c15760ab14518b77e54a07707aad3354f5bdc596b
+AUX hdf5-1.8.3-autotools.patch 519 RMD160 18be62752577455b6e3c38ff13c00756f0e644a4 SHA1 8a8578db7efb296e99378e05acd84988a2435fc9 SHA256 eee54b02dc8c94ed98604c396ac0bfbf2f68b989fd83e424172e7e12c44bcdb9
+AUX hdf5-1.8.3-destdir.patch 1754 RMD160 2b0130b12bff2c74c9e65766f0afcd5d422022e1 SHA1 98a91a52ceaab919d6a6b3af8b1c6dc017e40296 SHA256 693002516df4d1026833d629a5b647fea57314b9c62f655e631629b5c19cb602
+AUX hdf5-1.8.3-gnutools.patch 1352 RMD160 a0a51a484f1ab926f13618093c809b6582da8e7f SHA1 e4121383f2876dea4ba09356ca7d233fe6ac5b2e SHA256 0e6720e736d7103f39edcf8d3fb4a14f40bbee67363e8f167d9b594ef348f197
+AUX hdf5-1.8.3-includes.patch 398 RMD160 5112dd05bebbc702f24fa22aeebc67209a4e6611 SHA1 339137d04a803e25a0cafaa4f4d167a4cbc9a7ae SHA256 cd82d8b3817d83d59054a2a32ce44aca060157095875f6e91c560ab830b32561
+AUX hdf5-1.8.3-noreturn.patch 3222 RMD160 39285ba18447b0f8db22a5f8e9d51a3cd8a8e91e SHA1 c5d8f7528fbe5c0bde0cb0ac5c1dd189559ac140 SHA256 d902cfbda0382b8998506ea765d0795937485c44d8824051275ad668bcbd6565
+AUX hdf5-1.8.3-signal.patch 2226 RMD160 afe0ea8ad24fd84bed4642436c972fb5e492045e SHA1 5251a4520140b29ef0cb62d916732c9dd4089dd4 SHA256 0d07d222802005df65d42493dac16897865954755e4a59e681fa043e370a0f71
+DIST hdf5-1.8.3.tar.gz 7175884 RMD160 7b279306b5458f39dc7343c14a7c7c88459823a3 SHA1 0bf66eb5d964472eae4b6c2bb26e669dcd188140 SHA256 2e124dfd59ca00dee693c06cf2517d14b361769e65edbc1c3940063437d0a5e3
+EBUILD hdf5-1.8.3.ebuild 2273 RMD160 3e9aceea5adcd88e824d78a97aa6ea929774c0b2 SHA1 2115effce668c0d01d109080b22a65842be466d5 SHA256 1c64dc7f33c72301e2e16f1c5ca9076121db7df14af15755804fa330561315d4
+MISC ChangeLog 8277 RMD160 7cf7c0e69dae2e66bd650ee5855de19f86ee4e81 SHA1 eb64abb8b8d1de57ca6c50b8048b44b8c4caefa1 SHA256 bd83e1f8b213fbdbf59351e607bb277e61dc10935864b789c1ae9afc4d152346
+MISC metadata.xml 360 RMD160 a2917233c5a10f6639fb8c4a295609852c2be473 SHA1 6629277bccaaeb0a3bec1720cd1641afb5570e56 SHA256 a6024d09f6d50aba588c4d121e1dcc16659fc4c5df28f9667f0e32b9809b809c
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch b/sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch
new file mode 100644
index 000000000..42962d661
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-as-needed.patch
@@ -0,0 +1,31 @@
+--- hdf5-1.8.3.orig/fortran/src/Makefile.am 2009-04-15 19:10:01.053733251 +0100
++++ hdf5-1.8.3/fortran/src/Makefile.am 2009-04-15 19:12:49.874557795 +0100
+@@ -66,6 +66,8 @@
+ H5If.c H5Lf.c H5Of.c H5Pf.c H5Rf.c H5Sf.c H5Tf.c H5Zf.c \
+ $(PARALLEL_COND_SRC)
+
++libhdf5_fortran_la_LIBADD = $(top_builddir)/src/libhdf5.la
++
+ # h5fc is generated during configure.
+ # Remove it only when distclean.
+ DISTCLEANFILES=h5fc
+--- hdf5-1.8.3.orig/hl/fortran/src/Makefile.am 2009-04-15 19:10:01.245748616 +0100
++++ hdf5-1.8.3/hl/fortran/src/Makefile.am 2009-04-15 19:30:56.042226227 +0100
+@@ -43,6 +43,7 @@
+
+ libhdf5hl_fortran_la_SOURCES=H5LTfc.c H5IMfc.c H5IMcc.c H5TBfc.c H5LTff.f90 \
+ H5IMff.f90 H5TBff.f90
++libhdf5hl_fortran_la_LIBADD=$(top_builddir)/hl/src/libhdf5_hl.la
+
+ # Fortran module files can have different extensions and different names
+ # (e.g., different capitalizations) on different platforms. Write rules
+--- hdf5-1.8.3.orig/hl/c++/src/Makefile.am 2009-04-15 19:10:01.249750013 +0100
++++ hdf5-1.8.3/hl/c++/src/Makefile.am 2009-04-15 20:16:08.812068687 +0100
+@@ -35,6 +35,7 @@
+ # Source files for the library
+ # At the moment, only the H5PT Packet Table has a C++ API.
+ libhdf5_hl_cpp_la_SOURCES=H5PacketTable.cpp
++libhdf5_hl_cpp_la_LIBADD=$(top_builddir)/hl/src/libhdf5_hl.la
+
+ # Public headers
+ include_HEADERS=H5PacketTable.h
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-autotools.patch b/sci-libs/hdf5/files/hdf5-1.8.3-autotools.patch
new file mode 100644
index 000000000..fc34cfddb
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-autotools.patch
@@ -0,0 +1,11 @@
+--- hdf5-1.8.3.orig/configure.in 2009-04-15 19:10:01.345757835 +0100
++++ hdf5-1.8.3/configure.in 2009-04-15 19:14:24.166542751 +0100
+@@ -355,7 +355,7 @@
+ dnl --------------------------------------------------------------------
+ dnl Check for a Fortran 9X compiler and how to include modules.
+ dnl
+- AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
++ AC_PROG_FC([gfortran f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
+ AC_F9X_MODS
+
+ dnl It seems that libtool (as of Libtool 1.5.14) is trying to
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch b/sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch
new file mode 100644
index 000000000..41cf505f1
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-destdir.patch
@@ -0,0 +1,39 @@
+--- hdf5-1.8.3.orig/config/examples.am 2009-04-15 19:10:01.037732972 +0100
++++ hdf5-1.8.3/config/examples.am 2009-04-16 15:02:45.983768491 +0100
+@@ -51,7 +51,7 @@
+
+ # How to create EXAMPLEDIR if it doesn't already exist
+ $(EXAMPLEDIR):
+- -$(top_srcdir)/bin/mkdirs $@
++ -$(top_srcdir)/bin/mkdirs $(DESTDIR)$@
+
+ # Install and uninstall rules. We install the source files, not the
+ # example programs themselves.
+@@ -63,13 +63,13 @@
+ install-examples: $(EXAMPLEDIR) $(INSTALL_FILES)
+ @for f in X $(INSTALL_FILES); do \
+ if test $$f != X; then \
+- (set -x; $(INSTALL) $(srcdir)/$$f $(EXAMPLEDIR)/. || exit 1);\
++ (set -x; $(INSTALL_DATA) $(srcdir)/$$f $(DESTDIR)$(EXAMPLEDIR)/. || exit 1);\
+ fi; \
+ done
+
+ uninstall-examples:
+- @if test -n "$(INSTALL_FILES)" -a -d $(EXAMPLEDIR); then \
+- set -x; cd $(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
++ @if test -n "$(INSTALL_FILES)" -a -d $(DESTDIR)$(EXAMPLEDIR); then \
++ set -x; cd $(DESTDIR)$(EXAMPLEDIR) && $(RM) $(INSTALL_FILES); \
+ fi
+
+ installcheck-local:
+--- hdf5-1.8.3.orig/config/commence.am 2009-04-15 19:10:01.037732972 +0100
++++ hdf5-1.8.3/config/commence.am 2009-04-16 15:40:53.810412317 +0100
+@@ -42,8 +42,6 @@
+ LIBH5F_HL=$(top_builddir)/hl/fortran/src/libhdf5hl_fortran.la
+ LIBH5CPP_HL=$(top_builddir)/hl/c++/src/libhdf5_hl_cpp.la
+
+-# Install directories that automake doesn't know about
+-docdir = $(exec_prefix)/doc
+
+ # Scripts used to build examples
+ # If only shared libraries have been installed, have h5cc build examples with
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch b/sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch
new file mode 100644
index 000000000..556541237
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-gnutools.patch
@@ -0,0 +1,35 @@
+--- hdf5-1.8.3.orig/config/linux-gnulibc1 2009-04-15 19:10:01.037732972 +0100
++++ hdf5-1.8.3/config/linux-gnulibc1 2009-04-16 09:58:54.132299149 +0100
+@@ -39,8 +39,8 @@
+ if test "X-" = "X-$FC"; then
+ case $CC_BASENAME in
+ gcc*)
+- FC=g95
+- FC_BASENAME=g95
++ FC=gfortran
++ FC_BASENAME=gfortran
+ ;;
+ pgcc*)
+ FC=pgf90
+--- hdf5-1.8.3.orig/src/Makefile.am 2009-04-15 19:10:01.113738280 +0100
++++ hdf5-1.8.3/src/Makefile.am 2009-04-16 11:07:46.221186334 +0100
+@@ -27,7 +27,7 @@
+ # a long time to compile it with any optimization on. H5detect is used
+ # to generate H5Tinit.c once. So, optimization is not critical.
+ noinst_PROGRAMS = H5detect
+-H5detect_CFLAGS = -g
++H5detect_CFLAGS = -g -O0
+
+ # Our main target, the HDF5 library
+ lib_LTLIBRARIES=libhdf5.la
+--- hdf5-1.8.3.orig/configure.in 2009-04-15 19:10:01.345757835 +0100
++++ hdf5-1.8.3/configure.in 2009-04-16 12:40:53.698868563 +0100
+@@ -355,7 +355,7 @@
+ dnl --------------------------------------------------------------------
+ dnl Check for a Fortran 9X compiler and how to include modules.
+ dnl
+- AC_PROG_FC([f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
++ AC_PROG_FC([gfortran f90 pgf90 slf90 f95 g95 xlf95 efc ifort ftn],)
+ AC_F9X_MODS
+
+ dnl It seems that libtool (as of Libtool 1.5.14) is trying to
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-includes.patch b/sci-libs/hdf5/files/hdf5-1.8.3-includes.patch
new file mode 100644
index 000000000..5e87f6c97
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-includes.patch
@@ -0,0 +1,11 @@
+--- hdf5-1.8.3.orig/src/H5E.c 2009-04-15 19:10:01.081735486 +0100
++++ hdf5-1.8.3/src/H5E.c 2009-04-15 20:02:06.708712912 +0100
+@@ -54,6 +54,8 @@
+ /***********/
+ /* Headers */
+ /***********/
++#define _GNU_SOURCE
++#include <stdio.h>
+ #include "H5private.h" /* Generic Functions */
+ #include "H5Iprivate.h" /* IDs */
+ #include "H5Epkg.h" /* Error handling */
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch b/sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch
new file mode 100644
index 000000000..27b6f9b32
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-noreturn.patch
@@ -0,0 +1,92 @@
+diff -Nur hdf5-1.8.3.orig/c++/src/H5AbstractDs.cpp hdf5-1.8.3/c++/src/H5AbstractDs.cpp
+--- hdf5-1.8.3.orig/c++/src/H5AbstractDs.cpp 2009-04-15 19:10:01.061734089 +0100
++++ hdf5-1.8.3/c++/src/H5AbstractDs.cpp 2009-04-16 10:10:56.263885963 +0100
+@@ -85,6 +85,8 @@
+ else if (fromClass() == "Attribute")
+ throw DataTypeIException("Attribute::getTypeClass", "H5Tget_class returns H5T_NO_CLASS");
+ }
++
++ return (type_class);
+ }
+
+ //--------------------------------------------------------------------------
+diff -Nur hdf5-1.8.3.orig/hl/src/H5LTanalyze.c hdf5-1.8.3/hl/src/H5LTanalyze.c
+--- hdf5-1.8.3.orig/hl/src/H5LTanalyze.c 2009-04-15 19:10:01.221747499 +0100
++++ hdf5-1.8.3/hl/src/H5LTanalyze.c 2009-04-16 10:10:56.267887639 +0100
+@@ -2329,7 +2329,7 @@
+ return ret;
+ }
+
+-int H5LTyyerror(char *msg)
++void H5LTyyerror(char *msg)
+ {
+ printf("ERROR: %s before \"%s\".\n", msg, yytext);
+ }
+diff -Nur hdf5-1.8.3.orig/hl/src/H5LTanalyze.l hdf5-1.8.3/hl/src/H5LTanalyze.l
+--- hdf5-1.8.3.orig/hl/src/H5LTanalyze.l 2009-04-15 19:10:01.221747499 +0100
++++ hdf5-1.8.3/hl/src/H5LTanalyze.l 2009-04-16 10:10:56.267887639 +0100
+@@ -181,7 +181,7 @@
+ return ret;
+ }
+
+-int H5LTyyerror(char *msg)
++void H5LTyyerror(char *msg)
+ {
+ printf("ERROR: %s before \"%s\".\n", msg, yytext);
+ }
+diff -Nur hdf5-1.8.3.orig/hl/src/H5LTparse.c hdf5-1.8.3/hl/src/H5LTparse.c
+--- hdf5-1.8.3.orig/hl/src/H5LTparse.c 2009-04-15 19:10:01.221747499 +0100
++++ hdf5-1.8.3/hl/src/H5LTparse.c 2009-04-16 10:10:56.267887639 +0100
+@@ -64,7 +64,7 @@
+ #include<hdf5.h>
+
+ extern int yylex();
+-extern int yyerror(char *);
++extern void yyerror(char *);
+
+ #define STACK_SIZE 16
+
+diff -Nur hdf5-1.8.3.orig/test/dt_arith.c hdf5-1.8.3/test/dt_arith.c
+--- hdf5-1.8.3.orig/test/dt_arith.c 2009-04-15 19:10:01.121739118 +0100
++++ hdf5-1.8.3/test/dt_arith.c 2009-04-16 10:10:56.271887918 +0100
+@@ -3408,6 +3408,7 @@
+ else if(run_test==TEST_DENORM || run_test==TEST_SPECIAL)
+ return 1;
+ #endif
++ return 1;
+ }
+
+
+diff -Nur hdf5-1.8.3.orig/tools/h5dump/h5dump.c hdf5-1.8.3/tools/h5dump/h5dump.c
+--- hdf5-1.8.3.orig/tools/h5dump/h5dump.c 2009-04-15 19:10:01.141740794 +0100
++++ hdf5-1.8.3/tools/h5dump/h5dump.c 2009-04-16 10:10:56.275888757 +0100
+@@ -602,6 +602,7 @@
+ *
+ *-------------------------------------------------------------------------
+ */
++static void leave(int ret) __attribute__ ((__noreturn__));
+ static void
+ leave(int ret)
+ {
+diff -Nur hdf5-1.8.3.orig/tools/h5ls/h5ls.c hdf5-1.8.3/tools/h5ls/h5ls.c
+--- hdf5-1.8.3.orig/tools/h5ls/h5ls.c 2009-04-15 19:10:01.165741353 +0100
++++ hdf5-1.8.3/tools/h5ls/h5ls.c 2009-04-16 10:10:56.279888477 +0100
+@@ -2147,6 +2147,7 @@
+ *
+ *-------------------------------------------------------------------------
+ */
++static void leave(int ret) __attribute__ ((__noreturn__));
+ static void
+ leave(int ret)
+ {
+diff -Nur hdf5-1.8.3.orig/tools/h5stat/h5stat.c hdf5-1.8.3/tools/h5stat/h5stat.c
+--- hdf5-1.8.3.orig/tools/h5stat/h5stat.c 2009-04-15 19:10:01.181742750 +0100
++++ hdf5-1.8.3/tools/h5stat/h5stat.c 2009-04-16 10:10:56.279888477 +0100
+@@ -181,6 +181,7 @@
+ { NULL, 0, '\0' }
+ };
+
++static void leave(int ret) __attribute__ ((__noreturn__));
+ static void
+ leave(int ret)
+ {
diff --git a/sci-libs/hdf5/files/hdf5-1.8.3-signal.patch b/sci-libs/hdf5/files/hdf5-1.8.3-signal.patch
new file mode 100644
index 000000000..0ef2672e1
--- /dev/null
+++ b/sci-libs/hdf5/files/hdf5-1.8.3-signal.patch
@@ -0,0 +1,65 @@
+--- hdf5-1.8.3.orig/src/H5detect.c 2009-04-15 19:10:01.069734368 +0100
++++ hdf5-1.8.3/src/H5detect.c 2009-04-16 10:15:42.185227061 +0100
+@@ -109,7 +109,7 @@
+ static void detect_C99_integers64(void);
+ static void detect_alignments(void);
+ static size_t align_g[] = {1, 2, 4, 8, 16};
+-static jmp_buf jbuf_g;
++static sigjmp_buf jbuf_g;
+
+
+ /*-------------------------------------------------------------------------
+@@ -368,7 +368,7 @@
+ void (*_handler2)(int) = signal(SIGSEGV, sigsegv_handler); \
+ \
+ _buf = (char*)malloc(sizeof(TYPE) + align_g[NELMTS(align_g) - 1]); \
+- if(setjmp(jbuf_g)) _ano++; \
++ if(sigsetjmp(jbuf_g, 1)) _ano++; \
+ if(_ano < NELMTS(align_g)) { \
+ *((TYPE*)(_buf+align_g[_ano])) = _val; /*possible SIGBUS or SEGSEGV*/ \
+ _val2 = *((TYPE*)(_buf+align_g[_ano])); /*possible SIGBUS or SEGSEGV*/ \
+@@ -385,7 +385,7 @@
+ memcpy(_buf+align_g[_ano]+(INFO.offset/8),((char *)&_val)+(INFO.offset/8),(size_t)(INFO.precision/8)); \
+ _val2 = *((TYPE*)(_buf+align_g[_ano])); \
+ if(_val!=_val2) \
+- longjmp(jbuf_g, 1); \
++ siglongjmp(jbuf_g, 1); \
+ /* End Cray Check */ \
+ (INFO.align)=align_g[_ano]; \
+ } else { \
+@@ -456,7 +456,7 @@
+ * it's not nearly as nice to work with, it does the job for
+ * this simple stuff.
+ *
+- * Return: Returns via longjmp to jbuf_g.
++ * Return: Returns via siglongjmp to jbuf_g.
+ *
+ * Programmer: Robb Matzke
+ * Thursday, March 18, 1999
+@@ -469,7 +469,7 @@
+ sigsegv_handler(int UNUSED signo)
+ {
+ signal(SIGSEGV, sigsegv_handler);
+- longjmp(jbuf_g, 1);
++ siglongjmp(jbuf_g, 1);
+ }
+
+
+@@ -481,7 +481,7 @@
+ * it's not nearly as nice to work with, it does the job for
+ * this simple stuff.
+ *
+- * Return: Returns via longjmp to jbuf_g.
++ * Return: Returns via siglongjmp to jbuf_g.
+ *
+ * Programmer: Robb Matzke
+ * Thursday, March 18, 1999
+@@ -494,7 +494,7 @@
+ sigbus_handler(int UNUSED signo)
+ {
+ signal(SIGBUS, sigbus_handler);
+- longjmp(jbuf_g, 1);
++ siglongjmp(jbuf_g, 1);
+ #ifdef H5_HAVE_SIGLONGJMP
+ siglongjmp(jbuf_g, 1);
+ #endif /* H5_HAVE_SIGLONGJMP */
diff --git a/sci-libs/hdf5/hdf5-1.8.3.ebuild b/sci-libs/hdf5/hdf5-1.8.3.ebuild
new file mode 100644
index 000000000..26681f9e8
--- /dev/null
+++ b/sci-libs/hdf5/hdf5-1.8.3.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI=2
+inherit eutils autotools
+
+DESCRIPTION="General purpose library and file format for storing scientific data"
+HOMEPAGE="http://www.hdfgroup.org/HDF5/"
+SRC_URI="http://www.hdfgroup.org/ftp/HDF5/current/src/${P}.tar.gz"
+
+LICENSE="NCSA-HDF"
+SLOT="0"
+KEYWORDS="~amd64 ~hppa ~ppc ~ppc64 ~x86 ~sparc"
+
+IUSE="cxx examples fortran mpi szip threads zlib"
+
+#RDEPEND="mpi? ( virtual/mpi[romio] )
+RDEPEND="mpi? ( virtual/mpi )
+ szip? ( sci-libs/szip )
+ zlib? ( sys-libs/zlib )"
+
+DEPEND="${DEPEND}
+ sys-process/time"
+
+pkg_setup() {
+ if use mpi && use cxx; then
+ ewarn "Simultaneous mpi and cxx is not supported by ${PN}"
+ ewarn "Will disable cxx interface"
+ fi
+ if use mpi && use fortran; then
+ export FC=mpif90
+ fi
+}
+
+src_prepare() {
+ epatch "${FILESDIR}"/${P}-as-needed.patch
+ epatch "${FILESDIR}"/${P}-includes.patch
+ epatch "${FILESDIR}"/${P}-gnutools.patch
+ epatch "${FILESDIR}"/${P}-noreturn.patch
+ epatch "${FILESDIR}"/${P}-destdir.patch
+ epatch "${FILESDIR}"/${P}-signal.patch
+ # gentoo examples directory
+ sed -i \
+ -e 's:$(docdir)/hdf5:$(docdir):' \
+ $(find . -name Makefile.am) || die
+ eautoreconf
+}
+
+src_configure() {
+ # threadsafe incompatible with many options
+ local myconf="--disable-threadsafe"
+ use threads && ! use fortran && ! use cxx && ! use mpi \
+ && myconf="--enable-threadsafe"
+
+ if use mpi && use cxx; then
+ myconf="${myconf} --disable-cxx"
+ elif use cxx; then
+ myconf="${myconf} --enable-cxx"
+ fi
+
+ econf \
+ --docdir=/usr/share/doc/${PF} \
+ --disable-sharedlib-rpath \
+ --enable-production \
+ --enable-shared \
+ --enable-strict-format-checks \
+ --enable-linux-lfs \
+ $(use_enable fortran) \
+ $(use_enable mpi parallel) \
+ $(use_with szip szlib) \
+ $(use_with threads pthread) \
+ $(use_with zlib) \
+ ${myconf}
+}
+
+src_install() {
+ emake DESTDIR="${D}" install || die "emake install failed"
+ dodoc README.txt
+ if use examples; then
+ emake DESTDIR="${D}" install-examples \
+ || die "emake install examples failed"
+ fi
+}
+pkg_postinst() {
+ elog "This is still an experimental version of hdf5-1.8.x"
+ elog "Please report any bugs, suggestions and patches at:"
+ elog "https://bugs.gentoo.org/show_bug.cgi?id=233297"
+}
diff --git a/sci-libs/hdf5/metadata.xml b/sci-libs/hdf5/metadata.xml
new file mode 100644
index 000000000..90bf8cff7
--- /dev/null
+++ b/sci-libs/hdf5/metadata.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>sci</herd>
+<longdescription>
+ HDF5 is a file format and library for storing scientific data. HDF5
+ was designed and implemented to address the deficiencies of HDF4.x. It
+ has a more powerful and flexible data model, supports files larger
+ than 2 GB, and supports parallel I/O.
+</longdescription>
+<use>
+ <flag name='f90'>Override Fortran for externel compilers</flag>
+ <flag name='hlapi'>Enable support for high-level library</flag>
+ <flag name='tools'>Install support and test tools</flag>
+</use>
+</pkgmetadata>