gnu: Add hdf4

Message ID alpine.DEB.2.20.1605291835050.667@jpro.nerc-bas.ac.uk
State New
Headers

Commit Message

Jeremy Robst May 29, 2016, 5:36 p.m. UTC
  Hi,

> Jeremy: could you send it as an attachment, or using ‘git send-email’?

Here's the patch as an attachment - sorry for the hassle. I will try and 
work out what's going wrong so I can send proper patches in future.

Jeremy
  

Patch

From 41816d45609674bbc62847960522e49a1646f6d3 Mon Sep 17 00:00:00 2001
From: Jeremy Robst <jpro@bas.ac.uk>
Date: Mon, 23 May 2016 17:59:00 +0100
Subject: [PATCH]     gnu: Add hdf4

    * gnu/packages/maths.scm (hdf4): New variable
---
 gnu/packages/maths.scm                          |   41 +++++++++++++++++
 gnu/packages/patches/hdf4-config-settings.patch |   55 +++++++++++++++++++++++
 2 files changed, 96 insertions(+)
 create mode 100644 gnu/packages/patches/hdf4-config-settings.patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 19ed44f..ab4785b 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -408,6 +408,47 @@  plotting engine by third-party applications like Octave.")
     (license (license:fsf-free
               "http://gnuplot.cvs.sourceforge.net/gnuplot/gnuplot/Copyright"))))
 
+(define-public hdf4
+  (package
+    (name "hdf4")
+    (version "4.2.11")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append
+             "http://www.hdfgroup.org/ftp/HDF/releases/HDF" version
+             "/src/hdf-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))
+       (patches (list (search-patch "hdf4-config-settings.patch")))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("gfortran" ,gfortran)
+       ("bison" ,bison)
+       ("flex" ,flex)))
+    (inputs
+     `(("zlib" ,zlib)
+       ("libjpeg" ,libjpeg)))
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'patch-configure
+          (lambda _
+            (substitute*
+                '("mfhdf/hdfimport/testutil.sh.in" "hdf/util/testutil.sh.in")
+              (("/bin/rm") "rm")
+              (("/bin/mkdir") "mkdir"))
+            #t)))))
+    (home-page "https://www.hdfgroup.org/products/hdf4/")
+    (synopsis
+     "Library and multi-object file format for storing and managing data")
+    (description "HDF4 is a library and multi-object file format for storing
+and managing data between machines.  HDF4 is an older hiearchical data format,
+incompatible with HDF5.")
+    (license (license:non-copyleft
+              "https://www.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/COPYING"))))
+
 (define-public hdf5
   (package
     (name "hdf5")
diff --git a/gnu/packages/patches/hdf4-config-settings.patch b/gnu/packages/patches/hdf4-config-settings.patch
new file mode 100644
index 0000000..e79362e
--- /dev/null
+++ b/gnu/packages/patches/hdf4-config-settings.patch
@@ -0,0 +1,55 @@ 
+Honor SOURCE_DATE_EPOCH when exporting configuraton date.
+Remove unreproducible configuration data.
+
+--- a/configure
++++ b/configure
+@@ -23169,7 +23169,14 @@
+ 
+ 
+ ## Configuration date
+- CONFIG_DATE="`date`"
++ CONFIG_DATE="`date -u`"
++if test -n "$SOURCE_DATE_EPOCH"; then
++  CONFIG_DATE=`date -u -d "@$SOURCE_DATE_EPOCH" 2>/dev/null \
++               || date -u -r "$SOURCE_DATE_EPOCH" 2>/dev/null`
++  if test -z "$CONFIG_DATE"; then
++    as_fn_error $? "malformed SOURCE_DATE_EPOCH" "$LINENO" 5
++  fi
++fi
+ 
+ ## User doing the configuration
+  CONFIG_USER="`whoami`@`hostname`"
+
+--- a/libhdf4.settings.in
++++ b/libhdf4.settings.in
+@@ -5,17 +5,17 @@
+ -------------------
+ 		   HDF4 Version: @H4_VERSION@
+ 		  Configured on: @CONFIG_DATE@
+-		  Configured by: @CONFIG_USER@
++		  Configured by: guix
+ 		 Configure mode: @CONFIG_MODE@
+-		    Host system: @host_cpu@-@host_vendor@-@host_os@
+-              Uname information: @UNAME_INFO@
++		    Host system: guix
++              Uname information: guix
+ 		      Libraries: @STATIC_SHARED@
+ 	     Installation point: @prefix@
+ 
+ Compiling Options:
+ ------------------
+                Compilation Mode: @CONFIG_MODE@
+-                     C compiler: @CC_VERSION@
++                     C compiler: 
+                          CFLAGS: @CFLAGS@
+                        CPPFLAGS: @CPPFLAGS@
+                Shared Libraries: @enable_shared@
+@@ -29,7 +29,7 @@
+ Languages:
+ ----------
+                         Fortran: @BUILD_FORTRAN@
+-@HDF_BUILD_FORTRAN_TRUE@               Fortran Compiler: @F77_VERSION@
++@HDF_BUILD_FORTRAN_TRUE@               Fortran Compiler: 
+ @HDF_BUILD_FORTRAN_TRUE@                         FFLAGS: @FFLAGS@
+ 
+ Features:
-- 
1.7.10.4