diff options
35 files changed, 1410 insertions, 26 deletions
diff --git a/lib/spack/spack/build_environment.py b/lib/spack/spack/build_environment.py index 63b1309a22..f8fda997d3 100644 --- a/lib/spack/spack/build_environment.py +++ b/lib/spack/spack/build_environment.py @@ -201,6 +201,8 @@ def clean_environment(): env.unset("CMAKE_PREFIX_PATH") env.unset("PYTHONPATH") + env.unset("R_HOME") + env.unset("R_ENVIRON") # Affects GNU make, can e.g. indirectly inhibit enabling parallel build # env.unset('MAKEFLAGS') 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") |