Unsatisfiable requirements detected for package OpenBLAS_jll (error indirectly from PackageCompiler)

Any idea why this seeming MWE doesn’t work (confirmed below, is a known bug in 1.8):

(@v1.8) pkg> add OpenBLAS_jll@v0.3.13
   Resolving package versions...
ERROR: Unsatisfiable requirements detected for package OpenBLAS_jll [4536629a]:
 OpenBLAS_jll [4536629a] log:
 ├─possible versions are: 0.3.17 or uninstalled
 └─restricted to versions 0.3.13 by an explicit requirement — no versions left

I even get this error with an empty environment, and exiting and stating Julia (1.8). I’m not sure this relates to activate --temp that I was using for the first time.

Why does the similar (for latest version, or if skipping the version) work:

(@v1.8) pkg> add OpenBLAS_jll@v0.3.17

I’ve yet to do a (@v1.8) pkg> gc which I think might solve this, but could this be a bug in my “Commit 991d6e6cb8 (11 days old master)”? At least this is not a good user experience (for new users).

I’m not opposed to the latest version, but I have no idea what’s holding back:

julia> create_sysimage([:StatsPlots,:CSV,:DataFrames,:DataFramesMeta,:SQLite,:GLM,:Optim,:RCall],sysimage_path="sys_dataanalysis.so",precompile_execution_file="dataanalysis.jl")
ERROR: Unsatisfiable requirements detected for package OpenBLAS_jll [4536629a]:
 OpenBLAS_jll [4536629a] log:
 ├─possible versions are: 0.3.17 or uninstalled
 └─restricted to versions 0.3.13 by an explicit requirement — no versions left
Stacktrace:
  [1] check_constraints(graph::Pkg.Resolve.Graph)
[..]

I get a wall of text (none of it helpful, and the MWE should do).

I think there’s a workaround to get this working (but it should work too?):

(@v1.8) pkg> add  OpenBLAS_jll@v0.3.13+7
ERROR: ArgumentError: invalid base 10 digit '+' in "13+7"
[..]

What I had before removing all packages one by one:

(@v1.8) pkg> st
Status `~/.julia/environments/v1.8/Project.toml`
  [a93c6f00] DataFrames v1.2.2
  [1313f7d8] DataFramesMeta v0.10.0
  [429524aa] Optim v1.4.1
  [6f49c342] RCall v0.13.12
  [0aa819cd] SQLite v1.3.0
  [f3b207a7] StatsPlots v0.14.28
  [4536629a] OpenBLAS_jll v0.3.13+7

New MWE, seems like a bug in Julia 1.8 (or its Pkg, or .julia folder currupt?):

julia> using Pkg; Pkg.precompile()
ERROR: Unsatisfiable requirements detected for package OpenBLAS_jll [4536629a]:
 OpenBLAS_jll [4536629a] log:
 ├─possible versions are: 0.3.17 or uninstalled
 └─restricted to versions 0.3.13 by an explicit requirement — no versions left
