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)
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:
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