Repository navigation
Conversation
…ges (#357) @reforged/maker-appimage makes it, with AppImage's fixed 20251108 runtime, which needs no libfuse2. AppRun is a script that starts the app with --no-sandbox only where the system blocks unprivileged user namespaces, as Ubuntu 23.10 and later do: an AppImage's mount ignores setuid, so there the sandbox can't start and Electron would crash. The release workflow smoke-tests it with that block on and off. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…on (#357) The window's Wayland app ID was "pb-notes", made from "Pb Notes", which matched neither pbnotes.desktop nor its StartupWMClass=Pb Notes, so GNOME's dock showed a generic icon even with the .deb installed. desktopName in package.json makes the window's class "pbnotes" on Wayland and X11 alike, and one desktop template for the .deb and .rpm sets StartupWMClass to match. The smoke test now fails on any other class. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #357. A pushed tag now also puts an AppImage for x64 and arm64 on the draft Release. A user on any distribution downloads it, makes it executable and runs it, with nothing installed. On the way, Linux docks now show Pb Notes' icon for its window, which they didn't for any Linux package.
The AppImage
@reforged/maker-appimage, the community Forge maker the issue suggested; electron-builder wasn't needed. It's named as the Windows installers are:Pb Notes-<version>-x64.AppImageand…-arm64.AppImage.20251108runtime, not the maker's default, the movingcontinuousbuild. It's the static type2 runtime, so it needs FUSE 3, which Ubuntu Desktop ships, and nolibfuse2. It's picked for the CPU of the machine building, which on Linux is always the target (Linux release job, with Deb and RPM packages for x64 and arm64 #356).pbnotes.desktop, as in the other packages, rather than the maker's "Pb Notes.desktop".Ubuntu's sandbox block
On Ubuntu 23.10 and later, AppArmor blocks unprivileged user namespaces for apps without a profile of their own. An AppImage runs from a mount that ignores setuid, so it can't fall back to a setuid
chrome-sandboxas the.debdoes, and Electron crashed before the app's code ran.app/appimage/pbnotes-appimage, which adds--no-sandboxonly where the system blocks the sandbox: Ubuntu's AppArmor setting, older Debian'sunprivileged_userns_clone, or a limit of no user namespaces at all. Everywhere else (Arch, Omarchy, Fedora…) the app keeps the full sandbox..deb,.rpmand Arch package carry it too, unused: they start the app directly, with their setuidchrome-sandbox..debfor the sandbox.The dock icon (every Linux package)
GNOME's dock matches a window to its
.desktopfile by the ID the window reports. Pb Notes' window reportedpb-notes, which Electron makes from "Pb Notes", and that matched neitherpbnotes.desktopnor itsStartupWMClass=Pb Notes. Search found the app, but the running window showed a generic icon, with the.debas with the AppImage.desktopNameinapp/package.jsonmakes the window's IDpbnotes, on Wayland and X11 alike..deband.rpm,app/linux/desktop.ejs, setsStartupWMClass=pbnotes; the makers' own set it to the display name. The Arch package gets it from the.deb.app/CLAUDE.mdlists the desktop entry and the window class among the places thepbnotesidentifier is used.The release workflow
squashfs-toolsfor the maker, and collects the AppImage with the.deband.rpm.pbnotes, for every package, and the.debstep checks the installed desktop entry'sStartupWMClass.README
A new "AppImage, for any distribution" section: which file suits which processor, how to run it from a terminal or a file manager, that it isn't added to the launcher (so the dock may show a generic icon, which Gear Lever can fix) and doesn't update itself, what to do if FUSE is missing, and that on Ubuntu it runs without the sandbox, so the
.debis better there.Testing
pbnotes. Every other job passed as before, andreleasewas skipped, as it is for a run started by hand.pb-notesbeforedesktopNameandpbnotesafter, on Wayland and on X11 (XWayland)..debfrom the last run.🤖 Generated with Claude Code