summaryrefslogblamecommitdiff
path: root/var/spack/repos/builtin/packages/flux-pmix/package.py
blob: 29c1fef112826f7971da7b8a6f9d7fef23542406 (plain) (tree)
1
2
3
4
5
6
7
8
                                                                         





                                                                         
                           


                                 
                                                      

                                                            

                                                                                                       
 
                         
 

                                                                                               
 


                                   
 



                                         

                                       
                                           
                                      

                                
 
                         
                             



                                                                                                  

                                         
                                                                                              
# 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"))