Topgrade: /lib64/libc.so.6: version `GLIBC_2.39' not found on Silverblue 42

Hi

topgrade can’t update toolbx containers. All the rest of packages working.

I get this error:

── 04:59:22 - Toolbx ───────────────────────────────────────────────────────────
/run/host/var/home/john/bin/topgrade: /lib64/libc.so.6: version `GLIBC_2.39' not found (required by /run/host/var/home/john/bin/topgrade)
toolbx failed: 
   0: Command failed: `/usr/sbin/toolbox run -c rockylinux-toolbox-9 env 'TOPGRADE_PREFIX='\''Toolbx rockylinux-toolbox-9'\''' /run/host/var/home/john/bin/topgrade --only system --no-self-update --skip-notify`
   1: `/usr/sbin/toolbox` failed: exit status: 1

Location:
   src/steps/toolbx.rs:62
Retry? (y)es/(N)o/(s)hell/(q)uit

more details:

$ rpm -qa | grep glibc
glibc-all-langpacks-2.41-5.fc42.x86_64
glibc-common-2.41-5.fc42.x86_64
glibc-gconv-extra-2.41-5.fc42.x86_64
glibc-2.41-5.fc42.x86_64

ls -al /lib64/libc.so.6 
-rwxr-xr-x. 1 root root 2448320 Jan  1  1970 /lib64/libc.so.6

$ toolbox list
IMAGE ID      IMAGE NAME                                  CREATED
053ea36a80dc  quay.io/toolbx-images/rockylinux-toolbox:9  3 days ago

CONTAINER ID  CONTAINER NAME        CREATED       STATUS   IMAGE NAME
f22923af6e52  rockylinux-toolbox-9  10 hours ago  running  quay.io/toolbx-images/rockylinux-toolbox:9

rpm-ostree status

$ rpm-ostree status
State: idle
Deployments:
● fedora:fedora/42/x86_64/silverblue
                  Version: 42.20250507.0 (2025-05-07T02:04:58Z)
               BaseCommit: 33da96ddb7d274c5c13880736eaf8df03cf70841a52fec478c48b375062c57d0
             GPGSignature: Valid signature by B0F4950458F69E1150C6C5EDC8AC4916105EF944
      RemovedBasePackages: libavdevice-free libavfilter-free libavformat-free ffmpeg-free libpostproc-free libswresample-free libavutil-free libavcodec-free libswscale-free 7.1.1-3.fc42 mesa-va-drivers 25.0.4-2.fc42
          LayeredPackages: ffmpeg ffmpegthumbnailer git-lfs gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-vaapi libavcodec-freeworld mesa-va-drivers-freeworld qiv yt-dlp
            LocalPackages: rpmfusion-free-release-42-1.noarch rpmfusion-nonfree-release-42-1.noarch

  fedora:fedora/42/x86_64/silverblue
                  Version: 42.20250504.0 (2025-05-04T01:51:10Z)
               BaseCommit: 32f6efcc581fc1da4aa647810f809d4d6863cdc6774b0f26cb21510b85a7d650
             GPGSignature: Valid signature by B0F4950458F69E1150C6C5EDC8AC4916105EF944
      RemovedBasePackages: libavdevice-free libavfilter-free libavformat-free ffmpeg-free libpostproc-free libswresample-free libavutil-free libavcodec-free libswscale-free 7.1.1-3.fc42 mesa-va-drivers 25.0.4-2.fc42
          LayeredPackages: ffmpeg ffmpegthumbnailer git-lfs gstreamer1-plugins-bad-free-extras gstreamer1-plugins-bad-freeworld gstreamer1-plugins-ugly gstreamer1-vaapi libavcodec-freeworld mesa-va-drivers-freeworld qiv yt-dlp
            LocalPackages: rpmfusion-free-release-42-1.noarch rpmfusion-nonfree-release-42-1.noarch

Thanks

I don’t know how exactly topgrade works but if you want to run the binary from the host inside the containers, it has to be built against a version of the GLIBC that is available in the container, here Rocky Linux. So you probably want to use a topgrade binary built for that version instead.

It does not run inside the container. It runs on host.

This command really looks like it’s running itself again in the container:

Command failed: `/usr/sbin/toolbox run -c rockylinux-toolbox-9 env 'TOPGRADE_PREFIX='\''Toolbx rockylinux-toolbox-9'\''' /run/host/var/home/john/bin/topgrade --only system --no-self-update --skip-notify`

What strange is, is that glibc will include all previous versions which can be seen from running rpm -q --provides glibc

libc.so.6()(64bit)
libc.so.6(GLIBC_2.10)(64bit)
libc.so.6(GLIBC_2.11)(64bit)
libc.so.6(GLIBC_2.12)(64bit)
libc.so.6(GLIBC_2.13)(64bit)
libc.so.6(GLIBC_2.14)(64bit)
libc.so.6(GLIBC_2.15)(64bit)
libc.so.6(GLIBC_2.16)(64bit)
libc.so.6(GLIBC_2.17)(64bit)
libc.so.6(GLIBC_2.18)(64bit)
libc.so.6(GLIBC_2.2.5)(64bit)
libc.so.6(GLIBC_2.2.6)(64bit)
libc.so.6(GLIBC_2.22)(64bit)
libc.so.6(GLIBC_2.23)(64bit)
libc.so.6(GLIBC_2.24)(64bit)
libc.so.6(GLIBC_2.25)(64bit)
libc.so.6(GLIBC_2.26)(64bit)
libc.so.6(GLIBC_2.27)(64bit)
libc.so.6(GLIBC_2.28)(64bit)
libc.so.6(GLIBC_2.29)(64bit)
libc.so.6(GLIBC_2.3)(64bit)
libc.so.6(GLIBC_2.3.2)(64bit)
libc.so.6(GLIBC_2.3.3)(64bit)
libc.so.6(GLIBC_2.3.4)(64bit)
libc.so.6(GLIBC_2.30)(64bit)
libc.so.6(GLIBC_2.31)(64bit)
libc.so.6(GLIBC_2.32)(64bit)
libc.so.6(GLIBC_2.33)(64bit)
libc.so.6(GLIBC_2.34)(64bit)
libc.so.6(GLIBC_2.35)(64bit)
libc.so.6(GLIBC_2.36)(64bit)
libc.so.6(GLIBC_2.38)(64bit)
libc.so.6(GLIBC_2.39)(64bit)
libc.so.6(GLIBC_2.4)(64bit)
libc.so.6(GLIBC_2.5)(64bit)
libc.so.6(GLIBC_2.6)(64bit)
libc.so.6(GLIBC_2.7)(64bit)
libc.so.6(GLIBC_2.8)(64bit)
libc.so.6(GLIBC_2.9)(64bit)
libc.so.6(GLIBC_ABI_DT_RELR)(64bit)
libc.so.6(GLIBC_PRIVATE)(64bit)