gitbutler icon indicating copy to clipboard operation
gitbutler copied to clipboard

`GLIBC_2.38' not found

Open FrancescoLucia opened this issue 9 months ago β€’ 9 comments

Version

0.14.11

Operating System

Linux

Distribution Method

AppImage (Linux)

Describe the issue

Hi, I got this error when launching the AppImage (distro PopOS)

(AppImageLauncher:2438309): GLib-CRITICAL **: 17:57:06.312: g_file_test: assertion 'filename != NULL' failed
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by gitbutler-tauri)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by gitbutler-tauri)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.39' not found (required by gitbutler-tauri)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libwebkit2gtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libwebkit2gtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.31' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libwebkit2gtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.32' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libwebkit2gtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgtk-3.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgtk-3.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgdk-3.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgdk-3.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libcairo.so.2)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libcairo.so.2)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libsoup-3.0.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgio-2.0.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libjavascriptcoregtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libjavascriptcoregtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.31' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libjavascriptcoregtk-4.1.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libglib-2.0.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libicui18n.so.74)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libicui18n.so.74)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libsystemd.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libicuuc.so.74)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libicuuc.so.74)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libpango-1.0.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libxml2.so.2)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libsqlite3.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libxslt.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libxslt.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgcrypt.so.20)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgstreamer-1.0.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libtasn1.so.6)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libwayland-server.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libwayland-client.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libatk-bridge-2.0.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libxkbcommon.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libXcursor.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libgssapi_krb5.so.2)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.36' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libmount.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libmount.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libselinux.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libcap.so.2)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libdw.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/liborc-0.4.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libdbus-1.so.3)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libkrb5.so.3)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libk5crypto.so.3)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libkrb5support.so.0)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libblkid.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libelf.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libudev.so.1)
gitbutler-tauri: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by /tmp/.mount_GitButtT8C8k/usr/lib/libbsd.so.0)

How to reproduce (Optional)

No response

Expected behavior (Optional)

No response

Relevant log output (Optional)


FrancescoLucia avatar Mar 17 '25 17:03 FrancescoLucia

Thanks for reporting!

I think there are known issues with distributions which are 'too old', and I vaguely remember that Ubuntu 24.10 is the minimum supported version, along with the libc that comes with it. However, @ndom91 would know the details and will probably correct what I just wrote πŸ˜….

Byron avatar Mar 18 '25 00:03 Byron

Thanks for reporting!

I think there are known issues with distributions which are 'too old', and I vaguely remember that Ubuntu 24.10 is the minimum supported version, along with the libc that comes with it. However, @ndom91 would know the details and will probably correct what I just wrote πŸ˜….

@Byron

This AppImage is broken on a wide range of Linux systems due to an unnecessary and careless dependency on a very recent glibc version.

The build currently requires GLIBC_2.38 and GLIBC_2.39, which are relatively new and not widely adopted. glibc 2.38 was released in August 2023, and even some current stable LTS-based distributions (like Debian 12 or Ubuntu 22.04) don't have it yet. You're locking out a massive portion of your potential users for no technical reason.

πŸ”₯ Here's the problem:

  • Your AppImage depends on glibc versions that are not present in most distros, including widely used ones like Pop!_OS, Mint, Debian, etc.
  • This violates the core principle of AppImage, which is portability: "Build once, run anywhere."
  • According to the AppImage best practices, you should build AppImages on the oldest possible compatible system, like Ubuntu 16.04 or CentOS 7, precisely to avoid glibc lock-in.
  • Your codebase does NOT require glibc 2.38 or 2.39 β€” it's just a side-effect of building on a bleeding-edge system or bumping versions in tauri.conf.json without care.

🧨 The consequences:

You're breaking compatibility with:

  • Ubuntu LTS (22.04)
  • Pop!_OS 22.04 (still widely used)
  • Debian 12
  • Any stable distro that ships a mature glibc
  • And, ironically, the same users who rely on AppImage for compatibility reasons

βœ… What you should do:

  • Stop building on bleeding-edge distros.
  • Use a proper AppImage build environment like Ubuntu 18.04 with a FHS runtime, or better yet β€” use a Docker container with CentOS 7 to guarantee glibc 2.17+ compatibility.
  • Do not bump glibc/libstdc++ dependencies unless your code absolutely requires it (which this app does not).

You're not "supporting modern Linux"; you're breaking Linux portability.
Please take this seriously and rebuild with a sane, older toolchain. AppImage is meant to solve problems, not create them.

shynekomaid avatar May 01 '25 07:05 shynekomaid

Thanks for the analysis and for trying to help this along - like mentioned earlier this is mostly ignorance and not bad faith, and I hope knowing that helps you to want to help us to get this straight πŸ™πŸ™‡.

I just took a look for the very first time and it appears that we use the standard GitHub provided images, and Ubuntu 24.10.

https://github.com/gitbutlerapp/gitbutler/blob/150e0b68bb4cf11a99172fd57072562a3af159fc/.github/workflows/publish.yaml#L95

AppImage are then build with release.sh, which in theory should be executable on any Linux system to produce an AppImage.

https://github.com/gitbutlerapp/gitbutler/blob/2ef866baa62c5bce71a87be97cc028c08ca4640c/scripts/release.sh#L193-L197

Maybe this is something you could try on your system, in theory it should produce a valid image that runs. If I remember correctly, there was supposed to be a dependency on Ubuntu 24.10, but if it runs on your system that is less bleeding edge, there should be nothing in the way of downgrading the image used by CI.

Byron avatar May 02 '25 08:05 Byron

@Byron

Thanks for reporting!

Yeah, using an older runner in the GitHub workflow is a good first step β€” but that's not the full fix. Right now, the real problem is that the build links against the system’s bleeding-edge glibc (e.g. 2.38 or 2.39), and that's what breaks compatibility with any distro that hasn't caught up yet.

πŸ”₯ To actually fix this, two things need to happen:


1. πŸ“¦ Pin dependency versions in Cargo.toml

Some Rust crates like glib, glib-macros, and cairo-sys-rs have recently bumped versions that drag in newer system libraries β€” often without you noticing.

To avoid requiring recent glibc symbols, pin them manually to older, safe versions:

[dependencies]
glib = "=0.14.8"
glib-sys = "=0.14.0"
glib-macros = "=0.14.3"
cairo-sys-rs = "=0.14.0"
libc = "=0.2.139"  # or older if needed

Then run:

cargo update -p glib --precise 0.14.8
# and same for others

This avoids pulling in newer stuff that silently requires glibc 2.38+.


2. βš™οΈ Limit glibc version at the linker level

Even with pinned crate versions, Rust will still link against whatever glibc your system has β€” unless you explicitly tell it not to.

Add this to .cargo/config.toml:

[target.x86_64-unknown-linux-gnu]
rustflags = ["-C", "link-arg=-Wl,--glibc-version=2.17"]

This forces the linker to stay compatible with glibc 2.17 (used in CentOS 7 and Ubuntu 16.04). But again β€” this only works if your code and dependencies don't require newer symbols, which is why step 1 is non-optional.


βœ… Bonus: Build in a sane environment

The safest way to avoid glibc creep is to actually build in a container or VM with an old system like:

  • Ubuntu 18.04 or CentOS 7 (glibc 2.27 or 2.17)
  • Or use musl for static builds (if your deps support it)
rustup target add x86_64-unknown-linux-musl
cargo build --target x86_64-unknown-linux-musl --release

Right now, the build is just picking up whatever glibc happens to be on the host, and AppImage wraps it without checking. So even if the codebase is portable, the output is not.

This is why AppImage best practices recommend building on the oldest possible system β€” and not just relying on GitHub's runner to guess it for you.


I’m not a Rust expert and haven’t looked into your codebase directly β€” this is just all I can offer in terms of help. Hope it’s useful.

shynekomaid avatar May 05 '25 10:05 shynekomaid

Thanks again!

I did take a look and tried to install suitable dependencies in Ubuntu 20. However, it only ships with Glib 2.64, while Tauri 2.0 requires at least Glib 2.70.

Further digging revealed this issue:

  • https://github.com/tauri-apps/tauri/issues/9039

They mention the Glib issue on Ubuntu 20 as well. My own version yields the same result:

tauri info
byron@gitbutler-release:~/gitbutler$ pnpm  tauri info

> root@ tauri /home/byron/gitbutler
> tauri info


[✘] Environment
    - OS: Ubuntu 20.4.0 x86_64 (X64) (Unknown DE on tty)
    ✘ webkit2gtk-4.1: not installed
      Visit https://v2.tauri.app/start/prerequisites/ to learn more about tauri prerequisites
    βœ” rsvg2: 2.48.9
    βœ” rustc: 1.86.0-nightly (a567209da 2025-02-13)
    βœ” cargo: 1.86.0-nightly (2928e3273 2025-02-07)
    βœ” rustup: 1.28.2 (e4f3ad6f8 2025-04-28)
    βœ” Rust toolchain: nightly-2025-02-14-x86_64-unknown-linux-gnu (overridden by '/home/byron/gitbutler/rust-toolchain.toml')
    - node: 20.19.1
    - pnpm: 10.3.0
    - npm: 10.8.2

[-] Packages
    - tauri πŸ¦€: 2.4.1, (outdated, latest: 2.5.1)
    - tauri-build πŸ¦€: 2.2.0
    - wry πŸ¦€: 0.50.5, (outdated, latest: 0.51.2)
    - tao πŸ¦€: 0.32.8, (outdated, latest: 0.33.0)
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli : 2.4.1 (outdated, latest: 2.5.0)

[-] Plugins
    - tauri-plugin-dialog πŸ¦€: 2.2.1
    - @tauri-apps/plugin-dialog : not installed!
    - tauri-plugin-fs πŸ¦€: 2.2.1
    - @tauri-apps/plugin-fs : not installed!
    - tauri-plugin-updater πŸ¦€: 2.7.1
    - @tauri-apps/plugin-updater : not installed!
    - tauri-plugin-single-instance πŸ¦€: 2.2.3
    - @tauri-apps/plugin-single-instance : not installed!
    - tauri-plugin-log πŸ¦€: 2.4.0
    - @tauri-apps/plugin-log : not installed!
    - tauri-plugin-clipboard-manager πŸ¦€: 2.2.2
    - @tauri-apps/plugin-clipboard-manager : not installed!
    - tauri-plugin-window-state πŸ¦€: 2.2.2
    - @tauri-apps/plugin-window-state : not installed!
    - tauri-plugin-http πŸ¦€: 2.4.3
    - @tauri-apps/plugin-http : not installed!
    - tauri-plugin-os πŸ¦€: 2.2.1
    - @tauri-apps/plugin-os : not installed!
    - tauri-plugin-store πŸ¦€: 2.2.0
    - @tauri-apps/plugin-store : not installed!
    - tauri-plugin-shell πŸ¦€: 2.2.1
    - @tauri-apps/plugin-shell : not installed!
    - tauri-plugin-process πŸ¦€: 2.2.1
    - @tauri-apps/plugin-process : not installed!

[-] App
    - build-type: build
    - CSP: img-src 'self' asset: https://asset.localhost data: tauri://localhost https://avatars.githubusercontent.com https://*.gitbutler.com  https://gitbutler-public.s3.amazonaws.com https://*.gravatar.com https://io.wp.com https://i0.wp.com https://i1.wp.com https://i2.wp.com https://i3.wp.com https://github.com https://*.googleusercontent.com https://*.giphy.com/; default-src 'self'; connect-src 'self' ipc: http://ipc.localhost https://eu.posthog.com https://eu.i.posthog.com https://app.gitbutler.com https://o4504644069687296.ingest.sentry.io ws://localhost:7703 https://github.com https://api.github.com https://api.openai.com https://api.anthropic.com https://app.staging.gitbutler.com https://*.gitlab.com https://gitlab.com wss://irc.gitbutler.com:8097; script-src 'self' https://eu.posthog.com https://eu.i.posthog.com; style-src 'self' 'unsafe-inline'
    - frontendDist: ../../apps/desktop/build
    - devUrl: http://localhost:1420/
    - framework: Svelte
    - bundler: Rollup
(failed reverse-i-search)`lsb_release': sudo apt install libwebkit2gtk-4.0-dev   build-essential   curl   wget   file   libxdo-dev   libssl-dev   libayatana-appindicator3-dev   ^Cbrsvg2-dev
byron@gitbutler-release:~/gitbutler$ lsb_release
No LSB modules are available.
byron@gitbutler-release:~/gitbutler$ lsb_release -h
Usage: lsb_release [options]

