~ruther/guix-local

0f43f8354ccd58dcb54e2c025e99d972c5bfa65f — Thomas Danckaert 9 years ago b282c781
gnu: Add hdf-eos5.

* gnu/packages/maths.scm (hdf-eos5): New variable.
* gnu/packages/patches/hdf-eos5-build-shared.patch: New file.
* gnu/packages/patches/hdf-eos5-remove-gctp.patch: New file.
* gnu/packages/patches/hdf-eos5-fix-szip.patch: New file.
* gnu/packages/patches/hdf-eos5-fortrantests.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add patches.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
M gnu/local.mk => gnu/local.mk +4 -0
@@ 571,6 571,10 @@ dist_patch_DATA =						\
  %D%/packages/patches/gtk3-respect-GUIX_GTK3_IM_MODULE_FILE.patch \
  %D%/packages/patches/gtkglext-disable-disable-deprecated.patch \
  %D%/packages/patches/hdf5-config-date.patch			\
  %D%/packages/patches/hdf-eos5-build-shared.patch 		\
  %D%/packages/patches/hdf-eos5-remove-gctp.patch		\
  %D%/packages/patches/hdf-eos5-fix-szip.patch			\
  %D%/packages/patches/hdf-eos5-fortrantests.patch		\
  %D%/packages/patches/higan-remove-march-native-flag.patch	\
  %D%/packages/patches/hop-bigloo-4.0b.patch			\
  %D%/packages/patches/hop-linker-flags.patch			\

M gnu/packages/maths.scm => gnu/packages/maths.scm +37 -0
@@ 14,6 14,7 @@
;;; Copyright © 2016 Kei Kebreau <kei@openmailbox.org>
;;; Copyright © 2016 Ludovic Courtès <ludo@gnu.org>
;;; Copyright © 2016 Leo Famulari <leo@famulari.name>
;;; Copyright © 2016 Thomas Danckaert <post@thomasdanckaert.be>
;;;
;;; This file is part of GNU Guix.
;;;


@@ 483,6 484,42 @@ extremely large and complex data collections.")
    (license (license:x11-style
              "http://www.hdfgroup.org/ftp/HDF5/current/src/unpacked/COPYING"))))

(define-public hdf-eos5
  (package
    (name "hdf-eos5")
    (version "1.15")
    (source (origin
              (method url-fetch)
              (uri (string-append "ftp://edhs1.gsfc.nasa.gov\
/edhs/hdfeos5/latest_release/HDF-EOS5." version ".tar.Z"))
              (sha256
               (base32
                "1p83333nzzy8rn5chxlm0hrkjjnhh2w1ji8ac0f9q4xzg838i58i"))
              (patches (search-patches "hdf-eos5-build-shared.patch"
                                       "hdf-eos5-remove-gctp.patch"
                                       "hdf-eos5-fix-szip.patch"
                                       "hdf-eos5-fortrantests.patch"))))
    (native-inputs
     `(("gfortran" ,gfortran)))
    (build-system gnu-build-system)
    (inputs
     `(("hdf5" ,hdf5)
       ("zlib" ,zlib)
       ("gctp" ,gctp)))
    (arguments
     `(#:configure-flags '("--enable-install-include" "--enable-shared"
                           "CC=h5cc -Df2cFortran" "LIBS=-lgctp")
       #:parallel-tests? #f))
    (synopsis "HDF5-based data format for NASA's Earth Observing System")
    (description
     "HDF-EOS5 is a software library built on HDF5 to support the construction
of data structures used in NASA's Earth Observing System (Grid, Point and
Swath).")
    (home-page "http://www.hdfeos.org/software/library.php#HDF-EOS5")

    ;; Source files carry a permissive license header.
    (license (license:non-copyleft home-page))))

(define-public hdf5-parallel-openmpi
  (package (inherit hdf5)
    (name "hdf5-parallel-openmpi")

A gnu/packages/patches/hdf-eos5-build-shared.patch => gnu/packages/patches/hdf-eos5-build-shared.patch +31 -0
@@ 0,0 1,31 @@
Make shared library linking work.
---
 src/Makefile.in | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/src/Makefile.in b/src/Makefile.in
index 86880e5..24efffe 100644
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -72,7 +72,7 @@ LTCOMPILE = $(LIBTOOL) --mode=compile --tag=CC $(CC) $(DEFS) \
 	$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
 	$(AM_CFLAGS) $(CFLAGS) -DH5_USE_16_API
 CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+LINK = HDF5_USE_SHLIB=yes $(LIBTOOL) --mode=link --tag=CC $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
 	$(AM_LDFLAGS) $(LDFLAGS) -o $@
 SOURCES = $(libhe5_hdfeos_la_SOURCES)
 DIST_SOURCES = $(libhe5_hdfeos_la_SOURCES)
@@ -124,9 +124,6 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
 INSTALL_SCRIPT = @INSTALL_SCRIPT@
 INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
 
-# Set LDFLAGS to allow the HDF-EOS library to use extern variables from
-# HDF5
-LDFLAGS = -Wl,-single_module
 LIBOBJS = @LIBOBJS@
 LIBS = @LIBS@
 LIBTOOL = @LIBTOOL@
-- 
2.10.0


A gnu/packages/patches/hdf-eos5-fix-szip.patch => gnu/packages/patches/hdf-eos5-fix-szip.patch +30 -0
@@ 0,0 1,30 @@
Ill-placed #endif causes missing symbol errors when compiling without
szip.  Reported to upstream maintainer.
---
 src/EHapi.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/src/EHapi.c b/src/EHapi.c
index 46a9b5c..208f447 100755
--- a/src/EHapi.c
+++ b/src/EHapi.c
@@ -11379,6 +11379,7 @@ int HE5_szip_can_encode(void )
   return(-1);
 }
 
+#endif /* H5_HAVE_FILTER_SZIP */
 
 
 /*----------------------------------------------------------------------------|
@@ -11509,8 +11510,6 @@ HE5_EHHEisHE5(char *filename)
     }
 }
 
-#endif /* H5_HAVE_FILTER_SZIP */
-
 
 #ifndef __cplusplus
 
-- 
2.10.0


A gnu/packages/patches/hdf-eos5-fortrantests.patch => gnu/packages/patches/hdf-eos5-fortrantests.patch +156 -0
@@ 0,0 1,156 @@
Fix fortran line length/indentation issues in Fortran test programs.
Reported to upstream maintainer.

diff --git a/samples/he5_gd_writedataF_32.f b/samples/he5_gd_writedataF_32.f
index 515edf9..9c86299 100755
--- a/samples/he5_gd_writedataF_32.f
+++ b/samples/he5_gd_writedataF_32.f
@@ -77,26 +77,26 @@ c           ------------------------------
 
 		attr4 = "ABCDEFGH"
 		count(1) = 8
-		status = he5_gdwrattr(gdid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+		status = he5_gdwrattr(gdid,"GLOBAL_CHAR_ATTR"
+     &               ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_gdwrattr():  ',status
 
 		attr4 = "111"
 		count(1) = 3
-		status = he5_gdwrgattr(gdid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+		status = he5_gdwrgattr(gdid,"GLOBAL_CHAR_ATTR_1"
+     &               ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_gdwrgattr():  ',status
 
 		attr4 = "222222"
 		count(1) = 6
-		status = he5_ehwrglatt(gdfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+		status = he5_ehwrglatt(gdfid,"GLOBAL_CHAR_ATTR_2"
+     &               ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_ehwrglatt():  ',status
 
 		attr5 = "abcdefgh111111111111"
 		count(1) = 20
-		status = he5_gdwrlattr(gdid,"Vegetation","LocalAttribute_0",
-	1	HE5T_NATIVE_CHAR,count,attr5)
+		status = he5_gdwrlattr(gdid,"Vegetation"
+     &               ,"LocalAttribute_0",HE5T_NATIVE_CHAR,count,attr5)
 	write(*,*) 'Status returned by he5_gdwrlattr():  ',status
 
 		 endif
diff --git a/samples/he5_gd_writedataF_64.f b/samples/he5_gd_writedataF_64.f
index eff04f5..62a7398 100755
--- a/samples/he5_gd_writedataF_64.f
+++ b/samples/he5_gd_writedataF_64.f
@@ -77,26 +77,26 @@ c           ------------------------------
 
 		attr4 = "ABCDEFGH"
 		count(1) = 8
-		status = he5_gdwrattr(gdid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+		status = he5_gdwrattr(gdid,"GLOBAL_CHAR_ATTR"
+     &               ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_gdwrattr():  ',status
 
 		attr4 = "111"
 		count(1) = 3
-		status = he5_gdwrgattr(gdid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+		status = he5_gdwrgattr(gdid,"GLOBAL_CHAR_ATTR_1"
+     &               ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_gdwrgattr():  ',status
 
 		attr4 = "222222"
 		count(1) = 6
-		status = he5_ehwrglatt(gdfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+		status = he5_ehwrglatt(gdfid,"GLOBAL_CHAR_ATTR_2"
+     &               ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_ehwrglatt():  ',status
 
 		attr5 = "abcdefgh111111111111"
 		count(1) = 20
-		status = he5_gdwrlattr(gdid,"Vegetation","LocalAttribute_0",
-	1	HE5T_NATIVE_CHAR,count,attr5)
+		status = he5_gdwrlattr(gdid,"Vegetation"
+     &               ,"LocalAttribute_0",HE5T_NATIVE_CHAR,count,attr5)
 	write(*,*) 'Status returned by he5_gdwrlattr():  ',status
 
 		 endif
diff --git a/samples/he5_sw_writedataF_32.f b/samples/he5_sw_writedataF_32.f
index 7abab9b..fedd49a 100755
--- a/samples/he5_sw_writedataF_32.f
+++ b/samples/he5_sw_writedataF_32.f
@@ -173,20 +173,21 @@ c     Write Global Attribute
 c     ----------------------
 			attr4 = "ABCDEFGH"
 			count(1) = 8
-			status = he5_swwrattr(swid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+			status = he5_swwrattr(swid,"GLOBAL_CHAR_ATTR"
+     &                       ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_swwrattr():  ',status
 
 			attr4 = "111"
 			count(1) = 3
-			status = he5_swwrgattr(swid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+			status = he5_swwrgattr(swid,"GLOBAL_CHAR_ATTR_1"
+     &                       ,HE5T_NATIVE_CHAR,count,attr4)
 	write(*,*) 'Status returned by he5_swwrgattr():  ',status
 
 			attr4 = "222222"
 			count(1) = 6
-			status = he5_ehwrglatt(swfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+			status = he5_ehwrglatt(swfid
+     &                       ,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR
+     &                       ,count,attr4)
 	write(*,*) 'Status returned by he5_ehwrglatt():  ',status
 
 c     Write Local Attribute
diff --git a/samples/he5_sw_writedataF_64.f b/samples/he5_sw_writedataF_64.f
index 79e34bd..e5d74cb 100755
--- a/samples/he5_sw_writedataF_64.f
+++ b/samples/he5_sw_writedataF_64.f
@@ -162,25 +162,27 @@ c     Write Global Attribute
 c     ----------------------
 			attr4 = "ABCDEFGH"
 			count(1) = 8
-			status = he5_swwrattr(swid,"GLOBAL_CHAR_ATTR",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+			status = he5_swwrattr(swid,"GLOBAL_CHAR_ATTR"
+     &                       ,HE5T_NATIVE_CHAR,count,attr4)
 
 			attr4 = "111"
 			count(1) = 3		
-			status = he5_swwrgattr(swid,"GLOBAL_CHAR_ATTR_1",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+			status = he5_swwrgattr(swid,"GLOBAL_CHAR_ATTR_1"
+     &                       ,HE5T_NATIVE_CHAR,count,attr4)
 
 			attr4 = "222222"
 			count(1) = 6
-			status = he5_ehwrglatt(swfid,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR,
-	1	count,attr4)
+			status = he5_ehwrglatt(swfid
+     &                       ,"GLOBAL_CHAR_ATTR_2",HE5T_NATIVE_CHAR
+     &                       ,count,attr4)
 
 c     Write Local Attribute
 c     ---------------------
 			attr5 = "abababababababababab"
 			count(1) = 20
-			status = he5_swwrlattr(swid,"Density","LocalAttribute_0",
-	1	HE5T_NATIVE_CHAR,count,attr5)
+			status = he5_swwrlattr(swid,"Density"
+     &                       ,"LocalAttribute_0",HE5T_NATIVE_CHAR,count
+     &                       ,attr5)
 
 	      
 		 endif
-- 
2.10.0


A gnu/packages/patches/hdf-eos5-remove-gctp.patch => gnu/packages/patches/hdf-eos5-remove-gctp.patch +55 -0
@@ 0,0 1,55 @@
Don't build/install/use bundled gctp code/headers.

* cproj.h, proj.h: part of GCTP, therefore already present.
* HE5_config.h, tutils.h: used for library building and testing.

diff --git a/Makefile.in b/Makefile.in
index f160d0d..367b537 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -206,7 +206,7 @@ LIBGCTP = $(top_builddir)/gctp/src/libGctp.la
 @TESTDRIVERS_CONDITIONAL_TRUE@TESTDRIVERS = testdrivers
 @INSTALL_INCLUDE_CONDITIONAL_FALSE@INCLUDE = 
 @INSTALL_INCLUDE_CONDITIONAL_TRUE@INCLUDE = include
-SUBDIRS = gctp src $(INCLUDE) samples $(TESTDRIVERS)
+SUBDIRS = src $(INCLUDE) samples $(TESTDRIVERS)
 all: all-recursive
 
 .SUFFIXES:
diff --git a/samples/Makefile.in b/samples/Makefile.in
index 59331dd..64fda89 100644
--- a/samples/Makefile.in
+++ b/samples/Makefile.in
@@ -206,7 +206,6 @@ he5_gd_datainfo_SOURCES = he5_gd_datainfo.c
 he5_gd_datainfo_OBJECTS = he5_gd_datainfo.$(OBJEXT)
 he5_gd_datainfo_LDADD = $(LDADD)
 am__DEPENDENCIES_1 = $(top_builddir)/src/libhe5_hdfeos.la
-am__DEPENDENCIES_2 = $(top_builddir)/gctp/src/libGctp.la
 he5_gd_datainfo_DEPENDENCIES = $(am__DEPENDENCIES_1) \
 	$(am__DEPENDENCIES_2)
 he5_gd_defexternalfld_SOURCES = he5_gd_defexternalfld.c
@@ -1093,7 +1092,7 @@ sharedstatedir = @sharedstatedir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
 LIBHDFEOS5 = $(top_builddir)/src/libhe5_hdfeos.la
-LIBGCTP = $(top_builddir)/gctp/src/libGctp.la
+LIBGCTP =
 
 # Boilerplate definitions file
 
diff --git a/include/Makefile.in b/include/Makefile.in
index a572128..64dabb5 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -190,8 +190,7 @@ LIBGCTP = $(top_builddir)/gctp/src/libGctp.la
 # Boilerplate include
 
 # Headers to install
-include_HEADERS = HE5_GctpFunc.h HE5_HdfEosDef.h HE5_config.h cproj.h ease.h \
-                  isin.h proj.h tutils.h cfortHdf.h
+include_HEADERS = HE5_GctpFunc.h HE5_HdfEosDef.h ease.h isin.h cfortHdf.h
 
 all: HE5_config.h
 	$(MAKE) $(AM_MAKEFLAGS) all-am
-- 
2.10.0