From fbd20156fb262db158f327ba663a2798a0d4d747 Mon Sep 17 00:00:00 2001
From: Computer-Tsu <55188587+Computer-Tsu@users.noreply.github.com>
Date: Mon, 20 Apr 2026 13:46:56 -0400
Subject: [PATCH] Clean up stale license references and clarify MIT + services
model
Follow-up review pass: remove LICENSE-COMMERCIAL.md, add
OFFICIAL_BUILDS_AND_SERVICES.md, and update all remaining references
across docs, source, installer, UI strings, and workflow files.
Rebrand in-app "License" tab to "Registration".
---
.github/workflows/build.yml | 11 +++-
.github/workflows/codeql.yml | 3 +-
.github/workflows/dependency-review.yml | 3 +-
.github/workflows/format-check.yml | 3 +-
.github/workflows/json-validate.yml | 3 +-
.github/workflows/markdown-lint.yml | 3 +-
CHANGELOG.md | 5 +-
CLA.md | 14 +++--
CODE_SIGNING_POLICY.md | 10 ++--
LEGAL.md | 11 ++--
LICENSE-COMMERCIAL.md | 44 ---------------
LICENSE-MIT.md | 7 +--
OFFICIAL_BUILDS_AND_SERVICES.md | 53 +++++++++++++++++++
README.md | 17 +++---
data/usb_devices.json | 2 +-
installer/PortPane.iss | 6 +--
src/PortPane/Attribution.cs | 8 ++-
src/PortPane/BrandingInfo.cs | 11 +++-
src/PortPane/Data/usb_devices.json | 2 +-
src/PortPane/Resources/Strings.de.resx | 4 +-
src/PortPane/Resources/Strings.es.resx | 10 ++--
src/PortPane/Resources/Strings.fr.resx | 10 ++--
src/PortPane/Resources/Strings.ja.resx | 10 ++--
src/PortPane/Resources/Strings.resx | 36 ++++++-------
src/PortPane/ViewModels/SettingsViewModel.cs | 18 +++----
src/PortPane/Views/AboutDialog.xaml.cs | 4 +-
.../Views/Dialogs/ResetConfirmDialog.xaml | 4 +-
src/PortPane/Views/FirstRunDialog.xaml | 2 +-
src/PortPane/Views/FirstRunDialog.xaml.cs | 2 +-
src/PortPane/Views/SettingsWindow.xaml | 28 +++++-----
30 files changed, 186 insertions(+), 158 deletions(-)
delete mode 100644 LICENSE-COMMERCIAL.md
create mode 100644 OFFICIAL_BUILDS_AND_SERVICES.md
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 1b46f49..318054b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -2,7 +2,8 @@
# PortPane by ShackDesk
# Project : https://github.com/Computer-Tsu/shackdesk-portpane
# Author : Mark McDow (N4TEK) — My Computer Guru LLC
-# License : MIT + official-build commercial terms (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+# License : MIT source code + official builds/services
+# (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
#
# Workflow : Build · Test · Publish · Release
# Purpose : Main CI/CD pipeline. Builds and tests on every push and PR to main.
@@ -338,7 +339,11 @@ jobs:
$pattern = "(?s)## \[$version\].*?(?=## \[|\z)"
$match = [regex]::Match($content, $pattern)
$notes = if ($match.Success) { $match.Value.Trim() } else { "See CHANGELOG.md for details." }
- $notes | Out-File -FilePath ./release_notes.md -Encoding utf8
+ @"
+$notes
+
+Code signing policy: https://shackdesk.com/portpane/code-signing-policy/
+"@ | Out-File -FilePath ./release_notes.md -Encoding utf8
echo "notes_file=./release_notes.md" >> $env:GITHUB_OUTPUT
- name: Rename artifacts with version
@@ -446,6 +451,8 @@ jobs:
This build has a 14-day expiry. Always download the current version from this page.
Not recommended for general use — for testing purposes only.
+
+ Code signing policy: https://shackdesk.com/portpane/code-signing-policy/
prerelease: true
files: |
./release/PortPane-*.exe
diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml
index 0555806..858219b 100644
--- a/.github/workflows/codeql.yml
+++ b/.github/workflows/codeql.yml
@@ -2,7 +2,8 @@
# PortPane by ShackDesk
# Project : https://github.com/Computer-Tsu/shackdesk-portpane
# Author : Mark McDow (N4TEK) — My Computer Guru LLC
-# License : MIT + official-build commercial terms (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+# License : MIT source code + official builds/services
+# (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
#
# Workflow : CodeQL Security Analysis
# Purpose : Scans C# source code for security vulnerabilities using GitHub's
diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml
index 241dfed..4171a10 100644
--- a/.github/workflows/dependency-review.yml
+++ b/.github/workflows/dependency-review.yml
@@ -2,7 +2,8 @@
# PortPane by ShackDesk
# Project : https://github.com/Computer-Tsu/shackdesk-portpane
# Author : Mark McDow (N4TEK) — My Computer Guru LLC
-# License : MIT + official-build commercial terms (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+# License : MIT source code + official builds/services
+# (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
#
# Workflow : Dependency Review
# Purpose : Checks NuGet package changes introduced in a pull request against
diff --git a/.github/workflows/format-check.yml b/.github/workflows/format-check.yml
index 0212050..579d988 100644
--- a/.github/workflows/format-check.yml
+++ b/.github/workflows/format-check.yml
@@ -2,7 +2,8 @@
# PortPane by ShackDesk
# Project : https://github.com/Computer-Tsu/shackdesk-portpane
# Author : Mark McDow (N4TEK) — My Computer Guru LLC
-# License : MIT + official-build commercial terms (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+# License : MIT source code + official builds/services
+# (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
#
# Workflow : .NET Format Check
# Purpose : Enforces consistent C# code formatting on every pull request.
diff --git a/.github/workflows/json-validate.yml b/.github/workflows/json-validate.yml
index 7107fc3..96b183e 100644
--- a/.github/workflows/json-validate.yml
+++ b/.github/workflows/json-validate.yml
@@ -2,7 +2,8 @@
# PortPane by ShackDesk
# Project : https://github.com/Computer-Tsu/shackdesk-portpane
# Author : Mark McDow (N4TEK) — My Computer Guru LLC
-# License : MIT + official-build commercial terms (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+# License : MIT source code + official builds/services
+# (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
#
# Workflow : JSON Data File Validation
# Purpose : Validates usb_devices.json whenever the data/ directory changes.
diff --git a/.github/workflows/markdown-lint.yml b/.github/workflows/markdown-lint.yml
index cec6d59..f280d70 100644
--- a/.github/workflows/markdown-lint.yml
+++ b/.github/workflows/markdown-lint.yml
@@ -2,7 +2,8 @@
# PortPane by ShackDesk
# Project : https://github.com/Computer-Tsu/shackdesk-portpane
# Author : Mark McDow (N4TEK) — My Computer Guru LLC
-# License : MIT + official-build commercial terms (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+# License : MIT source code + official builds/services
+# (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
#
# Workflow : Markdown Lint
# Purpose : Checks all Markdown files for formatting consistency and common
diff --git a/CHANGELOG.md b/CHANGELOG.md
index bd664f3..00c26fe 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@
PortPane by ShackDesk — Changelog
Project : https://github.com/Computer-Tsu/shackdesk-portpane
Author : Mark McDow (N4TEK) — My Computer Guru LLC
- License : MIT / Commercial (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+ License : MIT source code + official builds/services (see LICENSE-MIT.md, OFFICIAL_BUILDS_AND_SERVICES.md)
════════════════════════════════════════════════════════════════════════════
FORMAT
@@ -188,7 +188,8 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
- Dark theme with system High Contrast mode compatibility
- Single-instance enforcement via named Mutex
- Velopack auto-update (background, rate-limited to once per 24h, non-interrupting)
-- MIT / Commercial dual license with RSA offline license validation (key placeholder)
+- MIT source-code licensing with official-build registration validation
+ infrastructure (key placeholder)
- Opt-in anonymous telemetry (off by default)
- `Help → View Collected Data` viewer with Send/Clear/Close
- Pending report queue (max 10, oldest discarded)
diff --git a/CLA.md b/CLA.md
index 1642b6e..c539439 100644
--- a/CLA.md
+++ b/CLA.md
@@ -5,10 +5,11 @@
*This summary is not legal text — the full agreement is below.*
- **You keep ownership** of everything you contribute. You are not giving up your copyright.
-- **You give permission** for your contribution to be used in both the free (MIT) and
- paid (commercial) versions of PortPane.
-- **This is standard practice** for dual-licensed open source projects. Without this
- agreement, the project could not legally offer a commercial version.
+- **You give permission** for your contribution to be used in both the MIT-licensed
+ source code and official ShackDesk builds/services.
+- **This is standard practice** for projects that offer open source code alongside
+ official builds, personalization, and support. Without this agreement, the
+ project could not consistently offer those official ShackDesk services.
- Submitting a pull request on GitHub means you agree to these terms.
---
@@ -33,7 +34,10 @@ By submitting a pull request or any other contribution to PortPane by ShackDesk,
## Distribution Models
-1. You acknowledge that source code in this repository is distributed under MIT, and that official ShackDesk-distributed binaries/services may be offered under separate commercial terms. You agree your contributions may be used in both distribution models at the maintainer's discretion.
+1. You acknowledge that source code in this repository is distributed under MIT,
+ and that ShackDesk may offer official builds, optional registration/
+ personalization, and support under separate commercial terms. You agree your
+ contributions may be used in both contexts at the maintainer's discretion.
## No Obligation
diff --git a/CODE_SIGNING_POLICY.md b/CODE_SIGNING_POLICY.md
index de16cb8..cb733ac 100644
--- a/CODE_SIGNING_POLICY.md
+++ b/CODE_SIGNING_POLICY.md
@@ -14,11 +14,11 @@ All source code in this repository is licensed under the MIT License
- **Source builds**: Any binaries you build yourself from this repository are
governed by MIT terms.
-- **Official ShackDesk builds**: Binaries published by ShackDesk may include
- additional branding/support/licensing terms described in
- [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
+- **Official ShackDesk builds and services**: See
+ [OFFICIAL_BUILDS_AND_SERVICES.md](OFFICIAL_BUILDS_AND_SERVICES.md).
-Commercial terms do not reduce or override MIT rights for source code.
+Official ShackDesk services do not reduce or override MIT rights for source
+code.
## Trusted Build Intent
@@ -34,6 +34,8 @@ The CI workflow is structured to support a trusted signing flow:
- CI currently builds and publishes **unsigned** artifacts.
- Signing is intentionally a placeholder in `.github/workflows/build.yml`.
- SignPath integration is planned but not yet enabled in this repository.
+- Initial SignPath rollout is intended for **alpha** releases first, then
+ **beta**. Stable may later use SignPath or a separate signing process.
## Future SignPath Notes
diff --git a/LEGAL.md b/LEGAL.md
index 5085aa4..e375ae6 100644
--- a/LEGAL.md
+++ b/LEGAL.md
@@ -9,7 +9,7 @@ PortPane™ is a trademark of My Computer Guru LLC.
## License
- **Source code in this repository:** MIT License ([LICENSE-MIT.md](LICENSE-MIT.md)).
-- **Official ShackDesk-distributed binaries/services:** may be subject to additional commercial terms ([LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md)).
+- **Official ShackDesk builds and services:** see [OFFICIAL_BUILDS_AND_SERVICES.md](OFFICIAL_BUILDS_AND_SERVICES.md).
---
@@ -61,10 +61,9 @@ USB device identification data sourced in part from the
---
-## Attribution Requirement
+## Official Build Provenance
-All distributions of PortPane, including builds under the commercial license,
-must retain the `Attribution.cs` copyright fingerprint embedded in the binary.
-Fingerprint: `PortPane-ShackDesk-MCG-f8a2c4e6-3b1d-4f9a-8e7c-5d2b0a6c1e4f`
+ShackDesk retains the `Attribution.cs` fingerprint in official builds for
+provenance and support purposes.
-Removal constitutes a license violation.
+Fingerprint: `PortPane-ShackDesk-MCG-f8a2c4e6-3b1d-4f9a-8e7c-5d2b0a6c1e4f`
diff --git a/LICENSE-COMMERCIAL.md b/LICENSE-COMMERCIAL.md
deleted file mode 100644
index d9c3526..0000000
--- a/LICENSE-COMMERCIAL.md
+++ /dev/null
@@ -1,44 +0,0 @@
-# Commercial License — PortPane by ShackDesk
-
-Copyright © 2024–2026 Mark McDow (N4TEK), My Computer Guru LLC.
-
-## Scope
-
-This license applies only to official PortPane builds distributed by ShackDesk.
-It does not apply to source-code distributions from this repository.
-
-The PortPane source code is available under the MIT License. This commercial
-license governs use of official ShackDesk binaries and related services.
-
-## Grant
-
-Subject to a valid commercial license, you are granted a non-exclusive,
-non-transferable license to:
-
-- Use official PortPane builds without trial limitations
-- Unlock licensed features (such as branding and personalization)
-- Receive updates or support if included with your license
-
-## Restrictions
-
-1. **No redistribution of official builds.** You may not redistribute official
- ShackDesk binaries without permission.
-
-2. **License key usage.** License keys may not be shared, resold, or
- transferred unless explicitly allowed.
-
-3. **No removal of licensing mechanisms.** You may not bypass or disable
- license enforcement in official builds.
-
-## Open Source Notice
-
-PortPane source code is licensed under the MIT License.
-
-You are free to use, modify, and distribute the source code under those terms.
-
-This commercial license does not restrict your rights under the MIT License for
-source code.
-
-## Disclaimer
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND.
diff --git a/LICENSE-MIT.md b/LICENSE-MIT.md
index e7ff275..43606a6 100644
--- a/LICENSE-MIT.md
+++ b/LICENSE-MIT.md
@@ -1,6 +1,6 @@
# MIT License
-Copyright (c) 2026 My Computer Guru LLC
+Copyright (c) 2024-2026 Mark McDow (N4TEK), My Computer Guru LLC
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -19,8 +19,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
-
-## Additional Terms
-
-The attribution and fingerprint files included with PortPane must be preserved
-in source and binary redistributions.
diff --git a/OFFICIAL_BUILDS_AND_SERVICES.md b/OFFICIAL_BUILDS_AND_SERVICES.md
new file mode 100644
index 0000000..95ff883
--- /dev/null
+++ b/OFFICIAL_BUILDS_AND_SERVICES.md
@@ -0,0 +1,53 @@
+# Official Builds and Services — PortPane by ShackDesk
+
+Copyright © 2024-2026 Mark McDow (N4TEK), My Computer Guru LLC.
+
+This document describes optional ShackDesk-distributed builds and paid services
+for PortPane. It does not reduce, replace, or override the MIT rights granted
+for source code in this repository.
+
+## Source Code
+
+All source code in this repository is licensed under the MIT License. If you
+build PortPane yourself from this repository, the resulting build is governed
+by MIT and applicable third-party licenses.
+
+## Official ShackDesk Offerings
+
+ShackDesk may provide one or more of the following for official PortPane builds:
+
+- Official ShackDesk-distributed binaries
+- Optional registration files for official builds
+- Optional personalization such as operator name, callsign, club, or EMCOMM identity
+- Optional paid support or update assistance
+
+## Registration and Personalization
+
+- Registration files are issued by ShackDesk for official builds only.
+- They may unlock personalization, branding, or future paid conveniences in
+ official ShackDesk builds.
+- Registration files may not be shared, resold, or transferred unless
+ ShackDesk explicitly allows it.
+
+## Support Services
+
+- Paid support is included only when explicitly purchased or granted.
+- Free community support may still be available through public GitHub
+ discussions, documentation, or issue reporting.
+
+## Branding and Provenance
+
+- ShackDesk names, logos, trademarks, and trade dress remain the property of
+ My Computer Guru LLC.
+- Official ShackDesk builds may include provenance markers, signatures, support
+ identifiers, or registration mechanisms.
+
+## Open Source Notice
+
+Nothing in this document limits your rights under the MIT License for source
+code in this repository.
+
+## Disclaimer
+
+Official builds and services are provided "AS IS" unless a separate written
+support agreement says otherwise.
diff --git a/README.md b/README.md
index 2483f96..6a1e095 100644
--- a/README.md
+++ b/README.md
@@ -197,15 +197,14 @@ If PortPane saves you time, consider leaving a star on GitHub.
## License
-**Source code license:**
-
-- **MIT** — all source code in this repository is licensed under MIT. See [LICENSE-MIT.md](LICENSE-MIT.md).
-- If you compile from this repository yourself, your resulting build is governed by MIT (plus applicable third-party licenses).
-
-**Official ShackDesk build terms:**
-
-- **Commercial terms** may apply to official ShackDesk-distributed binaries, branding/licensing services, and support offerings. See [LICENSE-COMMERCIAL.md](LICENSE-COMMERCIAL.md).
-- These official-build terms do **not** limit your MIT rights for source code from this repository.
+PortPane source code is licensed under MIT. Official ShackDesk builds, optional
+registration/personalization, and support are offered under separate
+commercial terms.
+
+- **Source code:** MIT. See [LICENSE-MIT.md](LICENSE-MIT.md).
+- **Official ShackDesk builds and services:** see [OFFICIAL_BUILDS_AND_SERVICES.md](OFFICIAL_BUILDS_AND_SERVICES.md).
+- If you compile PortPane yourself from this repository, your resulting build is
+ governed by MIT (plus applicable third-party licenses).
---
diff --git a/data/usb_devices.json b/data/usb_devices.json
index 02e7ecf..b79d10d 100644
--- a/data/usb_devices.json
+++ b/data/usb_devices.json
@@ -3,7 +3,7 @@
"_comment_2": " PortPane by ShackDesk — USB Device Database",
"_comment_3": " Project : https://github.com/Computer-Tsu/shackdesk-portpane",
"_comment_4": " Author : Mark McDow (N4TEK) — My Computer Guru LLC",
- "_comment_5": " License : MIT / Commercial (see LICENSE-MIT.md)",
+ "_comment_5": " License : MIT source code (see LICENSE-MIT.md)",
"_comment_6": "════════════════════════════════════════════════════════════════════════",
"_comment_7": "",
"_comment_8": " PURPOSE",
diff --git a/installer/PortPane.iss b/installer/PortPane.iss
index 5c3159b..4b297ec 100644
--- a/installer/PortPane.iss
+++ b/installer/PortPane.iss
@@ -63,9 +63,9 @@ Source: "..\publish\{#AppExeName}.sha256"; DestDir: "{app}"; Flags: ignoreversio
; USB device database (bundled — also shipped as separate artifact for updates)
Source: "..\data\usb_devices.json"; DestDir: "{app}\Data"; Flags: ignoreversion
-; License files
-Source: "..\LICENSE-MIT.md"; DestDir: "{app}"; Flags: ignoreversion
-Source: "..\LICENSE-COMMERCIAL.md"; DestDir: "{app}"; Flags: ignoreversion
+; Legal and service files
+Source: "..\LICENSE-MIT.md"; DestDir: "{app}"; Flags: ignoreversion
+Source: "..\OFFICIAL_BUILDS_AND_SERVICES.md"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\{#AppName}"; Filename: "{app}\{#AppExeName}"; Comment: "{#AppDescription}"
diff --git a/src/PortPane/Attribution.cs b/src/PortPane/Attribution.cs
index 3752175..56bae7a 100644
--- a/src/PortPane/Attribution.cs
+++ b/src/PortPane/Attribution.cs
@@ -3,8 +3,7 @@
// All rights reserved.
//
// This file contains attribution metadata embedded as a copyright fingerprint.
-// It is intentionally retained in all distributions, including commercial builds.
-// Removal or modification of this file constitutes a violation of the license terms.
+// ShackDesk retains it in official builds for provenance and support purposes.
using System.Runtime.CompilerServices;
@@ -14,8 +13,7 @@
namespace PortPane;
///
-/// Hidden copyright fingerprint. Present in all builds (MIT and commercial).
-/// Do not remove, rename, or suppress this class.
+/// Hidden copyright fingerprint. Present in official ShackDesk builds.
/// The Fingerprint property is referenced at startup to prevent compiler removal.
///
internal static class Attribution
@@ -27,7 +25,7 @@ internal static class Attribution
internal const string ProjectURL = BrandingInfo.RepoURL;
internal const string LicenseSPDX = "MIT";
- // Copyright verification fingerprint. Do not remove. See LICENSE-MIT.md.
+ // Copyright verification fingerprint used in official ShackDesk builds.
// UUID generated at project creation: f8a2c4e6-3b1d-4f9a-8e7c-5d2b0a6c1e4f
private const string _fingerprint =
"PortPane-ShackDesk-MCG-f8a2c4e6-3b1d-4f9a-8e7c-5d2b0a6c1e4f";
diff --git a/src/PortPane/BrandingInfo.cs b/src/PortPane/BrandingInfo.cs
index 1deadd9..0f56393 100644
--- a/src/PortPane/BrandingInfo.cs
+++ b/src/PortPane/BrandingInfo.cs
@@ -64,9 +64,18 @@ public static int? DaysRemaining
public const string AppURL = "https://shackdesk.com";
public const string SupportURL = "https://github.com/Computer-Tsu/shackdesk-portpane/discussions";
public const string DonationURL = "";
- public const string LicenseType = "MIT / Commercial";
+ public const string LicenseType = "MIT source code + optional paid services";
public const string TelemetryEndpoint = "https://telemetry.shackdesk.com/report";
+ public static string RepoDocBranch => ChannelInfo.Channel switch
+ {
+ ReleaseChannel.Alpha => "dev",
+ ReleaseChannel.Beta => "beta",
+ _ => "main"
+ };
+
+ public static string SourceLicenseURL => $"{RepoURL}/blob/{RepoDocBranch}/LICENSE-MIT.md";
+
///
/// Per-channel update feed URL. Resolves at runtime based on ChannelInfo.Channel.
/// Served by ShackDesk-Site as static JSON; updated automatically after each release.
diff --git a/src/PortPane/Data/usb_devices.json b/src/PortPane/Data/usb_devices.json
index 02e7ecf..b79d10d 100644
--- a/src/PortPane/Data/usb_devices.json
+++ b/src/PortPane/Data/usb_devices.json
@@ -3,7 +3,7 @@
"_comment_2": " PortPane by ShackDesk — USB Device Database",
"_comment_3": " Project : https://github.com/Computer-Tsu/shackdesk-portpane",
"_comment_4": " Author : Mark McDow (N4TEK) — My Computer Guru LLC",
- "_comment_5": " License : MIT / Commercial (see LICENSE-MIT.md)",
+ "_comment_5": " License : MIT source code (see LICENSE-MIT.md)",
"_comment_6": "════════════════════════════════════════════════════════════════════════",
"_comment_7": "",
"_comment_8": " PURPOSE",
diff --git a/src/PortPane/Resources/Strings.de.resx b/src/PortPane/Resources/Strings.de.resx
index 77344f7..37040b4 100644
--- a/src/PortPane/Resources/Strings.de.resx
+++ b/src/PortPane/Resources/Strings.de.resx
@@ -4,7 +4,7 @@
PortPane by ShackDesk — UI String Resources
Project : https://github.com/Computer-Tsu/shackdesk-portpane
Author : Mark McDow (N4TEK) — My Computer Guru LLC
- License : MIT / Commercial (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+ License : MIT source code + official builds/services
════════════════════════════════════════════════════════════════════════════
LANGUAGE : German (Deutsch)
@@ -100,7 +100,7 @@
Über PortPane
Version {0}
Von {0} ({1})
- Lizenziert unter MIT / Kommerziell
+ MIT-Quellcode + optionale kostenpflichtige Dienste
Auf GitHub ansehen
Support erhalten
diff --git a/src/PortPane/Resources/Strings.es.resx b/src/PortPane/Resources/Strings.es.resx
index a697d70..1272085 100644
--- a/src/PortPane/Resources/Strings.es.resx
+++ b/src/PortPane/Resources/Strings.es.resx
@@ -4,7 +4,7 @@
PortPane by ShackDesk — UI String Resources
Project : https://github.com/Computer-Tsu/shackdesk-portpane
Author : Mark McDow (N4TEK) — My Computer Guru LLC
- License : MIT / Commercial (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+ License : MIT source code + official builds/services
════════════════════════════════════════════════════════════════════════════
LANGUAGE : Spanish (Español)
@@ -90,15 +90,15 @@
Settings — PortPane
Send anonymous usage data to help improve PortPane
Learn more about what is collected
- License
- Free (MIT)
- Commercial
+ Registration
+ Standard
+ Registered
About PortPane
Version {0}
By {0} ({1})
- Licensed under MIT / Commercial
+ MIT source code + optional paid services
View on GitHub
Get Support
diff --git a/src/PortPane/Resources/Strings.fr.resx b/src/PortPane/Resources/Strings.fr.resx
index b73b84d..a4f8193 100644
--- a/src/PortPane/Resources/Strings.fr.resx
+++ b/src/PortPane/Resources/Strings.fr.resx
@@ -4,7 +4,7 @@
PortPane by ShackDesk — UI String Resources
Project : https://github.com/Computer-Tsu/shackdesk-portpane
Author : Mark McDow (N4TEK) — My Computer Guru LLC
- License : MIT / Commercial (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+ License : MIT source code + official builds/services
════════════════════════════════════════════════════════════════════════════
LANGUAGE : French (Français)
@@ -90,15 +90,15 @@
Settings — PortPane
Send anonymous usage data to help improve PortPane
Learn more about what is collected
- License
- Free (MIT)
- Commercial
+ Registration
+ Standard
+ Registered
About PortPane
Version {0}
By {0} ({1})
- Licensed under MIT / Commercial
+ MIT source code + optional paid services
View on GitHub
Get Support
diff --git a/src/PortPane/Resources/Strings.ja.resx b/src/PortPane/Resources/Strings.ja.resx
index ed8d227..faa9892 100644
--- a/src/PortPane/Resources/Strings.ja.resx
+++ b/src/PortPane/Resources/Strings.ja.resx
@@ -4,7 +4,7 @@
PortPane by ShackDesk — UI String Resources
Project : https://github.com/Computer-Tsu/shackdesk-portpane
Author : Mark McDow (N4TEK) — My Computer Guru LLC
- License : MIT / Commercial (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+ License : MIT source code + official builds/services
════════════════════════════════════════════════════════════════════════════
LANGUAGE : Japanese (日本語)
@@ -90,15 +90,15 @@
Settings — PortPane
Send anonymous usage data to help improve PortPane
Learn more about what is collected
- License
- Free (MIT)
- Commercial
+ Registration
+ Standard
+ Registered
About PortPane
Version {0}
By {0} ({1})
- Licensed under MIT / Commercial
+ MIT source code + optional paid services
View on GitHub
Get Support
diff --git a/src/PortPane/Resources/Strings.resx b/src/PortPane/Resources/Strings.resx
index 4768a01..66ee833 100644
--- a/src/PortPane/Resources/Strings.resx
+++ b/src/PortPane/Resources/Strings.resx
@@ -4,7 +4,7 @@
PortPane by ShackDesk — UI String Resources (English — Source File)
Project : https://github.com/Computer-Tsu/shackdesk-portpane
Author : Mark McDow (N4TEK) — My Computer Guru LLC
- License : MIT / Commercial (see LICENSE-MIT.md, LICENSE-COMMERCIAL.md)
+ License : MIT source code + official builds/services
════════════════════════════════════════════════════════════════════════════
LANGUAGE : English (United States)
@@ -99,9 +99,9 @@
Settings — PortPane
Send anonymous usage data to help improve PortPane
Learn more about what is collected
- License
- Free (MIT)
- Commercial
+ Registration
+ Standard
+ Registered
General
@@ -109,7 +109,7 @@
COM Ports
Updates
Privacy
- License
+ Registration
_OK
@@ -229,19 +229,19 @@ Reports never include callsign, name, IP address, hostname, or audio content.Alpha
Beta
In {0} days
- Drop .portpane license file here or click to browse
- PortPane License (*.portpane)|*.portpane
- License files are validated offline.
+ Drop a .portpane registration file here or click to browse
+ PortPane Registration (*.portpane)|*.portpane
+ Registration files are validated offline.
No internet connection required.
- Get a License
- Personal / Commercial
- Club / EMCOMM
+ Registration & Support
+ Personal registration
+ Club / EMCOMM registration
Support the project
- Invalid signature — this license key was not issued by ShackDesk.
- Wrong application — this license is not for PortPane.
- License expired and is no longer valid.
- License file could not be read or is corrupt.
- Free (MIT)
+ Invalid signature — this registration file was not issued by ShackDesk.
+ Wrong application — this registration file is not for PortPane.
+ Registration expired and is no longer valid.
+ Registration file could not be read or is corrupt.
+ Standard
Personal
Club
EMCOMM
@@ -251,7 +251,7 @@ No internet connection required.
This will remove all your customizations and saved preferences. The next time PortPane starts it will be as if you are running it for the first time.
The following file will be permanently deleted:
The following will NOT be affected:
- Your license key (useful for future reinstalls):
+ Your registration file (useful for future reinstalls):
Your log files (useful if you need to report a problem after reset):
I understand this will permanently delete my settings and restart PortPane
Check the box above to enable Reset Settings
@@ -277,7 +277,7 @@ Would you like to relaunch PortPane now?
About PortPane
Version {0}
By {0} ({1})
- Licensed under MIT / Commercial
+ MIT source code + optional paid services
View on GitHub
Get Support
diff --git a/src/PortPane/ViewModels/SettingsViewModel.cs b/src/PortPane/ViewModels/SettingsViewModel.cs
index a595495..8e4b2c1 100644
--- a/src/PortPane/ViewModels/SettingsViewModel.cs
+++ b/src/PortPane/ViewModels/SettingsViewModel.cs
@@ -767,11 +767,11 @@ public string PendingTelemetryFrequency
public string LicenseTierDisplayName => _license.Current.Tier switch
{
- LicenseTier.Free => "Free (MIT)",
+ LicenseTier.Free => "Standard",
LicenseTier.Personal => "Personal",
LicenseTier.Club => "Club",
LicenseTier.EmComm => "EMCOMM",
- _ => "Free (MIT)"
+ _ => "Standard"
};
public string LicenseeDisplay => _license.Current.Licensee ?? string.Empty;
@@ -798,8 +798,8 @@ private async Task BrowseLicenseFileAsync()
{
var dlg = new OpenFileDialog
{
- Title = "Select License File",
- Filter = "PortPane License|*.portpane",
+ Title = "Select Registration File",
+ Filter = "PortPane Registration|*.portpane",
CheckFileExists = true,
};
@@ -829,11 +829,11 @@ private async Task InstallLicenseFromFileAsync(string filePath)
{
LicenseInstallErrorText = result.ErrorMessage switch
{
- "file_unreadable" => "Could not read the license file.",
- "wrong_app" => "This license is not for PortPane.",
- "invalid_signature" => "License signature is invalid.",
- "expired" => "This license has expired.",
- _ => $"License error: {result.ErrorMessage}"
+ "file_unreadable" => "Could not read the registration file.",
+ "wrong_app" => "This registration file is not for PortPane.",
+ "invalid_signature" => "Registration signature is invalid.",
+ "expired" => "This registration has expired.",
+ _ => $"Registration error: {result.ErrorMessage}"
};
}
}
diff --git a/src/PortPane/Views/AboutDialog.xaml.cs b/src/PortPane/Views/AboutDialog.xaml.cs
index 9d83dbe..40170b0 100644
--- a/src/PortPane/Views/AboutDialog.xaml.cs
+++ b/src/PortPane/Views/AboutDialog.xaml.cs
@@ -17,10 +17,10 @@ public AboutDialog(ILicenseService license, ISettingsService settings)
_settings = settings;
SupportIdText.Text = _settings.Current.InstallId;
- // Show licensee name for paid tiers
+ // Show registration holder for paid tiers
if (license.Current.Tier != LicenseTier.Free)
{
- LicenseeBlock.Text = $"Licensed to: {license.Current.Licensee}";
+ LicenseeBlock.Text = $"Registered to: {license.Current.Licensee}";
LicenseeBlock.Visibility = Visibility.Visible;
SupportBlock.Visibility = Visibility.Collapsed;
}
diff --git a/src/PortPane/Views/Dialogs/ResetConfirmDialog.xaml b/src/PortPane/Views/Dialogs/ResetConfirmDialog.xaml
index 229a699..a8c15b5 100644
--- a/src/PortPane/Views/Dialogs/ResetConfirmDialog.xaml
+++ b/src/PortPane/Views/Dialogs/ResetConfirmDialog.xaml
@@ -50,12 +50,12 @@
Margin="0,0,0,8"
Text="The following will NOT be affected:"/>
-
+
+ Text="Your registration file (useful for future reinstalls):"/>
+ Text="PortPane source code is licensed under MIT. Paid registration, personalization, and support are optional."/>
diff --git a/src/PortPane/Views/FirstRunDialog.xaml.cs b/src/PortPane/Views/FirstRunDialog.xaml.cs
index 1d02245..60c645e 100644
--- a/src/PortPane/Views/FirstRunDialog.xaml.cs
+++ b/src/PortPane/Views/FirstRunDialog.xaml.cs
@@ -28,7 +28,7 @@ private void GetStarted_Click(object sender, RoutedEventArgs e)
}
private void License_Click(object sender, RoutedEventArgs e)
- => Process.Start(new ProcessStartInfo(BrandingInfo.RepoURL + "/blob/main/LICENSE-MIT.md")
+ => Process.Start(new ProcessStartInfo(BrandingInfo.SourceLicenseURL)
{ UseShellExecute = true });
private void Privacy_Click(object sender, RoutedEventArgs e)
diff --git a/src/PortPane/Views/SettingsWindow.xaml b/src/PortPane/Views/SettingsWindow.xaml
index 5132b93..0c177ef 100644
--- a/src/PortPane/Views/SettingsWindow.xaml
+++ b/src/PortPane/Views/SettingsWindow.xaml
@@ -428,12 +428,12 @@
-
-
+
+
-
+
@@ -443,14 +443,14 @@
-
-
-
+
-
+
-
-
-
-
-
+
-
-