diff options
author | Robert Underwood <robertu94@users.noreply.github.com> | 2022-10-17 15:30:54 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-17 13:30:54 -0600 |
commit | da6aeaad44e434da5563d32f2fa9900de362b2ed (patch) | |
tree | 49c7bc8654d82f1a80d0edbfb5f726b3dc354a01 /var | |
parent | fb090a69f4ead786c5b0e016f402bb4d782ab313 (diff) | |
download | spack-da6aeaad44e434da5563d32f2fa9900de362b2ed.tar.gz spack-da6aeaad44e434da5563d32f2fa9900de362b2ed.tar.bz2 spack-da6aeaad44e434da5563d32f2fa9900de362b2ed.tar.xz spack-da6aeaad44e434da5563d32f2fa9900de362b2ed.zip |
Initial contribution of LibPressio ecosystem (#32630)
* Add libpressio and dependencies; some of these packages are
maintained as forks of the original repositories and in those
cases the docstring mentions this.
* Add optional dependency in adios2 on libpressio
* cub package: set CUB_DIR environment variable for dependent
installations
* Clear R_HOME/R_ENVIRON before Spack installation (avoid sources
outside of Spack from affecting the installation in Spack)
* Rename dlib to dorian3d-dlib and update dependents; add new dlib
implementation. Pending an official policy on how to handle
packages with short names, reviewer unilaterally decided that
the rename was acceptable given that the new Spack dlib package
is referenced more widely (by orders of magnitude) than the
original
Co-authored-by: Samuel Li <shaomeng@users.noreply.github.com>
Diffstat (limited to 'var')
34 files changed, 1408 insertions, 26 deletions
diff --git a/var/spack/repos/builtin/packages/adios2/package.py b/var/spack/repos/builtin/packages/adios2/package.py index 39568376e8..dd4708b841 100644 --- a/var/spack/repos/builtin/packages/adios2/package.py +++ b/var/spack/repos/builtin/packages/adios2/package.py @@ -60,6 +60,9 @@ class Adios2(CMakePackage, CudaPackage): variant("mpi", default=True, description="Enable MPI") # Compression libraries + variant( + "libpressio", default=False, when="@2.8:", description="Enable LibPressio for compression" + ) variant("blosc", default=True, when="@2.4:", description="Enable Blosc compression") variant("bzip2", default=True, when="@2.4:", description="Enable BZip2 compression") variant("zfp", default=True, description="Enable ZFP compression") @@ -103,6 +106,7 @@ class Adios2(CMakePackage, CudaPackage): depends_on("hdf5~mpi", when="+hdf5~mpi") depends_on("hdf5+mpi", when="+hdf5+mpi") + depends_on("libpressio", when="+libpressio") depends_on("c-blosc", when="+blosc") depends_on("bzip2", when="+bzip2") depends_on("libpng@1.6:", when="+png") @@ -178,6 +182,7 @@ class Adios2(CMakePackage, CudaPackage): from_variant("ADIOS2_USE_SZ", "sz"), from_variant("ADIOS2_USE_ZFP", "zfp"), from_variant("ADIOS2_USE_CUDA", "cuda"), + from_variant("ADIOS2_USE_LIBPRESSIO", "libpressio"), self.define("BUILD_TESTING", self.run_tests), self.define("ADIOS2_BUILD_EXAMPLES", False), self.define("ADIOS2_USE_Endian_Reverse", True), diff --git a/var/spack/repos/builtin/packages/arc/package.py b/var/spack/repos/builtin/packages/arc/package.py new file mode 100644 index 0000000000..5d2349ca3e --- /dev/null +++ b/var/spack/repos/builtin/packages/arc/package.py @@ -0,0 +1,37 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Arc(CMakePackage): + """ARC is an automatic resiliency library designed to provide security + to lossy compressed data or other uint8_t data arrays + + forked from: https://github.com/FTHPC/ARC to support Spack after developer + left grad school + """ + + homepage = "https://github.com/FTHPC/ARC" + url = "https://github.com/FTHPC/ARC" + git = "https://github.com/robertu94/ARC" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("2021-12-01", commit="49d4a5df53a082f15a6959aef434224fd7b9beac") + + depends_on("libpressio+sz+zfp", when="+examples") + + variant("examples", description="build examples", default=False) + variant("shared", description="build shared libraries", default=True) + + def cmake_args(self): + args = [ + self.define("BUILD_TESTING", self.run_tests), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("BUILD_EXAMPLES", "examples"), + ] + return args diff --git a/var/spack/repos/builtin/packages/bitgroomingz/package.py b/var/spack/repos/builtin/packages/bitgroomingz/package.py new file mode 100644 index 0000000000..c10a4f15df --- /dev/null +++ b/var/spack/repos/builtin/packages/bitgroomingz/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Bitgroomingz(CMakePackage): + """BGZ: Bit Grooming Compressor""" + + homepage = "https://github.com/disheng222/BitGroomingZ" + git = "https://github.com/disheng222/BitGroomingZ" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("2022-10-14", commit="a018b20cca9f7d6a5396ab36230e4be6ae1cb25b") + + variant("shared", default=True, description="build shared libs") + + depends_on("zlib") + + def cmake_args(self): + args = [] + if "+shared" in self.spec: + args.append("-DBUILD_SHARED_LIBS=ON") + else: + args.append("-DBUILD_SHARED_LIBS=OFF") + return args diff --git a/var/spack/repos/builtin/packages/cub/package.py b/var/spack/repos/builtin/packages/cub/package.py index c704b47319..ad115965cb 100644 --- a/var/spack/repos/builtin/packages/cub/package.py +++ b/var/spack/repos/builtin/packages/cub/package.py @@ -39,6 +39,9 @@ class Cub(Package): version("1.7.1", sha256="50b8777b83093fdfdab429a61fccdbfbbb991b3bbc08385118e5ad58e8f62e1d") version("1.4.1", sha256="7c3784cf59f02d4a88099d6a11e357032bac9eac2b9c78aaec947d1270e21871") + def setup_dependent_build_environment(self, env, dependent_spec): + env.set("CUB_DIR", self.prefix.include.cub.cmake) + def install(self, spec, prefix): mkdirp(prefix.include) install_tree("cub", join_path(prefix.include, "cub")) diff --git a/var/spack/repos/builtin/packages/cusz/package.py b/var/spack/repos/builtin/packages/cusz/package.py index 8a9e1358e5..2c1e78b4b0 100644 --- a/var/spack/repos/builtin/packages/cusz/package.py +++ b/var/spack/repos/builtin/packages/cusz/package.py @@ -6,19 +6,24 @@ from spack.package import * -class Cusz(MakefilePackage): - """cuSZ is a CUDA-based error-bounded lossy compressor for scientific - data (floating point and integers). - """ - - homepage = "https://szcompressor.org" - url = "https://github.com/szcompressor/cuSZ/releases/download/v0.1.2/cuSZ-0.1.2.tar.gz" - git = "https://github.com/szcompressor/cuSZ" - maintainers = ["dingwentao", "jtian0"] - - version("master", branch="master") - version("0.1.2", sha256="c6e89a26b295724edefc8052f62653c5a315c78eaf6d5273299a8e11a5cf7363") - - def install(self, spec, prefix): - mkdir(prefix.bin) - install("bin/cusz", prefix.bin) +class Cusz(CMakePackage, CudaPackage): + """A GPU accelerated error-bounded lossy compression for scientific data""" + + homepage = "https://szcompressor.org/" + git = "https://github.com/szcompressor/cusz" + url = "https://github.com/szcompressor/cuSZ/archive/refs/tags/v0.3.tar.gz" + + maintainers = ["jtian0", "dingwentao"] + + conflicts("~cuda") + conflicts("cuda_arch=none", when="+cuda") + + version("develop", branch="develop") + version("0.3", sha256="0feb4f7fd64879fe147624dd5ad164adf3983f79b2e0383d35724f8d185dcb11") + + depends_on("cub", when="^ cuda@:10.2.89") + + def cmake_args(self): + cuda_arch = self.spec.variants["cuda_arch"].value + args = ["-DBUILD_TESTING=OFF", ("-DCMAKE_CUDA_ARCHITECTURES=%s" % cuda_arch)] + return args diff --git a/var/spack/repos/builtin/packages/dbow2/package.py b/var/spack/repos/builtin/packages/dbow2/package.py index 90c3f9f1c1..0851eff37a 100644 --- a/var/spack/repos/builtin/packages/dbow2/package.py +++ b/var/spack/repos/builtin/packages/dbow2/package.py @@ -24,5 +24,5 @@ class Dbow2(CMakePackage): # See https://github.com/spack/spack/pull/22303 for reference depends_on(Boost.with_default_variants) depends_on("opencv+calib3d+features2d+highgui+imgproc") - depends_on("dlib") + depends_on("dorian3d-dlib") depends_on("eigen", type="link") diff --git a/var/spack/repos/builtin/packages/digitrounding/package.py b/var/spack/repos/builtin/packages/digitrounding/package.py new file mode 100644 index 0000000000..3351bdf0f4 --- /dev/null +++ b/var/spack/repos/builtin/packages/digitrounding/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Digitrounding(CMakePackage): + """Standalone version of Digit rounding compressor""" + + homepage = "https://github.com/disheng222/digitroundingZ" + git = "https://github.com/disheng222/digitroundingZ" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("2020-02-27", commit="7b18679aded7a85e6f221f7f5cd4f080f322bc33") + + depends_on("zlib") + + variant("shared", default=True, description="build shared libraries") + + def cmake_args(self): + args = [] + if "+shared" in self.spec: + args.append("-DBUILD_SHARED_LIBS=ON") + else: + args.append("-DBUILD_SHARED_LIBS=OFF") + return args diff --git a/var/spack/repos/builtin/packages/dlib/package.py b/var/spack/repos/builtin/packages/dlib/package.py index d733d00ff9..61813a7e82 100644 --- a/var/spack/repos/builtin/packages/dlib/package.py +++ b/var/spack/repos/builtin/packages/dlib/package.py @@ -2,20 +2,37 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) - - from spack.package import * class Dlib(CMakePackage): - """DLib is a collection of C++ classes to solve common tasks in C++ - programs, as well as to offer additional functionality to use OpenCV - data and to solve computer vision problems.""" + """toolkit containing machine learning algorithms and tools + for creating complex software in C++ to solve real world problems""" + + homepage = "http://dlib.net/" + url = "https://github.com/davisking/dlib/archive/v19.19.tar.gz" + git = "https://github.com/davisking/dlib" - homepage = "https://github.com/dorian3d/DLib" - git = "https://github.com/dorian3d/DLib.git" + maintainer = ["robertu94"] version("master", branch="master") + version("19.22", sha256="5f44b67f762691b92f3e41dcf9c95dd0f4525b59cacb478094e511fdacb5c096") + version("19.21", sha256="116f52e58be04b47dab52057eaad4b5c4d5c3032d927fe23d55b0741fc4107a0") + version("19.20", sha256="fc3f0986350e8e53aceadf95a71d2f413f1eedc469abda99a462cb528741d411") + version("19.19", sha256="7af455bb422d3ae5ef369c51ee64e98fa68c39435b0fa23be2e5d593a3d45b87") + + variant("shared", default=True, description="build the shared libraries") + + depends_on("zlib") + depends_on("libpng") + depends_on("libjpeg") + depends_on("blas") + depends_on("lapack") + depends_on("libsm") + depends_on("libx11") - depends_on("cmake@3.0:", type="build") - depends_on("opencv+calib3d+features2d+highgui+imgproc+imgcodecs+flann") + def cmake_args(self): + args = [] + if "+shared" in self.spec: + args.append("-DBUILD_SHARED_LIBS=ON") + return args diff --git a/var/spack/repos/builtin/packages/dorian3d-dlib/package.py b/var/spack/repos/builtin/packages/dorian3d-dlib/package.py new file mode 100644 index 0000000000..c71d7d32de --- /dev/null +++ b/var/spack/repos/builtin/packages/dorian3d-dlib/package.py @@ -0,0 +1,21 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + + +from spack.package import * + + +class Dorian3dDlib(CMakePackage): + """DLib is a collection of C++ classes to solve common tasks in C++ + programs, as well as to offer additional functionality to use OpenCV + data and to solve computer vision problems.""" + + homepage = "https://github.com/dorian3d/DLib" + git = "https://github.com/dorian3d/DLib.git" + + version("master", branch="master") + + depends_on("cmake@3.0:", type="build") + depends_on("opencv+calib3d+features2d+highgui+imgproc+imgcodecs+flann") diff --git a/var/spack/repos/builtin/packages/fpzip/package.py b/var/spack/repos/builtin/packages/fpzip/package.py new file mode 100644 index 0000000000..46d30da2a5 --- /dev/null +++ b/var/spack/repos/builtin/packages/fpzip/package.py @@ -0,0 +1,19 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Fpzip(CMakePackage): + """fpzip compressor""" + + homepage = "https://github.com/llnl/fpzip" + url = "https://github.com/LLNL/fpzip/releases/download/1.3.0/fpzip-1.3.0.tar.gz" + git = "https://github.com/llnl/fpzip" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("1.3.0", sha256="248df7d84259e3feaa4c4797956b2a77c3fcd734e8f8fdc51ce171dcf4f0136c") diff --git a/var/spack/repos/builtin/packages/libdistributed/package.py b/var/spack/repos/builtin/packages/libdistributed/package.py new file mode 100644 index 0000000000..3d442b1c60 --- /dev/null +++ b/var/spack/repos/builtin/packages/libdistributed/package.py @@ -0,0 +1,50 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Libdistributed(CMakePackage): + """a collection of facilities for MPI that create for higher level + facilities for programming in C++""" + + homepage = "https://github.com/robertu94/libdistributed" + url = "https://github.com/robertu94/libdistributed/archive/0.0.3.tar.gz" + git = "https://github.com/robertu94/libdistributed" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("0.4.0", sha256="7895d268c4f9b5444e4378f60b5a28198720bc48633d0e5d072c39e3366b096c") + version("0.3.0", sha256="57443c72a5a9aa57d7f8760c878a77dcffca0b3b5ccf5124cdf5c1fad8a44ae8") + version("0.2.0", sha256="4540136d39f98a21c59a7e127cb0568266747bfff886edf0f0007be4959a09a3") + version("0.1.2", sha256="c22f93e6ea781ea33812481b19c7bc5e688e51f91991debc7f27a493ef2c78b3") + version("0.1.1", sha256="a5201fd754588034e2c87a21f0283dd9fda758d7820450179eabd68b3dae8cb6") + version("0.1.0", sha256="e10daa6d4a6dc371057e92d2b706ae16450b41ed7c0d386cffeb68e160f556c1") + version("0.0.10", sha256="3af4ce81b3ae016e80e401adfcfad856e15a76da4d2a81535cb4bd993c11104b") + version("0.0.8", sha256="78bc1fbc99e46ea0e03cb181623262be0f527767efd3249baa249cb24b794762") + version("0.0.7", sha256="b2c65752df7bc55fcdc9a5eb7b36c203667f2fb6382d3eaecdaf1504421d4d7b") + version("0.0.6", sha256="05ce6ae880aec19f6945ee5f3c2f4099343ca6b555ea6c8e005a48a6e09faf5b") + version("0.0.5", sha256="09c1e9a0b34371fa8e6f3d50671bcce7fcc3e4c7c26f3e19017b07b64695d199") + version("0.0.4", sha256="7813980011091822534d196d372b8cb6fdc12d35acd5acb42c6eeeaf10a44490") + version("0.0.3", sha256="c476b3efe20e1af4c976e89ff81b7eed01ddddae73ac66f005108747facbeff7") + version("0.0.2", sha256="c25309108fe17021fd5f06ba98386210708158c439e98326e68f66c42875e58a") + version("0.0.1", sha256="4c23ce0fd70a12ee5f8760ea00377ab6370d86b30ab42476e07453b19ea4ac44") + + depends_on("mpi@2:") + depends_on("libstdcompat@0.0.2:", when="@0.1.0:") + + def cmake_args(self): + args = [] + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") diff --git a/var/spack/repos/builtin/packages/libpressio-adios2/package.py b/var/spack/repos/builtin/packages/libpressio-adios2/package.py new file mode 100644 index 0000000000..dbd06a7973 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-adios2/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioAdios2(CMakePackage): + """An IO plugin to read/write ADIOS2 files for LibPressio""" + + homepage = "https://github.com/robertu94/libpressio_adios2" + url = "https://github.com/robertu94/libpressio_adios2/archive/refs/tags/0.0.1.tar.gz" + + maintainers = ["robertu94"] + + version("0.0.2", sha256="8ab4b5a0dd8038d52f54aa9b5a67b83a8f7cd096db4c5a413fe0c6caf678e402") + version("0.0.1", sha256="ab9c7e26114e8d81f8ad8aca703855079cd3441f9b72e01d9b4aeb0c57ce0746") + + depends_on("libpressio@0.85.0:+mpi", when="@0.0.2") + depends_on("libpressio@0.60.0:+mpi") + depends_on("adios2@2.8.0:+mpi") + + def cmake_args(self): + args = [ + self.define("BUILD_TESTING", self.run_tests), + self.define("LIBPRESSIO_ADIOS2_WERROR", False), + ] + return args diff --git a/var/spack/repos/builtin/packages/libpressio-errorinjector/package.py b/var/spack/repos/builtin/packages/libpressio-errorinjector/package.py new file mode 100644 index 0000000000..ce75a977ac --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-errorinjector/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioErrorinjector(CMakePackage): + """LibPressioErrorInjector injects errors into data for sensitivity studies""" + + homepage = "https://github.com/robertu94/libpressio-errorinjector" + git = "https://github.com/robertu94/libpressio-errorinjector" + + maintainers = ["robertu94"] + + version("0.8.0", commit="0bfac9a06b1ae34a872b8b599dd4ccb46aa2db4e") + version("0.7.0", commit="0b5a5b15121be248a3e5af925f9ad88b3d43fef6") + + depends_on("libpressio@0.88.0:", when="@0.8.0:") + depends_on("libpressio@:0.87.0", when="@:0.7.0") + + def cmake_args(self): + args = ["-DBUILD_TESTING=OFF"] + return args diff --git a/var/spack/repos/builtin/packages/libpressio-nvcomp/package.py b/var/spack/repos/builtin/packages/libpressio-nvcomp/package.py new file mode 100644 index 0000000000..7688b3c501 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-nvcomp/package.py @@ -0,0 +1,30 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioNvcomp(CMakePackage, CudaPackage): + """LibPressio Bindings for NVCOMP""" + + homepage = "https://github.com/robertu94/libpressio-nvcomp" + url = "https://github.com/robertu94/libpressio-nvcomp/archive/refs/tags/0.0.3.tar.gz" + git = "https://github.com/robertu94/libpressio-nvcomp" + + maintainers = ["robertu94"] + + version("0.0.3", sha256="21409d34f9281bfd7b83b74f5f8fc6d34794f3161391405538c060fb59534597") + version("0.0.2", commit="38d7aa7c283681cbe5b7f17b900f72f9f25be51c") + + depends_on("nvcomp@2.2.0:", when="@0.0.3:") + depends_on("libpressio@0.88.0:", when="@:0.0.2") + + conflicts("~cuda") + conflicts("cuda_arch=none", when="+cuda") + + def cmake_args(self): + cuda_arch = self.spec.variants["cuda_arch"].value + args = [("-DCMAKE_CUDA_ARCHITECTURES=%s" % cuda_arch)] + return args diff --git a/var/spack/repos/builtin/packages/libpressio-opt/package.py b/var/spack/repos/builtin/packages/libpressio-opt/package.py new file mode 100644 index 0000000000..4c988b6372 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-opt/package.py @@ -0,0 +1,49 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioOpt(CMakePackage): + """Metacompressor which preforms optimization of compressor settings for LibPressio""" + + homepage = "https://github.com/robertu94/libpressio_opt" + git = "git@github.com:robertu94/libpressio_opt" + url = "https://github.com/robertu94/libpressio_opt/archive/refs/tags/0.11.0.tar.gz" + + maintainers = ["robertu94"] + + version("develop", branch="develop") + version("sdr-develop", branch="develop", git="git@github.com:szcompressor/SDRFramework") + version("0.13.5", sha256="cc0e6a46335aa3552b8ab57757d39855f4fba71e661f706ec99519cb2c8a2f3c") + version("0.13.4", sha256="e9f715d11fe3558a31e1d9a939150209449ec8636ded047cb0adcd3db07569ae") + version("0.13.3", sha256="98436b7fa6a53dd9cc09a9b978dc81c299501930cb8b844713080fc42d39d173") + version("0.13.2", sha256="8a16ba23b5078b0ee3a75d8a64ba64b492ecfadc221dd28ae463f4d3f4f7d847") + version("0.13.1", sha256="a831d326871c183a7e64b2015d687da3f17cf89c2d7d1d6770e3acbc1346aa8c") + version("0.13.0", sha256="6a64116dd6727e2dc05840b0e804fcaf82debde09c69e4905197462a769e998e") + version("0.12.1", sha256="e5d0b4d8b4885dfe555148e23f34e0bc904a898871dea8d412265075f1f8c858") + version("0.12.0", sha256="5f28f37de858634cf481d911f202360f078902803f82b5f49b7eec9b59948d64") + version("0.11.0", sha256="cebbc512fcaa537d2af1a6919d6e0400cdc13595d71d9b90b74ad3eb865c9767") + + depends_on("libpressio+libdistributed+mpi") + depends_on("libpressio@0.88.0:", when="@0.13.5:") + depends_on("libpressio@0.85.0:", when="@0.13.3:") + depends_on("libpressio@0.66.1:", when="@:0.13.2") + depends_on("libdistributed@0.0.11:") + depends_on("libdistributed@0.4.0:", when="@0.13.3:") + depends_on("dlib@19.22:") + + def cmake_args(self): + args = [] + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") diff --git a/var/spack/repos/builtin/packages/libpressio-rmetric/package.py b/var/spack/repos/builtin/packages/libpressio-rmetric/package.py new file mode 100644 index 0000000000..4a916904e5 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-rmetric/package.py @@ -0,0 +1,43 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioRmetric(CMakePackage): + """LibPressio metric that runs R code""" + + url = "https://github.com/robertu94/libpressio-rmetric/archive/refs/tags/0.0.2.tar.gz" + git = "https://github.com/robertu94/libpressio-rmetric" + homepage = git + + maintainers = ["robertu94"] + + version("master", branch="master") + # note versions <= 0.0.3 do not build with spack + version("0.0.6", sha256="b23a79448cd32b51a7301d6cebf4e228289712dd77dd76d86821741467e9af46") + version("0.0.5", sha256="51eb192314ef083790dd0779864cab527845bd8de699b3a33cd065c248eae24c") + version("0.0.4", sha256="166af5e84d7156c828a3f0dcc5bf531793ea4ec44bbf468184fbab96e1f0a91f") + version("0.0.3", sha256="c45948f83854c87748c7ec828ca2f06d7cf6f98a34f763b68c13a4e2deb7fd79") + + depends_on("libpressio@0.88.0:", when="@0.0.5:") + depends_on("libpressio@0.85.0:", when="@:0.0.4") + depends_on("r") + depends_on("r-rcpp") + depends_on("r-rinside") + + def cmake_args(self): + args = [] + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") diff --git a/var/spack/repos/builtin/packages/libpressio-sperr/package.py b/var/spack/repos/builtin/packages/libpressio-sperr/package.py new file mode 100644 index 0000000000..36a01c7531 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-sperr/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioSperr(CMakePackage): + """A LibPressio plugin for Sperr""" + + homepage = "https://github.com/robertu94/libpressio-sperr" + url = "https://github.com/robertu94/libpressio-sperr/archive/refs/tags/0.0.1.tar.gz" + git = homepage + + maintainers = ["robertu94"] + + depends_on("libpressio@0.88.0:", when="@0.0.3:") + depends_on("libpressio@:0.88.0", when="@:0.0.2") + depends_on("sperr") + depends_on("pkgconfig", type="build") + + version("master", branch="master") + version("0.0.2", sha256="61995d687f9e7e798e17ec7238d19d917890dc0ff5dec18293b840c4d6f8c115") + version("0.0.1", sha256="e2c164822708624b97654046b42abff704594cba6537d6d0646d485bdf2d03ca") diff --git a/var/spack/repos/builtin/packages/libpressio-tools/package.py b/var/spack/repos/builtin/packages/libpressio-tools/package.py new file mode 100644 index 0000000000..bda9019fd4 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-tools/package.py @@ -0,0 +1,100 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioTools(CMakePackage): + """General Utilities for LibPressio""" + + homepage = "https://github.com/robertu94/pressio-tools" + url = "https://github.com/robertu94/pressio-tools/archive/refs/tags/0.0.15.tar.gz" + git = "https://github.com/robertu94/pressio-tools" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("0.1.6", sha256="a67a364f46dea29ff1b3e5c52c0a5abf2d9d53412fb8d424f6bd71252bfa7792") + version("0.1.5", sha256="b35f495fae53df87dd2abf58c0c51ed17710b16aaa2d0842a543fddd3b2a8035") + version("0.1.4", sha256="39adc4b09a63548a416ee4b1dcc87ec8578b15a176a11a2845c276c6c211f2d0") + version("0.1.3", sha256="4e6c39061d6d829936dfeb569ea997854694ef1a46f112e306672ee1cc1567a0") + version("0.1.2", sha256="a3379fd7c53c2eb0b5cdbf0e7eed37ae2a415f737885310d3da4d34fa55c618e") + version("0.1.1", sha256="adec3ea9a12677c647fbc3a1f9909fde6f2dd5ed662ed0ee5cd753b26397643e") + version("0.1.0", sha256="e016b1785f2dc5c8a8565ff3d7b50980788e057e61905a91ef1d16da73297a06") + version("0.0.24", sha256="b369efcc17f339fdd5741d817f1b7908bd2b5df5686c5406c6b1123b0daa82c5") + version("0.0.23", sha256="08a141be14e63e491216a89d45737040fc3450c5b793e6a4819cd06f876b2b0b") + version("0.0.22", sha256="9fcb20a3bf24e139386e94b413f10087d65ed32d2eb93cc7be8e87d736da9766") + version("0.0.21", sha256="2ffe1018ff86eca0928ab8bbf568b2cf7ab739f0e191e2722a6f5071dac4a153") + version("0.0.20", sha256="cad3a1dff25ae1dc442821e72fe8f7495e098bd0ea52c3beeac1ceb721c60351") + version("0.0.19", sha256="cc8a4bb5259b7b8e14248a1a741067a865a0db36645c878d346da983e74c9521") + version("0.0.18", sha256="766fcf6c4bd475de66107d379c76805d6368d71ee83cade645f2b7cd27801718") + version("0.0.17", sha256="cf76e8a929aa128d09f8f953171d5cf395223245bc81d2ea4e22099849e40b94") + version("0.0.16", sha256="1299e441fb15666d1c8abfd40f3f52b1bf55b6bfda4bfcc71177eec37160a95e") + version("0.0.15", sha256="bcdf865d77969a34e2d747034ceeccf5cb766a4c11bcc856630d837f442ee33e") + + depends_on("mpi", when="+mpi") + depends_on("libpressio+libdistributed+mpi", when="+mpi") + depends_on("libpressio", when="~mpi") + depends_on("libpressio+hdf5", when="+hdf5") + + depends_on("boost") + + # 0.1.0 changed a bunch of things in the build system, make sure everything is up to date + depends_on("libpressio@0.88.0:", when="@0.1.6:") + depends_on("libpressio@0.85.0:", when="@0.1.0:0.1.5") + depends_on("libpressio-opt@0.13.3:", when="@0.1.0:+opt") + depends_on("libpressio-errorinjector@0.7.0:", when="@0.1.0:+error_injector") + depends_on("libpressio-tthresh@0.0.5:", when="@0.1.0:+tthresh") + depends_on("libpressio-rmetric@0.0.4:", when="@0.1.0:+rcpp") + depends_on("libpressio-adios2@0.0.2", when="@0.1.0:+adios2") + + depends_on("libpressio-opt", when="+opt") + depends_on("libpressio-errorinjector", when="+error_injector") + depends_on("libpressio-tthresh", when="+tthresh") + depends_on("libpressio-rmetric", when="+rcpp") + depends_on("libpressio-adios2", when="+adios2") + depends_on("libpressio-sperr", when="+sperr") + depends_on("libpressio-nvcomp", when="+nvcomp") + + variant("hdf5", default=True, description="support the hdf5 package") + variant("opt", default=False, description="support the libpressio-opt package") + variant( + "error_injector", default=False, description="support the libpressio-errorinjector package" + ) + variant("tthresh", default=False, description="depend on the GPL licensed libpressio-tthresh") + variant("rcpp", default=False, description="depend on the GPL licensed libpressio-rmetric") + variant("mpi", default=False, description="depend on MPI for distributed parallelism") + variant("adios2", default=False, description="depend on ADIOS2 for IO modules") + variant("sperr", default=False, description="depend on sperr", when="@0.1.2:") + variant("nvcomp", default=False, description="depend on nvcomp", when="@0.1.0:") + conflicts("+opt", "~mpi") + + def cmake_args(self): + args = [] + if "+mpi" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_MPI=YES") + if "+opt" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_OPT=YES") + if "+error_injector" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_ERROR_INJECTOR=YES") + if "+tthresh" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_TTHRESH=YES") + if "+rcpp" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_RMETRIC=YES") + if "+sperr" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_SPERR=YES") + if "+nvcomp" in self.spec: + args.append("-DLIBPRESSIO_TOOLS_HAS_NVCOMP=YES") + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") diff --git a/var/spack/repos/builtin/packages/libpressio-tthresh/package.py b/var/spack/repos/builtin/packages/libpressio-tthresh/package.py new file mode 100644 index 0000000000..d94019328d --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio-tthresh/package.py @@ -0,0 +1,39 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class LibpressioTthresh(CMakePackage): + """A tthresh implementation for libpressio""" + + homepage = "https://github.com/robertu94/libpressio_tthresh" + url = "https://github.com/robertu94/libpressio_tthresh/archive/refs/tags/0.0.1.tar.gz" + git = homepage + + maintainers = ["robertu94"] + + version("main", branch="main") + version("0.0.6", sha256="e9dc4754421d892a86516c6bb892f6ff582e9ea3c242c1c052104e4f6944cbec") + version("0.0.5", sha256="af47c90e9c16825312e390a7fb30d9d128847afb69ad6c2f6608bd80f60bae23") + version("0.0.3", sha256="b0b0a4876d3362deafc2bb326be33882132e3d1666e0c5f916fd6fad74a18688") + version("0.0.1", sha256="9efcfa97a5a81e9c456f50b712adb806d9d2f2ed6039860615df0f2e9d96569e") + + depends_on("eigen") + depends_on("libpressio@0.85.0:", when="@:0.0.5") + depends_on("libpressio@0.88.0:", when="@0.0.6:") + + def cmake_args(self): + args = [] + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") diff --git a/var/spack/repos/builtin/packages/libpressio/package.py b/var/spack/repos/builtin/packages/libpressio/package.py new file mode 100644 index 0000000000..d30bb5edc1 --- /dev/null +++ b/var/spack/repos/builtin/packages/libpressio/package.py @@ -0,0 +1,331 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Libpressio(CMakePackage, CudaPackage): + """A generic abstraction for the compression of dense tensors""" + + # codarcode gets "stable" releases ~1/yr; robertu94 contains development versions + homepage = "https://github.com/codarcode/libpressio" + url = "https://github.com/robertu94/libpressio/archive/0.31.1.tar.gz" + git = "https://github.com/robertu94/libpressio" + + version("master", branch="master") + version("develop", branch="develop") + version("0.88.0", sha256="4358441f0d10559d571327162a216617d16d09569a80e13ad286e3b7c41c5b9b") + version("0.87.0", sha256="2bea685e5ed3a1528ea68ba4a281902ff77c0bebd38ff212b6e8edbfa263b572") + version("0.86.7", sha256="2a6319640a018c39aa93aaf0f027fd496d7ea7dc5ac95509313cf1b4b6b1fb00") + version("0.86.6", sha256="31ac77137c31a524c2086e1fe4d9b1d3c1bc6d8594662cd4b67878ba8887cabb") + version("0.86.5", sha256="6e6ffe7585e298061f6f5ff79a9fe7edf722a8c124a87282bae864ed6a167246") + version("0.86.4", sha256="52a1d932b30a9390e836ea4b102225b176f8feebbac598a0ab3a81a9ac83775c") + version("0.86.3", sha256="6b010e394fc916ad2233e941a49f70555dda40521e3668f2e10502c7bfa529be") + version("0.86.2", sha256="e221cb256e1b387ce1245cab5704c10d351812c003b257655d43b156b9650a89") + version("0.86.1", sha256="89b1b652215f67635da1baac81d3f927ff00f335c473322edcf24472b5a9b5a4") + version("0.86.0", sha256="867bd6ea6b632b7f6d6a89aac073cea738b574825c81ee83318802e9d3d5fbe8") + version("0.85.0", sha256="79a600fdd5c7a418a0380425e1bbeb245d5d86e1676f251e5900b69738b72423") + version("0.84.3", sha256="7b2ca198f919c1f981c88722da33ef69b564fe123d49330ad6ba17eba80c046e") + version("0.84.2", sha256="c50b599a22ab89b7ef57dbaa717f5e97f4437d2bd4b6e572274c8c98022b05da") + version("0.84.0", sha256="b22320a54dbb9f65a66af2a6f335884e7ba48abd3effe643e51e4e7cfe793b7d") + version("0.83.4", sha256="9dd0efff1c6121e964b45371d6a52895f6a8db3d5cdabbd1e951b696a3f590e3") + version("0.83.3", sha256="59e2bb2c1eb422c03204bfc713bc76d7bbaeaeba6430e1204577495c07eef34d") + version("0.83.2", sha256="56dd63cb3924fb57f8f53929faecf2a5211985f160cdacf38b3d001e22728427") + version("0.83.1", sha256="2afdc8421b4c0f638c8547bcdd54bdb405d1717dca32b804621c5c152adbe2a6") + version("0.83.0", sha256="7c692bbf3ebdfa508a493902eb561c85b9087dd8003547dcd54baf0b2188d9bd") + version("0.82.3", sha256="97a6a0a022d8ae60f477ce21d1ff10cc47bb2f7d3891bb3b49f4a7b166f9c2e1") + version("0.82.2", sha256="ce2d566c627a5341e1fd58261b2d38567b84d963f1045e2e4aac87e67ac06d89") + version("0.82.1", sha256="f6b41ad6f56311078e67e68063f9124f32e63a9c1c9c0c0289c75addaf9fed94") + version("0.82.0", sha256="e60f843dda8312ae4269c3ee23aad67b50f29a8830c84fb6c10309c37e442410") + version("0.81.0", sha256="51ab443a42895fefb4e0ae8eb841402f01a340f3dd30dcb372f837e36ac65070") + version("0.80.1", sha256="9168789f8714d0bbce1a03ff3a41ef24c203f807fed1fbd5ca050798ebef015f") + version("0.80.0", sha256="f93292dc258224a8ef69f33299a5deecfb45e7ea530575eeaa4ceff48093d20e") + version("0.79.0", sha256="e843d8f70369e30d0135b513926ac4a5dacd3042c307c132e80a29b7349e8501") + version("0.78.0", sha256="d9292150686d2be616cd9145c24fe6fc12374df023eee14099ffdf7071e87044") + version("0.77.0", sha256="d2f362c8b48b6ea6b3a099f3dcb0ce844e3b45fd6cf0c4130fbbf48d54d1a9b3") + version("0.76.1", sha256="09b6926efefa1b10f400dfc94927c195d1f266f34ed34cddeba11707c0cc6982") + version("0.76.0", sha256="8ec0e3bcc57511a426047748f649096cf899a07767ddbcdbfad28500e1190810") + version("0.75.1", sha256="8b9beb79507196575649d32116d13833e7dc9765370c245ac5a3640a50cb106a") + version("0.75.0", sha256="83aadd5e6172b3654b955954d13f2d9346fcd008bc901746f6f8b65a978235ee") + version("0.74.1", sha256="aab7211c244a7a640e0b2d12346463c8650ef4f8d48fc58819a20d3b27ab5f81") + version("0.74.0", sha256="2fbd54bbc4d1f3ce4b107ac625ad97c6396bff8873f2ac51dd049d93aa3f2276") + version("0.73.0", sha256="059c90ab50d2e50a1fff8bf25c0c387a9274090bf8657fa49aa1c211b4690491") + version("0.72.2", sha256="1f620b8af272dd2823712c1e38a69c6375febe49eb9155a3f04667ea1931ebdb") + version("0.72.1", sha256="f8ab9559c40a6a93ad0c1a894acf71e07c9fe1994f464852c9dd6f0423a6dc51") + version("0.72.0", sha256="0e6e7327a21a0cd6cf56fa4c62ba5ec1c41381ac053602d8acaa854bdfd1cb30") + version("0.71.3", sha256="f1185acdc6143fe7e417754032336ef50fec5760b08cb291962305429adf18da") + version("0.71.2", sha256="0501f6a0a9cfad62f80834d1dd77c678b000202903168aec0d2c4928ff6e581c") + version("0.71.1", sha256="cd9daa4b28da3b5e3cb36cace11b4e580a66fb14ca04a807c5a135a9448bb5df") + version("0.71.0", sha256="9b9ba9689c53e9cfa4d9fee52653ed393d2307c437dac41daceb6f98564fbcd1") + version("0.70.8", sha256="f0600cabd0341669ef1d6e838ef3496cff5200239a3b96a4941c434d71e4517c") + version("0.70.7", sha256="82722a9e7fbec3b2d79be226ba73bbf3108d3206d006a763db46d20cc044a8b5") + version("0.70.6", sha256="e76be47b0b8bd18d7ac44d59242adc45dc721465638aefd2c8564fd778d1adbd") + version("0.70.5", sha256="c6ee62643c08a7ceca7c45eb28edff0eeb070671bf0d502563b6cc8ada4bf695") + version("0.70.4", sha256="6df62154d0a8919fa91f6fce4ffb2f77584d5ddc61c85eee34557d36de9906b2") + version("0.70.3", sha256="40cca7f6d3bd19fdcf6f6c17521acdf63dfda0fb5b173c23d4521818b16a9a46") + version("0.70.2", sha256="30929e02c0ce5db8d9ff1eeca42df92e68439c7dd5a3c1fea0bb44ead2343442") + version("0.70.1", sha256="855923ca58b1c549681d368d2112d05b96fae9e3199f2a10c2013fcb2f630036") + version("0.70.0", sha256="1e987dcea76b2bd01f7e59b404267c7614a7c99b3fbc0ae745bf8e9426f489c6") + version("0.69.0", sha256="22e47deb4791778846b9c858295b756f91e1d8c884ccf246c2df2bf9b56a04d5") + version("0.68.0", sha256="c7008e6f6b4451812070ece7e9b2fb6cc2fb04971255f95c8274375a698c6794") + version("0.66.3", sha256="7423339831525a128115d446b1dd7fb7942f2aed24e0ec3778396d2c0c379678") + version("0.66.2", sha256="89a6459b6fcf1273f8afc7317e7351c09be977aeb3bb6554941166074ee2030f") + version("0.66.1", sha256="1de2d3d911fc91f7aa9f57eda467f1aadd7060a680538b82c678a5f4e7e6c5d0") + version("0.66.0", sha256="c3063a85c8f17df6ba1722f06eaab74fe14a53f37f5a86664c23a7f35d943f3a") + version("0.65.0", sha256="beb4f7bc73b746fe68c4333fa4d4e1dba05f5f5fb386874b83cbf7f105e83c45") + version("0.64.0", sha256="1af87b410eabee7f377b047049eae486cf3161fa67546789440f1d1e56e2324d") + version("0.63.0", sha256="32d716f52073d7ea246d01fefb420bfe5b834ebc10579edd79ebce7a87dd1a81") + version("0.62.0", sha256="248eedc764312da401aa29304275e009196ebdb5b08594a1522bb165c16874aa") + version("0.61.0", sha256="7b4304b7556d8ec0742d1b8a9280f7f788307d2a6f4d2f59cc8e8358b6c69c11") + version("0.60.0", sha256="a57fce96d50a603075a8a4a583431a1a03170df4d2894ff30f84d8c5ab4caf47") + version("0.59.0", sha256="eae5933a7b37834cf4f70424b083f99799f9381ee8bb616f3a01d4ab2e5631a6") + version("0.58.0", sha256="6b092dda66e7cc1bc4842fe54ab41248c4f136307cc955081e8052222c82aff1") + version("0.57.0", sha256="4f978616c13f311170fdc992610ad1fd727884cf0d20b6849b2c985d936c482b") + version("0.56.2", sha256="1ae20415ba50a4dcfec7992e9a571f09f075f077ebdd7c1afb9a19b158f6205d") + version("0.56.1", sha256="01b7c09f1eafff819de0079baf033f75547432be62dc10cb96691d078994a4e9") + version("0.56.0", sha256="77003c9dde0590ca37fddfbe380b29b9f897fa0dadb9b9f953819f5e9d9f08f0") + version("0.55.3", sha256="f8c6ae6ae48c4d38a82691d7de219ebf0e3f9ca38ae6ba31a64181bfd8a8c50a") + version("0.55.2", sha256="47f25f27f4bff22fd32825d5a1135522e61f9505758dde3d093cfbdaff0b3255") + version("0.55.1", sha256="39f1799d965cd0fec06f0a43dec865c360cbb206e4254f4deb4f7b7f7f3c3b2f") + version("0.55.0", sha256="fb74cfe2a8f3da51f9840082fa563c2a4ce689972c164e95b1b8a1817c4224cf") + version("0.54.0", sha256="cd28ddf054446c286f9bfae563aa463e638ee03e0353c0828a9ce44be4ce2df9") + version("0.53.2", sha256="4a7b57f1fd8e3e85ecf4a481cc907b81a71c4f44cf2c4a506cb37a6513a819a4") + version("0.53.1", sha256="1425dec7ee1a7ddf1c3086b83834ef6e49de021901a62d5bff0f2ca0c75d3455") + version("0.53.0", sha256="0afb44c2dab8dd8121d174193eb6623b29da9592e5fe1bbe344cfc9cacbec0cb") + version("0.52.2", sha256="c642463da0bbdd533399e43c84ea0007b1d7da98276c26bc075c7b4778f97a01") + version("0.52.1", sha256="32f211aaf4641223bf837dc71ea064931f85aa9260b9c7f379787ca907c78c3a") + version("0.52.0", sha256="2fd4cf0cc43c363b2e51cb264a919a1b43514aad979b9b5761b746fc70490130") + version("0.51.0", sha256="878d5399c4789034b7f587a478e2baf8e852f7f1f82aa59e276ddf81d325b934") + version("0.50.4", sha256="f4ab7dada0e07ecf97f88e2dd7ca6c4755fb0f4175d8d12ed3a856c45b240bde") + version("0.50.3", sha256="cc78bfc9a5d1b061098c892e9c8ff14861aa48ea95f0e9684ca4250d30c38889") + version("0.50.2", sha256="0ef1355f905d48ed01c034a8d418e9c528113d65acb3dd31951297029c5aaed4") + version("0.50.1", sha256="1500bae01ba74c330bc205b57423688c2b1aacafe1aabcaf469b221dcda9beec") + version("0.50.0", sha256="c50fb77b5c8d535fe0c930e5d4400d039ad567a571ea9711b01d6d5bd2a26fb6") + version("0.49.2", sha256="cde90e0183024dc1a78d510e2ae3effa087c86c5761f84cba0125f10abc74254") + version("0.49.1", sha256="6d1952ada65d52d2fd5d4c60bb17e51d264c2c618f9b66dadeffa1e5f849394a") + version("0.49.0", sha256="adfe5c64a5d170197893fe5a4c9338cde6cbdd5b54e52534886425101be4458f") + version("0.48.0", sha256="087a7f944240caf2d121c1520a6877beea5d30cc598d09a55138014d7953348a") + version("0.47.0", sha256="efce0f6f32e00482b80973d951a6ddc47b20c8703bd0e63ab59acc0e339d410b") + version("0.46.3", sha256="24bc5d8532a90f07ab2a412ea28ddbfc8ff7ab27cd9b4e7bd99a92b2a0b5acfd") + version("0.46.2", sha256="3ebbafa241e54cb328966ea99eab5d837c4a889f17c3b2048cc2961166a84cc4") + version("0.46.1", sha256="be7468b30a367bcbefab09ed5ac07320cd323904c9129d6b874175b39ef65cd9") + version("0.46.0", sha256="ab944358edc7e03be604749002f1f00aaf4d55d20bac2689d40bd4e66357879d") + version("0.45.0", sha256="b3307b99f82f0300dfed7dd122447a6e74ca8ad8c012d2fc60467e6e067ac226") + version("0.44.0", sha256="cec114325167731233be294aab329d54862457cb2e1f1a87d42d100da7c53aa5") + version("0.42.2", sha256="a9289260eb0a4eaf4550c2d6ad1af7e95a669a747ce425ab9a572d4ab80e2c1f") + version("0.42.1", sha256="5f79487568ec4625b0731f0c10efb565201602a733d1b6ac1436e8934cf8b8ec") + version("0.42.0", sha256="c08e047e202271ec15eeda53670c6082815d168009f4e993debcc0d035904d6b") + version("0.41.0", sha256="b789360d70656d99cd5e0ceebfc8828bdf129f7e2bfe6451592a735be9a0809a") + version("0.40.1", sha256="73a65f17e727191b97dfdf770dd2c285900af05e6fee93aa9ced9eadb86f58ff") + version("0.40.0", sha256="80e68172eeef0fbff128ede354eaac759a9408c3ef72c5eed871bb9430b960ff") + version("0.39.0", sha256="e62fea9bcb96529507fdd83abc991036e8ed9aa858b7d36587fce3d559420036") + version("0.38.2", sha256="5f38387d92338eac8658cd70544a5d9a609bd632090f4f69bcbc9f07ec4abd7b") + version("0.38.1", sha256="99ff1ff61408e17f67ab427c51add074f66ab7375a506ae70dcb24c47a8ea636") + version("0.38.0", sha256="e95aa6e4161324fa92fa236ea2bf08a7267a883ef4ca5fbb8bbf75e70db1ce4f") + version("0.37.0", sha256="98877fa2daf91ac91c2e0e0014684131d6efc4a1f2f77917d40fdbf424d74588") + version("0.36.0", sha256="452a3973cf359786409e064ca4b63a5f81072a9d72a52d1a4084d197f21fc26b") + version("0.35.0", sha256="50e6de305e1ffdcf423cec424e919bb0bdebee6449d34ff26a40421f09392826") + version("0.34.4", sha256="5a997c6f4b8c954a98046a851d0f3b31ce7c5be6e7e615068df4f1d7b86c9630") + version("0.34.3", sha256="1f5994862c33df4588d411b49fba20a40294627d0b325bbd5234f169eb1d4842") + version("0.34.2", sha256="3b8d3f801799023c8efe5069895723ce4e742330282774dc0873c2fa3910eeb2") + version("0.34.1", sha256="791ff249a685fab1733d4c3c936db6a064aa912d47926ad4bd26b1829f6e2178") + version("0.34.0", sha256="da62a15da103e763e34dae43be3436873e4fb550630dddc55232ae644accda02") + version("0.33.0", sha256="61200855a0846ce765b686fa368496f44534e633031811803ba2cb31f94c25b1") + version("0.32.0", sha256="187e75fc6d3f84003829d2b8aec584e99d72d65f2d82835998714ae05ae008af") + version("0.31.1", sha256="32c1fd8319fbbb844a0a252d44761f81f17c6f3549daadce47e81524d84605a4") + version("0.31.0", sha256="9d4bc8b2c1a210a58f34216cebe7cd5935039d244b7e90f7e2792bda81ff7ddc") + version("0.30.1", sha256="e2249bdced68d80a413de59f8393922553a8900a14e731030e362266e82a9af8") + version("0.30.0", sha256="91de53099d9381e3744e7a1ac06d2db0f9065378c4d178328b78ac797ee3ec65") + version("0.29.1", sha256="ced1e98fbd383669e59ec06d2e0c15e27dbceda9ac5569d311c538b2fe6d3876") + version("0.29.0", sha256="a417a1d0ed75bd51131b86fba990502666d8c1388ad6282b3097aa461ccf9785") + version("0.28.0", sha256="5c4e0fe8c7c80615688f271b57b35ee9d924ac07c6d3d56d0303e610338ed332") + version("0.27.1", sha256="3f7d2401ff8b113781d93c5bf374f47ca35b2f962634c6310b73620da735e63d") + version("0.27.0", sha256="387ee5958de2d986095cda2aaf39d0bf319d02eaeeea2a565aea97e6a6f31f36") + version("0.26.0", sha256="c451591d106d1671c9ddbb5c304979dd2d083e0616b2aeede62e7a6b568f828c") + + variant("blosc", default=False, description="support the blosc lossless compressors") + variant("fpzip", default=False, description="support for the FPZIP lossy compressor") + variant("hdf5", default=False, description="support reading and writing from hdf5 files") + variant("magick", default=False, description="support the imagemagick image compressors") + variant( + "mgard", default=False, description="support for the MAGARD error bounded lossy compressor" + ) + variant("python", default=False, description="build the python wrappers") + variant("sz", default=False, description="support for the SZ error bounded lossy compressor") + variant("zfp", default=False, description="support for the ZFP error bounded lossy compressor") + variant("boost", default=False, description="support older compilers using boost") + variant("petsc", default=False, description="support IO using petsc format") + variant("mpi", default=False, description="support for launching processes using mpi") + variant("lua", default=False, description="support for composite metrics using lua") + variant( + "libdistributed", default=False, description="support for distributed multi-buffer support" + ) + variant("ftk", default=False, description="build support for the feature tracking toolkit") + variant("digitrounding", default=False, description="build support for the digit rounding") + variant("bitgrooming", default=False, description="build support for the bitgrooming") + variant("openmp", default=False, description="build plugins that use openmp") + variant("docs", default=False, description="build and install manual pages") + variant("remote", default=False, description="build the remote launch plugin") + variant("json", default=False, description="build the JSON support") + variant("szauto", default=False, description="build szauto support") + variant("unix", default=False, description="build support for unixisms like mmap and rusage") + variant("ndzip", default=False, description="build support for the NDZIP compressor") + variant("arc", default=False, description="build support for the ARC error correction tool") + variant("netcdf", default=False, description="build support for the NDFCDF data format") + variant("sz3", default=False, description="build support for the SZ3 compressor family") + variant("mgardx", default=False, description="build support for the MGARDx compressor") + variant("bzip2", default=False, description="build support for the bzip2 compressor") + variant("qoz", default=False, description="build support for the qoz compressor") + variant( + "cusz", default=False, description="build support for the cusz compressor", when="@0.86.0:" + ) + + depends_on("boost", when="@:0.51.0+boost") + + depends_on("libstdcompat+boost", when="+boost") + depends_on("libstdcompat@0.0.14:", when="@0.79.0:") + depends_on("libstdcompat@0.0.13:", when="@0.73.0:") + depends_on("libstdcompat@0.0.10:", when="@0.71.3:") + depends_on("libstdcompat@0.0.7:", when="@0.70.3:") + depends_on("libstdcompat@0.0.6:", when="@0.70.2:") + depends_on("libstdcompat@0.0.5:", when="@0.63.0:") + depends_on("libstdcompat@0.0.3:", when="@0.60.0:") + depends_on("libstdcompat", when="@0.52.0:") + + depends_on("c-blosc", when="+blosc") + depends_on("fpzip", when="+fpzip") + depends_on("hdf5", when="+hdf5") + depends_on("imagemagick", when="+magick") + depends_on("mgard", when="+mgard") + depends_on("python@3:", when="+python", type=("build", "link", "run")) + depends_on("py-numpy", when="+python", type=("build", "link", "run")) + depends_on("swig@3.12:", when="+python", type="build") + depends_on("sz@2.1.8.1:", when="@0.55.2:+sz") + depends_on("sz@2.1.11.1:", when="@0.55.3:+sz") + depends_on("sz@2.1.12:", when="@0.69.0:+sz") + depends_on("fftw", when="+sz ^sz@:2.1.10") + depends_on("zfp", when="+zfp") + depends_on("petsc", when="+petsc") + depends_on("mpi@2:", when="+mpi") + depends_on("lua-sol2", when="+lua") + depends_on("libdistributed@0.0.11:", when="+libdistributed") + depends_on("libdistributed@0.4.0:", when="@0.85.0:+libdistributed") + depends_on("pkg-config", type="build") + depends_on("ftk@master", when="+ftk") + depends_on("digitrounding", when="+digitrounding") + depends_on("bitgroomingz", when="+bitgrooming") + depends_on("cmake@3.14:", type="build") + depends_on("py-mpi4py", when="@0.54.0:+mpi+python", type=("build", "link", "run")) + depends_on("py-numcodecs", when="@0.54.0:+python", type="run") + depends_on("doxygen+graphviz", when="+docs", type="build") + depends_on("curl", when="+remote") + depends_on("nlohmann-json+multiple_headers", when="+remote") + depends_on("nlohmann-json+multiple_headers", when="+json") + depends_on("szauto", when="+szauto") + depends_on("ndzip", when="+ndzip") + depends_on("arc", when="+arc") + depends_on("netcdf-c", when="+netcdf") + depends_on("mgardx", when="+mgardx") + conflicts( + "+mgardx", when="+szauto" + ) # SZ auto and MGARDx cause symbol conflicts with each other + conflicts( + "~json", + when="@0.57.0:+remote", + msg="JSON support required for remote after version 0.57.0", + ) + depends_on("sz3", when="+sz3") + depends_on("bzip2", when="+bzip2") + depends_on("qoz", when="+qoz") + depends_on("cusz", when="+cusz") + + extends("python", when="+python") + + def cmake_args(self): + args = [] + if "+python" in self.spec: + args.append("-DLIBPRESSIO_PYTHON_SITELIB={0}".format(python_platlib)) + args.append("-DBUILD_PYTHON_WRAPPER=ON") + args.append("-DPython3_EXECUTABLE={0}".format(self.spec["python"].command)) + if "+mpi" in self.spec: + args.append("-DLIBPRESSIO_HAS_MPI4PY=ON") + if "+hdf5" in self.spec: + args.append("-DLIBPRESSIO_HAS_HDF=ON") + args.append("-DHDF5_ROOT=" + self.spec["hdf5"].prefix) + if "+sz" in self.spec: + args.append("-DLIBPRESSIO_HAS_SZ=ON") + if "+szauto" in self.spec: + args.append("-DLIBPRESSIO_HAS_SZ_AUTO=ON") + if "+zfp" in self.spec: + args.append("-DLIBPRESSIO_HAS_ZFP=ON") + if "+fpzip" in self.spec: + args.append("-DLIBPRESSIO_HAS_FPZIP=ON") + if "+blosc" in self.spec: + args.append("-DLIBPRESSIO_HAS_BLOSC=ON") + if "+magick" in self.spec: + args.append("-DLIBPRESSIO_HAS_MAGICK=ON") + if "+mgard" in self.spec: + args.append("-DLIBPRESSIO_HAS_MGARD=ON") + if "+petsc" in self.spec: + args.append("-DLIBPRESSIO_HAS_PETSC=ON") + if "+boost" in self.spec: + args.append("-DLIBPRESSIO_CXX_VERSION=11") + if "+mpi" in self.spec: + args.append("-DLIBPRESSIO_HAS_MPI=ON") + if "+lua" in self.spec: + args.append("-DLIBPRESSIO_HAS_LUA=ON") + if "+libdistributed" in self.spec: + args.append("-DLIBPRESSIO_HAS_LIBDISTRIBUTED=ON") + if "+ftk" in self.spec: + args.append("-DLIBPRESSIO_HAS_FTK=ON") + if "+bitgrooming" in self.spec: + args.append("-DLIBPRESSIO_HAS_BIT_GROOMING=ON") + if "+digitrounding" in self.spec: + args.append("-DLIBPRESSIO_HAS_DIGIT_ROUNDING=ON") + if "+openmp" in self.spec: + args.append("-DLIBPRESSIO_HAS_OPENMP=ON") + if "+docs" in self.spec: + args.append("-DBUILD_DOCS=ON") + args.append("-DLIBPRESSIO_INSTALL_DOCS=ON") + if "+remote" in self.spec: + args.append("-DLIBPRESSIO_HAS_REMOTELAUNCH=ON") + if "+json" in self.spec: + args.append("-DLIBPRESSIO_HAS_JSON=ON") + if "+unix" in self.spec: + args.append("-DLIBPRESSIO_HAS_LINUX=ON") + if "+ndzip" in self.spec: + args.append("-DLIBPRESSIO_HAS_NDZIP=ON") + if "+arc" in self.spec: + args.append("-DLIBPRESSIO_HAS_ARC=ON") + if "+netcdf" in self.spec: + args.append("-DLIBPRESSIO_HAS_NETCDF=ON") + if "+sz3" in self.spec: + args.append("-DLIBPRESSIO_HAS_SZ3=ON") + if "+cuda" in self.spec: + args.append("-DLIBPRESSIO_HAS_CUFILE=ON") + if "+mgardx" in self.spec: + args.append("-DLIBPRESSIO_HAS_MGARDx=ON") + if "+bzip2" in self.spec: + args.append("-DLIBPRESSIO_HAS_BZIP2=ON") + if "+qoz" in self.spec: + args.append("-DLIBPRESSIO_HAS_QoZ=ON") + if "+cusz" in self.spec: + args.append("-DLIBPRESSIO_HAS_CUSZ=ON") + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") + + @run_after("build") + def install_docs(self): + if "+docs" in self.spec: + with working_dir(self.build_directory): + make("docs") diff --git a/var/spack/repos/builtin/packages/libstdcompat/package.py b/var/spack/repos/builtin/packages/libstdcompat/package.py new file mode 100644 index 0000000000..481dbce1c8 --- /dev/null +++ b/var/spack/repos/builtin/packages/libstdcompat/package.py @@ -0,0 +1,98 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Libstdcompat(CMakePackage): + """A compatibility header for C++14, 17, and 20 for C++11""" + + homepage = "https://github.com/robertu94/std_compat" + url = "https://github.com/robertu94/std_compat/archive/0.0.1.tar.gz" + git = "https://github.com/robertu94/std_compat" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("0.0.15", sha256="af374a8883a32d874f6cd18cce4e4344e32f9d60754be403a5ac7114feca2a28") + version("0.0.14", sha256="9a794d43a1d79aec3350b89d8c06689b8b32cf75e2742cdfa9dc0e3f2be6f04e") + version("0.0.13", sha256="460656189e317e108a489af701fa8f33f13a93d96380788e692a1c68100e0388") + version("0.0.12", sha256="67c1d1724122a1ba7cebcd839658786680fa06a549369f4a7c36a44ad93ddd5d") + version("0.0.11", sha256="f166cd55e3cf845e4ed9eee1fb25de1f991dee5ef538c1e3ea9cbe7714863ccb") + version("0.0.10", sha256="d55ad9b7f61efa5a4bbef047f729af5ed9e44f96bb9d54f36023fa99af2bfe40") + version("0.0.9", sha256="325e816153aab0aee791e4c628e01dbc5b7aa336558d1694bd5de763f34e37e6") + version("0.0.8", sha256="3103295033fb6723dc462a8979ccfe3b571347c2a458f4cc8d8324981dedead9") + version("0.0.7", sha256="8cb4ed704aef427bbe4c86ee874a350561e6e059223e7b3d60f1e0d7300ccfe9") + version("0.0.6", sha256="cf4288422c9e9ab9e7c831c11a6a67907fe19b0da40601cc2b05e76e3be2f795") + version("0.0.5", sha256="a8599a12253b5ebdb38c6e416e7896444fd48a15167fe481985182ed17fc6883") + version("0.0.4", sha256="b2aeb4e60105635acb3f41b2c9559956e7b75d999c73b84b14be5b78daa4e6a9") + version("0.0.3", sha256="098678618a335bb2e8b25ceae8c3498f4c3056fd9e03467948bab18252afb46d") + version("0.0.2", sha256="36424399e649be38bdb21899aa45f94aebba25c66048bab2751b1b3b9fd27238") + version("0.0.1", sha256="3d63e901f4e20b9032a67086f4b4281f641ee0dea436cf15f7058faa40d8637b") + + variant( + "cpp_compat", + values=("11", "14", "17", "20", "auto"), + default="auto", + multi=False, + description="version of the c++ standard to use and depend on", + ) + variant("cpp_unstable", default=True, description="sets CXX_STANDARD_REQUIRED") + variant("boost", default=False, description="support older compilers using boost") + + depends_on("boost+thread", when="%gcc@:8.0.0") + depends_on("boost+thread", when="+boost") + depends_on("boost+thread", when="cpp_compat=11") + depends_on("boost+thread", when="cpp_compat=14") + + conflicts("~cpp_unstable", when="@0.0.7: cpp_compat=auto") + conflicts("+cpp_unstable", when="@:0.0.7") + conflicts("cpp_compat=11", when="@:0.0.7") + conflicts("cpp_compat=14", when="@:0.0.7") + conflicts("cpp_compat=17", when="@:0.0.7") + conflicts("cpp_compat=20", when="@:0.0.7") + + def max_cxx_version(self): + try: + self.compiler.cxx17_flag + return "17" + except Exception: + pass + try: + self.compiler.cxx14_flag + return "14" + except Exception: + pass + self.compiler.cxx11_flag + return "11" + + def cmake_args(self): + args = [] + cpp_compat = self.spec.variants["cpp_compat"].value + + if "cpp_unstable" in self.spec: + args.append("-DSTDCOMPAT_CXX_UNSTABLE=ON") + + if cpp_compat == "auto": + args.append("-DSTDCOMPAT_CXX_VERSION=%s" % self.max_cxx_version()) + elif cpp_compat == "11": + args.append("-DSTDCOMPAT_CXX_VERSION=11") + elif cpp_compat == "14": + args.append("-DSTDCOMPAT_CXX_VERSION=14") + elif cpp_compat == "17": + args.append("-DSTDCOMPAT_CXX_VERSION=17") + elif cpp_compat == "20": + args.append("-DSTDCOMPAT_CXX_VERSION=20") + + if self.run_tests: + args.append("-DBUILD_TESTING=ON") + else: + args.append("-DBUILD_TESTING=OFF") + return args + + @run_after("build") + @on_package_attributes(run_tests=True) + def test(self): + make("test") diff --git a/var/spack/repos/builtin/packages/mgard/package.py b/var/spack/repos/builtin/packages/mgard/package.py new file mode 100644 index 0000000000..1cc336c7a1 --- /dev/null +++ b/var/spack/repos/builtin/packages/mgard/package.py @@ -0,0 +1,45 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Mgard(CMakePackage, CudaPackage): + """MGARD error bounded lossy compressor + forked from https://github.com/CODARcode/MGARD with patches to support Spack""" + + # This is a research compressor with a fast evolving API. The fork is updated + # when releases are made with minimal changes to support spack + + homepage = "https://github.com/CODARcode/MGARD" + git = "https://github.com/robertu94/MGARD" + + maintainers = ["robertu94"] + + version("2021-11-12", commit="3c05c80a45a51bb6cc5fb5fffe7b1b16787d3366") + version("2020-10-01", commit="b67a0ac963587f190e106cc3c0b30773a9455f7a") + + depends_on("zlib") + depends_on("zstd") + depends_on("libarchive", when="@2021-11-12:") + depends_on("tclap", when="@2021-11-12:") + depends_on("yaml-cpp", when="@2021-11-12:") + depends_on("cmake@3.19:") + depends_on("nvcomp@2.0.2", when="+cuda") + conflicts("cuda_arch=none", when="+cuda") + conflicts("~cuda", when="@2021-11-12") + + def cmake_args(self): + args = ["-DBUILD_TESTING=OFF"] + if "+cuda" in self.spec: + args.append("-DMGARD_ENABLE_CUDA=ON") + cuda_arch = self.spec.variants["cuda_arch"].value + args.append("-DCUDA_ARCH_STRING={}".format(";".join(cuda_arch))) + if "75" in cuda_arch: + args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_TURING=ON") + if "70" in cuda_arch: + args.append("-DMGARD_ENABLE_CUDA_OPTIMIZE_VOLTA=ON") + + return args diff --git a/var/spack/repos/builtin/packages/mgardx/package.py b/var/spack/repos/builtin/packages/mgardx/package.py new file mode 100644 index 0000000000..8872e7cfe4 --- /dev/null +++ b/var/spack/repos/builtin/packages/mgardx/package.py @@ -0,0 +1,35 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Mgardx(CMakePackage): + """MGARD implementation for research purposes + forked from: https://github.com/lxAltria/MGARDx""" + + # Some of the functionality of this compressor were moved to `MGARD` proper + # effectively retiring this package. This package lives on to access some of + # this functionality. Includes minor patches to support spack. + + homepage = "https://github.com/lxAltria/MGARDx" + git = "https://github.com/robertu94/MGARDx" + + maintainers = ["robertu94"] + + variant("shared", description="build shared libraries", default=True) + + version("2022-01-27", commit="aabe9de1a331eaeb8eec41125dd45e30c1d03af4") + + depends_on("sz-cpp") + depends_on("pkgconfig") + depends_on("zstd") + + def cmake_args(self): + args = [ + self.define("BUILD_TESTING", self.run_tests), + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + ] + return args diff --git a/var/spack/repos/builtin/packages/ndzip/package.py b/var/spack/repos/builtin/packages/ndzip/package.py new file mode 100644 index 0000000000..be8f7ab0e7 --- /dev/null +++ b/var/spack/repos/builtin/packages/ndzip/package.py @@ -0,0 +1,40 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Ndzip(CMakePackage, CudaPackage): + """A High-Throughput Parallel Lossless Compressor for Scientific Data + + forked from: https://github.com/fknorr/ndzip + """ + + # the upstream developer graduated and moved on to other tasks + + url = "https://github.com/celerity/ndzip" + homepage = "https://github.com/fknorr/ndzip" + git = "https://github.com/robertu94/ndzip" + + maintainers = ["robertu94"] + + version("master", branch="master") + version("2021-11-30", commit="5b3c34991005c0924a339f2ec06750729ebbf015") + + variant("cuda", description="build with cuda support", default=False) + variant("openmp", description="build with cuda support", default=False) + + def cmake_args(self): + args = [ + self.define_from_variant("NDZIP_WITH_CUDA", "cuda"), + self.define_from_variant("NDZIP_WITH_MT", "openmp"), + self.define("NDZIP_BUILD_BENCHMARK", False), + self.define("NDZIP_BUILD_TEST", self.run_tests), + self.define("NDZIP_USE_WERROR", False), + ] + if "+cuda" in self.spec and self.spec.variants["cuda_arch"].value != "none": + arch_str = ";".join(self.spec.variants["cuda_arch"].value) + args.append(self.define("CMAKE_CUDA_ARCHITECTURES", arch_str)) + return args diff --git a/var/spack/repos/builtin/packages/nvcomp/package.py b/var/spack/repos/builtin/packages/nvcomp/package.py new file mode 100644 index 0000000000..353802225d --- /dev/null +++ b/var/spack/repos/builtin/packages/nvcomp/package.py @@ -0,0 +1,34 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Nvcomp(CMakePackage, CudaPackage): + """Last open source release of A library for fast lossless compression + /decompression on NVIDIA GPUs + + forked from: https://github.com/NVIDIA/nvcomp after NVIDIA made this closed source + """ + + homepage = "https://github.com/NVIDIA/nvcomp" + url = "https://github.com/NVIDIA/nvcomp/archive/refs/tags/v2.0.2.tar.gz" + + # pinned to the last open source release+a few minor patches + git = "https://github.com/robertu94/nvcomp" + + maintainers = ["robertu94"] + + version("2.2.0", commit="3737f6e5028ed1887b0023ad0fc033e139d57574") + version("2.0.2", commit="5d5c194f3449486d989057f632d10954b8d11d75") + + depends_on("cuda") + conflicts("~cuda") + + def cmake_args(self): + args = ["-DBUILD_EXAMPLES=OFF", "-DBUILD_BENCHMARKS=OFF"] + cuda_arch_list = self.spec.variants["cuda_arch"].value + args.append("CMAKE_CUDA_ARCHITECTURES={0}".format(";".join(cuda_arch_list))) + return args diff --git a/var/spack/repos/builtin/packages/qcat/package.py b/var/spack/repos/builtin/packages/qcat/package.py new file mode 100644 index 0000000000..d0753663e6 --- /dev/null +++ b/var/spack/repos/builtin/packages/qcat/package.py @@ -0,0 +1,24 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Qcat(CMakePackage): + """Quick data compression quality analysis tool""" + + homepage = "https://github.com/szcompressor/qcat" + git = "https://github.com/szcompressor/qcat" + + maintainers = ["disheng222", "robertu94"] + + version("master", branch="master") + version("1.4", commit="f16032cf237837b1d32dde0c3daa6ad1ca4a912f") + + depends_on("zstd") + + def cmake_args(self): + args = ["-DQCAT_USE_BUNDLES=OFF"] + return args diff --git a/var/spack/repos/builtin/packages/qoz/package.py b/var/spack/repos/builtin/packages/qoz/package.py new file mode 100644 index 0000000000..81ca6bd794 --- /dev/null +++ b/var/spack/repos/builtin/packages/qoz/package.py @@ -0,0 +1,28 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Qoz(CMakePackage): + """Quality optimized version of SZ3 is the next generation of the SZ compressor framework""" + + git = "https://github.com/robertu94/QoZ" + homepage = git + + version("2022.04.26", commit="d28a7a8c9f703075441b700202b8a1ee185ded00") + + maintainers = ["disheng222"] + + depends_on("zstd") + depends_on("gsl") + depends_on("pkgconfig") + + def cmake_args(self): + args = [ + "-DQoZ_USE_BUNDLED_ZSTD=OFF", + "-DQoZ_DEBUG_TIMINGS=OFF", + ] + return args diff --git a/var/spack/repos/builtin/packages/r-libpressio/package.py b/var/spack/repos/builtin/packages/r-libpressio/package.py new file mode 100644 index 0000000000..94e90c59b9 --- /dev/null +++ b/var/spack/repos/builtin/packages/r-libpressio/package.py @@ -0,0 +1,36 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class RLibpressio(RPackage): + """R package for libpressio""" + + homepage = "https://github.com/robertu94/libpressio-r" + url = "https://github.com/robertu94/libpressio-r/archive/0.0.1.tar.gz" + + maintainers = ["robertu94"] + + version("1.6.0", sha256="4f8a712e5e84a201373a104e73b10282fcf98f1c7672cc1dd5a2ff07a32d54f6") + version("1.5.0", sha256="6b0e095610f190aad5dded0dbc6c0783893d4d5e773afc80328fc8c5befeff58") + version("1.4.1", sha256="fa9d47c84ddeb4edd9c5250067a87cc1bb549b9b1dd71e2501dd39ee4e171c27") + version("1.3.2", sha256="6afc907aa3663fbb9bfc7c92ca57e15d05ecbec59f94badec24e8da99ac1422f") + version("1.3", sha256="6ade53d30446de85d2bf6aff0f0a756887f970634b97456aec8b2920a96c0726") + version("1.2", sha256="e5889abf6aabd14b25b5c11e8ecc42cfe56681b1e4f7ade9c9fc28de213981b4") + version("1.1", sha256="b86a541e095b6e41b3548f6cd734c1ff50c70edda2806ed66b5205880fbfbb96") + version("0.0.1", sha256="a508cf3ec1b06c417e0de0e1e4180f3175ead2e4ec23b374425fcf2abfaa1b88") + + variant( + "third_party", description="include support for 3rd party compressor modules", default=True + ) + + depends_on("r@3.3.0:", type=("build", "run")) + depends_on("r-rcpp", type=("build", "link", "run")) + depends_on("libpressio+json", type=("build", "link", "run")) + depends_on("libpressio@0.65.0:", type=("build", "link", "run"), when="@1.2:1.5") + depends_on("libpressio@0.88.0:", type=("build", "link", "run"), when="@1.6:") + depends_on("pkgconfig", type=("build")) + depends_on("libpressio-tools@0.1.4:", type=("build", "link", "run"), when="+third_party") diff --git a/var/spack/repos/builtin/packages/r/package.py b/var/spack/repos/builtin/packages/r/package.py index 130ad46c9b..ffae98f8ef 100644 --- a/var/spack/repos/builtin/packages/r/package.py +++ b/var/spack/repos/builtin/packages/r/package.py @@ -214,16 +214,19 @@ class R(AutotoolsPackage): # Use the number of make_jobs set in spack. The make program will # determine how many jobs can actually be started. env.set("MAKEFLAGS", "-j{0}".format(make_jobs)) + env.set("R_HOME", join_path(self.prefix, "rlib", "R")) def setup_dependent_run_environment(self, env, dependent_spec): # For run time environment set only the path for dependent_spec and # prepend it to R_LIBS + env.set("R_HOME", join_path(self.prefix, "rlib", "R")) if dependent_spec.package.extends(self.spec): env.prepend_path("R_LIBS", join_path(dependent_spec.prefix, self.r_lib_dir)) def setup_run_environment(self, env): env.prepend_path("LD_LIBRARY_PATH", join_path(self.prefix, "rlib", "R", "lib")) env.prepend_path("PKG_CONFIG_PATH", join_path(self.prefix, "rlib", "pkgconfig")) + env.set("R_HOME", join_path(self.prefix, "rlib", "R")) if "+rmath" in self.spec: env.prepend_path("LD_LIBRARY_PATH", join_path(self.prefix, "rlib")) diff --git a/var/spack/repos/builtin/packages/sam2p/package.py b/var/spack/repos/builtin/packages/sam2p/package.py new file mode 100644 index 0000000000..6c4c8e1cb0 --- /dev/null +++ b/var/spack/repos/builtin/packages/sam2p/package.py @@ -0,0 +1,25 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Sam2p(Package): + """A raster to PostScript/PDF image conversion program""" + + homepage = "https://github.com/pts/sam2p" + url = "https://github.com/pts/sam2p/archive/v0.49.4.tar.gz" + git = homepage + + maintainers = ["robertu94"] + + version("master", branch="master") + version("2021-05-04", commit="f3e9cc0a2df1880a63f9f37c96e3595bca890cfa") + + def install(self, spec, prefix): + compile_sh = Executable("./compile.sh") + compile_sh() + mkdirp(prefix.bin) + install("sam2p", prefix.bin) diff --git a/var/spack/repos/builtin/packages/sperr/package.py b/var/spack/repos/builtin/packages/sperr/package.py new file mode 100644 index 0000000000..4d7482aff1 --- /dev/null +++ b/var/spack/repos/builtin/packages/sperr/package.py @@ -0,0 +1,43 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Sperr(CMakePackage): + """SPERR is a lossy scientific (floating-point) data compressor that can + perform either error-bounded or size-bounded data compression""" + + homepage = "https://github.com/NCAR/SPERR" + git = homepage + + version("2022.07.18", commit="640305d049db9e9651ebdd773e6936e2c028ff3a") + version("2022.05.26", commit="7894a5fe1b5ca5a4aaa952d1779dfc31fd741243") + + depends_on("git", type="build") + depends_on("zstd", type=("build", "link"), when="+zstd") + depends_on("pkgconf", type=("build"), when="+zstd") + + variant("shared", description="build shared libaries", default=True) + variant("zstd", description="use Zstd for more compression", default=True) + variant("openmp", description="use openmp for acceleration", default=True) + + maintainers = ["shaomeng", "robertu94"] + + def cmake_args(self): + # ensure the compiler supports OpenMP if it is used + if "+openmp" in self.spec: + self.compiler.openmp_flag + + args = [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define_from_variant("USE_ZSTD", "zstd"), + self.define_from_variant("USE_OMP", "openmp"), + "-DSPERR_PREFER_RPATH=OFF", + "-DUSE_BUNDLED_ZSTD=OFF", + "-DBUILD_CLI_UTILITIES=OFF", + "-DBUILD_UNIT_TESTS=OFF", + ] + return args diff --git a/var/spack/repos/builtin/packages/sz-cpp/package.py b/var/spack/repos/builtin/packages/sz-cpp/package.py new file mode 100644 index 0000000000..34a5365a73 --- /dev/null +++ b/var/spack/repos/builtin/packages/sz-cpp/package.py @@ -0,0 +1,29 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class SzCpp(CMakePackage): + """Refactorization of SZ in cpp""" + + homepage = "https://github.com/robertu94/meta_compressor/" + git = "https://github.com/robertu94/meta_compressor/" + + maintainers = ["robertu94"] + + version("2022-01-27", commit="9441b79abc89d4bcce53fe18edf0df53fd92d1d7") + + variant("shared", description="build shared libs", default=True) + + depends_on("zstd") + depends_on("pkgconfig") + + def cmake_args(self): + args = [ + self.define_from_variant("BUILD_SHARED_LIBS", "shared"), + self.define("BUILD_TESTING", self.run_tests), + ] + return args diff --git a/var/spack/repos/builtin/packages/sz3/package.py b/var/spack/repos/builtin/packages/sz3/package.py new file mode 100644 index 0000000000..80a8ff3b02 --- /dev/null +++ b/var/spack/repos/builtin/packages/sz3/package.py @@ -0,0 +1,31 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Sz3(CMakePackage): + """SZ3 is the next generation of the SZ compressor framework""" + + homepage = "https://github.com/szcompressor/SZ3" + git = "https://github.com/szcompressor/SZ3" + + maintainers = ["disheng222"] + + version("master") + version("3.1.5.4", commit="08df24b566e6d2e419cb95553aebf4a4902a8015") + version("3.1.5.1", commit="5736a63b917e439dd62248b4ff6234e96726af5d") + version("3.1.3.1", commit="323cb17b412d657c4be681b52c34beaf933fe7af") + version("3.1.3", commit="695dff8dc326f3b165f6676d810f46add088a585") + + depends_on("zstd") + depends_on("gsl") + depends_on("pkgconfig") + + def cmake_args(self): + return [ + "-DSZ3_USE_BUNDLED_ZSTD=OFF", + "-DSZ3_DEBUG_TIMINGS=OFF", + ] diff --git a/var/spack/repos/builtin/packages/szauto/package.py b/var/spack/repos/builtin/packages/szauto/package.py new file mode 100644 index 0000000000..744149d6e2 --- /dev/null +++ b/var/spack/repos/builtin/packages/szauto/package.py @@ -0,0 +1,23 @@ +# Copyright 2013-2022 Lawrence Livermore National Security, LLC and other +# Spack Project Developers. See the top-level COPYRIGHT file for details. +# +# SPDX-License-Identifier: (Apache-2.0 OR MIT) + +from spack.package import * + + +class Szauto(CMakePackage): + """SZauto: SZ C++ Version that Supports Second-Order Prediction and Parameter Optimization""" + + homepage = "https://github.com/szcompressor/SZauto" + url = "https://github.com/szcompressor/SZauto/releases/download/1.0.0/SZauto-1.0.0.tar.gz" + git = "https://github.com/szcompressor/szauto" + + maintainers = ["disheng222", "robertu94"] + + version("master", branch="master") + version("1.2.1", sha256="55c58f58df3a874f684ef864a9247907df0501e5598c089fd2d855ae0309b03a") + version("1.0.0", commit="03f3ab0312bd1de647e9d65746add73a0e8602d2") + + depends_on("zstd") + depends_on("pkgconfig") |