charmpp: various fixes (#19956)

* charmpp: various fixes

- change URLs to https
- address deprecated/renamed versions
- make it build with the cmake build system

* flake8

* Apply suggestions from code review

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>

Co-authored-by: Adam J. Stewart <ajstewart426@gmail.com>
This commit is contained in:
Matthias Diener 2020-11-18 22:45:57 -06:00 committed by GitHub
parent 95f5419502
commit 932f128bc8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -17,11 +17,11 @@ class Charmpp(Package):
allows programs to run portably from small multicore computers allows programs to run portably from small multicore computers
(your laptop) to the largest supercomputers.""" (your laptop) to the largest supercomputers."""
homepage = "http://charmplusplus.org" homepage = "https://charmplusplus.org"
url = "http://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz" url = "https://charm.cs.illinois.edu/distrib/charm-6.8.2.tar.gz"
git = "https://github.com/UIUC-PPL/charm.git" git = "https://github.com/UIUC-PPL/charm.git"
version("develop", branch="master") version("master", branch="master")
version('6.10.2', sha256='7abb4cace8aebdfbb8006eac03eb766897c009cfb919da0d0a33f74c3b4e6deb') version('6.10.2', sha256='7abb4cace8aebdfbb8006eac03eb766897c009cfb919da0d0a33f74c3b4e6deb')
version('6.10.1', sha256='ab96198105daabbb8c8bdf370f87b0523521ce502c656cb6cd5b89f69a2c70a8') version('6.10.1', sha256='ab96198105daabbb8c8bdf370f87b0523521ce502c656cb6cd5b89f69a2c70a8')
@ -37,7 +37,7 @@ class Charmpp(Package):
version("6.5.1", sha256="68aa43e2a6e476e116a7e80e385c25c6ac6497807348025505ba8bfa256ed34a") version("6.5.1", sha256="68aa43e2a6e476e116a7e80e385c25c6ac6497807348025505ba8bfa256ed34a")
# Support OpenMPI; see # Support OpenMPI; see
# <https://charm.cs.illinois.edu/redmine/issues/1206> # <https://github.com/UIUC-PPL/charm/issues/1206>
# Patch is no longer needed in versions 6.8.0+ # Patch is no longer needed in versions 6.8.0+
patch("mpi.patch", when="@:6.7.1") patch("mpi.patch", when="@:6.7.1")
@ -147,17 +147,12 @@ def charmarch(self):
("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64", ("darwin", "x86_64", "mpi"): "mpi-darwin-x86_64",
("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64", ("darwin", "x86_64", "multicore"): "multicore-darwin-x86_64",
("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64", ("darwin", "x86_64", "netlrts"): "netlrts-darwin-x86_64",
("linux", "i386", "mpi"): "mpi-linux",
("linux", "i386", "multicore"): "multicore-linux",
("linux", "i386", "netlrts"): "netlrts-linux",
("linux", "i386", "uth"): "uth-linux",
("linux", "x86_64", "mpi"): "mpi-linux-x86_64", ("linux", "x86_64", "mpi"): "mpi-linux-x86_64",
("linux", "x86_64", "multicore"): "multicore-linux-x86_64", ("linux", "x86_64", "multicore"): "multicore-linux-x86_64",
("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64", ("linux", "x86_64", "netlrts"): "netlrts-linux-x86_64",
("linux", "x86_64", "verbs"): "verbs-linux-x86_64", ("linux", "x86_64", "verbs"): "verbs-linux-x86_64",
("linux", "x86_64", "ofi"): "ofi-linux-x86_64", ("linux", "x86_64", "ofi"): "ofi-linux-x86_64",
("linux", "x86_64", "ucx"): "ucx-linux-x86_64", ("linux", "x86_64", "ucx"): "ucx-linux-x86_64",
("linux", "x86_64", "uth"): "uth-linux-x86_64",
("linux", "ppc", "mpi"): "mpi-linux-ppc", ("linux", "ppc", "mpi"): "mpi-linux-ppc",
("linux", "ppc", "multicore"): "multicore-linux-ppc", ("linux", "ppc", "multicore"): "multicore-linux-ppc",
("linux", "ppc", "netlrts"): "netlrts-linux-ppc", ("linux", "ppc", "netlrts"): "netlrts-linux-ppc",
@ -173,6 +168,21 @@ def charmarch(self):
("cnl", "x86_64", "gni"): "gni-crayxc", ("cnl", "x86_64", "gni"): "gni-crayxc",
("cnl", "x86_64", "mpi"): "mpi-crayxc", ("cnl", "x86_64", "mpi"): "mpi-crayxc",
} }
# Some versions were renamed/removed in 6.11
if self.spec.version < Version("6.11.0"):
versions.update({("linux", "i386", "mpi"): "mpi-linux"})
versions.update({("linux", "i386", "multicore"):
"multicore-linux"})
versions.update({("linux", "i386", "netlrts"): "netlrts-linux"})
versions.update({("linux", "i386", "uth"): "uth-linux"})
else:
versions.update({("linux", "i386", "mpi"): "mpi-linux-i386"})
versions.update({("linux", "i386", "multicore"):
"multicore-linux-i386"})
versions.update({("linux", "i386", "netlrts"):
"netlrts-linux-i386"})
if (plat, mach, comm) not in versions: if (plat, mach, comm) not in versions:
raise InstallError( raise InstallError(
"The communication mechanism %s is not supported " "The communication mechanism %s is not supported "
@ -301,7 +311,10 @@ def install(self, spec, prefix):
os.rename(tmppath, filepath) os.rename(tmppath, filepath)
except (IOError, OSError): except (IOError, OSError):
pass pass
shutil.rmtree(join_path(builddir, "tmp"))
tmp_path = join_path(builddir, "tmp")
if not os.path.islink(tmp_path):
shutil.rmtree(tmp_path)
if self.spec.satisfies('@6.9.99'): if self.spec.satisfies('@6.9.99'):
# A broken 'doc' link in the prefix can break the build. # A broken 'doc' link in the prefix can break the build.