guix_mirror_bot pushed a commit to branch next-master
in repository guix.

commit eec7ed347b49a93d17807ed92c767a8064ec3901
Author: Andreas Enge <[email protected]>
AuthorDate: Sun Jan 11 12:51:19 2026 +0100

    gnu: hdf4-alt: Disinherit from hdf4.
    
    * gnu/packages/maths.scm (hdf4-alt)[inherit]: Remove field.
    [version, source, build-system, native-inputs, inputs, home-page,
    synopsis, description, license]: Copy and paste from hdf4.
    [arguments]: Adapt from hdf4 without changing the derivation.
    
    Change-Id: I37cb97d7d97ea4426158b6970b98695d4f514332
---
 gnu/packages/maths.scm | 71 +++++++++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 67 insertions(+), 4 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 883f28bd1d..7f2af70781 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1751,13 +1751,76 @@ incompatible with HDF5.")
 
 (define-public hdf4-alt
   (package
-    (inherit hdf4)
     (name "hdf4-alt")
+    (version "4.2.16-2")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://support.hdfgroup.org/ftp/HDF/releases/HDF";
+                           version "/src/hdf-" version ".tar.bz2"))
+       (sha256
+        (base32 "0b395czhqr43mmbiifmg2mhb488wnd4zccj45vpql98ja15j7hy5"))
+       (patches (search-patches "hdf4-reproducibility.patch"
+                                "hdf4-shared-fortran.patch"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     (list gfortran bison flex))
+    (inputs
+     `(("zlib" ,zlib)
+       ("libjpeg" ,libjpeg-turbo)
+       ("libtirpc" ,libtirpc)))
     (arguments
-     (substitute-keyword-arguments (package-arguments hdf4)
-       ((#:configure-flags flags) `(cons* "--disable-netcdf" ,flags))))
+     `(#:parallel-tests? #f
+       ;; Twisted expression to avoid rebuilding when dropping inheritance.
+       #:configure-flags (cons* "--disable-netcdf"
+                                (list "--enable-shared"
+                                      "FCFLAGS=-fallow-argument-mismatch"
+                                      "FFLAGS=-fallow-argument-mismatch"
+                                      "--enable-hdf4-xdr"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; This is inspired by two of Debian's patches.
+         (add-before 'configure 'add-more-architecture-support
+           (lambda _
+             (substitute* '("mfhdf/ncgen/ncgen.l"
+                            "mfhdf/ncgen/ncgenyy.c"
+                            "mfhdf/libsrc/netcdf.h.in")
+               (("AIX5L64") "__aarch64__ || ( __riscv && __riscv_xlen == 
64)"))))
+         (add-before 'configure 'patchbuild
+           (lambda _
+             (substitute*
+                 '("mfhdf/hdfimport/testutil.sh.in" "hdf/util/testutil.sh.in")
+               (("/bin/rm") "rm")
+               (("/bin/mkdir") "mkdir"))))
+         (add-after 'configure 'patch-settings
+           (lambda _
+             ;; libhdf4.settings contains the full path of the
+             ;; compilers used, and its contents are included in
+             ;; .so-files.  We truncate the hashes to avoid
+             ;; unnecessary store references to those compilers:
+             (substitute* "libhdf4.settings"
+               (("(/gnu/store/)([0-9A-Za-z]*)" all prefix hash)
+                (string-append prefix (string-take hash 10) "...")))
+             #t))
+         (add-after 'install 'provide-absolute-libjpeg-reference
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out"))
+                   (libjpeg (assoc-ref inputs "libjpeg")))
+               ;; libjpeg-turbo does not provide a .la file, so libtool is
+               ;; unable to add an absolute reference for -ljpeg in the .la
+               ;; files.  Fix it manually to avoid having to propagate it.
+               (substitute* (find-files (string-append out "/lib") "\\.la$")
+                 (("-ljpeg")
+                  (string-append "-L" libjpeg "/lib -ljpeg")))))))))
+    (home-page "https://www.hdfgroup.org/products/hdf4/";)
     (synopsis
-     "HDF4 without netCDF API, can be combined with the regular netCDF 
library")))
+     "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 hierarchical data format,
+incompatible with HDF5.")
+    (license
+     (license:non-copyleft
+      "https://www.hdfgroup.org/ftp/HDF/HDF_Current/src/unpacked/COPYING";))))
 
 (define-public hdf5-1.8
   (package

Reply via email to