ProfileView (Cairo? Gtk4?) started using some odd font, but why?

I found the culprit.

For some reason, Gtk4.jl v0.7.2 is installed, as opposed to the newest v0.7.4. Pkg.status() says that it can be upgraded, but Pkg.upgrade() doesn’t do anything with it. If I manually set its version to v0.7.4, however, it is able to install it:

(@v1.11) pkg> st --outdated -m
Status `/tmp/julia/environments/v1.11/Manifest.toml`
⌃ [9db2cae5] Gtk4 v0.7.2 (<v0.7.4)
⌅ [e9f186c6] Libffi_jll v3.2.2+2 (<v3.4.6+4): Glib_jll, HarfBuzz_jll, Wayland_jll
⌅ [30392449] Pixman_jll v0.43.4+0 (<v0.44.2+0): Cairo_jll
⌅ [b53b4c65] libpng_jll v1.6.40+0 (<v1.6.46+0): Gtk4

(@v1.11) pkg> up -m
    Updating registry at `/tmp/julia/registries/General.toml`
  No Changes to `/tmp/julia/environments/v1.11/Project.toml`
  No Changes to `/tmp/julia/environments/v1.11/Manifest.toml`

(@v1.11) pkg> up Gtk4
    Updating registry at `/tmp/julia/registries/General.toml`
  No Changes to `/tmp/julia/environments/v1.11/Project.toml`
  No Changes to `/tmp/julia/environments/v1.11/Manifest.toml`

(@v1.11) pkg> up Gtk4 @0.7.4
    Updating registry at `/tmp/julia/registries/General.toml`
  No Changes to `/tmp/julia/environments/v1.11/Project.toml`
  No Changes to `/tmp/julia/environments/v1.11/Manifest.toml`

(@v1.11) pkg> up -m Gtk4 @0.7.4
    Updating registry at `/tmp/julia/registries/General.toml`
  No Changes to `/tmp/julia/environments/v1.11/Project.toml`
  No Changes to `/tmp/julia/environments/v1.11/Manifest.toml`

(@v1.11) pkg> add Gtk4@0.7.4
   Resolving package versions...
   Installed Pango_jll ─ v1.54.1+0
   Installed Gtk4 ────── v0.7.4
  Downloaded artifact: Pango
    Updating `~/.julia/environments/profile/Project.toml`
  [9db2cae5] + Gtk4 v0.7.4
    Updating `~/.julia/environments/profile/Manifest.toml`
  [9db2cae5] ↑ Gtk4 v0.7.2 ⇒ v0.7.4
⌅ [36c8627f] ↓ Pango_jll v1.55.5+0 ⇒ v1.54.1+0
        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
Precompiling project...
  10 dependencies successfully precompiled in 46 seconds. 132 already precompiled.

And if I load ProfileView after this, the texts display correctly!

Now I don’t know why Pango_jll.jl prohibits the use of the newest version of Gtk4.jl. Here is what Pkg.why() says, although this doesn’t really help:

pkg> why Pango_jll
  Gtk4 → Cairo → Pango_jll
  Gtk4 → GTK4_jll → Pango_jll
  Gtk4 → Librsvg_jll → Pango_jll
  Gtk4 → Pango_jll
  PProf → pprof_jll → Graphviz_jll → Pango_jll
  ProfileView → Cairo → Pango_jll
  ProfileView → Gtk4 → Cairo → Pango_jll
  ProfileView → Gtk4 → GTK4_jll → Pango_jll
  ProfileView → Gtk4 → Librsvg_jll → Pango_jll
  ProfileView → Gtk4 → Pango_jll
  ProfileView → GtkObservables → Cairo → Pango_jll
  ProfileView → GtkObservables → Gtk4 → Cairo → Pango_jll
  ProfileView → GtkObservables → Gtk4 → GTK4_jll → Pango_jll
  ProfileView → GtkObservables → Gtk4 → Librsvg_jll → Pango_jll
  ProfileView → GtkObservables → Gtk4 → Pango_jll

Update: Just for reference, here’s the screenshot of the same profiling output, with correctly displayed font:

2 Likes