diff --git a/Custom_EasyBlocks/juliapackage.py b/Custom_EasyBlocks/juliapackage.py index 58cf4cd4b285828e0e936c14f9c31a1806565a50..f0c334623cb0b3bfd1e96f732e90edaa9a406b85 100644 --- a/Custom_EasyBlocks/juliapackage.py +++ b/Custom_EasyBlocks/juliapackage.py @@ -147,7 +147,10 @@ class JuliaPackage(ExtensionEasyBlock): Custom sanity check for Julia packages """ #NOTE: we don't use Pkg.status with arguments as only supported for Julia >=v1.1 - cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status()'" % (self.depot, self.projectdir) + # if juliaver >= 1.1: + cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status(\"%s\")'" % (self.depot, self.projectdir, self.package_name) + # else: + # cmd = "unset EBJULIA_USER_DEPOT_PATH && unset EBJULIA_ADMIN_DEPOT_PATH && export JULIA_DEPOT_PATH=%s && export JULIA_PROJECT=%s && julia --eval 'using Pkg; Pkg.status()'" % (self.depot, self.projectdir) cmdttdouterr, _ = run_cmd(cmd, log_all=True, simple=False, regexp=False) self.log.error("Julia package %s sanity returned %s" % (self.name, cmdttdouterr)) return len(parse_log_for_error(cmdttdouterr, regExp="%s\s+v%s" % (self.package_name, self.version))) != 0 diff --git a/Golden_Repo/j/Julia/Julia-1.8.5-gcccoremkl-11.3.0-2022.1.0.eb b/Golden_Repo/j/Julia/Julia-1.8.5-gcccoremkl-11.3.0-2022.1.0.eb new file mode 100644 index 0000000000000000000000000000000000000000..8255c5c8b2485cf731b744e1c829c29f444b6a40 --- /dev/null +++ b/Golden_Repo/j/Julia/Julia-1.8.5-gcccoremkl-11.3.0-2022.1.0.eb @@ -0,0 +1,233 @@ +name = 'Julia' +version = '1.8.5' + +homepage = 'https://julialang.org/' +description = """Julia was designed from the beginning for high performance. +Julia programs compile to efficient native code for multiple platforms via LLVM +""" + +toolchain = {'name': 'gcccoremkl', 'version': '11.3.0-2022.1.0'} +toolchainopts = {'pic': True, 'verbose': True} + +source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/'] +sources = ['julia-%(version)s-full.tar.gz'] +checksums = ['35554080a4b4d3ce52ef220254306bd42ac0d88eff9eb85592a57d0663db5df2'] + +builddependencies = [ + ('binutils', '2.38'), + ('git', '2.36.0', '-nodocs'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('GMP', '6.2.1'), + ('CUDA', '11.7', '', SYSTEM), + ('SciPy-bundle', '2022.05'), + ('matplotlib', '3.5.2'), + # ('OpenGL', '2022a'), # build segfaults starting with version 1.8.1 + ('OpenSSL', '1.1', '', SYSTEM), +] + +skipsteps = ['configure'] +buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 " +installopts = "prefix=%(installdir)s " + +arch_name = 'gpu' + +exts_defaultclass = 'JuliaPackage' +exts_list = [ + # General Purpose + ('PackageCompiler.jl', '2.1.4', { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'], + 'checksums': ['2fd6f50003d995624374900e7e0220cd7cd8386a317e0070d2b4b9b9d61c5e88'], + }), + ('HTTP.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('Parsers.jl', '2.5.1', { + 'source_tmpl': 'v2.5.1.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'], + 'checksums': ['72494acac42c7dff16e1a6ac1305f13001f3743e0021d158d097399f0567d926'], + }), + ('VersionParsing.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('JSON.jl', '0.21.3', { + 'source_tmpl': 'v0.21.3.tar.gz', + 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'], + 'checksums': ['bd02a015da24b03f79d55967b29f5ceaba2477b559242576d74f02623bb1b6b1'], + }), + ('WebIO.jl', '0.8.20', { + 'source_tmpl': 'v0.8.20.tar.gz', + 'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'], + 'checksums': ['d8c45c0be367963539cf7bdf748d16b4f6065fa5113e353ad57872980fc56b39'], + }), + ('ProgressMeter.jl', '1.7.2', { + 'source_tmpl': 'v1.7.2.tar.gz', + 'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'], + 'checksums': ['3591ea33d0ad7576bbb7d430ba94a988274af6434fbd7f3d0dc7fc2655dc888c'], + }), + ('Conda.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + ('PyCall.jl', '1.95.1', { + 'source_tmpl': 'v1.95.1.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'], + 'checksums': ['8746b3ecc54fd670e5983945bec205ff65cdb4b9e395a79f887cc28741b05e87'], + }), + ('LaTeXStrings.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('DocumentFormat.jl', '4.0.3', { + 'source_tmpl': 'v4.0.3.tar.gz', + 'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'], + 'checksums': ['4a7131590fa07d16d8b4998ef7570f797148e7ed622a0fa431a6ca3fe52156ab'], + }), + # Data Science + ('CSV.jl', '0.10.9', { + 'source_tmpl': 'v0.10.9.tar.gz', + 'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'], + 'checksums': ['e0958f0bf04e2b32bc4040e74ce9eed1e5be3947c03f381be1003ac197304d84'], + }), + ('DataFrames.jl', '1.4.4', { + 'source_tmpl': 'v1.4.4.tar.gz', + 'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'], + 'checksums': ['365877a405d1ba3af23ff5258424870cce434a13b02df34c7d8a78568ef2b87a'], + }), + ('Arrow.jl', '2.4.3', { + 'source_tmpl': 'v2.4.3.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'], + 'checksums': ['d65a8c803f9ac664b3afc878f1eba2c7fe99d91601aebc3dc288784585be80a2'], + }), + ('OnlineStats.jl', '1.5.14', { + 'source_tmpl': 'v1.5.14.tar.gz', + 'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'], + 'checksums': ['b1c725a3de6cfde25271753b7cc341d2f565bc6aa74ae76394f845cb0339dc42'], + }), + ('Query.jl', '1.0.0', { + 'source_tmpl': 'v1.0.0.tar.gz', + 'source_urls': ['https://github.com/queryverse/Query.jl/archive/'], + 'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'], + }), + # Scientific Domains + ('GSL.jl', '1.0.1', { + 'source_tmpl': 'v1.0.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'], + 'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'], + }), + ('DifferentialEquations.jl', '7.6.0', { + 'source_tmpl': 'v7.6.0.tar.gz', + 'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'], + 'checksums': ['32df0e2b2811567f5d58f5b88831e6a6c3c15b4d2f0bae6bde0a11a98b4e49d8'], + }), + ('Distributions.jl', '0.25.80', { + 'source_tmpl': 'v0.25.80.tar.gz', + 'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'], + 'checksums': ['0f457839d969dd5f8a12ba96fb3a3a728387945d98504ba3e7131178ef8e9ef7'], + }), + ('Optim.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('IterativeSolvers.jl', '0.9.2', { + 'source_tmpl': 'v0.9.2.tar.gz', + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('AbstractFFTs.jl', '1.2.1', { + 'source_tmpl': 'v1.2.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('OrdinaryDiffEq.jl', '6.42.0', { + 'source_tmpl': 'v6.42.0.tar.gz', + 'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'], + 'checksums': ['22af73320fd7577e3e4557e10f2b7cb0f77c03556499699033c47c8f56cbe482'], + }), + ('SpecialFunctions.jl', '1.8.7', { + 'source_tmpl': 'v1.8.7.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['3f2ecec0506fe47cfa5e436ac510e2a82d39f74fceaeb422572cf06d90f2096a'], + }), + ('JuMP.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + # Visualization + ('GR.jl', '0.71.5', { + 'source_tmpl': 'v0.71.5.tar.gz', + 'source_urls': ['https://github.com/jheinen/GR.jl/archive/'], + 'checksums': ['d2b096241d8dfd3e16b1abcf2c0dd5664db025c1eeadf11145b9934284b112b7'], + }), + ('PlotlyJS.jl', '0.18.10', { + 'source_tmpl': 'v0.18.10.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'], + 'checksums': ['b574113676080c14634118ce3a5ceda7562224039a2fd0ea3ad8bc5938700a49'], + }), + ('PyPlot.jl', '2.11.0', { + 'source_tmpl': 'v2.11.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'], + 'checksums': ['10498f5b7bd958c5e0dae33aa2514048005e4f5b037d9a73a09cb4231259cc13'], + }), + ('Plots.jl', '1.38.4', { + 'source_tmpl': 'v1.38.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'], + 'checksums': ['d37a748e531b9970d1b5e552e069f8778f22f2e0508368bbd74f76b20dc51b1e'], + }), + ('UnicodePlots.jl', '3.3.4', { + 'source_tmpl': 'v3.3.4.tar.gz', + 'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'], + 'checksums': ['7280b26b83dd03eaee21398de40cb83674c5e42037cad75f6e821cb0322ae9fd'], + }), + ('StatsPlots.jl', '0.15.4', { + 'source_tmpl': 'v0.15.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'], + 'checksums': ['451076c4d352ab88c8d0010320315a2f3d26ef0cc16007c7d0eb49eaa1105777'], + }), + # CUDA + ('CUDA.jl', '4.0.0', { + 'source_tmpl': 'v4.0.0.tar.gz', + 'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'], + 'checksums': ['64fa7fe158c8cd56841b7906a4f57c53dbaa225fe8688bf3087b7951854b591b'], + }), +] + +modextrapaths = { + 'LD_LIBRARY_PATH': 'lib/julia', +} + +modextravars = { + 'JULIA_CUDA_USE_BINARYBUILDER': 'false', + # FYI: automatically added by EB_Julia + # 'EBJULIA_STD_DEPOT_PATH': '%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'EBJULIA_USER_DEPOT_PATH': '~/.julia/%(version)s/default-%(arch_name)', + # 'EBJULIA_ADMIN_DEPOT_PATH': '%(installdir)s/extensions', + # 'EBJULIA_STD_LOAD_PATH': '@stdlib', + # 'EBJULIA_USER_LOAD_PATH': '@:@#.#.#-default-%(arch_name)' + # 'EBJULIA_ADMIN_LOAD_PATH': '%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/', + # 'EBEXTSLISTJULIA': '<list of extensions installed>' + # 'EBJULIA_ENV_NAME': '%(version)s-default-%(arch_name)s' + # 'JULIA_INSTALL_FOLDER': '%(installdir)s', + # 'JULIA_DEPOT_PATH': '~/.julia/%(version)s/default-gpu:%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'JULIA_LOAD_PATH': '@:@#.#.#-default-gpu:@stdlib', + # 'JULIA_PROJECT': ''%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/Project.toml', +} + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lang' diff --git a/Golden_Repo/j/Julia/Julia-1.8.5-gomkl-2023.eb b/Golden_Repo/j/Julia/Julia-1.8.5-gomkl-2023.eb new file mode 100644 index 0000000000000000000000000000000000000000..9c6f0c289a8ca504508167189088fa1f5e63e6d3 --- /dev/null +++ b/Golden_Repo/j/Julia/Julia-1.8.5-gomkl-2023.eb @@ -0,0 +1,247 @@ +name = 'Julia' +version = '1.8.5' + +homepage = 'https://julialang.org/' +description = """Julia was designed from the beginning for high performance. +Julia programs compile to efficient native code for multiple platforms via LLVM +""" + +toolchain = {'name': 'gompi', 'version': '2022a'} +toolchainopts = {'usempi': False, 'pic': True} + +source_urls = ['https://github.com/JuliaLang/julia/releases/download/v%(version)s/'] +sources = ['julia-%(version)s-full.tar.gz'] +checksums = ['35554080a4b4d3ce52ef220254306bd42ac0d88eff9eb85592a57d0663db5df2'] + +builddependencies = [ + ('binutils', '2.38'), + ('git', '2.36.0', '-nodocs'), + ('CMake', '3.23.1'), +] + +dependencies = [ + ('Python', '3.10.4'), + ('GMP', '6.2.1'), + ('CUDA', '11.7', '', SYSTEM), + ('SciPy-bundle', '2022.05', '', ('gcccoremkl', '11.3.0-2022.1.0')), + ('matplotlib', '3.5.2', '', ('gcccoremkl', '11.3.0-2022.1.0')), + # ('OpenGL', '2022a'), # build segfaults starting with version 1.8.1 + ('OpenSSL', '1.1', '', SYSTEM), +] + +skipsteps = ['configure'] +buildopts = " USE_SYSTEM_GMP=1 USE_INTEL_MKL=1 " +installopts = "prefix=%(installdir)s " + +arch_name = 'gpu' + +exts_defaultclass = 'JuliaPackage' +exts_list = [ + # General Purpose + ('PackageCompiler.jl', '2.1.4', { + 'source_tmpl': 'v%(version)s.tar.gz', + 'source_urls': ['https://github.com/JuliaLang/PackageCompiler.jl/archive/'], + 'checksums': ['2fd6f50003d995624374900e7e0220cd7cd8386a317e0070d2b4b9b9d61c5e88'], + }), + ('HTTP.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaWeb/HTTP.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('Parsers.jl', '2.5.1', { + 'source_tmpl': 'v2.5.1.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Parsers.jl/archive/'], + 'checksums': ['72494acac42c7dff16e1a6ac1305f13001f3743e0021d158d097399f0567d926'], + }), + ('VersionParsing.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/JuliaInterop/VersionParsing.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('JSON.jl', '0.21.3', { + 'source_tmpl': 'v0.21.3.tar.gz', + 'source_urls': ['https://github.com/JuliaIO/JSON.jl/archive/'], + 'checksums': ['bd02a015da24b03f79d55967b29f5ceaba2477b559242576d74f02623bb1b6b1'], + }), + ('WebIO.jl', '0.8.20', { + 'source_tmpl': 'v0.8.20.tar.gz', + 'source_urls': ['https://github.com/JuliaGizmos/WebIO.jl/archive/'], + 'checksums': ['d8c45c0be367963539cf7bdf748d16b4f6065fa5113e353ad57872980fc56b39'], + }), + ('ProgressMeter.jl', '1.7.2', { + 'source_tmpl': 'v1.7.2.tar.gz', + 'source_urls': ['https://github.com/timholy/ProgressMeter.jl/archive/'], + 'checksums': ['3591ea33d0ad7576bbb7d430ba94a988274af6434fbd7f3d0dc7fc2655dc888c'], + }), + ('Conda.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/Conda.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + ('PyCall.jl', '1.95.1', { + 'source_tmpl': 'v1.95.1.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyCall.jl/archive/'], + 'checksums': ['8746b3ecc54fd670e5983945bec205ff65cdb4b9e395a79f887cc28741b05e87'], + }), + ('LaTeXStrings.jl', '1.3.0', { + 'source_tmpl': 'v1.3.0.tar.gz', + 'source_urls': ['https://github.com/stevengj/LaTeXStrings.jl/archive/'], + 'checksums': ['f90fe419e1a40ef0eccfaaed1d1b7792d9115a059a82d0c23e3c04c944d0f8ca'], + }), + ('DocumentFormat.jl', '4.0.3', { + 'source_tmpl': 'v4.0.3.tar.gz', + 'source_urls': ['https://github.com/julia-vscode/DocumentFormat.jl/archive/'], + 'checksums': ['4a7131590fa07d16d8b4998ef7570f797148e7ed622a0fa431a6ca3fe52156ab'], + }), + # Data Science + ('CSV.jl', '0.10.9', { + 'source_tmpl': 'v0.10.9.tar.gz', + 'source_urls': ['https://github.com/JuliaData/CSV.jl/archive/'], + 'checksums': ['e0958f0bf04e2b32bc4040e74ce9eed1e5be3947c03f381be1003ac197304d84'], + }), + ('DataFrames.jl', '1.4.4', { + 'source_tmpl': 'v1.4.4.tar.gz', + 'source_urls': ['https://github.com/JuliaData/DataFrames.jl/archive/'], + 'checksums': ['365877a405d1ba3af23ff5258424870cce434a13b02df34c7d8a78568ef2b87a'], + }), + ('Arrow.jl', '2.4.3', { + 'source_tmpl': 'v2.4.3.tar.gz', + 'source_urls': ['https://github.com/JuliaData/Arrow.jl/archive/'], + 'checksums': ['d65a8c803f9ac664b3afc878f1eba2c7fe99d91601aebc3dc288784585be80a2'], + }), + ('OnlineStats.jl', '1.5.14', { + 'source_tmpl': 'v1.5.14.tar.gz', + 'source_urls': ['https://github.com/joshday/OnlineStats.jl/archive/'], + 'checksums': ['b1c725a3de6cfde25271753b7cc341d2f565bc6aa74ae76394f845cb0339dc42'], + }), + ('Query.jl', '1.0.0', { + 'source_tmpl': 'v1.0.0.tar.gz', + 'source_urls': ['https://github.com/queryverse/Query.jl/archive/'], + 'checksums': ['76c05e3ffc8f3c2ce2cd3f6824f40a107cdba6fc58c4ce42de2289132de988e0'], + }), + # Scientific Domains + ('GSL.jl', '1.0.1', { + 'source_tmpl': 'v1.0.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/GSL.jl/archive/refs/tags/'], + 'checksums': ['91a5acbb752610c5989b9acef126f2231f612debb7ba6d1d4625c68d2af5776e'], + }), + ('DifferentialEquations.jl', '7.6.0', { + 'source_tmpl': 'v7.6.0.tar.gz', + 'source_urls': ['https://github.com/SciML/DifferentialEquations.jl/archive/'], + 'checksums': ['32df0e2b2811567f5d58f5b88831e6a6c3c15b4d2f0bae6bde0a11a98b4e49d8'], + }), + ('Distributions.jl', '0.25.80', { + 'source_tmpl': 'v0.25.80.tar.gz', + 'source_urls': ['https://github.com/JuliaStats/Distributions.jl/archive/'], + 'checksums': ['0f457839d969dd5f8a12ba96fb3a3a728387945d98504ba3e7131178ef8e9ef7'], + }), + ('Optim.jl', '1.7.4', { + 'source_tmpl': 'v1.7.4.tar.gz', + 'source_urls': ['https://github.com/JuliaNLSolvers/Optim.jl/archive/'], + 'checksums': ['95e4079f12983ad5008cca2505a5408b6f0146a9ed8f247361e090004030613d'], + }), + ('IterativeSolvers.jl', '0.9.2', { + 'source_tmpl': 'v0.9.2.tar.gz', + 'source_urls': ['https://github.com/JuliaLinearAlgebra/IterativeSolvers.jl/archive/'], + 'checksums': ['95fbfa39aa68e989ae6bad2f51ce0fe5635ba3f3375d0ea4d9422e77ff924a9b'], + }), + ('AbstractFFTs.jl', '1.2.1', { + 'source_tmpl': 'v1.2.1.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/AbstractFFTs.jl/archive/'], + 'checksums': ['58abf90b037c618daeed89940c77ac129b5155b26429ac77643cc9c5db453363'], + }), + ('OrdinaryDiffEq.jl', '6.42.0', { + 'source_tmpl': 'v6.42.0.tar.gz', + 'source_urls': ['https://github.com/SciML/OrdinaryDiffEq.jl/archive/'], + 'checksums': ['22af73320fd7577e3e4557e10f2b7cb0f77c03556499699033c47c8f56cbe482'], + }), + ('SpecialFunctions.jl', '1.8.7', { + 'source_tmpl': 'v1.8.7.tar.gz', + 'source_urls': ['https://github.com/JuliaMath/SpecialFunctions.jl/archive/'], + 'checksums': ['3f2ecec0506fe47cfa5e436ac510e2a82d39f74fceaeb422572cf06d90f2096a'], + }), + ('JuMP.jl', '1.7.0', { + 'source_tmpl': 'v1.7.0.tar.gz', + 'source_urls': ['https://github.com/jump-dev/JuMP.jl/archive/'], + 'checksums': ['2077b1192e1cfa206caf441d9d91b0ca83aa935db89918f1fd69cd25c2415ced'], + }), + # Visualization + ('GR.jl', '0.71.5', { + 'source_tmpl': 'v0.71.5.tar.gz', + 'source_urls': ['https://github.com/jheinen/GR.jl/archive/'], + 'checksums': ['d2b096241d8dfd3e16b1abcf2c0dd5664db025c1eeadf11145b9934284b112b7'], + }), + ('PlotlyJS.jl', '0.18.10', { + 'source_tmpl': 'v0.18.10.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/PlotlyJS.jl/archive/'], + 'checksums': ['b574113676080c14634118ce3a5ceda7562224039a2fd0ea3ad8bc5938700a49'], + }), + ('PyPlot.jl', '2.11.0', { + 'source_tmpl': 'v2.11.0.tar.gz', + 'source_urls': ['https://github.com/JuliaPy/PyPlot.jl/archive/'], + 'checksums': ['10498f5b7bd958c5e0dae33aa2514048005e4f5b037d9a73a09cb4231259cc13'], + }), + ('Plots.jl', '1.38.4', { + 'source_tmpl': 'v1.38.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/Plots.jl/archive/'], + 'checksums': ['d37a748e531b9970d1b5e552e069f8778f22f2e0508368bbd74f76b20dc51b1e'], + }), + ('UnicodePlots.jl', '3.3.4', { + 'source_tmpl': 'v3.3.4.tar.gz', + 'source_urls': ['https://github.com/Evizero/UnicodePlots.jl/archive/'], + 'checksums': ['7280b26b83dd03eaee21398de40cb83674c5e42037cad75f6e821cb0322ae9fd'], + }), + ('StatsPlots.jl', '0.15.4', { + 'source_tmpl': 'v0.15.4.tar.gz', + 'source_urls': ['https://github.com/JuliaPlots/StatsPlots.jl/archive/'], + 'checksums': ['451076c4d352ab88c8d0010320315a2f3d26ef0cc16007c7d0eb49eaa1105777'], + }), + # MPI + ('MPI.jl', '0.20.8', { + 'mpi_path': '$EBROOTOPENMPI', + 'mpiexec': 'srun', + 'source_tmpl': 'v0.20.8.tar.gz', + 'source_urls': ['https://github.com/JuliaParallel/MPI.jl/archive/'], + 'checksums': ['f70a2710e4d1375be82f6838510980f6cb7d48caaad63ffecd2a296c39b80dba'], + }), + # CUDA + ('CUDA.jl', '4.0.0', { + 'source_tmpl': 'v4.0.0.tar.gz', + 'source_urls': ['https://github.com/JuliaGPU/CUDA.jl/archive/'], + 'checksums': ['64fa7fe158c8cd56841b7906a4f57c53dbaa225fe8688bf3087b7951854b591b'], + }), +] + +modextrapaths = { + 'LD_LIBRARY_PATH': 'lib/julia', +} + +modextravars = { + 'JULIA_MPICC': 'mpicc', + 'JULIA_MPIEXEC': 'srun', + # 'JULIA_MPIEXEC_ARGS': '', + 'JULIA_MPI_ABI': 'OpenMPI', + 'JULIA_MPI_BINARY': 'system', + 'JULIA_MPI_PATH': '$::env(EBROOTOPENMPI)', + 'JULIA_CUDA_USE_BINARYBUILDER': 'false', + # FYI: automaticall added by EB_Julia + # 'EBJULIA_STD_DEPOT_PATH': '%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'EBJULIA_USER_DEPOT_PATH': '~/.julia/%(version)s/default-%(arch_name)', + # 'EBJULIA_ADMIN_DEPOT_PATH': '%(installdir)s/extensions', + # 'EBJULIA_STD_LOAD_PATH': '@stdlib', + # 'EBJULIA_USER_LOAD_PATH': '@:@#.#.#-default-%(arch_name)' + # 'EBJULIA_ADMIN_LOAD_PATH': '%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/', + # 'EBEXTSLISTJULIA': '<list of extensions installed>' + # 'EBJULIA_ENV_NAME': '%(version)s-default-%(arch_name)s' + # 'JULIA_INSTALL_FOLDER': '%(installdir)s', + # 'JULIA_DEPOT_PATH': '~/.julia/%(version)s/default-gpu:%(installdir)s/local/share/julia:%(installdir)s/share/julia', + # 'JULIA_LOAD_PATH': '@:@#.#.#-default-gpu:@stdlib', + # 'JULIA_PROJECT': ''%(installdir)s/extensions/environments/%(version)s-default-%(arch_name)s/Project.toml', +} + +sanity_check_paths = { + 'files': ['bin/julia', 'include/julia/julia.h', 'lib/libjulia.so'], + 'dirs': ['bin', 'etc', 'include', 'lib', 'share'] +} + +moduleclass = 'lang'