Stacktrace:
  [1] check_constraints(graph::Pkg.Resolve.Graph)
    @ Pkg.Resolve ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/Resolve/graphtype.jl:989
  [2] Pkg.Resolve.Graph(compat::Dict{Base.UUID, Dict{VersionNumber, Dict{Base.UUID, Pkg.Versions.VersionSpec}}}, uuid_to_name::Dict{Base.UUID, String}, reqs::Dict{Base.UUID, Pkg.Versions.VersionSpec}, fixed::Dict{Base.UUID, Pkg.Resolve.Fixed}, verbose::Bool, julia_version::VersionNumber)
    @ Pkg.Resolve ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/Resolve/graphtype.jl:346
  [3] deps_graph(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, uuid_to_name::Dict{Base.UUID, String}, reqs::Dict{Base.UUID, Pkg.Versions.VersionSpec}, fixed::Dict{Base.UUID, Pkg.Resolve.Fixed}, julia_version::VersionNumber)
    @ Pkg.Operations ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:472
  [4] resolve_versions!(env::Pkg.Types.EnvCache, registries::Vector{Pkg.Registry.RegistryInstance}, pkgs::Vector{Pkg.Types.PackageSpec}, julia_version::VersionNumber)
    @ Pkg.Operations ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:341
  [5] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}, level::Pkg.Types.UpgradeLevel; skip_writing_project::Bool, silent_no_change::Bool)
    @ Pkg.Operations ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/Operations.jl:1286
  [6] up(ctx::Pkg.Types.Context, pkgs::Vector{Pkg.Types.PackageSpec}; level::Pkg.Types.UpgradeLevel, mode::Pkg.Types.PackageMode, update_registry::Bool, skip_writing_project::Bool, silent_no_change::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:340
  [7] #up#55
    @ ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:160 [inlined]
  [8] #resolve#141
    @ ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:346 [inlined]
  [9] precompile(ctx::Pkg.Types.Context, pkgs::Vector{String}; internal_call::Bool, strict::Bool, warn_loaded::Bool, kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
    @ Pkg.API ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:1036
 [10] precompile
    @ ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:1035 [inlined]
 [11] #precompile#225
    @ ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:1032 [inlined]
 [12] precompile (repeats 2 times)
    @ ~/julia-1.8-DEV-991d6e6cb8/share/julia/stdlib/v1.8/Pkg/src/API.jl:1032 [inlined]
 [13] top-level scope
    @ REPL[26]:1

This is now with (not a bug in PackageCompiler, which invoked the above, nor in PyCall):

(@v1.8) pkg> st
Status `~/.julia/environments/v1.8/Project.toml`
  [9b87118b] PackageCompiler v2.0.0-dev `https://github.com/JuliaLang/PackageCompiler.jl.git#master`
  [438e738f] PyCall v1.92.5

EDIT went away after:

(@v1.8) pkg> rm PyCall
    Updating `~/.julia/environments/v1.8/Project.toml`
  [438e738f] - PyCall v1.92.5
    Updating `~/.julia/environments/v1.8/Manifest.toml`
  [8f4d0f93] - Conda v1.5.2
  [682c06a0] - JSON v0.21.2
  [1914dd2f] - MacroTools v0.5.9
  [69de0a69] - Parsers v2.1.2
  [438e738f] - PyCall v1.92.5
  [81def892] - VersionParsing v1.2.1
  [56f22d72] - Artifacts
  [2a0f44e3] - Base64
  [ade2ca70] - Dates
  [8f399da3] - Libdl
  [37e2e46d] - LinearAlgebra
  [d6f4376e] - Markdown
  [a63ad114] - Mmap
  [de0858da] - Printf
  [9a3f8284] - Random
  [ea8e919c] - SHA
  [9e88b42a] - Serialization
  [4ec0a83e] - Unicode
  [e66e0078] - CompilerSupportLibraries_jll v0.5.0+0
  [4536629a] - OpenBLAS_jll v0.3.13+7
  [8e850b90] - libblastrampoline_jll v3.1.0+0

julia> using Pkg; Pkg.precompile()

Tracked in several issues/pull requests on GitHub:

and all linked references

Yes, exactly a known bug, that one… triggered by PackageCompiler.jl or i.e. first adding e.g. RCall or PyCall, or (seemingly anything):

(@v1.8) pkg> add CSV
   Resolving package versions...
    Updating `~/.julia/environments/v1.8/Project.toml`
  [336ed68f] + CSV v0.9.10
    Updating `~/.julia/environments/v1.8/Manifest.toml`
  [336ed68f] + CSV v0.9.10
  [944b1d66] + CodecZlib v0.7.0
[..]
  [e66e0078] + CompilerSupportLibraries_jll v0.5.0+0
  [4536629a] + OpenBLAS_jll v0.3.13+7
  [8e850b90] + libblastrampoline_jll v3.1.0+0

It’s very non-obvious why OpenBLAS_jll is added (or any of the last three). I’ve so far relied on Juliahub to see (direct and indirect) dependencies of packages, and those are not there for that or (other packages). It’s Julia (or Pkg) that does seem to add them for some reason, possibly a separate bug, from then not being able to precompile.

Maybe I should mark this thread with a solution (since a known bug), or not yet until solved?

FYI in Julia 1.7-rc1 this works:

(@v1.7) pkg> add OpenBLAS_jll@v0.3.13
[..]
julia> using Pkg; Pkg.precompile()

I.e. when (Asimov.jl using) QML.jl is not installed (but that may be a bug in QML.jl not Julia 1.7):

julia> using QML
[ Info: Precompiling QML [2db162a6-7e43-52c3-8d84-290c1c42d82a]
WARNING: import of ColorTypes.include into QML conflicts with an existing identifier; ignored.
C++ exception while wrapping module QML: invalid subtyping in definition of QObject with supertype Any

signal (11): Segmentation fault
[..]