From 830dea80e0e2d3f4353b562f1494effa2d81b7cc Mon Sep 17 00:00:00 2001 From: Marco Arnulfo Date: Mon, 12 Oct 2026 16:44:01 +0200 Subject: [PATCH] Docs: where the portable marker goes on macOS, AppImage and Flatpak; keep a portable copy where only you can write (#1366) --- docs/control-protocol.md | 4 +++- docs/releasing.md | 18 +++++++++++++----- packaging/windows/portable.txt | 7 ++++++- 3 files changed, 22 insertions(+), 7 deletions(-) diff --git a/docs/control-protocol.md b/docs/control-protocol.md index d689e908a..d8ce4596c 100644 --- a/docs/control-protocol.md +++ b/docs/control-protocol.md @@ -12,7 +12,9 @@ logs, recovery and user libraries then use that root, without importing the lega An unset override preserves the usual platform paths and legacy migration; an explicitly empty override disables those paths. `VECTORCRAFT_NO_PREFS` continues to disable preference reads and writes. Without the override, a `portable.txt` or `VectorCraft.portable` file beside the executable (as in the -Windows portable zip) puts that root in `VectorCraftData` next to the executable. +Windows portable zip) puts that root in `VectorCraftData` next to the executable; on macOS the marker +and the folder sit next to `VectorCraft.app`, for an AppImage next to the `.AppImage` file, and a +Flatpak install has neither. `VECTORCRAFT_NO_PREFS` never looks for the marker or creates the folder. **Only requests are read.** Every line must be a JSON object with a string `method` (`id` and `params` are optional; blank lines are skipped). Anything else gets one error reply diff --git a/docs/releasing.md b/docs/releasing.md index 46e68728f..6c3400908 100644 --- a/docs/releasing.md +++ b/docs/releasing.md @@ -116,11 +116,18 @@ to the target triple, so host build scripts aren't affected. - **Portable zip:** it ships `packaging/windows/portable.txt` beside `vectorcraft.exe`. That marker (or a `VectorCraft.portable` file) switches on portable mode, as in PhotoCraft: `ui.json` and the folders next to it (Swatches, Graphic Styles, Fonts, Data Recovery, logs…) go to - `VectorCraftData\` next to the exe instead of `%APPDATA%\VectorCraft`. If that folder isn't - writable the app logs a warning and uses `%APPDATA%`. Deleting `portable.txt` returns settings to - the user profile (the `VectorCraftData` folder is left as it is). The MSI has no marker. - `VECTORCRAFT_CONFIG_DIR` still wins. The logic is in `apps/vectorcraft/src/profile.rs` and works - the same on macOS and Linux. + `VectorCraftData\` next to the exe instead of `%APPDATA%\VectorCraft`. The first time + `VectorCraftData` is created, the settings already in `%APPDATA%\VectorCraft` are copied into it + (the originals stay), so someone updating a portable zip from before the marker keeps their + settings. If that folder isn't writable the app logs a warning and uses `%APPDATA%`. Deleting + `portable.txt` returns settings to the user profile (the `VectorCraftData` folder is left as it + is). The MSI has no marker. `VECTORCRAFT_CONFIG_DIR` still wins, `VECTORCRAFT_NO_PREFS` never + looks for the marker, and a portable copy skips the one-time read of the old DrawCraft settings. + The logic is in `apps/vectorcraft/src/profile.rs`. On the other platforms the marker goes where + the user sees the app, never inside it: on macOS next to `VectorCraft.app` (nothing is written + inside the signed bundle), for an AppImage next to the `.AppImage` file (`$APPIMAGE`; the mounted + executable's own folder is read-only). Flatpak isn't supported: `/app` is read-only and the + sandbox has no folder "beside the app", so a Flatpak install always uses its own config folder. - `vectorcraft.wxs` (WiX) is a per-machine install into Program Files with a Start Menu shortcut and an App Paths entry (Win+R `vectorcraft`). Same-version upgrades are allowed, so release candidates replace each other. @@ -236,3 +243,4 @@ warning, never a failed build. |---|---|---| | 2026-10-14 | minor | RPM glibc floor names libm's `GLIBC_2.35`: RHEL 9's glibc 2.34 provides libc's through backports | | 2026-10-12 | minor | RPM dependencies use 64-bit runtime capabilities and enforce glibc 2.35 (#1275); real distro install/start-up checks remain pending | +| 2026-10-12 | minor | Portable mode (#1366): the Windows portable zip ships `portable.txt`; where the marker goes on macOS and Linux, and what Flatpak can't do | diff --git a/packaging/windows/portable.txt b/packaging/windows/portable.txt index 8885c02f2..a8af4bc1d 100644 --- a/packaging/windows/portable.txt +++ b/packaging/windows/portable.txt @@ -3,7 +3,12 @@ VectorCraft portable mode While this file sits next to vectorcraft.exe, VectorCraft keeps its preferences, swatch and graphic style libraries, added fonts, crash-recovery files and logs in the VectorCraftData folder beside it, and writes nothing to %APPDATA%. Copy the whole folder to move VectorCraft with its -settings. +settings. The first time VectorCraftData is created, any settings already in +%APPDATA%\VectorCraft are copied into it; the originals are left where they were. + +Keep this folder somewhere only you can write to: whoever can write here decides your settings, +including the plug-ins and fonts folders VectorCraft loads from, and the Data Recovery copies of +your unsaved documents are kept here too. Delete this file to use the normal per-user settings folder (%APPDATA%\VectorCraft) instead. If VectorCraftData can't be written (for example on a read-only drive), VectorCraft logs a