Files
DeepSeek-Reasonix/desktop/packaging/linux
yhh ce0590c769 fix(studio): ship the Linux update helper in the Electron package
The previous commit named the .deb reasonix-studio so dpkg would upgrade
an installed Studio rather than hold a second one beside it. That made a
worse bug reachable than the one it fixed: dpkg removes files the old
package owned and the new one does not, so an upgrade would have taken
/usr/lib/reasonix-studio/reasonix-studio-update-helper with it. Linux
self-update would then refuse by name -- correctly, "helper missing" --
on every attempt, forever, on a machine that had it working before.

The path is not a choice. The polkit action annotates exec.path with it,
so authorization is granted for that helper and no other; shipping it
anywhere else is the same as not shipping it. It is also the path the
Wails package owned, so one destination answers both the policy and the
upgrade.

electron-builder places nothing at an absolute system path without fpm
arguments, so deb.fpm carries the helper and the policy, and
packaging/linux-payload.js stages the helper where those arguments look.
It is a no-op off Linux: a helper built for another platform would be
found by fpm and shipped.

--deb-user root is stated rather than left to fpm's default. What fpm
records for -s dir is a property of the machine that ran the build, and
polkit will not execute a helper the invoking user could have written --
a CI runner's uid on that file is a package that installs and then
refuses. Read out of app-builder-lib rather than assumed: electron-builder
passes --deb-compression and nothing about ownership.

The policy moved to desktop/packaging/linux/. It was under
desktop/next/build/, which section 6 deletes when Wails retires -- a file
the new shell needs cannot sit where the old one's removal takes it.

The gate reads a real package. dpkg-deb answers the name, and the
helper's path, mode and owner, and whether the policy is there at all;
both of the failures above are ones that install cleanly and say nothing
until a user asks for an update. It has not run: no .deb has been built
here, and neither has an upgrade over an installed Wails one.

Checked locally: the payload script no-ops on win32, and the helper
cross-builds for linux CGO-free.
2026-08-31 23:32:37 -07:00
..