Skip to content
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

[BUG] Plots fails to install on MacOS (arm64) with Julia 1.10 #4901

Open
eikopf opened this issue Mar 7, 2024 · 4 comments
Open

[BUG] Plots fails to install on MacOS (arm64) with Julia 1.10 #4901

eikopf opened this issue Mar 7, 2024 · 4 comments
Labels
bug upstream julia or dependencies

Comments

@eikopf
Copy link

eikopf commented Mar 7, 2024

This error occurred when running ] add Plots in a completely-new default 1.10 environment. It tries to install dependencies, and crashes when it runs into FFMPEG_jll. This is on the homebrew aarch64 build.

In the meantime, other versions (at least 1.38 and 1.39) still install fine. This seems like it's an issue with something new in either Plots@1.40.1, or with a dependency (probably FFMPEG_jll, since Plots@1.39 uses FFMPEG_jll@4.4.4+1, while Plots@1.40.1 jumps all the way to FFMPEG_jll@6.1.1+0).

Pkg Log

julia> using Plots
 │ Package Plots not found, but a package named Plots is available from a registry. 
 │ Install package?
 │   (@v1.10) pkg> add Plots 
 └ (y/n/o) [y]: y
   Resolving package versions...
   Installed FFMPEG ───────── v0.2.4
   Installed FFMPEG_jll ───── v6.1.1+0
   Installed BinaryProvider ─ v0.5.10
  Downloaded artifact: FFMPEG
    Updating `~/.julia/environments/v1.10/Project.toml`
  [91a5bcdd] + Plots v1.40.1
    Updating `~/.julia/environments/v1.10/Manifest.toml`
  [b99e7846] + BinaryProvider v0.5.10
  [d1d4a3ce] + BitFlags v0.1.8
  [35d6a980] + ColorSchemes v3.24.0
  [3da002f7] + ColorTypes v0.11.4
  [c3611d14] + ColorVectorSpace v0.10.0
  [5ae59095] + Colors v0.12.10
  [f0e56b4a] + ConcurrentUtilities v2.3.1
  [d38c429a] + Contour v0.6.2
  [8bb1440f] + DelimitedFiles v1.9.1
  [460bff9d] + ExceptionUnwrapping v0.1.10
⌃ [c87230d0] + FFMPEG v0.2.4
  [53c48c17] + FixedPointNumbers v0.8.4
  [1fa38f19] + Format v1.3.6
  [28b8d3ca] + GR v0.73.2
  [42e2da0e] + Grisu v1.0.2
  [cd3eb016] + HTTP v1.10.3
  [23fbe1c1] + Latexify v0.16.2
  [e6f89c97] + LoggingExtras v1.0.3
  [739be429] + MbedTLS v1.1.9
  [442fdcdd] + Measures v0.3.2
  [4d8831e6] + OpenSSL v1.4.2
  [ccf2f8ad] + PlotThemes v3.1.0
  [995b91a9] + PlotUtils v1.4.1
  [91a5bcdd] + Plots v1.40.1
  [3cdcf5f2] + RecipesBase v1.3.4
  [01d81517] + RecipesPipeline v0.6.12
  [05181044] + RelocatableFolders v1.0.1
  [992d4aef] + Showoff v1.0.3
  [777ac1f9] + SimpleBufferStream v1.1.0
  [62fd8b95] + TensorCore v0.1.1
  [1cfade01] + UnicodeFun v0.4.1
  [1986cc42] + Unitful v1.19.0
  [45397f5d] + UnitfulLatexify v1.6.3
  [41fe7b60] + Unzip v0.2.0
  [83423d85] + Cairo_jll v1.16.1+1
  [2702e6a9] + EpollShim_jll v0.0.20230411+0
  [b22a6f82] + FFMPEG_jll v6.1.1+0
  [a3f928ae] + Fontconfig_jll v2.13.93+0
  [d7e528f0] + FreeType2_jll v2.13.1+0
  [559328eb] + FriBidi_jll v1.0.10+0
  [0656b61e] + GLFW_jll v3.3.9+0
  [d2c73de3] + GR_jll v0.73.2+0
  [78b55507] + Gettext_jll v0.21.0+0
  [7746bdde] + Glib_jll v2.76.5+0
  [3b182d85] + Graphite2_jll v1.3.14+0
  [2e76f6c2] + HarfBuzz_jll v2.8.1+1
  [aacddb02] + JpegTurbo_jll v3.0.2+0
  [c1c5ebd0] + LAME_jll v3.100.1+0
  [88015f11] + LERC_jll v3.0.0+1
  [dd4b983a] + LZO_jll v2.10.1+0
  [d4300ac3] + Libgcrypt_jll v1.8.7+0
  [7e76a0d4] + Libglvnd_jll v1.6.0+0
  [7add5ba3] + Libgpg_error_jll v1.42.0+0
  [94ce4f54] + Libiconv_jll v1.17.0+0
  [4b2f31a3] + Libmount_jll v2.35.0+0