Options:
  -h, --help         show this help message and exit
  -v, --version      show LSB modules this system supports
  -i, --id           show distributor ID
  -d, --description  show description of this distribution
  -r, --release      show release number of this distribution
  -c, --codename     show code name of this distribution
  -a, --all          show all of the above information
  -s, --short        show requested information in short format
byron@gitbutler-release:~/gitbutler$ lsb_release -d
Description:    Ubuntu 20.04.6 LTS

Tauri 2 seems to be supported on Ubuntu 22.04 at the earliest due to the requirement for libwebkit2gtk-4.1-dev, just a minor version higher than libwebkit2gtk-4.0-dev, but worlds apart apparently.

It doesn't look good, but as a small improvement I'd think it's possible to build on Ubuntu 22 instead.

A local installation is promising, with the build working and tauri info being happy.

tauri info
byron@gitbutler-release:~/gitbutler$ pnpm tauri info

> root@ tauri /home/byron/gitbutler
> tauri info


[βœ”] Environment
    - OS: Ubuntu 22.4.0 x86_64 (X64) (Unknown DE on tty)
    βœ” webkit2gtk-4.1: 2.48.1
    βœ” rsvg2: 2.52.5
    βœ” rustc: 1.86.0-nightly (a567209da 2025-02-13)
    βœ” cargo: 1.86.0-nightly (2928e3273 2025-02-07)
    βœ” rustup: 1.28.2 (e4f3ad6f8 2025-04-28)
    βœ” Rust toolchain: nightly-2025-02-14-x86_64-unknown-linux-gnu (overridden by '/home/byron/gitbutler/rust-toolchain.toml')
    - node: 20.19.1
    - pnpm: 10.3.0
    - npm: 10.8.2

