Yggdrasil icon indicating copy to clipboard operation
Yggdrasil copied to clipboard

Qt-based JLLs fail to precompile on old macOS; affects GR and Plots.jl

Open brenhinkeller opened this issue 3 years ago • 12 comments

cc @mkitti following discussion on Slack

This is quite possibly wontfix/cantfix (so feel free to close immediately if so) but potentially common enough for it to be worthwhile to have a closed issue as documentation.

JLLs affected:

Qt5Base_jll, Qt_jll, GR_jll

The issue

Qt_jll and Qt5Base_jll fail to precompile on Julia 1.5 and 1.6 in MacOS 10.12 (and likely all older versions as well).

(AFAIU): Since GR.jl recently switched to using GR_jll by default, and GR_jll appears to rely on Qt_jll or Qt5Base_jll, and GR is the most common backend in Plots.jl, this may cause issues for anyone attempting to use Plots.jl on older versions of MacOS

Steps to reproduce

On MacOS 10.12.6:

(@v1.6) pkg> activate --temp
pkg> add Qt5Base_jll
julia> using Qt5Base_jll
ERROR: InitError: could not load library "/Users/user/.julia/artifacts/ee74d003b12e6dd5f748e8cefb1688edbdfb184b/lib/QtConcurrent.framework/Versions/5/QtConcurrent"
dlopen(/Users/user/.julia/artifacts/ee74d003b12e6dd5f748e8cefb1688edbdfb184b/lib/QtConcurrent.framework/Versions/5/QtConcurrent.dylib, 1): image not found
Stacktrace:
 [1] dlopen(s::String, flags::UInt32; throw_error::Bool)
   @ Base.Libc.Libdl ./libdl.jl:114
 [2] dlopen(s::String, flags::UInt32)
   @ Base.Libc.Libdl ./libdl.jl:114
 [3] macro expansion
   @ ~/.julia/packages/JLLWrappers/bkwIo/src/products/library_generators.jl:54 [inlined]
 [4] __init__()
   @ Qt5Base_jll ~/.julia/packages/Qt5Base_jll/Ks8eF/src/wrappers/x86_64-apple-darwin.jl:31
 [5] _include_from_serialized(path::String, depmods::Vector{Any})
   @ Base ./loading.jl:674
 [6] _require_search_from_serialized(pkg::Base.PkgId, sourcepath::String)
   @ Base ./loading.jl:760
 [7] _require(pkg::Base.PkgId)
   @ Base ./loading.jl:998
 [8] require(uuidkey::Base.PkgId)
   @ Base ./loading.jl:914
 [9] require(into::Module, mod::Symbol)
   @ Base ./loading.jl:901
during initialization of module Qt5Base_jll

This occurs regardless of whether there is anything in ENV["LD_LIBRARY_PATH"], so may be distinct from the issue discussed at https://discourse.julialang.org/t/cant-install-plots-on-julia-1-6-0/59360/8

One suspected cause

MacOS versions older than 10.13 are not supported by Qt 5: https://doc.qt.io/qt-5/macos.html

brenhinkeller avatar Apr 22 '21 17:04 brenhinkeller