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:
		 Christopher Christofi
					Christopher Christofi
				
			
				
					committed by
					
						 GitHub
						GitHub
					
				
			
			
				
	
			
			
			 GitHub
						GitHub
					
				
			
						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)) | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user