diff mbox series

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

Message ID 86zgbfqm88.fsf@burningswell.com
State New
Headers show
Series [bug#60039] Update GDAL and NetCDF and include lz4 and openjpeg support | expand

Commit Message

Roman Scherer Dec. 22, 2022, 7:07 p.m. UTC
Hi Guillaume,

sorry about that. Here is another patch. The failed dependencies you
mentioned are working now. Another reason why netcdf-parallel-openmpi
failed was that I changed the build system previously to cmake. I went
back to use the original gnu build system. I changed it to cmake
initially because I saw that in Arch Linux's PKGBUILD and I remember
having had some problems initially. I guess it was related to the tests
I now patched.

While at the topic. Do we prefer any build system over the other in
general in Guix, like cmake vs gnu. Does one have more features than the
other (I heard something about cross compilation)?

And another question. How did you find the failing dependencies in the
first place? Did you build all the dependencies of the netcdf packages
with --sources=all?

Thanks for the help.

Roman
Guillaume Le Vaillant <glv@posteo.net> writes:

> [[PGP Signed Part:Undecided]]
> Roman Scherer <roman.scherer@burningswell.com> skribis:
>
>> 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.
>>
>> [2. text/x-diff; 0005-gnu-netcdf-Update-to-4.9.0.patch]...
>
> Hi,
>
> The build environment doesn't have network access, so indeed remote
> tests have to be disabled.
>
> The netcdf-parallel-openmpi package fails to build with the updated
> netcdf. I think it's because the package definition for
> netcdf-parallel-openmpi inherits from the package definition for netcdf,
> so it has to be updated to take into consideration the build-system
> change of netcdf.
>
> There are also some dependents that fail to build (cdo, python-h5netcdf,
> python-meshio, qgis). I saw some error messages about conflicting
> versions of hdf5, probably because in your patch netcdf uses hdf5-1.12
> and the dependents also have hdf5 (v1.10) in their dependency graph in
> some way. Maybe this could be fixed by using hdf5 instead of hdf5-1.12
> for netcdf...
>
> Could take a look?
>
> [[End of PGP Signed Part]]

Comments

Guillaume Le Vaillant Dec. 23, 2022, 10:58 a.m. UTC | #1
Roman Scherer <roman.scherer@burningswell.com> skribis:

> Hi Guillaume,
>
> sorry about that. Here is another patch. The failed dependencies you
> mentioned are working now. Another reason why netcdf-parallel-openmpi
> failed was that I changed the build system previously to cmake. I went
> back to use the original gnu build system. I changed it to cmake
> initially because I saw that in Arch Linux's PKGBUILD and I remember
> having had some problems initially. I guess it was related to the tests
> I now patched.
>
> While at the topic. Do we prefer any build system over the other in
> general in Guix, like cmake vs gnu. Does one have more features than the
> other (I heard something about cross compilation)?

Usually the best build system is the one that upstream developers use.
If several equivalent build systems can be used, it depends what works
best or what is easier in Guix...


> And another question. How did you find the failing dependencies in the
> first place? Did you build all the dependencies of the netcdf packages
> with --sources=all?

You can find the dependents of a package with:

--8<---------------cut here---------------start------------->8---
./pre-inst-env guix refresh -l <package-name>
--8<---------------cut here---------------end--------------->8---

So you can rebuild all the dependents of a package with something like:

--8<---------------cut here---------------start------------->8---
./pre-inst-env guix build $(./pre-inst-env guix refresh -l <package-name> | cut -d ':' -f 2)
--8<---------------cut here---------------end--------------->8---


Patch pushed as 66188398c446bdf9ce044fa539536e9b54c28c60 with a complete
commit message.
Thanks.
Roman Scherer Dec. 23, 2022, 11:13 a.m. UTC | #2
Thank you!

On Fri, Dec 23, 2022, 12:11 Guillaume Le Vaillant <glv@posteo.net> wrote:

> Roman Scherer <roman.scherer@burningswell.com> skribis:
>
> > Hi Guillaume,
> >
> > sorry about that. Here is another patch. The failed dependencies you
> > mentioned are working now. Another reason why netcdf-parallel-openmpi
> > failed was that I changed the build system previously to cmake. I went
> > back to use the original gnu build system. I changed it to cmake
> > initially because I saw that in Arch Linux's PKGBUILD and I remember
> > having had some problems initially. I guess it was related to the tests
> > I now patched.
> >
> > While at the topic. Do we prefer any build system over the other in
> > general in Guix, like cmake vs gnu. Does one have more features than the
> > other (I heard something about cross compilation)?
>
> Usually the best build system is the one that upstream developers use.
> If several equivalent build systems can be used, it depends what works
> best or what is easier in Guix...
>
>
> > And another question. How did you find the failing dependencies in the
> > first place? Did you build all the dependencies of the netcdf packages
> > with --sources=all?
>
> You can find the dependents of a package with:
>
> --8<---------------cut here---------------start------------->8---
> ./pre-inst-env guix refresh -l <package-name>
> --8<---------------cut here---------------end--------------->8---
>
> So you can rebuild all the dependents of a package with something like:
>
> --8<---------------cut here---------------start------------->8---
> ./pre-inst-env guix build $(./pre-inst-env guix refresh -l <package-name>
> | cut -d ':' -f 2)
> --8<---------------cut here---------------end--------------->8---
>
>
> Patch pushed as 66188398c446bdf9ce044fa539536e9b54c28c60 with a complete
> commit message.
> Thanks.
>
diff mbox series

Patch

From a5ad4273294d0d92eec1eeab2173f12bfe36b74b Mon Sep 17 00:00:00 2001
From: r0man <roman@burningswell.com>
Date: Thu, 22 Dec 2022 19:41:14 +0100
Subject: [PATCH] gnu: netcdf: Update to 4.9.0.

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

diff --git a/gnu/packages/maths.scm b/gnu/packages/maths.scm
index 050450e12c..0d1c65636b 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
@@ -1874,13 +1874,18 @@  (define-public netcdf
     (native-inputs
      (list m4 doxygen graphviz))
     (inputs
-     `(("hdf4" ,hdf4-alt)
+     `(("curl" ,curl)
+       ("hdf4" ,hdf4-alt)
        ("hdf5" ,hdf5)
-       ("curl" ,curl)
-       ("zlib" ,zlib)
-       ("libjpeg" ,libjpeg-turbo)))
+       ("libjpeg" ,libjpeg-turbo)
+       ("libxml2" ,libxml2)
+       ("unzip" ,unzip)
+       ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags '("--enable-doxygen" "--enable-dot" "--enable-hdf4")
+     `(#:configure-flags '("--enable-doxygen"
+                           "--enable-dot"
+                           "--enable-hdf4"
+                           "--disable-dap-remote-tests")
 
        #:phases (modify-phases %standard-phases
          (add-before 'configure 'fix-source-date
@@ -1891,8 +1896,7 @@  (define-public netcdf
              ;; package not reproducible.
              (substitute* "./configure"
                (("date -u -d \"\\$\\{SOURCE_DATE_EPOCH\\}\"")
-                "date --date='@0'"))
-             #t))
+                "date --date='@0'"))))
          (add-after 'configure 'patch-settings
            (lambda _
              ;; libnetcdf.settings contains the full filename of the compilers
@@ -1901,8 +1905,11 @@  (define-public netcdf
              ;; store items.
              (substitute* "libnetcdf.settings"
                (("(/gnu/store/)([0-9A-Za-z]*)" all prefix hash)
-                (string-append prefix (string-take hash 10) "...")))
-             #t)))
+                (string-append prefix (string-take hash 10) "...")))))
+         (add-before 'check 'fix-test-rcmerge
+           (lambda _
+             ;; Set HOME, to fix the test-rcmerge test.
+             (setenv "HOME" "/tmp"))))
 
        #:parallel-tests? #f))           ;various race conditions
     (home-page "https://www.unidata.ucar.edu/software/netcdf/")
-- 
2.38.1