summaryrefslogtreecommitdiff
path: root/var/spack/repos/builtin/packages/environment-modules/package.py
blob: 6097a83b153d92a7b619348124cd97e4b3ae5884 (plain) (blame)
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# 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)


from spack.package import *


class EnvironmentModules(Package):
    """The Environment Modules package provides for the dynamic
    modification of a user's environment via module files.
    """

    homepage = "https://cea-hpc.github.io/modules/"
    url = "https://github.com/cea-hpc/modules/releases/download/v5.2.0/modules-5.2.0.tar.gz"

    maintainers = ["xdelaruelle"]

    version("5.2.0", sha256="48f9f10864303df628a48cab17074820a6251ad8cd7d66dd62aa7798af479254")
    version("5.1.1", sha256="1985f79e0337f63d6564b08db0238cf96a276a4184def822bb8ad37996dc8295")
    version("5.1.0", sha256="1ab1e859b9c8bca8a8d332945366567fae4cf8dd7e312a689daaff46e7ffa949")
    version("5.0.1", sha256="33a598eaff0713de09e479c2636ecde188b982584e56377f234e5065a61be7ba")
    version("5.0.0", sha256="428e23ac51a6006605de65ed9114d544a5506cb4b6bfb03d8522778f13e4f7ea")
    version("4.8.0", sha256="d6b45cadc2146ed5e0b25a96d44643ad516054eb7745acb14a1dc7bf30744f6e")
    version("4.7.1", sha256="ee7ecd62bbbde6d51e30788a97800c39e72515b6a910839fb84041b35ba42b4d")
    version("4.7.0", sha256="3ab0a649e23b4dd00963e4cae60e573b449194ecb4035c5ce487330b272b4d06")
    version("4.6.1", sha256="3445df39abe5838b94552b53e7dbff56ada8347b9fdc6c04a72297d5b04af76f")
    version("4.6.0", sha256="b42b14bb696bf1075ade1ecaefe7735dbe411db4c29031a1dae549435eafa946")
    version("4.5.3", sha256="7cbd9c61e6dcd82a3f81b5ced92c3cf84ecc5489639bdfc94869256383a2c915")
    version("4.5.2", sha256="74ccc9ab0fea0064ff3f4c5841435cef13cc6d9869b3c2b25e5ca4efa64a69a1")
    version("4.5.1", sha256="7d4bcc8559e7fbbc52e526fc86a15b161ff4422aa49eee37897ee7a48eb64ac2")
    version("4.5.0", sha256="5f46336f612553af5553d99347f387f733de0aaa0d80d4572e67615289382ec8")
    version("4.4.1", sha256="3c20cfb2ff8a4d74ac6d566e7b5fa9dd220d96d17e6d8a4ae29b1ec0107ee407")
    version("4.4.0", sha256="4dd55ad6cc684905e891ad1ba9e3c542e79eea0a9cd9a0e99cd77abe6ed63fab")
    version("4.3.1", sha256="979efb5b3d3c8df2c3c364aaba61f97a459456fc5bbc092dfc02677da63e5654")
    version("4.3.0", sha256="231f059c4109a2d3028c771f483f6c92f1f3689eb0033648ce00060dad00e103")
    version("4.2.5", sha256="3375b454568e7bbec7748cd6173516ef9f30a3d8e13c3e99c02794a6a3bc3c8c")
    version("4.2.4", sha256="416dda94141e4778356e2aa9ba8687e6522a1eb197b3caf00a82e5fa2707709a")
    version("4.2.3", sha256="f667134cca8e2c75e12a00b50b5605d0d8068efa5b821f5b3c3f0df06fd79411")
    version("4.2.2", sha256="481fe8d03eec6806c1b401d764536edc2c233ac9d82091a10094de6101867afc")
    version("4.2.1", sha256="c796ea6a03e22d63886ca9ec6b1bef821e8cb09f186bd007f63653e31e9cb595")
    version("4.2.0", sha256="d439dfa579a633108c4f06574ed9bc3b91b8610d2ce3a6eb803bf377d0284be7")
    version("4.1.4", sha256="965b6056ea6b72b87d9352d4c1db1d7a7f9f358b9408df2689d823b932d6aa7f")
    version("4.1.3", sha256="dab82c5bc20ccea284b042d6af4bd6eaba95f4eaadd495a75413115d33a3151f")
    version("4.1.2", sha256="d1f54f639d1946aa1d7ae8ae03752f8ac464a879c14bc35e63b6a87b8a0b7522")
    version("4.1.1", sha256="998e9cc936045b4e84f28ca60c4680c08385a210d6bb95fc31c28a7d634a9357")
    version("4.1.0", sha256="d98aa369219bf0a4ec41efe7cb8d1127d34cb07666088dd79da6b424196d4cfd")
    version("4.0.0", sha256="f0ab7f6a747863cb980681a904a3c9380e2e52de6eb046cfa285e5e225f9ac47")
    version(
        "3.2.10",
        sha256="fb05c82a83477805a1d97737a9f0ca0db23f69b7bce504f1609ba99477b03955",
        url="http://prdownloads.sourceforge.net/modules/modules-3.2.10.tar.gz",
    )

    variant("X", default=True, description="Build with X functionality")

    # Dependencies:
    depends_on("tcl", type=("build", "link", "run"))
    depends_on("tcl@8.4:", type=("build", "link", "run"), when="@4.0.0:4.8")
    depends_on("tcl@8.5:", type=("build", "link", "run"), when="@5.0.0:")

    def install(self, spec, prefix):
        tcl = spec["tcl"]

        config_args = [
            "--prefix=" + prefix,
            # It looks for tclConfig.sh
            "--with-tcl=" + tcl.libs.directories[0],
            "--datarootdir=" + prefix.share,
        ]

        # ./configure script on version 4.5.2 breaks when specific options are
        # set (see https://github.com/cea-hpc/modules/issues/354)
        if not spec.satisfies("@4.5.2"):
            config_args.extend(["--disable-dependency-tracking", "--disable-silent-rules"])

        if "~X" in spec:
            config_args = ["--without-x"] + config_args

        if "@4.4.0:4.8" in self.spec:
            config_args.extend(
                [
                    "--with-icase=search",
                    "--enable-extended-default",
                    "--enable-advanced-version-spec",
                ]
            )

        if "@4.3.0:4.8" in self.spec:
            config_args.extend(["--enable-color"])

        if "@4.2.0:4.8" in self.spec:
            config_args.extend(["--enable-auto-handling"])

        if "@4.1.0:" in self.spec:
            config_args.extend(
                [
                    # Variables in quarantine are empty during module command
                    # start-up and they will be restored to the value they had
                    # in the environment once the command starts
                    "--with-quarantine-vars=LD_LIBRARY_PATH LD_PRELOAD"
                ]
            )

        if "@4.0.0:4.8" in self.spec:
            config_args.extend(["--disable-compat-version"])

        if "@4.0.0:" in self.spec:
            config_args.extend(["--with-tclsh={0}".format(tcl.prefix.bin.tclsh)])

        if "@3.2.10" in self.spec:
            # See: https://sourceforge.net/p/modules/bugs/62/
            config_args.extend(["--disable-debug", "CPPFLAGS=-DUSE_INTERP_ERRORLINE"])

        if "@:3.2" in self.spec:
            config_args.extend(
                [
                    "--without-tclx",
                    "--with-tclx-ver=0.0",
                    "--with-tcl-ver={0}".format(tcl.version.up_to(2)),
                    "--disable-versioning",
                ]
            )

        configure(*config_args)
        make()
        make("install")