Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
81 changes: 54 additions & 27 deletions repos/spack_repo/builtin/packages/julia/package.py
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand All @@ -118,98 +136,106 @@ 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
depends_on("libblastrampoline@5.4.0:5")
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",
),
)
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",
),
)
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",
),
)
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",
),
)
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",
),
)
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",
),
)
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",
Expand Down Expand Up @@ -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")
Expand Down Expand Up @@ -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(
Expand All @@ -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):
Expand Down Expand Up @@ -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),
Expand All @@ -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",
Expand Down Expand Up @@ -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.
Expand Down
Loading