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

JLLs in the sysimage confuse Pkg.update when their Project.toml version build doesn't match the registry build number #4131

Open
IanButterworth opened this issue Jan 10, 2025 · 0 comments

Comments

@IanButterworth
Copy link
Member

Usually JLL build numbers in their Project.toml match the registered build number, but JuliaRegistries/General#122129 was done with the intention of being the least breaking way to undo an awkward compat issue.

This seems to be fine, except if the JLLs are in a sysimage.

Here, it seems Pkg.update thinks the loaded version is +1 (I assume based on pkgorigins) where it's actually +3 in manifest terms (based off the registry).

(@v1.12) pkg> activate jll_test
  Activating new project at `~/Documents/GitHub/julia/jll_test`

(jll_test) pkg> add [email protected]
   Resolving package versions...
    Updating `~/Documents/GitHub/julia/jll_test/Project.toml`
  [0c0b7dd1] + Xorg_libXau_jll v1.0.11+3
    Updating `~/Documents/GitHub/julia/jll_test/Manifest.toml`
  [692b3bcd] + JLLWrappers v1.7.0
  [21216c6a] + Preferences v1.4.3
  [0c0b7dd1] + Xorg_libXau_jll v1.0.11+3
  [56f22d72] + Artifacts v1.11.0
  [ade2ca70] + Dates v1.11.0
  [8f399da3] + Libdl v1.11.0
  [de0858da] + Printf v1.11.0
  [fa267f1f] + TOML v1.0.3
  [4ec0a83e] + Unicode v1.11.0

julia> create_sysimage(["Xorg_libXau_jll"]; sysimage_path="JLLTestSysimage.so")
Precompiling packages finished.
  4 dependencies successfully precompiled in 2 seconds. 3 already precompiled.
✔ [01m:12s] PackageCompiler: compiling incremental system image
ld: warning: reexported library with install name '@rpath/libunwind.1.dylib' found at '/Users/ian/Documents/GitHub/julia/usr/lib/libunwind.1.0.dylib' couldn't be matched with any parent library and will be linked directly

julia>
ian@Ians-MacBook-Pro julia % ./julia --sysimage=JLLTestSysimage.so
Precompiling InteractiveUtils finished.
  5 dependencies successfully precompiled in 11 seconds
Precompiling REPL finished.
  1 dependency successfully precompiled in 22 seconds. 5 already precompiled.
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.12.0-DEV.1869 (2025-01-10)
 _/ |\__'_|_|_|\__'_|  |  Commit d3964b600a (0 days old master)
|__/                   |

julia> import Pkg
Precompiling Pkg finished.
  17 dependencies successfully precompiled in 40 seconds. 4 already precompiled.
Precompiling REPLExt finished.
  1 dependency successfully precompiled in 3 seconds. 23 already precompiled.

(@v1.12) pkg> activate jll_test
  Activating project at `~/Documents/GitHub/julia/jll_test`

(jll_test) pkg> update
    Updating registry at `~/.julia/registries/HolyLabRegistry`
    Updating git-repo `[email protected]:HolyLab/HolyLabRegistry`
    Updating registry at `~/.julia/registries/LeukoRegistry`
    Updating git-repo `[email protected]:LeukoMaster/LeukoRegistry`
    Updating registry at `~/.julia/registries/General.toml`
    Updating `~/Documents/GitHub/julia/jll_test/Project.toml`
⌅ [0c0b7dd1] ↓ Xorg_libXau_jll v1.0.11+3 ⇒ v1.0.11+1
    Updating `~/Documents/GitHub/julia/jll_test/Manifest.toml`
⌅ [0c0b7dd1] ↓ Xorg_libXau_jll v1.0.11+3 ⇒ v1.0.11+1
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`

(jll_test) pkg> add [email protected]
   Resolving package versions...
No packages added to or removed from `~/Documents/GitHub/julia/jll_test/Project.toml`
No packages added to or removed from `~/Documents/GitHub/julia/jll_test/Manifest.toml`

(jll_test) pkg>

This is somehow related to the error #4130 tries to fix, but I haven't found a reproducer yet.

cc. @giordano

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

No branches or pull requests

1 participant