[-] Packages
    - tauri πŸ¦€: 2.4.1, (outdated, latest: 2.5.1)
    - tauri-build πŸ¦€: 2.2.0
    - wry πŸ¦€: 0.50.5, (outdated, latest: 0.51.2)
    - tao πŸ¦€: 0.32.8, (outdated, latest: 0.33.0)
    - @tauri-apps/api : not installed!
    - @tauri-apps/cli : 2.4.1 (outdated, latest: 2.5.0)

[-] Plugins
    - tauri-plugin-log πŸ¦€: 2.4.0
    - @tauri-apps/plugin-log : not installed!
    - tauri-plugin-window-state πŸ¦€: 2.2.2
    - @tauri-apps/plugin-window-state : not installed!
    - tauri-plugin-updater πŸ¦€: 2.7.1
    - @tauri-apps/plugin-updater : not installed!
    - tauri-plugin-shell πŸ¦€: 2.2.1
    - @tauri-apps/plugin-shell : not installed!
    - tauri-plugin-dialog πŸ¦€: 2.2.1
    - @tauri-apps/plugin-dialog : not installed!
    - tauri-plugin-process πŸ¦€: 2.2.1
    - @tauri-apps/plugin-process : not installed!
    - tauri-plugin-fs πŸ¦€: 2.2.1
    - @tauri-apps/plugin-fs : not installed!
    - tauri-plugin-clipboard-manager πŸ¦€: 2.2.2
    - @tauri-apps/plugin-clipboard-manager : not installed!
    - tauri-plugin-os πŸ¦€: 2.2.1
    - @tauri-apps/plugin-os : not installed!
    - tauri-plugin-http πŸ¦€: 2.4.3
    - @tauri-apps/plugin-http : not installed!
    - tauri-plugin-store πŸ¦€: 2.2.0
    - @tauri-apps/plugin-store : not installed!
    - tauri-plugin-single-instance πŸ¦€: 2.2.3
    - @tauri-apps/plugin-single-instance : not installed!