⌅ [89763e89] + Libtiff_jll v4.5.1+1
  [38a345b3] + Libuuid_jll v2.39.3+0
  [e7412a2a] + Ogg_jll v1.3.5+1
  [91d4177d] + Opus_jll v1.3.2+0
  [30392449] + Pixman_jll v0.42.2+0
  [c0090381] + Qt6Base_jll v6.5.3+1
  [a44049a8] + Vulkan_Loader_jll v1.3.243+0
  [a2964d1f] + Wayland_jll v1.21.0+1
  [2381bf8a] + Wayland_protocols_jll v1.31.0+0
  [02c8fc9c] + XML2_jll v2.12.5+0
  [aed1982a] + XSLT_jll v1.1.34+0
  [f67eecfb] + Xorg_libICE_jll v1.0.10+1
  [c834827a] + Xorg_libSM_jll v1.2.3+0
  [4f6342f7] + Xorg_libX11_jll v1.8.6+0
  [0c0b7dd1] + Xorg_libXau_jll v1.0.11+0
  [935fb764] + Xorg_libXcursor_jll v1.2.0+4
  [a3789734] + Xorg_libXdmcp_jll v1.1.4+0
  [1082639a] + Xorg_libXext_jll v1.3.4+4
  [d091e8ba] + Xorg_libXfixes_jll v5.0.3+4
  [a51aa0fd] + Xorg_libXi_jll v1.7.10+4
  [d1454406] + Xorg_libXinerama_jll v1.1.4+4
  [ec84b674] + Xorg_libXrandr_jll v1.5.2+4
  [ea2f1a96] + Xorg_libXrender_jll v0.9.10+4
  [14d82f49] + Xorg_libpthread_stubs_jll v0.1.1+0
  [c7cfdc94] + Xorg_libxcb_jll v1.15.0+0
  [cc61e674] + Xorg_libxkbfile_jll v1.1.2+0
  [e920d4aa] + Xorg_xcb_util_cursor_jll v0.1.4+0
  [12413925] + Xorg_xcb_util_image_jll v0.4.0+1
  [2def613f] + Xorg_xcb_util_jll v0.4.0+1
  [975044d2] + Xorg_xcb_util_keysyms_jll v0.4.0+1
  [0d47668e] + Xorg_xcb_util_renderutil_jll v0.3.9+1
  [c22f9ab0] + Xorg_xcb_util_wm_jll v0.4.1+1
  [35661453] + Xorg_xkbcomp_jll v1.4.6+0
  [33bec58e] + Xorg_xkeyboard_config_jll v2.39.0+0
  [c5fb5394] + Xorg_xtrans_jll v1.5.0+0
  [3161d3a3] + Zstd_jll v1.5.5+0
  [35ca27e7] + eudev_jll v3.2.9+0
  [1a1c6b14] + gperf_jll v3.1.1+0
  [a4ae2306] + libaom_jll v3.4.0+0
  [0ac62f75] + libass_jll v0.15.1+0
  [2db6ffa8] + libevdev_jll v1.11.0+0
  [f638f0a6] + libfdk_aac_jll v2.0.2+0
  [36db933b] + libinput_jll v1.18.0+0
  [b53b4c65] + libpng_jll v1.6.43+0
  [f27f6e37] + libvorbis_jll v1.3.7+1
  [009596ad] + mtdev_jll v1.1.6+0
  [1270edf5] + x264_jll v2021.5.5+0
  [dfaa095f] + x265_jll v3.5.0+0
  [d8fb68d0] + xkbcommon_jll v1.4.1+1
  [efcefdf7] + PCRE2_jll v10.42.0+1
        Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated -m`
    Building FFMPEG → `~/.julia/scratchspaces/44cfe95a-1eb2-52ea-b672-e2afdf69b78f/9143266ba77d3313a4cf61d8333a1970e8c5d8b6/build.log`
ERROR: Error building `FFMPEG`: 
┌ Warning: Platform `arm64-apple-darwin23.2.0` is not an officially supported platform
└ @ BinaryProvider ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:450
ERROR: LoadError: KeyError: key "unknown" not found
Stacktrace:
  [1] getindex
    @ ./dict.jl:498 [inlined]
  [2] parse_dl_name_version
    @ ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:511 [inlined]
  [3] detect_libgfortran_abi(libgfortran_name::String, platform::BinaryProvider.UnknownPlatform)
    @ BinaryProvider ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:555
  [4] detect_libgfortran_abi
    @ ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:584 [inlined]
  [5] detect_compiler_abi()
    @ BinaryProvider ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:667
  [6] top-level scope
    @ ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:685
  [7] include(mod::Module, _path::String)
    @ Base ./Base.jl:495
  [8] include(x::String)
    @ BinaryProvider ~/.julia/packages/BinaryProvider/U2dKK/src/BinaryProvider.jl:1
  [9] top-level scope
    @ ~/.julia/packages/BinaryProvider/U2dKK/src/BinaryProvider.jl:12
 [10] include
    @ ./Base.jl:495 [inlined]
 [11] include_package_for_output(pkg::Base.PkgId, input::String, depot_path::Vector{String}, dl_load_path::Vector{String}, load_path::Vector{String}, concrete_deps::Vector{Pair{Base.PkgId, UInt128}}, source::String)
    @ Base ./loading.jl:2222
 [12] top-level scope
    @ stdin:3
in expression starting at /Users/oliver/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:685
in expression starting at /Users/oliver/.julia/packages/BinaryProvider/U2dKK/src/BinaryProvider.jl:1
in expression starting at stdin:3
ERROR: LoadError: Failed to precompile BinaryProvider [b99e7846-7c00-51b0-8f62-c81ae34c0232] to "/Users/oliver/.julia/compiled/v1.10/BinaryProvider/jl_mh98ts".
Stacktrace:
  [1] error(s::String)
    @ Base ./error.jl:35
  [2] compilecache(pkg::Base.PkgId, path::String, internal_stderr::IO, internal_stdout::IO, keep_loaded_modules::Bool)
    @ Base ./loading.jl:2468
  [3] compilecache
    @ ./loading.jl:2340 [inlined]
  [4] (::Base.var"#968#969"{Base.PkgId})()
    @ Base ./loading.jl:1974
  [5] mkpidlock(f::Base.var"#968#969"{Base.PkgId}, at::String, pid::Int32; kwopts::@Kwargs{stale_age::Int64, wait::Bool})
    @ FileWatching.Pidfile /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:93
  [6] #mkpidlock#6
    @ /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:88 [inlined]
  [7] trymkpidlock(::Function, ::Vararg{Any}; kwargs::@Kwargs{stale_age::Int64})
    @ FileWatching.Pidfile /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/FileWatching/src/pidfile.jl:111
  [8] #invokelatest#2
    @ ./essentials.jl:894 [inlined]
  [9] invokelatest
    @ ./essentials.jl:889 [inlined]
 [10] maybe_cachefile_lock(f::Base.var"#968#969"{Base.PkgId}, pkg::Base.PkgId, srcpath::String; stale_age::Int64)
    @ Base ./loading.jl:2983
 [11] maybe_cachefile_lock
    @ ./loading.jl:2980 [inlined]
 [12] _require(pkg::Base.PkgId, env::String)
    @ Base ./loading.jl:1970
 [13] __require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1812
 [14] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [15] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [16] _require_prelocked(uuidkey::Base.PkgId, env::String)
    @ Base ./loading.jl:1803
 [17] macro expansion
    @ ./loading.jl:1790 [inlined]
 [18] macro expansion
    @ ./lock.jl:267 [inlined]
 [19] __require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1753
 [20] #invoke_in_world#3
    @ ./essentials.jl:926 [inlined]
 [21] invoke_in_world
    @ ./essentials.jl:923 [inlined]
 [22] require(into::Module, mod::Symbol)
    @ Base ./loading.jl:1746
 [23] include(fname::String)
    @ Base.MainInclude ./client.jl:489
 [24] top-level scope
    @ none:5
in expression starting at /Users/oliver/.julia/packages/FFMPEG/guN1x/deps/build.jl:1
Stacktrace:
  [1] pkgerror(msg::String)
    @ Pkg.Types /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Types.jl:70
  [2] (::Pkg.Operations.var"#67#74"{Bool, Pkg.Types.Context, String, Pkg.Types.PackageSpec, String})()
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1156
  [3] withenv(::Pkg.Operations.var"#67#74"{…}, ::Pair{…}, ::Vararg{…})
    @ Base ./env.jl:257
  [4] (::Pkg.Operations.var"#117#122"{String, Bool, Bool, Bool, Pkg.Operations.var"#67#74"{…}, Pkg.Types.PackageSpec})()
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1824
  [5] with_temp_env(fn::Pkg.Operations.var"#117#122"{…}, temp_env::String)
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1705
  [6] (::Pkg.Operations.var"#115#120"{…})(tmp::String)
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1794
  [7] mktempdir(fn::Pkg.Operations.var"#115#120"{…}, parent::String; prefix::String)
    @ Base.Filesystem ./file.jl:766
  [8] mktempdir(fn::Function, parent::String)
    @ Base.Filesystem ./file.jl:762
  [9] mktempdir
    @ ./file.jl:762 [inlined]
 [10] sandbox(fn::Function, ctx::Pkg.Types.Context, target::Pkg.Types.PackageSpec, target_path::String, sandbox_path::String, sandbox_project_override::Pkg.Types.Project; preferences::Dict{…}, force_latest_compatible_version::Bool, allow_earlier_backwards_compatible_versions::Bool, allow_reresolve::Bool)
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1752
 [11] build_versions(ctx::Pkg.Types.Context, uuids::Set{Base.UUID}; verbose::Bool)
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1137
 [12] build_versions
    @ /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1055 [inlined]
 [13] add(ctx::Pkg.Types.Context, pkgs::Vector{…}, new_git::Set{…}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform)
    @ Pkg.Operations /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1398
 [14] add
    @ /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/Operations.jl:1376 [inlined]
 [15] add(ctx::Pkg.Types.Context, pkgs::Vector{…}; preserve::Pkg.Types.PreserveLevel, platform::Base.BinaryPlatforms.Platform, kwargs::@Kwargs{…})
    @ Pkg.API /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/API.jl:278
 [16] add(pkgs::Vector{Pkg.Types.PackageSpec}; io::Base.TTY, kwargs::@Kwargs{})
    @ Pkg.API /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/API.jl:159
 [17] add(pkgs::Vector{Pkg.Types.PackageSpec})
    @ Pkg.API /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/API.jl:148
 [18] add
    @ /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/API.jl:147 [inlined]
 [19] try_prompt_pkg_add(pkgs::Vector{Symbol})
    @ Pkg.REPLMode /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/Pkg/src/REPLMode/REPLMode.jl:729
 [20] #invokelatest#2
    @ ./essentials.jl:892 [inlined]
 [21] invokelatest
    @ ./essentials.jl:889 [inlined]
 [22] check_for_missing_packages_and_run_hooks(ast::Any)
    @ REPL /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/REPL/src/REPL.jl:174
 [23] eval_user_input(ast::Any, backend::REPL.REPLBackend, mod::Module)
    @ REPL /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/REPL/src/REPL.jl:145
 [24] repl_backend_loop(backend::REPL.REPLBackend, get_module::Function)
    @ REPL /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/REPL/src/REPL.jl:246
 [25] start_repl_backend(backend::REPL.REPLBackend, consumer::Any; get_module::Function)
    @ REPL /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/REPL/src/REPL.jl:231
 [26] run_repl(repl::REPL.AbstractREPL, consumer::Any; backend_on_current_task::Bool, backend::Any)
    @ REPL /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/REPL/src/REPL.jl:389
 [27] run_repl(repl::REPL.AbstractREPL, consumer::Any)
    @ REPL /opt/homebrew/Cellar/julia/1.10.1/share/julia/stdlib/v1.10/REPL/src/REPL.jl:375
 [28] (::Base.var"#1013#1015"{Bool, Bool, Bool})(REPL::Module)
    @ Base ./client.jl:432
 [29] #invokelatest#2
    @ ./essentials.jl:892 [inlined]
 [30] invokelatest
    @ ./essentials.jl:889 [inlined]
 [31] run_main_repl(interactive::Bool, quiet::Bool, banner::Bool, history_file::Bool, color_set::Bool)
    @ Base ./client.jl:416
 [32] exec_options(opts::Base.JLOptions)
    @ Base ./client.jl:333
 [33] _start()
    @ Base ./client.jl:552
Some type information was truncated. Use `show(err)` to see complete types.
@eikopf eikopf added the bug label Mar 7, 2024
@BeastyBlacksmith
Copy link
Member

ERROR: Error building FFMPEG:
┌ Warning: Platform arm64-apple-darwin23.2.0 is not an officially supported platform
└ @ BinaryProvider ~/.julia/packages/BinaryProvider/U2dKK/src/PlatformNames.jl:450

Not sure, I can do something about that from the Plots side of things

@BeastyBlacksmith BeastyBlacksmith added the upstream julia or dependencies label Mar 7, 2024
@eikopf
Copy link
Author

eikopf commented Mar 7, 2024

Yeah, this is probably an issue with Yggdrasil; I'll open an issue there.

@giordano
Copy link
Contributor

giordano commented Mar 7, 2024

this is probably an issue with Yggdrasil

No, it's not.

Not sure, I can do something about that from the Plots side of things

Yes, you can: drop compatiblity with a version of FFMPEG.jl from 2019:

FFMPEG = "0.2 - 0.4"
See for example JuliaIO/VideoIO.jl@40c1494 (#419).

@BeastyBlacksmith
Copy link
Member

Done in 39c4fc5. Thanks for chiming in!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug upstream julia or dependencies
Projects
None yet
Development

No branches or pull requests

3 participants