Skip to content

OpenSSL version restriction outdated #612

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wilf-phasecraft opened this issue May 8, 2025 · 0 comments
Open

OpenSSL version restriction outdated #612

wilf-phasecraft opened this issue May 8, 2025 · 0 comments
Labels
bug Something isn't working

Comments

@wilf-phasecraft
Copy link

Just raising this as a new issue, as the previous thread was a question, so I'm aware that my response might not be seen.

I believe Julia now uses a more up to date version of OpenSSL, which is now causing problems when installing certain packages with JuliaCall/PythonCall.

In short, the following error is commonly encountered (on Linux at least)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/wilf/.julia/packages/PythonCall/WMWY0/src/JlWrap/module.jl", line 27, in seval
    return self._jl_callmethod($(pyjl_methodnum(pyjlmodule_seval)), expr)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
juliacall.JuliaError: InitError: could not load library "/home/wilf/.julia/artifacts/a696e1e3e6b8d3c2c4b67609357ebc5c35eabde1/lib/libssl.so"
/lib/x86_64-linux-gnu/libcrypto.so.3: version `OPENSSL_3.3.0' not found (required by /home/wilf/.julia/artifacts/a696e1e3e6b8d3c2c4b67609357ebc5c35eabde1/lib/libssl.so)
Stacktrace:
  [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
    @ Base.Libc.Libdl ./libdl.jl:117
  [2] dlopen(s::String, flags::UInt32)
    @ Base.Libc.Libdl ./libdl.jl:116
  [3] macro expansion
    @ ~/.julia/packages/JLLWrappers/GfYNv/src/products/library_generators.jl:63 [inlined]
  [4] __init__()
    @ OpenSSL_jll ~/.julia/packages/OpenSSL_jll/WaTt1/src/wrappers/x86_64-linux-gnu.jl:16
  [5] run_module_init(mod::Module, i::Int64)
    @ Base ./loading.jl:1134
  [6] register_restored_modules(sv::Core.SimpleVector, pkg::Base.PkgId, path::String)
    @ Base ./loading.jl:1122
  [7] _include_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String, depmods::Vector{Any})
    @ Base ./loading.jl:1067
  [8] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String, build_id::UInt128)
    @ Base ./loading.jl:1581
  [9] _tryrequire_from_serialized(modkey::Base.PkgId, build_id::UInt128)
    @ Base ./loading.jl:1445
 [10] _tryrequire_from_serialized(pkg::Base.PkgId, path::String, ocachepath::String)
    @ Base ./loading.jl:1524
 [11] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1990
 [12] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1812
 [13] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [14] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [15] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1803
 [16] macro expansion
    @ ./loading.jl:1790 [inlined]
 [17] macro expansion
    @ ./lock.jl:267 [inlined]
 [18] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1753
 [19] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [20] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [21] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1746
 [22] eval
    @ ./boot.jl:385 [inlined]
 [23] eval
    @ ./Base.jl:88 [inlined]
 [24] pyjlmodule_seval(self::Module, expr::Py)
    @ PythonCall.JlWrap ~/.julia/packages/PythonCall/WMWY0/src/JlWrap/module.jl:13
 [25] _pyjl_callmethod(f::Any, self_::Ptr{PythonCall.C.PyObject}, args_::Ptr{PythonCall.C.PyObject}, nargs::Int64)
    @ PythonCall.JlWrap ~/.julia/packages/PythonCall/WMWY0/src/JlWrap/base.jl:67
 [26] _pyjl_callmethod(o::Ptr{PythonCall.C.PyObject}, args::Ptr{PythonCall.C.PyObject})
    @ PythonCall.JlWrap.Cjl ~/.julia/packages/PythonCall/WMWY0/src/JlWrap/C.jl:63
during initialization of module OpenSSL_jll

To reproduce:

  1. Create a new python venv using python3.12 -m venv .venv
  2. pip install juliacall (by default this installs Julia 1.11.5)
  3. Start python and run
>> from juliacall import Main as jl
>> from juliapkg import add, resolve
>> add("Yao", "5872b779-8223-5990-8dd0-5abbb0748c8c") # other packages with OpenSSL deps also cause the error
>> resolve()
>> jl.seval("using Yao")

Info:
Python: 3.12.10
Julia: 1.11.5
OS: Linux

Originally posted by @wilf-phasecraft in #587

@wilf-phasecraft wilf-phasecraft added the bug Something isn't working label May 8, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

1 participant