From 447d7c6c409578253efdac25b0322a2d56a90346 Mon Sep 17 00:00:00 2001 From: MotherSphere Date: Sat, 1 Aug 2026 12:12:40 +0200 Subject: [PATCH] docs: state the real licence The LICENSE file has always held the verbatim FSF GPL-3.0 text, inherited byte-for-byte from jsnli/Samira. The README contradicted it outright, claiming "MIT, matching upstream" - false twice over, since upstream Samira is GPL-3.0 too and never was MIT. Anyone taking the README at its word would have redistributed GPL code under permissive terms. README.md: replace the MIT claim with GPL-3.0, and record why. Also expand the Samira credit - calling it the "original implementation" understated a relationship where the VDF parser, the Steamworks integration and the shape of the Rust backend are still largely upstream's code, which is what makes the copyleft carry forward in the first place. package.json, src-tauri/Cargo.toml: both shipped with no `license` field at all, so the only machine-readable answer was the README's wrong one. Declare GPL-3.0 in each. On the SPDX string: plain `GPL-3.0`, not `GPL-3.0-or-later`. Upstream ships the bare GPLv3 text with no "or any later version" notice applied to the program, and section 14 of that text grants the option of following a later version only "If the Program specifies that a certain numbered version of the GNU General Public License 'or any later version' applies to it". It does not. The fallback in the next paragraph - "If the Program does not specify a version number ... you may choose any version ever published" - is at best arguable here, since shipping the v3 text does identify a version. Rather than resolve that against the upstream author's silence, the version-neutral string claims nothing either way. Not touched: LICENSE itself (already the correct verbatim GPL-3.0 text, and identical to upstream's), colony.json (the Colony manifest schema has no licence field), the Valve Steamworks SDK note in bootstrap.rs, and the MIT entries in package-lock.json, which are third-party dependency metadata. --- README.md | 16 ++++++++++++++-- package.json | 1 + src-tauri/Cargo.toml | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 002344b..cd55354 100644 --- a/README.md +++ b/README.md @@ -80,10 +80,22 @@ NO_STRIP=true npm run tauri build ## Credits -- [jsnli/Samira](https://github.com/jsnli/Samira) — original implementation, the heavy lifting on VDF parsing and Steamworks integration. +- [jsnli/Samira](https://github.com/jsnli/Samira) — the upstream this program is derived from, and the origin of most of what it still is. The VDF parser, the Steamworks integration, and the overall shape of the Rust backend are upstream's work, much of it unchanged here. Samira is GPL-3.0; this fork inherits those terms. - [Valve](https://partner.steamgames.com/) — Steamworks SDK (redistributed per [SDK License](https://partner.steamgames.com/documentation/sdk_access_agreement)). - [Project Colony](https://github.com/Project-Colony) — design language and distribution ecosystem. ## License -MIT, matching upstream. See `LICENSE`. +GPL-3.0. See `LICENSE`. + +This is a derivative work of [jsnli/Samira](https://github.com/jsnli/Samira), which is +published under the GNU General Public License version 3. Substantial upstream code +survives here verbatim, so that licence carries forward: this fork is GPL-3.0 and cannot +be redistributed under anything more permissive. Earlier revisions of this README claimed +"MIT, matching upstream", which was true of neither project. + +The SPDX identifier is the plain `GPL-3.0` rather than `GPL-3.0-or-later`. Upstream ships +the bare GPLv3 text with no "or any later version" notice, and section 14 of that licence +grants the option of following a later version only when the program itself says so. +Declaring `-or-later` would assert a permission upstream never gave, so the +version-neutral string is used instead. diff --git a/package.json b/package.json index 984890f..81c9164 100644 --- a/package.json +++ b/package.json @@ -2,6 +2,7 @@ "name": "sam-colony-edition", "private": true, "version": "0.6.1", + "license": "GPL-3.0", "type": "module", "scripts": { "dev": "vite", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index ceb560c..00c7a78 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -4,6 +4,9 @@ version = "0.6.1" description = "Steam achievement manager for Linux" authors = ["you"] edition = "2021" +# Derivative work of jsnli/Samira, which is GPL-3.0. Upstream ships the bare +# GPLv3 text with no "or any later version" notice, so no "-or-later" is claimed. +license = "GPL-3.0" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html