1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# 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.2.0", sha256="d09f1fe6ffe54f83be4677e1e727640521d8110090515d94013eba0f58216934")
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):
rcfile = join_path(self.prefix.etc, "flux/shell/lua.d/mpi/openmpi@5.lua")
filter_file(
r"pmix/pmix.so", join_path(self.prefix.lib, "flux/shell/plugins/pmix/pmix.so"), rcfile
)
def setup_run_environment(self, env):
env.prepend_path("FLUX_SHELL_RC_PATH", join_path(self.prefix, "etc/flux/shell/lua.d"))
|