Compile fails with libc error

(#797) Bug Fixed desktop packaging

Observed behaviour

Can not compile the desktop app with (GNU libc) 2.42 (version shipped with flatpak runtime org.freedesktop.Platform/25.08). It gives error Linux package exceeds the supported GLIBC_2.35 ABI baseline.

Reproduction steps

  1. Clone the repo
  2. Resolve the rust/pnpm dependencies
  3. Install and enter a bash shell in org.freedesktop.Platform/25.08 (with filesystem/network access as required)
  4. Build the app from within the runtime env.

Build information

fluxer-desktop-canary 2026.827.224029

Platform

macOS, Windows, Linux

Evidence

   Compiling sha2 v0.11.0
   Compiling ctor v1.0.7
   Compiling nohash-hasher v0.2.0
   Compiling rustc-hash v2.1.2
   Compiling fluxer_desktop_native v0.1.0 (/run/build/***/fluxer_desktop/native/rust)
   Compiling napi-derive-backend v5.0.4
   Compiling futures-macro v0.3.32
   Compiling futures-util v0.3.32
   Compiling napi-derive v3.5.6
   Compiling futures-executor v0.3.32
   Compiling futures v0.3.32
    Finished `release` profile [optimized] target(s) in 12.88s
  @fluxer/platform-info built in 13614ms (binaries: platform-info.linux-x64-gnu.node)
  Synced 5 runtime artifact(s) for @fluxer/platform-info into ../node_modules/.pnpm/@fluxer+platform-info@file+fluxer_desktop+native+platform-info/node_modules/@fluxer/platform-info
Building main process...
Building preload script...
Preload script build complete.
Main process build complete.
Build complete!
+ pnpm exec electron-builder --dir --config electron-builder.config.cjs --x64
  • electron-builder  version=26.9.0 os=6.17.0-1022-azure
  • loaded configuration  file=/run/build/***/fluxer_desktop/electron-builder.config.cjs
  • skipped dependencies rebuild  reason=npmRebuild is set to false
  • packaging       platform=linux arch=x64 electron=42.10.0 appOutDir=dist-electron/linux-unpacked
  • packageManager not detected by file, falling back to environment detection  resolvedPackageManager=pnpm detected=/run/build/***/fluxer_desktop
  • detected workspace root for project using packageManager field  pm=pnpm config=pnpm@10.29.3 resolved=/run/build/*** projectDir=/run/build/***/fluxer_desktop
  • searching for node modules  pm=pnpm searchDir=/run/build/***/fluxer_desktop
(node:22796) [DEP0190] DeprecationWarning: Passing args to a child process with shell option true can lead to security vulnerabilities, as the arguments are not escaped, only concatenated.
(Use `node --trace-deprecation ...` to show where the warning was created)
  ⨯ Linux package exceeds the supported GLIBC_2.35 ABI baseline.
Build Linux artifacts on Ubuntu 22.04 and keep every shipped ELF at or below that glibc requirement.
  - resources/app.asar.unpacked/node_modules/@fluxer/linux-notifications/linux-notifications.linux-x64-gnu.node requires GLIBC_2.39
  - resources/app.asar.unpacked/node_modules/@fluxer/linux-portals/linux-portals.linux-x64-gnu.node requires GLIBC_2.39
  - resources/app.asar.unpacked/node_modules/@fluxer/linux-screen-capture/linux-screen-capture.linux-x64-gnu.node requires GLIBC_2.39
  - resources/app.asar.unpacked/node_modules/@fluxer/system-hunspell/system-hunspell.linux-x64-gnu.node requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libcap.so.2 requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libcrypto.so.3 requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libfido2.so.1 requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libudev.so.1 requires GLIBC_2.38  failedTask=build stackTrace=Error: Linux package exceeds the supported GLIBC_2.35 ABI baseline.
Build Linux artifacts on Ubuntu 22.04 and keep every shipped ELF at or below that glibc requirement.
  - resources/app.asar.unpacked/node_modules/@fluxer/linux-notifications/linux-notifications.linux-x64-gnu.node requires GLIBC_2.39
  - resources/app.asar.unpacked/node_modules/@fluxer/linux-portals/linux-portals.linux-x64-gnu.node requires GLIBC_2.39
  - resources/app.asar.unpacked/node_modules/@fluxer/linux-screen-capture/linux-screen-capture.linux-x64-gnu.node requires GLIBC_2.39
  - resources/app.asar.unpacked/node_modules/@fluxer/system-hunspell/system-hunspell.linux-x64-gnu.node requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libcap.so.2 requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libcrypto.so.3 requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libfido2.so.1 requires GLIBC_2.38
  - resources/app.asar.unpacked/node_modules/@fluxer/webauthn/libudev.so.1 requires GLIBC_2.38
    at throwLinuxGlibcCompatibilityError (/run/build/***/fluxer_desktop/electron-builder.config.cjs:959:8)
    at verifyLinuxGlibcCompatibility (/run/build/***/fluxer_desktop/electron-builder.config.cjs:969:2)
    at processTicksAndRejections (node:internal/process/task_queues:104:5)
    at afterPack (/run/build/***/fluxer_desktop/electron-builder.config.cjs:980:2)
    at emitInternal (/run/build/***/node_modules/.pnpm/app-builder-lib@26.9.0_dmg-builder@26.9.0_electron-builder-squirrel-windows@26.9.0/node_modules/app-builder-lib/src/util/asyncEventEmitter.ts:61:9)
    at AsyncEventEmitter.emit (/run/build/***/node_modules/.pnpm/app-builder-lib@26.9.0_dmg-builder@26.9.0_electron-builder-squirrel-windows@26.9.0/node_modules/app-builder-lib/src/util/asyncEventEmitter.ts:68:26)
    at Packager.emitAfterPack (/run/build/***/node_modules/.pnpm/app-builder-lib@26.9.0_dmg-builder@26.9.0_electron-builder-squirrel-windows@26.9.0/node_modules/app-builder-lib/src/packager.ts:347:5)
    at LinuxPackager.doPack (/run/build/***/node_modules/.pnpm/app-builder-lib@26.9.0_dmg-builder@26.9.0_electron-builder-squirrel-windows@26.9.0/node_modules/app-builder-lib/src/platformPackager.ts:344:5)
    at LinuxPackager.pack (/run/build/***/node_modules/.pnpm/app-builder-lib@26.9.0_dmg-builder@26.9.0_electron-builder-squirrel-windows@26.9.0/node_modules/app-builder-lib/src/platformPackager.ts:161:5)
    at Packager.doBuild (/run/build/***/node_modules/.pnpm/app-builder-lib@26.9.0_dmg-builder@26.9.0_electron-builder-squirrel-windows@26.9.0/node_modules/app-builder-lib/src/packager.ts:538:11)
Error: module ***: Child process exited with code 1
Error: Building "app.fluxer.FluxerCanary.yml": build failed with exit code 1

3 comments

Sign in with Fluxer to comment and vote.
Comment by @yofukashino
RexSystem 1 vote originally by @yofukashino on GitHub OP
Perhaps add check if its in flatpak then use 2.42 Currently I am just patching it
diff --git a/fluxer_desktop/electron-builder.config.cjs b/fluxer_desktop/electron-builder.config.cjs
index 3b48c23b..8c14cba1 100644
--- a/fluxer_desktop/electron-builder.config.cjs
+++ b/fluxer_desktop/electron-builder.config.cjs
@@ -14,7 +14,7 @@ const packageName = isCanary ? 'fluxer_desktop_canary' : 'fluxer_desktop';
 const linuxPackageName = isCanary ? 'fluxer-canary' : 'fluxer';
 const linuxDesktopActionIds = ['open-settings', 'new-dm'];
 const linuxDesktopActionList = `${linuxDesktopActionIds.join(';')};`;
-const linuxGlibcBaseline = Object.freeze({major: 2, minor: 35, patch: 0, name: 'GLIBC_2.35'});
+const linuxGlibcBaseline = Object.freeze({major: 2, minor: 42, patch: 0, name: 'GLIBC_2.42'});
 const rpmBuildIdFilePrefix = '/usr/lib/.build-id';
 const rpmBuildIdLinkFpmArgs = [
 	'--rpm-rpmbuild-define',
Comment by @yofukashino
RexSystem 1 vote originally by @yofukashino on GitHub OP
Would close this after it compiles fine on next tag