miniforge3: add new versions with mamba installation (#43995)
* miniforge3: add new version with mamba installation * fix styling * update maintainers * Fix variant directive ordering
This commit is contained in:
parent
c7cf5eabc1
commit
3381899c69
@ -3,50 +3,63 @@
|
|||||||
#
|
#
|
||||||
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
# SPDX-License-Identifier: (Apache-2.0 OR MIT)
|
||||||
|
|
||||||
|
import platform
|
||||||
|
from os.path import split
|
||||||
|
|
||||||
from spack.package import *
|
from spack.package import *
|
||||||
|
from spack.util.environment import EnvironmentModifications
|
||||||
|
|
||||||
|
_versions = {
|
||||||
|
"24.3.0-0": {
|
||||||
|
"Linux-x86_64": ("23367676b610de826f50f7ddc91139a816d4b59bd4c69cc9b6082d9b2e7fe8a3",)
|
||||||
|
},
|
||||||
|
"24.1.2-0": {
|
||||||
|
"Linux-x86_64": ("dbadb808edf4da00af35d888d3eeebbfdce71972b60bf4b16dbacaee2ab57f28",)
|
||||||
|
},
|
||||||
|
"4.8.3-4": {
|
||||||
|
"Linux-x86_64": ("24951262a126582f5f2e1cf82c9cd0fa20e936ef3309fdb8397175f29e647646",),
|
||||||
|
"Linux-aarch64": ("52a8dde14ecfb633800a2de26543a78315058e30f5883701da1ad2f2d5ba9ed8",),
|
||||||
|
},
|
||||||
|
"4.8.3-2": {
|
||||||
|
"Linux-x86_64": ("c8e5b894fe91ce0f86e61065d2247346af107f8d53de0ad89ec848701c4ec1f9",),
|
||||||
|
"Linux-aarch64": ("bfefc0ede6354568978b4198607edd7f17c2f50ca4c6a47e9f22f8c257c8230a",),
|
||||||
|
"MacOSX-x86_64": ("25ca082ab00a776db356f9bbc660edf6d24659e2aec1cbec5fd4ce992d4d193d"),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class Miniforge3(Package):
|
class Miniforge3(Package):
|
||||||
"""Miniforge3 is a minimal installer for conda specific to conda-forge."""
|
"""Miniforge3 is a minimal installer for conda and mamba specific to conda-forge."""
|
||||||
|
|
||||||
homepage = "https://github.com/conda-forge/miniforge"
|
homepage = "https://github.com/conda-forge/miniforge"
|
||||||
url = "https://github.com/conda-forge/miniforge/releases/download/4.8.3-2/Miniforge3-4.8.3-2-Linux-x86_64.sh"
|
|
||||||
|
|
||||||
version(
|
maintainers("ChristopherChristofi")
|
||||||
"4.8.3-4-Linux-x86_64",
|
|
||||||
url="https://github.com/conda-forge/miniforge/releases/download/4.8.3-4/Miniforge3-4.8.3-4-Linux-x86_64.sh",
|
license("BSD-3-Clause")
|
||||||
sha256="24951262a126582f5f2e1cf82c9cd0fa20e936ef3309fdb8397175f29e647646",
|
|
||||||
expand=False,
|
for ver, packages in _versions.items():
|
||||||
)
|
key = f"{platform.system()}-{platform.machine()}"
|
||||||
version(
|
pkg = packages.get(key)
|
||||||
"4.8.3-4-Linux-aarch64",
|
if pkg:
|
||||||
url="https://github.com/conda-forge/miniforge/releases/download/4.8.3-4/Miniforge3-4.8.3-4-Linux-aarch64.sh",
|
version(ver, sha256=pkg[0], expand=False)
|
||||||
sha256="52a8dde14ecfb633800a2de26543a78315058e30f5883701da1ad2f2d5ba9ed8",
|
|
||||||
expand=False,
|
variant("mamba", default=True, description="Enable mamba support.")
|
||||||
)
|
|
||||||
version(
|
conflicts("+mamba", when="@:22.3.1-0")
|
||||||
"4.8.3-2-Linux-x86_64",
|
|
||||||
url="https://github.com/conda-forge/miniforge/releases/download/4.8.3-2/Miniforge3-4.8.3-2-Linux-x86_64.sh",
|
def url_for_version(self, version):
|
||||||
sha256="c8e5b894fe91ce0f86e61065d2247346af107f8d53de0ad89ec848701c4ec1f9",
|
script = f"Miniforge3-{version}-{platform.system()}-{platform.machine()}.sh"
|
||||||
expand=False,
|
return f"https://github.com/conda-forge/miniforge/releases/download/{version}/{script}"
|
||||||
)
|
|
||||||
version(
|
|
||||||
"4.8.3-2-Linux-aarch64",
|
|
||||||
url="https://github.com/conda-forge/miniforge/releases/download/4.8.3-2/Miniforge3-4.8.3-2-Linux-aarch64.sh",
|
|
||||||
sha256="bfefc0ede6354568978b4198607edd7f17c2f50ca4c6a47e9f22f8c257c8230a",
|
|
||||||
expand=False,
|
|
||||||
)
|
|
||||||
version(
|
|
||||||
"4.8.3-2-MacOSX-x86_64",
|
|
||||||
url="https://github.com/conda-forge/miniforge/releases/download/4.8.3-2/Miniforge3-4.8.3-2-MacOSX-x86_64.sh",
|
|
||||||
sha256="25ca082ab00a776db356f9bbc660edf6d24659e2aec1cbec5fd4ce992d4d193d",
|
|
||||||
expand=False,
|
|
||||||
)
|
|
||||||
|
|
||||||
def install(self, spec, prefix):
|
def install(self, spec, prefix):
|
||||||
mkdirp(prefix)
|
dir, script = split(self.stage.archive_file)
|
||||||
pkgname = "Miniforge3-{0}.sh".format(self.version)
|
bash = which("bash")
|
||||||
chmod = which("chmod")
|
bash(script, "-b", "-f", "-p", self.prefix)
|
||||||
chmod("+x", pkgname)
|
|
||||||
sh = which("sh")
|
def setup_run_environment(self, env):
|
||||||
sh("./{0}".format(pkgname), "-b", "-f", "-s", "-p", prefix)
|
filename = self.prefix.etc.join("profile.d").join("conda.sh")
|
||||||
|
env.extend(EnvironmentModifications.from_sourcing_file(filename))
|
||||||
|
|
||||||
|
if "+mamba" in self.spec:
|
||||||
|
filename = self.prefix.etc.join("profile.d").join("mamba.sh")
|
||||||
|
env.extend(EnvironmentModifications.from_sourcing_file(filename))
|
||||||
|
Loading…
Reference in New Issue
Block a user