diff mbox

gnu: Add hdf4

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

Commit Message

Jeremy Robst May 24, 2016, 1:20 p.m. UTC
Hi,

I could apply the previous patch, but I've created a new one (below) that 
handles the tests (I think).

>> +    (license (license:x11-style
>> +              "https://www.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/COPYING"))))
>
> To me, this looks more like a variation on the BSD license than the x11
> license. Perhaps non-copyleft is a more appropriate choice. Can you look
> at some of our packages using non-copyleft and report back?

I've changed the license to non-copyleft, which I think is closer. I was 
copying the hdf5 license definition, which is very similar and probably 
should also be changed.

The definition for hdf4 still isn't quite right though, it doesn't 
generate a reproducible build - the hdf4 configure script generates a file 
lib/libhdf4.settings (from libhdf4.settings.in) which includes the config 
time, user, system information, which obviously changes from build to 
build or system to system.

What's the best way to resolve this ?

Thanks

Jeremy

Comments

Eric Bavier May 24, 2016, 7:06 p.m. UTC | #1
On 2016-05-24 08:20, Jeremy Robst wrote:
> Hi,
> 
> I could apply the previous patch, but I've created a new one (below)
> that handles the tests (I think).
> 
>>> +    (license (license:x11-style
>>> +              
>>> "https://www.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/COPYING"))))
>> 
>> To me, this looks more like a variation on the BSD license than the 
>> x11
>> license. Perhaps non-copyleft is a more appropriate choice. Can you 
>> look
>> at some of our packages using non-copyleft and report back?
> 
> I've changed the license to non-copyleft, which I think is closer. I
> was copying the hdf5 license definition, which is very similar and
> probably should also be changed.

Indeed.

> The definition for hdf4 still isn't quite right though, it doesn't
> generate a reproducible build - the hdf4 configure script generates a
> file lib/libhdf4.settings (from libhdf4.settings.in) which includes
> the config time, user, system information, which obviously changes
> from build to build or system to system.
> 
> What's the best way to resolve this ?

Could we apply a variation of the hdf5-config-date.patch?


> --
> jpro@bas.ac.uk | (work) 01223 221402 (fax) 01223 362616
> Unix System Administrator - British Antarctic Survey
> #include <disclaimer.std>
> 
> From 857fb05c7dcc8f19dc7d4cf04039743137f4f0ae 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 |   43 
> +++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 43 insertions(+)
> 
> diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
> index 19ed44f..00c0310 100644
> --- a/gnu/packages/maths.scm
> +++ b/gnu/packages/maths.scm
> @@ -408,6 +408,49 @@ 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/HDF_Current/src/hdf-"
> +             version
> +             ".tar.bz2"))
> +       (sha256
> +        (base32
> +         "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))))
> +    (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/")

The blank line between these fields is not necessary.

> +    (synopsis
> +     "Library and multi-object file format for storing and managing 
> data.")
> +    (description "At its lowest level, HDF is a physical file format 
> for
> +storing scientific data.  At its highest level, HDF is a collection of
> +utilities and applications for manipulating, viewing, and analyzing 
> data
> +in HDF files.  Between these levels, HDF is a software library that 
> provides
> +high-level APIs and a low-level data interface. ")

This description is noticeably more verbose than that of the hdf5 
package.  It seems like the first two sentences are not necessary here.  
It would also be nice to summarize how hdf4 differs from hdf5.
diff mbox

Patch

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 19ed44f..00c0310 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -408,6 +408,49 @@  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/HDF_Current/src/hdf-"
+             version
+             ".tar.bz2"))
+       (sha256
+        (base32
+         "16yr50j845zlfx20skmw3y75ww77akk9gg0affjqkg66ih5r03mv"))))
+    (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 "At its lowest level, HDF is a physical file format for
+storing scientific data.  At its highest level, HDF is a collection of
+utilities and applications for manipulating, viewing, and analyzing data
+in HDF files.  Between these levels, HDF is a software library that provides
+high-level APIs and a low-level data interface. ")
+    (license (license:non-copyleft
+              "https://www.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/COPYING"))))
+
  (define-public hdf5
    (package
      (name "hdf5")