spack/var/spack/repos/builtin/packages/parallelmergetree/package.py
Harmen Stoppels eef9939c21
Automated git version fixes (#39637)
Use full length commit sha instead of short prefixes, to improve
reproducibility (future clashes) and guard against compromised repos and
man in the middle attacks.

Abbreviated commit shas are expanded to full length, to guard against future
clashes on short hash. It also guards against compromised repos and
man in the middle attacks, where attackers can easily fabricate a malicious
commit with a shasum prefix collision.

Versions with just tags now also get a commit sha, which can later be used to
check for retagged commits.
2023-08-29 16:33:03 +02:00

84 lines
2.5 KiB
Python

# Copyright 2013-2023 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 Parallelmergetree(CMakePackage):
"""A multi-runtime implementation of a distributed merge tree
segmentation algorithm. The implementation relies on the framework
BabelFlow, which allows to execute the algorithm on different runtime
systems."""
homepage = "https://bitbucket.org/cedmav/parallelmergetree"
git = "https://bitbucket.org/cedmav/parallelmergetree.git"
maintainers("spetruzza")
version(
"1.1.2",
git="https://bitbucket.org/cedmav/parallelmergetree.git",
tag="v1.1.2",
commit="22ec85177a66b3850ec3aa8ae73da4ad187f6156",
submodules=True,
)
version(
"1.1.1",
git="https://bitbucket.org/cedmav/parallelmergetree.git",
tag="v1.1.1",
commit="d4b56978dd1b9c9d62d5dd3a0caadfc3102bdf42",
submodules=True,
)
version(
"1.1.0",
git="https://bitbucket.org/cedmav/parallelmergetree.git",
tag="v1.1.0",
commit="4a5a81b2c857eda9599f257de8719f68f31a5900",
submodules=True,
)
version(
"1.0.2",
git="https://bitbucket.org/cedmav/parallelmergetree.git",
tag="v1.0.2",
commit="c0b1f305d7f8e3d0bf7cffe22c1e2ac1c0faf05e",
submodules=True,
)
version(
"1.0.0",
git="https://bitbucket.org/cedmav/parallelmergetree.git",
tag="v1.0.0",
commit="9cfb68fdf0f8e881a4bfd94ae5d3ae25c9e01ea6",
submodules=True,
)
depends_on("babelflow@1.1.0", when="@1.1.2")
depends_on("babelflow@1.1.0", when="@1.1.1")
depends_on("babelflow@1.1.0", when="@1.1.0")
depends_on("babelflow@1.0.1", when="@1.0.2")
variant("shared", default=True, description="Build ParallelMergeTree as shared libs")
# The C++ headers of gcc-11 don't provide <algorithm> as side effect of others
@when("%gcc@11:")
def setup_build_environment(self, env):
env.append_flags("CXXFLAGS", "-include algorithm")
def cmake_args(self):
args = []
if "+shared" in self.spec:
args.append("-DBUILD_SHARED_LIBS=ON")
else:
args.append("-DBUILD_SHARED_LIBS=OFF")
args.append("-DLIBRARY_ONLY=ON")
args.append("-DBabelFlow_DIR={0}".format(self.spec["babelflow"].prefix))
return args