totalview: add v2024.1-linux-arm64 -> v2024.2-x86-64 (#45490)

* 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.
This commit is contained in:
suzannepaterno 2024-10-01 10:12:02 -04:00 committed by GitHub
parent 44618e31c8
commit cbbdf38f4f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -3,184 +3,61 @@
#
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
import os
from spack.package import *
class Totalview(Package):
"""Totalview parallel debugger.
Source must be made available to Spack
externally, either by having the tarballs in the current working directory
or having the tarballs in a Spack mirror.
The documentation tarball will
be used as the primary source and the architecture appropriate tarball will
be downloaded as a resource."""
Select the version associated with your machine architecture'
'."""
homepage = "https://totalview.io"
maintainers("dshrader", "petertea")
manual_download = True
maintainers("dshrader", "petertea", "suzannepaterno", "elliebinkley")
license_required = True
license_comment = "#"
license_files = ["licenses/license.dat", "licenses/tv_license_file"]
license_vars = ["LM_LICENSE_FILE", "TV_LICENSE_FILE"]
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("2022.3.6", sha256="3f60714b8c885c562433e30c8bcde7e6383b3517664f37f25da7bf7f9110f308")
version("2022.2.13", sha256="4bf625c760454e532fe66666f2f5479d38f36f569f104bbe3341c0f48cbc8766")
version("2022.1.11", sha256="0042afdbb024b99350c395decf2606b6913479ab0117bfd7bd4252d91843ef69")
version("2021.4.10", sha256="c476288ebe1964e0803c7316975c71a957e52f45187b135bc1dc3b65491bb61d")
version("2021.3.9", sha256="fd947ce755e76a6a06747755aa61bedd0c1428999a46e920db9498ac930ddc29")
# Distributed with Totalview
variant("memoryscape", default=True, description="Install memoryscape")
# Because the actual source tarball is architecture dependent, the main
# download is the documentation tarball and the source is downloaded as a
# resource once the target architecture is known.
# Version 2022.3.6
resource(
name="x86-64",
url="file://totalview.2022.3.6-linux-x86-64.tar",
destination=".",
sha256="a2639c52bfd4c7484b728d6a0158239074ff0e0c52208a5452b12b878016a519",
when="@2022.3.6 platform=linux target=x86_64:",
)
resource(
name="ppcle",
url="file://totalview_2022.3.6_linux_powerle.tar",
destination=".",
sha256="93771a6ce99cff6d11e8172ff57da16aed76ab8ad1804e1d18186fba6de945f7",
when="@2022.3.6 platform=linux target=ppc64le:",
)
resource(
name="aarch64",
url="file://totalview_2022.3.6_linux_arm64.tar",
destination=".",
sha256="5c18a9a187196980f9bd0fbbb77bb8e5c1d51442188ca44d58a9c49329c98783",
when="@2022.3.6 platform=linux target=aarch64:",
)
resource(
name="darwinx86",
url="file://totalview.2022.3.6-darwin-x86.tar",
destination=".",
sha256="f558877f7debbeeef200f587edf4cbba41b6bc8db5a0166757445cc652de8a33",
when="@2022.3.6 platform=darwin target=x86_64:",
version(
"2024.2-x86-64",
sha256="b6d9cfd804ff1f6641fbd92f9730b34f62062ead9b1324eaf44f34ea78c69ef1",
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.2/totalview_2024.2.11_linux_x86-64.tar",
)
# Version 2022.2.13
resource(
name="x86-64",
url="file://totalview.2022.2.13-linux-x86-64.tar",
destination=".",
sha256="aebd11b837ce18b8200859ea762caa56e2cea346daa114f2841aa0f05a422309",
when="@2022.2.13 platform=linux target=x86_64:",
)
resource(
name="ppcle",
url="file://totalview_2022.2.13_linux_powerle.tar",
destination=".",
sha256="0136be160576b51b03e6409b06d6cc22b5535380894e0fdc6569e2238e12120e",
when="@2022.2.13 platform=linux target=ppc64le:",
)
resource(
name="aarch64",
url="file://totalview_2022.2.13_linux_arm64.tar",
destination=".",
sha256="d82154222e1ae5fce0bb7abd19b6782494ecb1f76a9a5f38a19e9dcd40bd42aa",
when="@2022.2.13 platform=linux target=aarch64:",
)
resource(
name="darwinx86",
url="file://totalview.2022.2.13-darwin-x86.tar",
destination=".",
sha256="abcad08e80967959f556cb9f2a7d6dfa7f38e33213fe56f7f3198ff94cd9f3fe",
when="@2022.2.13 platform=darwin target=x86_64:",
version(
"2024.2-powerle",
sha256="2bc1ef377e95f6f09d1f221a1dcc2f79415bad9e1e8403c647f38e2d383524d6",
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.2/totalview_2024.2.11_linux_powerle.tar",
)
# Version 2022.1.11
resource(
name="x86-64",
url="file://totalview.2022.1.11-linux-x86-64.tar",
destination=".",
sha256="3ec9a7d702572dbbafa41726a036c94b549f9a5911ed6fd6aa55f7b377554bac",
when="@2022.1.11 platform=linux target=x86_64:",
)
resource(
name="ppcle",
url="file://totalview_2022.1.11_linux_powerle.tar",
destination=".",
sha256="4c49546508f7e0b1a91bea3ea8d71f6f9dc76989c69a4fd78012a4ae8fa44aa6",
when="@2022.1.11 platform=linux target=ppc64le:",
)
resource(
name="aarch64",
url="file://totalview_2022.1.11_linux_arm64.tar",
destination=".",
sha256="89407c043679d161b6e204fc4ad5686b7ac18742081a045f19388c7294e5ddbe",
when="@2022.1.11 platform=linux target=aarch64:",
)
resource(
name="darwinx86",
url="file://totalview.2022.1.11-darwin-x86.tar",
destination=".",
sha256="3a99eda8b7be225e0b7596b3c52032809378c86ea736c88e915c0a0e8efedbe4",
when="@2022.1.11 platform=darwin target=x86_64:",
version(
"2024.2-linux-arm64",
sha256="63f737e61c2fb7f4816bcfc1d00e9e7c39817455531abdd09500f953be4ac75d",
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.2/totalview_2024.2.11_linux_arm64.tar",
)
# Version 2021.4.10
resource(
name="x86-64",
url="file://totalview.2021.4.10-linux-x86-64.tar",
destination=".",
sha256="7e5509b2cfb219100b0032304bdad7d422657c0736c386ba64bdb1bf11d10a1d",
when="@2021.4.10 platform=linux target=x86_64:",
)
resource(
name="ppcle",
url="file://totalview_2021.4.10_linux_powerle.tar",
destination=".",
sha256="79e812d1cd600172c5ea29c4aa6fb660d293300683419af36dd0e52cd7e15d56",
when="@2021.4.10 platform=linux target=ppc64le:",
)
resource(
name="aarch64",
url="file://totalview_2021.4.10_linux_arm64.tar",
destination=".",
sha256="46faaae1f33b4f4a20de345611092fbc65cd5759511c1fcf86ca71a0811c76fd",
when="@2021.4.10 platform=linux target=aarch64:",
)
resource(
name="darwinx86",
url="file://totalview.2021.4.10-darwin-x86.tar",
destination=".",
sha256="adbf95f86763e3cc5ec51fd504f3172bdcbb42a7f1f4e73b17cacca002729ad2",
when="@2021.4.10 platform=darwin target=x86_64:",
version(
"2024.1-x86-64",
sha256="964b73e70cb9046ce320bb0f95891b05c96a59117e5243fdc269855831c7059b",
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.1/totalview_2024.1.21_linux_x86-64.tar",
)
# Version 2021.3
resource(
name="x86_64",
url="file://totalview_2021.3.9_linux_x86-64.tar",
destination=".",
sha256="6315ca855e1bee14678c640c3c9c8207b4f66c91714dcedd4aed592354112b48",
when="@2021.3.9 platform=linux target=x86_64:",
)
resource(
name="ppcle",
url="file://totalview_2021.3.9_linux_powerle.tar",
destination=".",
sha256="a7657b61895805024f5d4e7550796a485f98ce297a585583cdd20fe0b9b30bbb",
when="@2021.3.9 platform=linux target=ppc64le:",
version(
"2024.1-powerle",
sha256="c4dd8a3099d4f6ed23a6646b1d091129e0bf0b10c7a0d7ec73bd767818bab39b",
url="https://dslwuu69twiif.cloudfront.net/totalview/2024.1/totalview_2024.1.21_linux_powerle.tar",
)
def url_for_version(self, version):
return "file://{0}/totalview.{1}-doc.tar".format(os.getcwd(), version)
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(
@ -200,38 +77,23 @@ def install(self, spec, prefix):
# Platform specification.
if spec.target.family == "x86_64" and spec.platform == "linux":
arg_list.extend(["-platform", "linux-x86-64"])
elif spec.target.family == "x86_64" and spec.platform == "darwin":
arg_list.extend(["-platform", "darwin-x86"])
elif spec.target.family == "x86":
arg_list.extend(["-platform", "linux-x86"])
elif spec.target.family == "aarch64":
arg_list.extend(["-platform", "linux-arm64"])
elif spec.target.family == "ppc64le":
arg_list.extend(["-platform", "linux-powerle"])
elif spec.target.family == "ppc64":
arg_list.extend(["-platform", "linux-power"])
else:
raise InstallError("Architecture {0} not permitted!".format(spec.target.family))
# Docs are the "base" install used with every architecture.
install_cmd.exe.extend(arg_list)
install_cmd("-install", "doc-pdf")
# Run install script for totalview (which automatically installs memoryscape)
with working_dir("./totalview.{0}".format(self.version)):
install_cmd = which("./Install")
arg_list.extend(["-install", "totalview"])
# TotalView automatically installs Memoryscape, so no need to add
install_cmd = which("./Install")
arg_list.extend(["-install", "totalview"])
install_cmd.exe.extend(arg_list)
install_cmd()
install_cmd.exe.extend(arg_list)
install_cmd()
# If a license file was created, link to FNE_license or FNP_license
# If a license file was created
symlink(
join_path(self.prefix, "licenses", "tv_license_file"),
join_path(self.prefix, "toolworks", "FNE_license", "tv_license_file"),
)
symlink(
join_path(self.prefix, "licenses", "license.dat"),
join_path(self.prefix, "toolworks", "FNP_license", "license.dat"),
join_path(self.prefix, "tv_license", "license.lic"),
join_path(self.prefix, "toolworks", "tv_license", "license.lic"),
)