diff --git a/repos/spack_repo/builtin/packages/julia/package.py b/repos/spack_repo/builtin/packages/julia/package.py index 636aa19207b..4ef6f53f1dc 100644 --- a/repos/spack_repo/builtin/packages/julia/package.py +++ b/repos/spack_repo/builtin/packages/julia/package.py @@ -27,6 +27,8 @@ class Julia(MakefilePackage): maintainers("vchuravy", "haampie", "giordano") version("master", branch="master") + version("1.12.5", sha256="9e0dee015ef631ce93ddcf8166a8f5f4cae39e923d8f38a54a832091d0475004") + version("1.11.9", sha256="3c73d9612ee5bbd9d73b9eee26937c970bea37f51dc24aa23fd4b232539eb7d8") version("1.11.8", sha256="c5b00ba80eb311dc90e8fe153348218efb5dc0632b6c47d138fe80e9c5ca037e") version("1.11.7", sha256="5378209de1c3da1a13d13fc74beffab984a998a77ae1a6a9901f27008da93c29") @@ -90,11 +92,27 @@ class Julia(MakefilePackage): ) depends_on("libuv-julia@1.42.0", when="@1.8.0:1.8.1") depends_on("libuv-julia@1.44.2", when="@1.8.2:1.9") - depends_on("libuv-julia@1.44.3", when="@1.10.0:1.10") - depends_on("libuv-julia@1.48.0", when="@1.11.0:") + depends_on("libuv-julia@1.44.3", when="@1.10") + depends_on("libuv-julia@1.48.0", when="@1.11") + depends_on("libuv-julia@1.48.1rc1", when="@1.12:") + depends_on("suite-sparse@5.4:5.10", when="@:1.9") - with when("@1.11.0:1.11"): + with when("@1.12"): + # libssh2.so.1, libpcre2-8.so.0, libsll.so.3, + # libopenlibm.so.4, libblastrampoline.so.5, libgit2.so.1.9, libnghttp2.so.14, + # libcurl.so.4 + depends_on("libblastrampoline@5.13.1:5") + depends_on("libgit2@1.9") + depends_on("libssh2@1.11:1") + depends_on("llvm@18.1.8 +lld shlib_symbol_version=JL_LLVM_18.0") + depends_on("openssl@3.5.1:3.5") + depends_on("openlibm@0.8.7:0.8", when="+openlibm") + depends_on("nghttp2@1.64") + depends_on("curl@8.11.1:") + depends_on("suite-sparse@7.8.3") + + with when("@1.11"): # libssh2.so.1, libpcre2-8.so.0, libmbedtls.so.14, libmbedcrypto.so.7, libmbedx509.so.1, # libopenlibm.so.4, libblastrampoline.so.5, libgit2.so.1.7, libnghttp2.so.14, # libcurl.so.4 @@ -104,11 +122,11 @@ class Julia(MakefilePackage): depends_on("llvm@16.0.6 +lld shlib_symbol_version=JL_LLVM_16.0") depends_on("mbedtls@2.28.2:2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.59.0:1.59") + depends_on("nghttp2@1.59") depends_on("curl@8.6.0:") depends_on("suite-sparse@7.7.0") - with when("@1.10.0:1.10"): + with when("@1.10"): # libssh2.so.1, libpcre2-8.so.0, libmbedtls.so.14, libmbedcrypto.so.7, libmbedx509.so.1, # libopenlibm.so.4, libblastrampoline.so.5, libgit2.so.1.6, libnghttp2.so.14, # libcurl.so.4 @@ -118,11 +136,11 @@ class Julia(MakefilePackage): depends_on("llvm@15.0.7 +lld shlib_symbol_version=JL_LLVM_15.0") depends_on("mbedtls@2.28.2:2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.52.0:1.52") + depends_on("nghttp2@1.52") depends_on("curl@8.4.0:") depends_on("suite-sparse@7.2.1") - with when("@1.9.0:1.9"): + with when("@1.9"): # libssh2.so.1, libpcre2-8.so.0, mbedtls.so.14, mbedcrypto.so.7, mbedx509.so.1 # openlibm.so.4, libblastrampoline.so.5, libgit2.so.1.5, libnghttp2.so.14, # libcurl.so.4 @@ -130,28 +148,28 @@ class Julia(MakefilePackage): depends_on("libgit2@1.5.0:1.5") depends_on("libssh2@1.10.0:1") depends_on("llvm@14.0.6 +lld shlib_symbol_version=JL_LLVM_14.0") - depends_on("mbedtls@2.28.0:2.28") + depends_on("mbedtls@2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.48.0:1.48") + depends_on("nghttp2@1.48") depends_on("curl@7.84.0:") - with when("@1.8.0:1.8"): + with when("@1.8"): # libssh2.so.1, libpcre2-8.so.0, mbedtls.so.14, mbedcrypto.so.7, mbedx509.so.1 # openlibm.so.4, libblastrampoline.so.5, libgit2.so.1.3, libnghttp2.so.14, # libcurl.so.4 depends_on("libblastrampoline@5.1.0:5") - depends_on("libgit2@1.3.0:1.3") + depends_on("libgit2@1.3") depends_on("libssh2@1.10.0:1") depends_on("llvm@13.0.1 shlib_symbol_version=JL_LLVM_13.0") - depends_on("mbedtls@2.28.0:2.28") + depends_on("mbedtls@2.28") depends_on("openlibm@0.8.1:0.8", when="+openlibm") - depends_on("nghttp2@1.47.0:1.47") + depends_on("nghttp2@1.47") depends_on("curl@7.84.0:") # Patches for llvm depends_on( "llvm", - when="^llvm@11.0.1", + when="%llvm@11.0.1", patches=patch( "https://raw.githubusercontent.com/spack/patches/0b543955683a903d711a3e95ff29a4ce3951ca13/julia/llvm-11.0.1-julia-1.6.patch", sha256="8866ee0595272b826b72d173301a2e625855e80680a84af837f1ed6db4657f42", @@ -159,7 +177,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@12.0.1", + when="%llvm@12.0.1", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/10cb42f80c2eaad3e9c87cb818b6676f1be26737bdf972c77392d71707386aa4.patch", sha256="10cb42f80c2eaad3e9c87cb818b6676f1be26737bdf972c77392d71707386aa4", @@ -167,7 +185,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@13.0.1", + when="%llvm@13.0.1", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/45f72c59ae5cf45461e9cd8b224ca49b739d885c79b3786026433c6c22f83b5f.patch", sha256="45f72c59ae5cf45461e9cd8b224ca49b739d885c79b3786026433c6c22f83b5f", @@ -175,7 +193,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@14.0.6", + when="%llvm@14.0.6", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/f3def26930832532bbcd861d41b31ae03db993bc2b3510f89ef831a30bd3e099.patch", sha256="f3def26930832532bbcd861d41b31ae03db993bc2b3510f89ef831a30bd3e099", @@ -183,7 +201,7 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@15.0.7", + when="%llvm@15.0.7", patches=patch( "https://raw.githubusercontent.com/spack/patches/24ff44c4c5439400747941473c0298a74c1fbcb1/julia/25cdc0271e7722d4a7cc6f72abcb17bfe205fc741bbe3716a21759c3eee7d32c.patch", sha256="25cdc0271e7722d4a7cc6f72abcb17bfe205fc741bbe3716a21759c3eee7d32c", @@ -191,17 +209,25 @@ class Julia(MakefilePackage): ) depends_on( "llvm", - when="^llvm@16.0.6", + when="%llvm@16.0.6", patches=patch( "https://raw.githubusercontent.com/spack/patches/d042ae8f41493547d4263d249a13546f2c971972/julia/4997cd3006a3171d9b33f9a72ff9fdadc84e91a7c86aa044dcf495eef3a02893.patch", sha256="4997cd3006a3171d9b33f9a72ff9fdadc84e91a7c86aa044dcf495eef3a02893", ), ) + depends_on( + "llvm", + when="%llvm@18.1.8", + patches=patch( + "https://raw.githubusercontent.com/spack/patches/4d9ce09c4793f4899a588741fdc459530e26b313/julia/900363d08b2090bb44240aa33c1ee26558a183016db4fb7e048be4c1665c436e.patch", + sha256="900363d08b2090bb44240aa33c1ee26558a183016db4fb7e048be4c1665c436e", + ), + ) # Patches for libuv depends_on( "libuv", - when="^libuv@1.39.0", + when="%libuv@1.39.0", patches=patch( "https://raw.githubusercontent.com/spack/patches/b59ca193423c4c388254f528afabb906b5373162/julia/libuv-1.39.0.patch", sha256="f7c1e7341e89dc35dfd85435ba35833beaef575b997c3f978c27d0dbf805149b", @@ -209,7 +235,7 @@ class Julia(MakefilePackage): ) depends_on( "libuv", - when="^libuv@1.42.0", + when="%libuv@1.42.0", patches=patch( "https://raw.githubusercontent.com/spack/patches/89b6d14eb1f3c3d458a06f1e06f7dda3ab67bd38/julia/libuv-1.42.0.patch", sha256="d9252fbe67ac8f15e15653f0f6b00dffa07ae1a42f013d4329d17d8b492b7cdb", @@ -243,7 +269,7 @@ class Julia(MakefilePackage): depends_on("unwind") depends_on("utf8proc") depends_on("zlib-api") - depends_on("zlib +shared +pic +optimize", when="^[virtuals=zlib-api] zlib") + depends_on("zlib +shared +pic +optimize", when="%[virtuals=zlib-api] zlib") # Patches for julia patch("use-add-rpath.patch", when="@:1.8.0") @@ -285,7 +311,7 @@ class Julia(MakefilePackage): name="downloads-patch-1", placement="downloads-patch-1", expand=False, - when="@:1.11 ^curl@8.10:", + when="@:1.11 %curl@8.10:", ) resource( @@ -294,7 +320,7 @@ class Julia(MakefilePackage): name="downloads-jl-patch-2", placement="downloads-patch-2", expand=False, - when="@:1.11 ^curl@8.10:", + when="@:1.11 %curl@8.10:", ) def patch(self): @@ -352,7 +378,7 @@ def edit(self, spec, prefix): if julia_cpu_target == "auto": julia_cpu_target = get_best_target(spec.target, "clang", spec["llvm"].version) - libuv = "libuv-julia" if "^libuv-julia" in spec else "libuv" + libuv = "libuv-julia" if "%libuv-julia" in spec else "libuv" options = [ "prefix:={0}".format(prefix), @@ -376,7 +402,8 @@ def edit(self, spec, prefix): "USE_SYSTEM_LIBWHICH:=1", "USE_SYSTEM_LLD:=1", # @1.9: "USE_SYSTEM_LLVM:=1", - "USE_SYSTEM_MBEDTLS:=1", + "USE_SYSTEM_MBEDTLS:=1", # @:1.11 + "USE_SYSTEM_OPENSSL:=1", # @1.12: "USE_SYSTEM_MPFR:=1", "USE_SYSTEM_P7ZIP:=1", "USE_SYSTEM_PATCHELF:=1", @@ -420,7 +447,7 @@ def edit(self, spec, prefix): with open("Make.user", "w") as f: f.write("\n".join(options) + "\n") - @run_before("build", when="@:1.11 ^curl@8.10:") + @run_before("build", when="@:1.11 %curl@8.10:") def patch_downloads_stdlib(self): # stdlibs are distributed as tarballs, which we need to unpack so we can patch Downloads.jl # making it forward compatible with curl.