Skip to content

Linux: app doesn't start on Ubuntu 22.04 — binaries require GLIBC_2.39 #2302

Description

@Btocode

Description

Cap for Linux doesn't start on Ubuntu 22.04 LTS. Clicking the app icon does nothing. When I start it from a terminal, it exits right away with this error:

$ Cap
Cap: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by Cap)

Ubuntu 22.04 ships glibc 2.35. The Linux binaries require glibc 2.39, which is the version in Ubuntu 24.04, so they can't run on 22.04 or any other distro with an older glibc. Ubuntu 22.04 is still a supported LTS release and is widely used.

What I checked:

Build Result on 22.04
0.6.0 .deb Cap, cap-gpui and cap-cli all require GLIBC_2.39
0.6.0 AppImage Fails the same way. The bundled libraries (libmount, libdbus-1, libkrb5, libudev, and others) also require GLIBC_2.36 or GLIBC_2.38, because they were copied from the build host
0.5.2 .deb (oldest Linux build on the versions page) Also requires GLIBC_2.39

The .deb also installs without errors on 22.04 even though it can't run there, so from the user's side the app just silently does nothing.

Reproduction

  1. On Ubuntu 22.04, download Cap_0.6.0_amd64.deb from cap.so/download
  2. Install it with sudo apt install ./Cap_0.6.0_amd64.deb. It installs without errors.
  3. Click Cap in the app menu. Nothing happens.
  4. Run Cap in a terminal to see the glibc error above.
  5. Optional: objdump -T /usr/bin/Cap | grep -o 'GLIBC_[0-9.]*' | sort -Vu | tail -1 prints GLIBC_2.39

Suggestions

  • Build the Linux release on an older base, such as an ubuntu-22.04 runner or a manylinux-style container, so the binaries target glibc 2.35. For the AppImage, avoid bundling system libraries like libc-linked libmount/libdbus taken from a newer host.
  • If that isn't possible, add a versioned glibc dependency to the .deb (for example libc6 (>= 2.39)) so apt refuses to install it, and list the minimum distro versions on the download page.

Workaround for anyone else hitting this: running the 0.6.0 .deb inside an ubuntu:24.04 Docker container, with the X11 socket, /dev/dri and the PipeWire/Pulse sockets passed through, starts the app.

Related: #1553 (Linux tracking issue)

Additional Context

  • Cap version: 0.6.0 (also checked 0.5.2)
  • Operating system, version: Ubuntu 22.04.5 LTS, kernel 6.8.0, X11 session, glibc 2.35
  • Device (optional): x86_64, NVIDIA GeForce GTX 1650

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions