Subject: [bug#60039] Update GDAL and NetCDF and include lz4 and openjpeg support

From: Roman Scherer <[email-masked]>
Date: Tue, 20 Dec 2022 20:10:23 +0100

Hi Guillaume,

here's the updated patch for Netcdf. I checked the tests again, I
believe I left some of them off by accident after trying a couple of
things. So, I enabled some of them again. They pass. However, I left the
remote and large file tests still turned off.

I believe the remote tests we do not want anyway on Guix CICD
system. Is that correct? And the large file tests seem to take ages. Can
we ignore them, because they are super annoying?

Thanks for the review.

Wdyt?

Roman.

From eb2a03112532f6c1482ebaf1634cf3ac67303507 Mon Sep 17 00:00:00 2001
From: r0man <[email-masked]>
Date: Tue, 20 Dec 2022 20:06:57 +0100
Subject: [PATCH] gnu: netcdf: Update to 4.9.0.

* gnu/packages/maths.scm (netcdf): Update to 4.9.0.
---
 gnu/packages/maths.scm | 50 +++++++++++++++++++++++++++++++-----------
 1 file changed, 37 insertions(+), 13 deletions(-)

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 050450e12c..a5de0f4016 100644
--- a/gnu/packages/maths.scm
+++ b/gnu/packages/maths.scm
@@ -1852,16 +1852,16 @@ (define-public itpp
 (define-public netcdf
   (package
     (name "netcdf")
-    (version "4.7.4")
+    (version "4.9.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append
-             "https://www.unidata.ucar.edu/downloads/netcdf/ftp/"
-             "netcdf-c-" version ".tar.gz"))
+             "https://downloads.unidata.ucar.edu/netcdf-c/" version
+             "/netcdf-c-" version ".tar.gz"))
        (sha256
         (base32
-         "1a2fpp15a2rl1m50gcvvzd9y6bavl6vjf9zzf63sz5gdmq06yiqf"))
+         "0j8b814mjdqvqanzmrxpq8hn33n22cdzb3gf9vhya24wnwi615ac"))
        (modules '((guix build utils)))
        (snippet
         ;; Make sure this variable is defined only once.  Failing to do so
@@ -1870,19 +1870,40 @@ (define-public netcdf
         '(substitute* "ncdump/ocprint.c"
            (("^int ocdebug") "static int ocdebug")))
        (patches (search-patches "netcdf-date-time.patch"))))
-    (build-system gnu-build-system)
+    (build-system cmake-build-system)
     (native-inputs
-     (list m4 doxygen graphviz))
+     (list m4 doxygen graphviz unzip))
     (inputs
      `(("hdf4" ,hdf4-alt)
-       ("hdf5" ,hdf5)
+       ("hdf5" ,hdf5-1.12)
        ("curl" ,curl)
        ("zlib" ,zlib)
-       ("libjpeg" ,libjpeg-turbo)))
+       ("libjpeg" ,libjpeg-turbo)
+       ("libxml2" ,libxml2)))
     (arguments
-     `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4")
-
-       #:phases (modify-phases %standard-phases
+     `(#:configure-flags
+       '("-DENABLE_BYTERANGE=ON"
+         "-DENABLE_CDF5=ON"
+         "-DENABLE_DAP_LONG_TESTS=ON"
+         "-DENABLE_DAP_REMOTE_TESTS=OFF"
+         "-DENABLE_EXAMPLE_TESTS=ON"
+         "-DENABLE_EXTRA_TESTS=ON"
+         "-DENABLE_FILTER_TESTING=ON"
+         "-DENABLE_LARGE_FILE_TESTS=OFF"
+         "-DENABLE_UNIT_TESTS=ON"
+         "-DSOURCE_DATE_EPOCH=0")
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'configure 'fix-cmake-typo
+           (lambda _
+             ;; Fix a typo in CMakeLists.txt
+             (substitute* "CMakeLists.txt"
+               (("SET\\(netCDF_LIB_VERSION 19\\}\\)")
+                "SET(netCDF_LIB_VERSION 19)"))
+             #t))
+         (add-before 'configure 'disable-nc-byterange-test
+           (lambda _
+             (invoke "sed" "-i" "/test_byterange/d" "nc_test/CMakeLists.txt")))
          (add-before 'configure 'fix-source-date
            (lambda _
              ;; As we ${SOURCE_DATE_EPOCH} evaluates to "1" in the build
@@ -1902,8 +1923,11 @@ (define-public netcdf
              (substitute* "libnetcdf.settings"
                (("(/gnu/store/)([0-9A-Za-z]*)" all prefix hash)
                 (string-append prefix (string-take hash 10) "...")))
-             #t)))
-
+             #t))
+         (add-before 'check 'fix-test-rcmerge
+           (lambda _
+             ;; Set HOME, to fix the test-rcmerge.
+             (setenv "HOME" "/tmp"))))
        #:parallel-tests? #f))           ;various race conditions
     (home-page "https://www.unidata.ucar.edu/software/netcdf/")
     (synopsis "Library for scientific data")
-- 
2.38.1

Guillaume Le Vaillant <[email-masked]> writes:

> [[PGP Signed Part:Undecided]]
> Roman Scherer <[email-masked]> skribis:
>
>> Hello Guix,
>>
>> this patch series updates the GDAL, Netcdf and libtiff packages. It also
>> adds support for lz4 and openjpeg to GDAL.
>>
>> Could you please review it?
>>
>> Thanks, Roman.
>>
>> [2. text/x-diff; 0001-gnu-gdal-Update-to-3.6.0.patch]...
>
> Hi,
>
> Instead of this patch 1, I pushed the patch from issue 60159 that updates
> gdal to 3.6.1.
>
>
>> [3. text/x-diff; 0002-gnu-gdal-Add-support-for-lz4-and-openjpeg.patch]...
>
> Patch 2 pushed as 3c6f7b53cea7ea5dc8176fec02271bc3770d7fc1.
>
>
>> [4. text/x-diff; 0003-gnu-libtiff-Update-to-4.4.0.patch]...
>
> As libtiff as over 9000 dependents, it has to be updated on the
> core-updates branch instead of master (see [1]). However, libtiff is
> already at version 4.4.0 on core-updates, so patch 3 is not necessary
> and libtiff 4.4.0 will end up in master when core-updates gets merged.
>
> [1] https://guix.gnu.org/manual/devel/en/guix.html#Submitting-Patches
>
>
>> [5. text/x-diff; 0004-gnu-netcdf-Update-to-4.9.0.patch]...
>
> When adding or removing a patch file to "gnu/packages/patches/...", the
> 'dist_patch_DATA' variable in "gnu/packages/local.mk" has to be updated
> to track the necessary patch files.
> Moreover, as this patch fixes only one line, it is also possible to add
> a custom phase with a '(substitute* ...)' form in the 'arguments' field
> instead of adding a patch file.
> Could you send an updated patch 4?
> Thanks.
>
> Also, many tests are disabled in 'configure-flags'. Are they not working
> at all?
>
> [[End of PGP Signed Part]]