mirror of
https://github.com/storytold/craft-libs.git
synced 2026-11-15 06:52:23 +00:00
A standalone copy installed from the release tarball (`bin/` and `share/` unpacked into a prefix such as ~/.local) only had `bin/<app>` swapped, so after an update the CLI beside it and the app's data, desktop entry and icons stayed on the old release. The tarball is now unpacked with `install::tree::unpack` (bounded, contained), and besides the executable the update replaces: - the release's other programs that are already in the executable's folder; - everything under the tarball's `share`, when the executable sits in a prefix's `bin` that has the app's `share/<id>` folder. A copy on its own in some folder still gets only its executable. Each file is staged next to its destination and renamed over it, without following links, with group/world write and set-id bits dropped; the executable goes last. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019oRr8pRoNvNUzhf8qyiEdm