
* Automated deployment to update package flux-pmix 2023-04-07 * fix style Signed-off-by: vsoch <vsoch@users.noreply.github.com> --------- Signed-off-by: vsoch <vsoch@users.noreply.github.com> Co-authored-by: github-actions <github-actions@users.noreply.github.com> Co-authored-by: vsoch <vsoch@users.noreply.github.com>
61 lines
2.2 KiB
Python
61 lines
2.2 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)
|
|
|
|
import os
|
|
|
|
from spack.package import *
|
|
|
|
|
|
class FluxPmix(AutotoolsPackage):
|
|
"""A flux shell plugin to bootstrap openmpi v5+"""
|
|
|
|
homepage = "https://github.com/flux-framework/flux-pmix"
|
|
url = "https://github.com/flux-framework/flux-pmix/releases/download/v0.1.0/flux-pmix-0.1.0.tar.gz"
|
|
git = "https://github.com/flux-framework/flux-pmix.git"
|
|
|
|
maintainers("grondo")
|
|
|
|
version("main", branch="main")
|
|
version("0.3.0", sha256="88edb2afaeb6058b56ff915105a36972acc0d83204cff7f4a4d2f65a5dee9d34")
|
|
version("0.2.0", sha256="d09f1fe6ffe54f83be4677e1e727640521d8110090515d94013eba0f58216934")
|
|
|
|
depends_on("flux-core@0.49.0:", when="@0.3.0:")
|
|
depends_on("flux-core@0.30.0:")
|
|
depends_on("pmix@v4.1.0:")
|
|
depends_on("openmpi")
|
|
|
|
depends_on("pkgconfig", type="build")
|
|
depends_on("autoconf", type="build")
|
|
depends_on("automake", type="build")
|
|
depends_on("libtool", type="build")
|
|
|
|
def autoreconf(self, spec, prefix):
|
|
if not os.path.exists("configure"):
|
|
# Bootstrap with autotools
|
|
bash = which("bash")
|
|
bash("./autogen.sh")
|
|
|
|
@run_after("install")
|
|
def add_pluginpath(self):
|
|
spec = self.spec
|
|
pluginpath = join_path(self.prefix.lib, "flux/shell/plugins/pmix.so")
|
|
if spec.satisfies("@:0.3.0"):
|
|
rcfile = join_path(self.prefix.etc, "flux/shell/lua.d/mpi/openmpi@5.lua")
|
|
filter_file(r"pmix/pmix.so", pluginpath)
|
|
else:
|
|
rcdir = join_path(self.prefix.etc, "flux/shell/lua.d")
|
|
rcfile = join_path(rcdir, "pmix.lua")
|
|
mkdirp(rcdir)
|
|
with open(rcfile, "w") as fp:
|
|
fp.write('plugin.load("' + pluginpath + '")')
|
|
|
|
def setup_run_environment(self, env):
|
|
spec = self.spec
|
|
env.prepend_path("FLUX_SHELL_RC_PATH", join_path(self.prefix, "etc/flux/shell/lua.d"))
|
|
if spec.satisfies("@0.3.0:"):
|
|
env.prepend_path(
|
|
"FLUX_PMI_CLIENT_SEARCHPATH", join_path(self.prefix, "flux/upmi/plugins")
|
|
)
|