summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDom Heinzeller <dom.heinzeller@icloud.com>2022-10-26 10:18:17 -0600
committerGitHub <noreply@github.com>2022-10-26 09:18:17 -0700
commit3e37ad9aee28aa8dff87e0eb58bfa1fe61bfcad6 (patch)
tree8d1529d0396b6a5df180519dc999fe7d9dc0ea0b
parentb3794761ab90259764f1460edc93ec9c0ad70716 (diff)
downloadspack-3e37ad9aee28aa8dff87e0eb58bfa1fe61bfcad6.tar.gz
spack-3e37ad9aee28aa8dff87e0eb58bfa1fe61bfcad6.tar.bz2
spack-3e37ad9aee28aa8dff87e0eb58bfa1fe61bfcad6.tar.xz
spack-3e37ad9aee28aa8dff87e0eb58bfa1fe61bfcad6.zip
Add netcdf-c 4.9.0 and netcdf-fortran 4.6.0 (supersedes #31953) (#33514)
* Add netcdf-c 4.9.0 and netcdf-fortran 4.6.0 With v4.9.0 netcdf-c introduces zstandard compression option which is added as a variant. * Fix when= in dependency * Turn on variant zstd by default Co-authored-by: kgerheiser <kgerheiser@icloud.com>
-rw-r--r--var/spack/repos/builtin/packages/netcdf-c/package.py21
-rw-r--r--var/spack/repos/builtin/packages/netcdf-fortran/package.py1
2 files changed, 21 insertions, 1 deletions
diff --git a/var/spack/repos/builtin/packages/netcdf-c/package.py b/var/spack/repos/builtin/packages/netcdf-c/package.py
index 55eb3e4b71..3207163747 100644
--- a/var/spack/repos/builtin/packages/netcdf-c/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-c/package.py
@@ -20,6 +20,7 @@ class NetcdfC(AutotoolsPackage):
maintainers = ["skosukhin", "WardF"]
version("main", branch="main")
+ version("4.9.0", sha256="9f4cb864f3ab54adb75409984c6202323d2fc66c003e5308f3cdf224ed41c0a6")
version("4.8.1", sha256="bc018cc30d5da402622bf76462480664c6668b55eb16ba205a0dfb8647161dd0")
version("4.8.0", sha256="aff58f02b1c3e91dc68f989746f652fe51ff39e6270764e484920cb8db5ad092")
version("4.7.4", sha256="99930ad7b3c4c1a8e8831fb061cb02b2170fc8e5ccaeda733bd99c3b9d31666b")
@@ -65,7 +66,7 @@ class NetcdfC(AutotoolsPackage):
patch("4.7.3-spectrum-mpi-pnetcdf-detect.patch", when="@4.7.3:4.7.4 +parallel-netcdf")
# See https://github.com/Unidata/netcdf-c/pull/2293
- patch("4.8.1-no-strict-aliasing-config.patch", when="@4.8.1:")
+ patch("4.8.1-no-strict-aliasing-config.patch", when="@4.8.1")
variant("mpi", default=True, description="Enable parallel I/O for netcdf-4")
variant("parallel-netcdf", default=False, description="Enable parallel I/O for classic files")
@@ -75,6 +76,7 @@ class NetcdfC(AutotoolsPackage):
variant("dap", default=False, description="Enable DAP support")
variant("jna", default=False, description="Enable JNA support")
variant("fsync", default=False, description="Enable fsync support")
+ variant("zstd", default=True, description="Enable ZStandard compression", when="@4.9.0:")
# It's unclear if cdmremote can be enabled if '--enable-netcdf-4' is passed
# to the configure script. Since netcdf-4 support is mandatory we comment
@@ -123,6 +125,8 @@ class NetcdfC(AutotoolsPackage):
# https://github.com/Unidata/netcdf-c/issues/250
depends_on("hdf5@:1.8", when="@:4.4.0")
+ depends_on("zstd", when="+zstd")
+
# The feature was introduced in version 4.1.2
# and was removed in version 4.4.0
# conflicts('+cdmremote', when='@:4.1.1,4.4:')
@@ -236,6 +240,16 @@ class NetcdfC(AutotoolsPackage):
if "+external-xdr" in hdf4 and hdf4["rpc"].name != "libc":
libs.append(hdf4["rpc"].libs.link_flags)
+ if "+zstd" in self.spec:
+ zstd = self.spec["zstd"]
+ cppflags.append(zstd.headers.cpp_flags)
+ ldflags.append(zstd.libs.search_flags)
+ config_args.append("--with-plugin-dir={}".format(self.prefix.plugins))
+ elif "~zstd" in self.spec:
+ # Prevent linking to system zstd.
+ # There is no explicit option to disable zstd.
+ config_args.append("ac_cv_lib_zstd_ZSTD_compress=no")
+
# Fortran support
# In version 4.2+, NetCDF-C and NetCDF-Fortran have split.
# Use the netcdf-fortran package to install Fortran support.
@@ -247,7 +261,12 @@ class NetcdfC(AutotoolsPackage):
return config_args
+ def setup_run_environment(self, env):
+ if "+zstd" in self.spec:
+ env.append_path("HDF5_PLUGIN_PATH", self.prefix.plugins)
+
def setup_dependent_build_environment(self, env, dependent_spec):
+ self.setup_run_environment(env)
# Some packages, e.g. ncview, refuse to build if the compiler path returned by nc-config
# differs from the path to the compiler that the package should be built with. Therefore,
# we have to shadow nc-config from self.prefix.bin, which references the real compiler,
diff --git a/var/spack/repos/builtin/packages/netcdf-fortran/package.py b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
index 69f4b51a3c..2b22569b01 100644
--- a/var/spack/repos/builtin/packages/netcdf-fortran/package.py
+++ b/var/spack/repos/builtin/packages/netcdf-fortran/package.py
@@ -21,6 +21,7 @@ class NetcdfFortran(AutotoolsPackage):
maintainers = ["skosukhin", "WardF"]
+ version("4.6.0", sha256="198bff6534cc85a121adc9e12f1c4bc53406c403bda331775a1291509e7b2f23")
version("4.5.4", sha256="0a19b26a2b6e29fab5d29d7d7e08c24e87712d09a5cafeea90e16e0a2ab86b81")
version("4.5.3", sha256="123a5c6184336891e62cf2936b9f2d1c54e8dee299cfd9d2c1a1eb05dd668a74")
version("4.5.2", sha256="b959937d7d9045184e9d2040a915d94a7f4d0185f4a9dceb8f08c94b0c3304aa")