Skip to content

SecretSpace 2.0.0 for Linux: nothing carries the old name any more - #32

Merged
usermaneGermane merged 3 commits into
mainfrom
rename-everything
Nov 14, 2026
Merged

usermaneGermane merged 3 commits into
mainfrom
rename-everything

Conversation

@usermaneGermane

Copy link
Copy Markdown
Owner

Part of the task "rename everything: PassMan → SecretSpace". The Linux side of SecretSpace for Windows 4.0.0: the shared files are byte for byte the same, so that PR's description of the new format and the conversion applies here.

What the user sees

  • At unlock: an account made by 1.x is converted, after "This account will be converted" (Save a copy first…, Convert, Cancel).
  • After it: the 12 recovery words are asked for once, to convert the recovery copy too.
  • At the next sync: the server is told; a shared vault moves once every member has updated.
  • The Emergency Kit stays valid (A3-… is accepted, shown as A4-…).
  • The data folder ~/.local/share/passman is renamed to ~/.local/share/secretspace at start.

Linux's own part

  • vault.settle_home for $XDG_DATA_HOME; the CI job that upgrades from the 0.9.0 passman package now also checks that the folder is renamed with the vault in it.
  • SECRETSPACE_DATA_DIR; the smoke test's file names.
  • Kept on purpose: Conflicts / Replaces / Provides: passman in the package, which is how an old install is replaced.
  • Version 2.0.0; README: Upgrading from 1.x.

Proof

  • 851 tests pass locally (on Windows; 6 skipped there: POSIX file modes and the .deb build). CI on this PR is the first run on Linux itself, including the package build, the upgrade from the old package and the smoke run.
  • The conversion tests use accounts written by the real 3.1.0, with the Secret Key kept under the master password — the way Linux keeps it.

Not done

  • Not run on a real Linux desktop (never has been; that is group 5 of the list).
  • Needs server 2.1.0, as the Windows app does.

After the merge

Tag v2.0.0 and release the .deb from the CI run on main.

🤖 Generated with Claude Code

https://claude.ai/code/session_011ojnyXb6JY4UPVU4waZe1w

usermaneGermane and others added 3 commits November 14, 2026 20:45
The same change as SecretSpace for Windows 4.0.0, with the shared files
byte for byte: a new file format (format 2) whose labels, markers and file
names carry the project's own name, and a one-time conversion of an account
made by 1.x (SecretSpace 3). The cryptography itself is unchanged.

Linux's own part:
- The data folder ~/.local/share/passman is renamed to
  ~/.local/share/secretspace at start (renamed, not copied; used where it
  is if it cannot be). The package upgrade test in CI now checks that.
- SECRETSPACE_DATA_DIR, the smoke test's file names, the temp folders.
- The package still replaces the old `passman` package: that is the
  clean-up of an older install, and stays.

Tests: 851 pass locally on Windows (6 skipped: POSIX file modes, the deb
build). The conversion is tested on accounts made by the real 3.1.0 with
its server 2.0.0 (tests/fixtures/format1) - the Secret Key in them is kept
under the master password, as on Linux.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ojnyXb6JY4UPVU4waZe1w
Review finding: a sign-in from a server converted an account that no
device had converted yet, on the server, without asking - which locks out
every device of that account still running SecretSpace 3. Now sign_in
raises NeedsConversion (nothing changed, anywhere) unless convert=True, and
the window asks with the same "will be converted" question as an unlock,
saying that it happens on the server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ojnyXb6JY4UPVU4waZe1w
…us one

Found in the security review of the new format: compare only once both
people have updated.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011ojnyXb6JY4UPVU4waZe1w
@usermaneGermane
usermaneGermane merged commit e231507 into main Nov 14, 2026
6 checks passed
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.

1 participant