spack/var/spack/repos/builtin/packages/stat/package.py
Adam J. Stewart c5883fffd7
Python: drop EOL versions (#33898)
This PR removes [end of life](https://endoflife.date/python) versions of Python from Spack. Specifically, this includes all versions of Python older than 3.7.

See https://github.com/spack/spack/discussions/31824 for rationale. Deprecated in #32615. And #28003.

For anyone using software that relies on Python 2, you have a few options:

* Upgrade the software to support Python 3. The `3to2` tool may get you most of the way there, although more complex libraries may need manual tweaking.
* Add Python 2 as an [external package](https://spack.readthedocs.io/en/latest/build_settings.html#external-packages). Many Python libraries do not support Python 2, but you may be able to add older versions that did once upon a time.
* Use Spack 0.19. Spack 0.19 is the last release to officially support Python 3.6 and older
* Create and maintain your own [custom repository](https://spack.readthedocs.io/en/latest/repositories.html). Basically, you would need a package for Python 2 and any other Python 2-specific libraries you need.
2022-11-22 15:02:30 -08:00

97 lines
3.8 KiB
Python

# 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 *
from spack.pkg.builtin.boost import Boost
class Stat(AutotoolsPackage):
"""Library to create, manipulate, and export graphs Graphlib."""
homepage = "https://paradyn.org/STAT/STAT.html"
url = "https://github.com/LLNL/STAT/archive/v2.0.0.tar.gz"
git = "https://github.com/llnl/stat.git"
maintainers = ["lee218llnl"]
version("develop", branch="develop")
version(
"4.2.1",
sha256="137529889ec5b5f9b9bae3a0864a385c5814e989d0074228dd3500e3e713801d",
url="https://github.com/LLNL/STAT/releases/download/v4.2.1/stat-4.2.1.tar.gz",
)
version(
"4.2.0",
sha256="d244d53585b0949e308354eb024f7a89ee3467fd2866b818e8aa6c8b5d372ced",
url="https://github.com/LLNL/STAT/releases/download/v4.2.0/stat-4.2.0.tar.gz",
)
version(
"4.1.0",
sha256="1d5b00afd563cf3bd9dd40818c44a03d7d4b13356216881513c058566c3b0080",
url="https://github.com/LLNL/STAT/files/6193568/stat-4.1.0.tar.gz",
)
version(
"4.0.2",
sha256="9ece10dde8e1579c9db469ac8d2391b26e59498c0947dbb271c2d01d7ef0a65d",
url="https://github.com/LLNL/STAT/releases/download/v4.0.2/stat-4.0.2.tar.gz",
)
version(
"4.0.1",
sha256="ae3fbd6946003fb16233d82d40285780a9a802da5fe30d09adb8a8b2a2cc4ad6",
url="https://github.com/LLNL/STAT/files/2489327/stat-4.0.1.tar.gz",
)
# TODO: dysect requires Dyninst patch for version 3.0.0b
variant("dysect", default=False, description="enable DySectAPI")
variant("examples", default=False, description="enable examples")
variant("fgfs", default=True, description="enable file broadcasting")
variant("gui", default=True, description="enable GUI")
depends_on("autoconf", type="build")
depends_on("automake", type="build")
depends_on("libtool", type="build")
depends_on("dyninst", when="@4.2.1:")
depends_on("dyninst@:11.9", when="~dysect @:4.2.0")
depends_on("dyninst@:9", when="@:4.0.1")
depends_on("dyninst@8.2.1+stat_dysect", when="+dysect")
# we depend on fgfs@master to avoid seg faults with fgfs 1.1
depends_on("fast-global-file-status@1.1.1:", when="+fgfs")
depends_on("graphlib@3.0.0")
depends_on("graphviz", type=("build", "link", "run"))
# we depend on mpa@master for bug fixes since launchmon 1.0.2
depends_on("launchmon@1.2.0:")
depends_on("mrnet")
depends_on("python")
depends_on("py-xdot@1.0", when="+gui")
depends_on("swig")
depends_on("mpi", when="+examples")
# TODO: replace this with an explicit list of components of Boost,
# for instance depends_on('boost +filesystem')
# See https://github.com/spack/spack/pull/22303 for reference
depends_on(Boost.with_default_variants)
# No Mac support due to dependencies like dyninst, elf etc.
conflicts("platform=darwin", msg="macOS is not supported")
def configure_args(self):
spec = self.spec
args = [
"--with-launchmon=%s" % spec["launchmon"].prefix,
"--with-mrnet=%s" % spec["mrnet"].prefix,
"--with-graphlib=%s" % spec["graphlib"].prefix,
"--with-stackwalker=%s" % spec["dyninst"].prefix,
"--with-python=%s" % spec["python"].command.path,
"--with-boost=%s" % spec["boost"].prefix,
]
if "+fgfs" in spec:
args.append("--with-fgfs=%s" % spec["fast-global-file-status"].prefix)
if "+dysect" in spec:
args.append("--enable-dysectapi")
if "~gui" in spec:
args.append("--disable-gui")
if "~examples" in spec:
args.append("--disable-examples")
return args