
* Update package.py Update to pull Totalview tar files from AWS instead of requiring the user to download ahead of time. Use new license type, RLM license. Only allow for installs of versions using the new license type. 2024.1 and 2024.2. User selects the platform with the version as it is down from the TotalView downloads website. * Update package.py Update to pass style test * Update package.py fixing syle * Updating to pass style check removing more spaces to pass style check * final style fixes fixing the last 2 style errors * Typo Typo correction to pass style check * REmove new line removing new line character * Ran black to reformat Ran black to clear errors * Changing to use sha256 Updating to use sha256 checksums for all TotalView files.
100 lines
3.7 KiB
Python
100 lines
3.7 KiB
Python
# Copyright 2013-2024 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 Totalview(Package):
|
|
"""Totalview parallel debugger.
|
|
|
|
Select the version associated with your machine architecture'
|
|
'."""
|
|
|
|
homepage = "https://totalview.io"
|
|
maintainers("dshrader", "petertea", "suzannepaterno", "elliebinkley")
|
|
license_required = True
|
|
license_comment = "#"
|
|
license_files = ["tv_license/license.lic"]
|
|
license_vars = ["RLM_LICENSE"]
|
|
|
|
# As the install of Totalview is via multiple tarballs, the base install
|
|
# will be the documentation. The architecture-specific tarballs are added
|
|
# as resources dependent on the specific architecture used.
|
|
|
|
version(
|
|
"2024.2-x86-64",
|
|
sha256="b6d9cfd804ff1f6641fbd92f9730b34f62062ead9b1324eaf44f34ea78c69ef1",
|
|
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.2/totalview_2024.2.11_linux_x86-64.tar",
|
|
)
|
|
|
|
version(
|
|
"2024.2-powerle",
|
|
sha256="2bc1ef377e95f6f09d1f221a1dcc2f79415bad9e1e8403c647f38e2d383524d6",
|
|
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.2/totalview_2024.2.11_linux_powerle.tar",
|
|
)
|
|
|
|
version(
|
|
"2024.2-linux-arm64",
|
|
sha256="63f737e61c2fb7f4816bcfc1d00e9e7c39817455531abdd09500f953be4ac75d",
|
|
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.2/totalview_2024.2.11_linux_arm64.tar",
|
|
)
|
|
|
|
version(
|
|
"2024.1-x86-64",
|
|
sha256="964b73e70cb9046ce320bb0f95891b05c96a59117e5243fdc269855831c7059b",
|
|
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.1/totalview_2024.1.21_linux_x86-64.tar",
|
|
)
|
|
|
|
version(
|
|
"2024.1-powerle",
|
|
sha256="c4dd8a3099d4f6ed23a6646b1d091129e0bf0b10c7a0d7ec73bd767818bab39b",
|
|
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.1/totalview_2024.1.21_linux_powerle.tar",
|
|
)
|
|
|
|
version(
|
|
"2024.1-linux-arm64",
|
|
sha256="769527478dceb30855413970621f09a9dc54ef863ddaf75bb5a40142a54af346",
|
|
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.1/totalview_2024.1.21_linux_arm64.tar",
|
|
)
|
|
|
|
def setup_run_environment(self, env):
|
|
env.prepend_path(
|
|
"PATH",
|
|
join_path(self.prefix, "toolworks", "totalview.{0}".format(self.version), "bin"),
|
|
)
|
|
env.prepend_path(
|
|
"TVROOT", join_path(self.prefix, "toolworks", "totalview.{0}".format(self.version))
|
|
)
|
|
env.prepend_path("TVDSVRLAUNCHCMD", "ssh")
|
|
|
|
def install(self, spec, prefix):
|
|
# Assemble install line
|
|
install_cmd = which("./Install")
|
|
arg_list = ["-agree", "-nosymlink", "-directory", "{0}".format(prefix)]
|
|
|
|
# Platform specification.
|
|
if spec.target.family == "x86_64" and spec.platform == "linux":
|
|
arg_list.extend(["-platform", "linux-x86-64"])
|
|
elif spec.target.family == "aarch64":
|
|
arg_list.extend(["-platform", "linux-arm64"])
|
|
elif spec.target.family == "ppc64le":
|
|
arg_list.extend(["-platform", "linux-powerle"])
|
|
else:
|
|
raise InstallError("Architecture {0} not permitted!".format(spec.target.family))
|
|
|
|
install_cmd.exe.extend(arg_list)
|
|
|
|
# Run install script for totalview (which automatically installs memoryscape)
|
|
install_cmd = which("./Install")
|
|
arg_list.extend(["-install", "totalview"])
|
|
install_cmd.exe.extend(arg_list)
|
|
install_cmd()
|
|
|
|
# If a license file was created
|
|
symlink(
|
|
join_path(self.prefix, "tv_license", "license.lic"),
|
|
join_path(self.prefix, "toolworks", "tv_license", "license.lic"),
|
|
)
|