[-] App
    - build-type: build
    - CSP: default-src 'self'; img-src 'self' asset: https://asset.localhost data: tauri://localhost https://avatars.githubusercontent.com https://*.gitbutler.com  https://gitbutler-public.s3.amazonaws.com https://*.gravatar.com https://io.wp.com https://i0.wp.com https://i1.wp.com https://i2.wp.com https://i3.wp.com https://github.com https://*.googleusercontent.com https://*.giphy.com/; connect-src 'self' ipc: http://ipc.localhost https://eu.posthog.com https://eu.i.posthog.com https://app.gitbutler.com https://o4504644069687296.ingest.sentry.io ws://localhost:7703 https://github.com https://api.github.com https://api.openai.com https://api.anthropic.com https://app.staging.gitbutler.com https://*.gitlab.com https://gitlab.com wss://irc.gitbutler.com:8097; script-src 'self' https://eu.posthog.com https://eu.i.posthog.com; style-src 'self' 'unsafe-inline'
    - frontendDist: ../../apps/desktop/build
    - devUrl: http://localhost:1420/
    - framework: Svelte
    - bundler: Rollup
byron@gitbutler-release:~/gitbutler$ lsb_release -d
Description:    Ubuntu 22.04.5 LTS

I have created a couple of bundles that you are welcome to try - they might not fully work, but should at least have a higher chance of launching.

