Skip to content

fix(desktop): bundle libsecret in Linux artifacts (#374)#634

Merged
nstus merged 1 commit into
mainfrom
fix/appimage-libsecret
May 19, 2026
Merged

fix(desktop): bundle libsecret in Linux artifacts (#374)#634
nstus merged 1 commit into
mainfrom
fix/appimage-libsecret

Conversation

@nstus

@nstus nstus commented May 19, 2026

Copy link
Copy Markdown
Collaborator

The desktop app uses keytar for OS keychain access, which on Linux loads libsecret-1.so.0 at runtime. On systems where libsecret is not preinstalled, the app crashes immediately with:

Error: libsecret-1.so.0: cannot open shared object file

Fixes #374 with two changes:

  1. MakerDeb and MakerRpm now declare libsecret as a runtime dependency (libsecret-1-0 / libsecret), so the package manager will install it or refuse to install without it.

  2. The AppImage is self-contained, so a postMake hook in forge.config.ts runs linuxdeploy to bundle libsecret + transitive deps into the AppImage after make completes. CD installs linuxdeploy on the Linux x64 runner. The hook is a no-op if linuxdeploy isn't on PATH, so local builds without it still succeed.

The hook is gated to platform=linux, arch=x64. arm64 AppImage bundling needs a separate approach (arm64 runner or qemu) and will be a follow-up once arm64 AppImage builds are enabled.

@nstus nstus force-pushed the fix/appimage-libsecret branch from 48a9893 to bb7b232 Compare May 19, 2026 13:22
The desktop app uses keytar for OS keychain access, which on Linux
loads libsecret-1.so.0 at runtime. On systems where libsecret is not
preinstalled, the app crashes immediately with:

  Error: libsecret-1.so.0: cannot open shared object file

Fixes #374 with two changes:

1. MakerDeb and MakerRpm now declare libsecret as a runtime dependency
   (libsecret-1-0 / libsecret), so the package manager will install it
   or refuse to install without it.

2. The AppImage is self-contained, so a postMake hook in forge.config.ts
   runs linuxdeploy to bundle libsecret + transitive deps into the
   AppImage after make completes. CD installs linuxdeploy on the Linux
   x64 runner. The hook is a no-op if linuxdeploy isn't on PATH, so
   local builds without it still succeed.

The hook is gated to platform=linux, arch=x64. arm64 AppImage bundling
needs a separate approach (arm64 runner or qemu) and will be a
follow-up once arm64 AppImage builds are enabled.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@nstus nstus force-pushed the fix/appimage-libsecret branch from bb7b232 to f7fd70c Compare May 19, 2026 13:50
@github-actions

Copy link
Copy Markdown

Successful WEB deployment 🚀🚀🚀

Well done!
Link to test environment:
https://41524f9e.tonkeeper-web.pages.dev

@nstus nstus requested a review from nvasilchuk May 19, 2026 13:55
@github-actions

Copy link
Copy Markdown

Successful iPad build 🚀🚀🚀

Well done!
The app with build version: 4.6.2(10)
Uploaded to TestFlight

@xuanhieuvu1104-cyber

xuanhieuvu1104-cyber commented May 19, 2026 via email

Copy link
Copy Markdown

@nstus nstus merged commit 8f29d34 into main May 19, 2026
9 checks passed
@nstus nstus mentioned this pull request Jun 9, 2026
28 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

AppImage does not run

3 participants