diff --git a/src/juliapkg/deps.py b/src/juliapkg/deps.py index 0710235..a9098e3 100644 --- a/src/juliapkg/deps.py +++ b/src/juliapkg/deps.py @@ -309,9 +309,15 @@ def openssl_compat(version=None): major, minor, patch = version[:3] if major >= 3: - return f"{major} - {major}.{minor}" + compat = f"{major} - {major}.{minor}" else: - return f"{major}.{minor} - {major}.{minor}.{patch}" + compat = f"{major}.{minor} - {major}.{minor}.{patch}" + if (major, minor) < (3, 5): + # julia 1.12 requires openssl 3.5 + julia_compat = "1 - 1.11" + else: + julia_compat = None + return compat, julia_compat def find_requirements(): @@ -340,7 +346,9 @@ def find_requirements(): and dep.get("uuid").get(fn) == "458c3c95-2e84-50aa-8efc-19380b2a3a95" and dep.get("version").get(fn) == "<=python" ): - dep["version"][fn] = openssl_compat() + oc, jc = openssl_compat() + dep["version"][fn] = oc + compats[fn + " (OpenSSL_jll)"] = Compat.parse(jc) c = deps.get("julia") if c is not None: compats[fn] = Compat.parse(c) diff --git a/test/test_internals.py b/test/test_internals.py index 2a737c7..cfcb13a 100644 --- a/test/test_internals.py +++ b/test/test_internals.py @@ -5,12 +5,17 @@ def test_openssl_compat(): - assert juliapkg.deps.openssl_compat((1, 2, 3)) == "1.2 - 1.2.3" - assert juliapkg.deps.openssl_compat((2, 3, 4)) == "2.3 - 2.3.4" - assert juliapkg.deps.openssl_compat((3, 0, 0)) == "3 - 3.0" - assert juliapkg.deps.openssl_compat((3, 1, 0)) == "3 - 3.1" - assert juliapkg.deps.openssl_compat((3, 1, 2)) == "3 - 3.1" - assert isinstance(juliapkg.deps.openssl_compat(), str) + assert juliapkg.deps.openssl_compat((1, 2, 3)) == ("1.2 - 1.2.3", "1 - 1.11") + assert juliapkg.deps.openssl_compat((2, 3, 4)) == ("2.3 - 2.3.4", "1 - 1.11") + assert juliapkg.deps.openssl_compat((3, 0, 0)) == ("3 - 3.0", "1 - 1.11") + assert juliapkg.deps.openssl_compat((3, 1, 0)) == ("3 - 3.1", "1 - 1.11") + assert juliapkg.deps.openssl_compat((3, 1, 2)) == ("3 - 3.1", "1 - 1.11") + assert juliapkg.deps.openssl_compat((3, 5, 0)) == ("3 - 3.5", None) + c = juliapkg.deps.openssl_compat() + assert isinstance(c, tuple) + assert len(c) == 2 + assert isinstance(c[0], str) + assert c[1] is None or isinstance(c[1], str) def test_pkgspec_validation():