I have used this old release as vessel to hold the locally built bundles (created on Ubuntu 22.04), if you want to try them: https://github.com/gitbutlerapp/gitbutler/releases/tag/release%2F0.12.9. However, it seems these still think they are ARM built, so due to that confusion I don't think they work at all.

Another avenue to potentially improve the compatibility is to provide a FlatPak, as these work with Runtimes which might, overall, be more available. But I haven't looked into this yet.

Tracking issue: https://github.com/gitbutlerapp/gitbutler/issues/8411

Byron avatar May 05 '25 19:05 Byron

@Byron Linux shyneko-pc 6.12.10-76061203-generic #202412060638~1743109366~22.04~1fce33b SMP PREEMPT_DYNAMIC Thu M x86_64 x86_64 x86_64 GNU/Linux

On my PopOS 22 work stable appimage you provided Very long startup (5-7s) but works stable. I test launch, add repo and test commit with pull using AI

shynekomaid avatar May 08 '25 07:05 shynekomaid

That is very promising - I just used the default tauri bundler for appimages, and it seems to work much better now. It will take a while for us to truly put more time into Linux support, but it's definitely on the radar and will pick it up as soon as we can. To my mind, an avenue is to work with the tauri project to help them getting their bundlers (and maybe documentation) to work better for us as well (if they don't do already), so the work is done only once.

Maybe some time for now they will even provide a build service to build application distributables for us, tuned for best compatibility, so waiting might not even be the worst option here.

Byron avatar May 08 '25 07:05 Byron

I tried the AppImage on Ubuntu 22.04.5 LTS.

Commits work, put pushing doesn't.

Image

Thanks for working to fix this, Ubuntu 22.04 is still widely used.

comkieffer avatar May 08 '25 14:05 comkieffer

Thank you for trying it out! These helper programs weren't included in the test-build, so this failure would be expected unfortunately. What we learned is that the AppImage runs at all and can access local files, which seems to be an improvement over the current build.

Byron avatar May 09 '25 09:05 Byron

you can basically using something like distrobox but yeah it more feasible if it compile in the same distro anyway i create a workaround even tho not complete it can install gitbutler in popos 22.04 but you need to install git inside that distrobox also setup credential etc take a look if you like https://github.com/uratmangun/web2app-gui/blob/main/gitbutler-distrobox-installation-guide.md

uratmangun avatar Sep 13 '25 03:09 uratmangun

i build it myself finally here if you want to follow https://github.com/uratmangun/gitbutler/blob/master/LOCAL_BUILD.md with the help of a gpt-5 high

Image

now i can run it on my beautiful popos 22.04 lol

uratmangun avatar Sep 22 '25 12:09 uratmangun

@uratmangun Thank you very much for your work! I tried too, but spent about 30 minutes on it and gave up. You're awesome!

shynekomaid avatar Sep 30 '25 07:09 shynekomaid

@shynekomaid Upgrade to 24.04 if possible; it works well, but understanding the new Pop!_OS beta 24.04 flow may take time. actually its not my work GPT-5's high reasoning helped me a lot in windsurf lol.

uratmangun avatar Sep 30 '25 08:09 uratmangun