Client failing to run on Fedora41

Hi all,

Just getting into things here. Tried to setup a client GUI on Fedora 41, and hit the following error:

$ firezone-client-gui
/usr/lib/dev.firezone.client/firezone-client-gui: /usr/lib/dev.firezone.client/libm.so.6: version `GLIBC_2.38' not found (required by /lib64/libcairo.so.2)
/usr/lib/dev.firezone.client/firezone-client-gui: /usr/lib/dev.firezone.client/libm.so.6: version `GLIBC_2.38' not found (required by /lib64/libxml2.so.2)
/usr/lib/dev.firezone.client/firezone-client-gui: /usr/lib/dev.firezone.client/libm.so.6: version `GLIBC_2.38' not found (required by /lib64/libsqlite3.so.0)
/usr/lib/dev.firezone.client/firezone-client-gui: /usr/lib/dev.firezone.client/libm.so.6: version `GLIBC_2.38' not found (required by /lib64/libxslt.so.1)
/usr/lib/dev.firezone.client/firezone-client-gui: /usr/lib/dev.firezone.client/libm.so.6: version `GLIBC_2.38' not found (required by /lib64/libicuuc.so.74)

I’m using https://github.com/firezone/firezone/releases/download/gui-client-1.4.5/firezone-client-gui-linux_1.4.5_x86_64.rpm

My installed glibc is glibc-2.40-17.fc41.x86_64

Do I need to rebuild the client locally or is there a way to run it after all? A static build maybe?

Hi @dyasny unfortunately the GUI Linux build isn’t completely statically linked. The UI libraries are the culprit - the actual backend firezone binary is built against musl and so is statically linked.

I’d recommend building from source. Take a look here for inspiration:

Thanks @jamil

I actually tried to dig in, it looks like the rpmbuild is happening in a container, with a bunch of hardcoded lib names and paths in src-tauri/rpm_files/firezone-gui-client.spec. Those are actually a bit different on Fedora, so even if I change the build container from CentOS9 to Fedora41, in order to build on a newer glibc, the rpmbuild fails because all those cp commands in the spec are failing.

I suppose it might be possible to figure out the names one by one and update the spec but it seems like a lot of work.

Any way to maybe build a client that isn’t GUI and will “just work” in CLI? Much like a lot of other CLI clients (gcloud comes to mind) it can print out a login link for OIDC logins

ok, I managed to build it on fedora41, had to change quite a few things in the build spec and mount /usr/lib64 and /usr/libexec instead of just /usr/lib in order to get all the libs, but after going over everyting, it seems to be working.

If you guys are interested in adding a fresh Fedora build, I can provide my customized dirty hacks :slight_smile: