From 08f5a3243bd1ae917f2df4a1f4870ffc0ae82330 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Wed, 2 Sep 2026 10:01:48 +0100 Subject: [PATCH 1/2] chore(license): migrate PMPL scaffold emissions to MPL-2.0 per owner ruling Retire Palimpsest/PMPL license text, SPDX headers, badges, and gate greps from this repo and from the templates it stamps into other repos (LICENSE.txt.template, ai.txt/humans.txt/provenance.json templates, CITATION/CITATIONS templates, hooks, guix.scm, and the mass-apply-templates.sh / apply-common-files.sh / generate-badges.sh emitters). LICENSE.txt.template now emits the canonical MPL-2.0 text fetched from mozilla.org. The dead hyperpolymath/pmpl LICENSE curl in the k9 example is repointed at the canonical MPL-2.0 source. License gate greps (contractile.just, Trustfile.a2ml) now use a license-agnostic positive match plus an explicit palimpsest exclusion instead of accepting PMPL. Deliberate survivors (not touched): the "palimpsest" repo-name key and "palimpsest" color-scheme identifier in mass-apply-templates.sh and the wordpress templates (branding for the sibling hyperpolymath/palimpsest-license repo, not a license claim); the Philosophy badges in README.adoc and PROTOTYPE.adoc crediting that same sibling repo; the AGENTIC.a2ml governance comment naming an estate-wide policy rule register; a stale .hypatia scan-cache hash keyed on the old PALIMPSEST.adoc content. Owner ruling 2026-09-02: MPL-2.0 for code, CC-BY-SA-4.0 for docs; estate PMPL sweep Tier 2 (scaffold engines). Co-Authored-By: Claude Fable 5 --- .machine_readable/contractiles/Trustfile.a2ml | 2 +- .../examples/setup-repo.k9.ncl | 4 +- .well-known/ai.txt | 1 - .well-known/humans.txt | 2 +- NOTICE | 25 +- PALIMPSEST.adoc | 34 +- PROTOTYPE.adoc | 5 +- RSR_OUTLINE.adoc | 6 +- contractile.just | 2 +- docs/BADGE_SCHEMA.adoc | 14 +- docs/DIRECTORY_STRUCTURE.adoc | 15 +- docs/MAAF_INTEGRATION.adoc | 2 +- docs/REPO_STANDARDIZATION.adoc | 2 +- docs/ZOTERHO_INTEGRATION.adoc | 2 +- guix.scm | 2 +- scripts/apply-common-files.sh | 2 +- scripts/generate-badges.sh | 2 +- scripts/github-bulk-settings.sh | 2 +- scripts/mass-apply-templates.sh | 6 +- scripts/reconcile-wharf-repos.sh | 2 +- templates/.well-known/ai.txt.template | 2 +- templates/.well-known/humans.txt.template | 2 +- .../.well-known/provenance.json.template | 2 +- templates/CITATION.cff.template | 2 +- templates/CITATIONS.adoc.template | 6 +- templates/LICENSE.txt.template | 407 +++++++++++++++--- templates/RSR_COMPLIANCE.adoc.template | 2 +- templates/STATE-bunsenite.scm.template | 2 +- templates/STATE-zoterho-template.scm.template | 4 +- templates/aibdp.json.template | 4 +- templates/dc.xml.template | 4 +- templates/hooks/install-hooks.sh | 2 +- templates/hooks/post-receive.template | 2 +- templates/hooks/pre-commit.template | 2 +- templates/hooks/pre-push.template | 2 +- templates/justfile-hooks.template | 2 +- templates/rsr-metadata.ncl | 2 +- templates/wordpress/justfile.template | 2 +- .../wordpress/sinople-deployment.template | 2 +- 39 files changed, 438 insertions(+), 147 deletions(-) diff --git a/.machine_readable/contractiles/Trustfile.a2ml b/.machine_readable/contractiles/Trustfile.a2ml index e2028b5..7dce38f 100644 --- a/.machine_readable/contractiles/Trustfile.a2ml +++ b/.machine_readable/contractiles/Trustfile.a2ml @@ -54,7 +54,7 @@ Current trust level: maximal #### license-content - description: LICENSE contains expected identifier -- run: grep -q 'PMPL\|MPL\|MIT\|Apache\|LGPL' LICENSE +- run: "grep -qiE 'Mozilla Public License|MIT License|Apache License|General Public License|Creative Commons' LICENSE && ! grep -qi palimpsest LICENSE" - severity: warning ## Template-Specific Trust diff --git a/.machine_readable/self-validating/examples/setup-repo.k9.ncl b/.machine_readable/self-validating/examples/setup-repo.k9.ncl index 358f18d..f863b72 100644 --- a/.machine_readable/self-validating/examples/setup-repo.k9.ncl +++ b/.machine_readable/self-validating/examples/setup-repo.k9.ncl @@ -130,9 +130,9 @@ K9! }, "add-license" = { - description = "Add PMPL-1.0 license", + description = "Add MPL-2.0 license", commands = [ - "curl -sL https://raw.githubusercontent.com/hyperpolymath/pmpl/main/LICENSE -o LICENSE", + "curl -sL https://www.mozilla.org/media/MPL/2.0/index.txt -o LICENSE", "echo '✓ License added'", ], }, diff --git a/.well-known/ai.txt b/.well-known/ai.txt index 334b406..d278c10 100644 --- a/.well-known/ai.txt +++ b/.well-known/ai.txt @@ -10,7 +10,6 @@ Disallow-Generation: yes # This project's code is licensed under MPL-2.0. # AI agents may read and analyze this code for assisting contributors. # AI agents must NOT use this code for model training without explicit consent. -# AI agents must preserve Emotional Lineage per PMPL Section 3. # # For AI agent integration instructions, see: # 0-AI-MANIFEST.a2ml (universal AI entry point) diff --git a/.well-known/humans.txt b/.well-known/humans.txt index 5b6216d..a997582 100644 --- a/.well-known/humans.txt +++ b/.well-known/humans.txt @@ -9,6 +9,6 @@ From: United Kingdom /* SITE */ Last update: 2026-03-28 Standards: RSR (Rhodium Standard Repository) -License: MPL-2.0 (Palimpsest MPL) +License: MPL-2.0 Components: Idris2 ABI, Zig FFI Tools: just, Podman, Guix diff --git a/NOTICE b/NOTICE index e047656..02608b8 100644 --- a/NOTICE +++ b/NOTICE @@ -1,22 +1,19 @@ Licensing Notice ================ -This project is authored by Jonathan D.A. Jewell (hyperpolymath) and -is licensed under the Palimpsest License (MPL-2.0). +This project is authored by Jonathan D.A. Jewell (hyperpolymath) and is +licensed under the Mozilla Public License 2.0 (MPL-2.0) for code, and the +Creative Commons Attribution-ShareAlike 4.0 International License +(CC-BY-SA-4.0) for documentation. -The MPL-2.0 is a philosophical extension of the Mozilla Public -License 2.0, adding provisions for cryptographic provenance, emotional -lineage preservation, and quantum-safe signatures. The full PMPL text is -available in LICENSES/MPL-2.0.txt. +The full text of each license is available in: + - LICENSE (MPL-2.0) + - LICENSES/MPL-2.0.txt + - LICENSES/CC-BY-SA-4.0.txt -For compatibility with automated license detection tools and platforms -that require OSI-approved licenses, the root LICENSE file contains the -standard Mozilla Public License 2.0 text. This ensures that package -registries, CI systems, and other tooling correctly identify the license. +This ensures that package registries, CI systems, and other tooling +correctly identify the license without ambiguity. The legally binding terms are: - Source files: governed by MPL-2.0 (per SPDX headers) - - Combined works: compatible with MPL-2.0 (per PMPL Section 6) - -For more information about the Palimpsest License: - https://github.com/hyperpolymath/palimpsest-license + - Documentation files: governed by CC-BY-SA-4.0 (per SPDX headers) diff --git a/PALIMPSEST.adoc b/PALIMPSEST.adoc index c2afbcc..bf86745 100644 --- a/PALIMPSEST.adoc +++ b/PALIMPSEST.adoc @@ -1,43 +1,31 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 // Copyright (c) Jonathan D.A. Jewell -= MPL-2.0 += Legal Status :toc: :toc-placement!: -image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: MPL-2.0,link="https://github.com/hyperpolymath/palimpsest-license"] -image:https://img.shields.io/badge/Philosophy-Palimpsest-indigo.svg[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] +image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: MPL-2.0,link="https://opensource.org/licenses/MPL-2.0"] toc::[] == Legal Status -This project is licensed under the **MPL-2.0 License 1.0 (MPL-2.0)**. -For SPDX and tooling, use **MPL-2.0**. +This project is licensed under the **Mozilla Public License 2.0 (MPL-2.0)** +for code and the **Creative Commons Attribution-ShareAlike 4.0 +International License (CC-BY-SA-4.0)** for documentation. -MPL-2.0 incorporates the Mozilla Public License 2.0 by reference and adds -ethical-use, provenance, and lineage requirements. - -== What PMPL Adds - -* **Emotional Lineage** - preserve narrative intent and cultural context -* **Provenance Integrity** - retain attribution and lineage metadata -* **Ethical Use Constraints** - explicit consent for non-interpretive AI training -* **Quantum-Safe Provenance (optional)** - post-quantum signature support +For SPDX and tooling, use `MPL-2.0` (code) or `CC-BY-SA-4.0` (docs). == How to Adopt 1. Include the MPL-2.0 license text in `LICENSE`. 2. Add SPDX headers to source files: + `SPDX-License-Identifier: MPL-2.0` +3. Add SPDX headers to documentation files: `SPDX-License-Identifier: CC-BY-SA-4.0` -3. Add a Palimpsest badge to your README (see `assets/badges/` and `embed/license-blocks/`). - -== Versioning - -See `VERSIONING.adoc` for the release process and the "-or-later" model. -The current legal text is MPL-2.0. == References -* `legal/README.adoc` -* `assets/badges/README.md` -* `embed/license-blocks/README.md` +* `NOTICE` +* `LICENSES/MPL-2.0.txt` +* `LICENSES/CC-BY-SA-4.0.txt` diff --git a/PROTOTYPE.adoc b/PROTOTYPE.adoc index d9d16f6..dd3084a 100644 --- a/PROTOTYPE.adoc +++ b/PROTOTYPE.adoc @@ -74,8 +74,9 @@ repo deliberately defers to them rather than re-deriving ethics locally: "don't grant blanket permission" instinct applied to supply chains. | https://github.com/hyperpolymath/palimpsest-license[*Palimpsest License*] -| The ethical-use licence family this repo ships under; its Exhibit A sets - out shared ethical-use expectations for the code. +| Sibling project exploring ethical-use licensing philosophy. This repo + itself ships under plain MPL-2.0 (code) / CC-BY-SA-4.0 (docs); see + `LICENSE` and `NOTICE`. |=== If you only read one of the above for the ethics rationale, read diff --git a/RSR_OUTLINE.adoc b/RSR_OUTLINE.adoc index 6cd04f2..73ca731 100644 --- a/RSR_OUTLINE.adoc +++ b/RSR_OUTLINE.adoc @@ -2,7 +2,7 @@ // Copyright (c) Jonathan D.A. Jewell = RSR Template Repository -image:[MPL-2.0-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"] +image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: MPL-2.0,link="https://opensource.org/licenses/MPL-2.0"] :toc: :sectnums: @@ -71,7 +71,7 @@ just validate-rsr |Task runner with 50+ recipes |`LICENSE.txt` -|AGPL + Palimpsest dual license +|MPL-2.0 license |`README.adoc` |This file @@ -159,7 +159,7 @@ project/ * `justfile` * `README.adoc` * `RSR_COMPLIANCE.adoc` -* `LICENSE.txt` (AGPL + Palimpsest) +* `LICENSE.txt` (MPL-2.0) * `.well-known/security.txt` * `.well-known/ai.txt` * `.well-known/humans.txt` diff --git a/contractile.just b/contractile.just index 8778b35..4c30f1a 100644 --- a/contractile.just +++ b/contractile.just @@ -62,7 +62,7 @@ trust-verify: trust-license-content trust-no-secrets-committed trust-container-i # LICENSE contains expected SPDX identifier trust-license-content: - grep -q 'SPDX\|License\|MIT\|Apache\|PMPL\|MPL' LICENSE + grep -qiE 'Mozilla Public License|MIT License|Apache License|General Public License|Creative Commons' LICENSE && ! grep -qi palimpsest LICENSE # No .env or credential files in repo trust-no-secrets-committed: diff --git a/docs/BADGE_SCHEMA.adoc b/docs/BADGE_SCHEMA.adoc index 938be4b..53cbdb2 100644 --- a/docs/BADGE_SCHEMA.adoc +++ b/docs/BADGE_SCHEMA.adoc @@ -231,7 +231,7 @@ image:https://img.shields.io/badge/Layer-CLI-orange[CLI] |**License** |Dual license -|image:{badges-url}/License-AGPL%20%2B%20Palimpsest-blue[] +|image:{badges-url}/License-AGPL%20%2B%20MPL--2.0-blue[] |=== ==== Container Badges @@ -255,8 +255,8 @@ image:https://img.shields.io/badge/Security-Trivy%20%2B%20GitLeaks-green[Securit [source,asciidoc] ---- image:https://img.shields.io/badge/License-AGPL%203.0-blue[AGPL 3.0] -image:https://img.shields.io/badge/License-Palimpsest%200.5-green[Palimpsest 0.5] -image:https://img.shields.io/badge/License-AGPL%20OR%20Palimpsest-blue[Dual License] +image:https://img.shields.io/badge/License-MPL--2.0-green[MPL-2.0] +image:https://img.shields.io/badge/License-AGPL%20OR%20MPL--2.0-blue[Dual License] ---- === 6. Security & Governance @@ -315,7 +315,7 @@ image:https://img.shields.io/badge/Phase-Implementation-blue[Phase] image:https://img.shields.io/badge/Maturity-Beta-blue[Maturity] // License -image:https://img.shields.io/badge/License-AGPL%20OR%20Palimpsest-blue[License] +image:https://img.shields.io/badge/License-AGPL%20OR%20MPL--2.0-blue[License] // Build image:https://img.shields.io/badge/Guix-Primary-purple?logo=gnu[Guix] @@ -348,7 +348,7 @@ image:https://img.shields.io/badge/Container-nerdctl-blue[Container] image:https://img.shields.io/badge/CI-GitHub%20%2B%20GitLab-green[CI] // Compliance -image:https://img.shields.io/badge/License-AGPL%20OR%20Palimpsest-blue[License] +image:https://img.shields.io/badge/License-AGPL%20OR%20MPL--2.0-blue[License] image:https://img.shields.io/badge/Security-RFC%209116-green[Security] image:https://img.shields.io/badge/Privacy-GDPR%20Ready-brightgreen[Privacy] ---- @@ -390,7 +390,7 @@ image:https://img.shields.io/badge/CI-GitLab%20CI-FC6D26?logo=gitlab[GitLab] image:https://img.shields.io/badge/Security-Trivy%20%2B%20GitLeaks-green[Scanning] // Compliance Row -image:https://img.shields.io/badge/License-AGPL%20OR%20Palimpsest-blue[License] +image:https://img.shields.io/badge/License-AGPL%20OR%20MPL--2.0-blue[License] image:https://img.shields.io/badge/Security-RFC%209116-green[Security.txt] image:https://img.shields.io/badge/Privacy-GDPR%20Ready-brightgreen[GDPR] image:https://img.shields.io/badge/SBOM-Available-blue[SBOM] @@ -525,7 +525,7 @@ The badge schema should be machine-readable from ECOSYSTEM.scm: (container . (nerdctl wolfi)) (ci . (github-actions gitlab-ci))) ((category . compliance) - (license . (agpl-3 palimpsest-0.5)) + (license . (agpl-3 mpl-2.0)) (security . rfc-9116) (privacy . gdpr-ready)))) ---- diff --git a/docs/DIRECTORY_STRUCTURE.adoc b/docs/DIRECTORY_STRUCTURE.adoc index c0130e4..4ca97a1 100644 --- a/docs/DIRECTORY_STRUCTURE.adoc +++ b/docs/DIRECTORY_STRUCTURE.adoc @@ -26,7 +26,7 @@ project-name/ ├── docs/ # Documentation (required) ├── guix.scm # Guix package definition (required) ├── Justfile # Task runner (required) -├── LICENSE.txt # AGPL + Palimpsest dual license (required) +├── LICENSE.txt # MPL-2.0 license (required) ├── README.adoc # Project overview (required) ├── RSR_COMPLIANCE.adoc # Compliance tracking (required) ├── src/ # Source code (required) @@ -86,16 +86,13 @@ Thumbs.db ---- === LICENSE.txt -Dual license header: +License header: [source] ---- -SPDX-License-Identifier: CC-BY-SA-4.0 +SPDX-License-Identifier: MPL-2.0 -This software is dual-licensed under: -1. GNU Affero General Public License v3.0 or later -2. MPL-2.0 v0.5 - -See LICENSE-AGPL3.txt and LICENSE-PALIMPSEST.txt for full terms. +This software is licensed under the Mozilla Public License 2.0 (MPL-2.0). +See LICENSE for full terms. ---- === README.adoc @@ -127,7 +124,7 @@ See link:docs/[docs/] for full documentation. == License -MPL-2.0 OR Palimpsest-0.5 +MPL-2.0 ---- == Required Directories diff --git a/docs/MAAF_INTEGRATION.adoc b/docs/MAAF_INTEGRATION.adoc index 503af4d..b067153 100644 --- a/docs/MAAF_INTEGRATION.adoc +++ b/docs/MAAF_INTEGRATION.adoc @@ -300,7 +300,7 @@ module Bunsenite = { let loadConsentPolicy = path => Bunsenite.loadNickel(path) ---- -**Licensing**: MIT OR Palimpsest v0.6 (RSR compatible) +**Licensing**: MIT OR MPL-2.0 (RSR compatible) === 8. vext diff --git a/docs/REPO_STANDARDIZATION.adoc b/docs/REPO_STANDARDIZATION.adoc index a597e78..f093059 100644 --- a/docs/REPO_STANDARDIZATION.adoc +++ b/docs/REPO_STANDARDIZATION.adoc @@ -41,7 +41,7 @@ toc::[] * Common ignores: `.DS_Store`, `*.log`, `*.tmp`, `.env` * Language detection adds: `/target/` (Rust), `node_modules/` (JS/TS), etc. -LICENSE.txt:: AGPL-3.0 + Palimpsest v0.4 dual license +LICENSE.txt:: MPL-2.0 license * Standard header referencing both licenses === .well-known/ Directory (ALL REPOS) diff --git a/docs/ZOTERHO_INTEGRATION.adoc b/docs/ZOTERHO_INTEGRATION.adoc index 566b7ed..c90432a 100644 --- a/docs/ZOTERHO_INTEGRATION.adoc +++ b/docs/ZOTERHO_INTEGRATION.adoc @@ -463,7 +463,7 @@ bump-version level="patch": |License |MIT -|MIT + Palimpsest v0.8 +|MIT + MPL-2.0 |Config Language |CUE diff --git a/guix.scm b/guix.scm index 5cf201e..514203f 100644 --- a/guix.scm +++ b/guix.scm @@ -25,4 +25,4 @@ (synopsis "conative-gating") (description "conative-gating — part of the hyperpolymath ecosystem.") (home-page "https://github.com/hyperpolymath/conative-gating") - (license ((@@ (guix licenses) license) "MPL-2.0" "https://github.com/hyperpolymath/palimpsest-license"))) + (license (@ (guix licenses) mpl2.0))) diff --git a/scripts/apply-common-files.sh b/scripts/apply-common-files.sh index 5f7390f..bb027a1 100755 --- a/scripts/apply-common-files.sh +++ b/scripts/apply-common-files.sh @@ -173,7 +173,7 @@ This document describes the Rhodium Standard Repository (RSR) compliance status |.editorconfig present |$ec_check | |.well-known/ directory |$wk_check | |justfile present |$jf_check | -|LICENSE.txt (AGPL + Palimpsest) |$lic_check | +|LICENSE.txt (MPL-2.0) |$lic_check | |Containerfile present |$cont_check | |flake.nix present |$flake_check | |=== diff --git a/scripts/generate-badges.sh b/scripts/generate-badges.sh index 6443c38..5b6e806 100644 --- a/scripts/generate-badges.sh +++ b/scripts/generate-badges.sh @@ -138,7 +138,7 @@ badge "Phase" "$PHASE" "$PHASE_COLOR" badge "Maturity" "$MATURITY" "$MAT_COLOR" echo "" echo "// License" -badge "License" "AGPL OR Palimpsest" "blue" +badge "License" "AGPL OR MPL-2.0" "blue" echo "" if [ "$LEVEL" = "minimal" ]; then diff --git a/scripts/github-bulk-settings.sh b/scripts/github-bulk-settings.sh index 22588fe..42042f9 100644 --- a/scripts/github-bulk-settings.sh +++ b/scripts/github-bulk-settings.sh @@ -9,7 +9,7 @@ SCRIPT_DIR="$(dirname "$0")" OWNER="hyperpolymath" # Common topics for all RSR projects -BASE_TOPICS="rhodium-standard,rsr,agpl-3-0,palimpsest-license" +BASE_TOPICS="rhodium-standard,rsr,agpl-3-0,mpl-2-0" echo "=== Bulk GitHub Settings Configuration ===" echo "Repos directory: $REPOS_DIR" diff --git a/scripts/mass-apply-templates.sh b/scripts/mass-apply-templates.sh index e592a88..9ecb05c 100755 --- a/scripts/mass-apply-templates.sh +++ b/scripts/mass-apply-templates.sh @@ -1,6 +1,6 @@ #!/bin/bash # Mass Apply RSR Templates to All Repositories -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # Usage: # ./mass-apply-templates.sh [--dry-run] [--repos-dir /path/to/repos] @@ -245,7 +245,7 @@ apply_state_scm() { if ! $DRY_RUN; then cat > "$repo_dir/STATE.scm" << EOF ;;; STATE.scm - Project State Checkpoint for $project_name -;;; SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +;;; SPDX-License-Identifier: MPL-2.0 ;;; Generated: $(date -Iseconds) (define-module ($project_slug state) @@ -257,7 +257,7 @@ apply_state_scm() { (slug . "$project_slug") (version . "0.1.0") (author . "$AUTHOR") - (license . "MPL-2.0 OR LicenseRef-Palimpsest-0.5") + (license . "MPL-2.0") (created . "$YEAR")) (rsr diff --git a/scripts/reconcile-wharf-repos.sh b/scripts/reconcile-wharf-repos.sh index 63ad847..3d201dc 100755 --- a/scripts/reconcile-wharf-repos.sh +++ b/scripts/reconcile-wharf-repos.sh @@ -1,6 +1,6 @@ #!/bin/bash # reconcile-wharf-repos.sh - Consolidate wharf repositories -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # This script reconciles the wharf repository situation: # - wharf (GitHub) = Rust infrastructure (KEEP SEPARATE) diff --git a/templates/.well-known/ai.txt.template b/templates/.well-known/ai.txt.template index 5773fed..8e9b80e 100644 --- a/templates/.well-known/ai.txt.template +++ b/templates/.well-known/ai.txt.template @@ -18,7 +18,7 @@ Embedding-Generation: Explicit-Consent-Required # Attribution Requirements Attribution: Required Citation-Style: hyperpolymath/{{PROJECT_NAME}} -License: AGPL-3.0-or-later OR MIT AND Palimpsest-0.4 +License: AGPL-3.0-or-later OR MIT AND MPL-2.0 # Contact for AI/ML Use Contact: ai-consent@hyperpolymath.org diff --git a/templates/.well-known/humans.txt.template b/templates/.well-known/humans.txt.template index 9e9099a..9913a58 100644 --- a/templates/.well-known/humans.txt.template +++ b/templates/.well-known/humans.txt.template @@ -8,7 +8,7 @@ ORCID: 0000-0002-1234-5678 /* THANKS */ Contributors: See CONTRIBUTORS.md Community: Rhodium Standard Initiative -License Philosophy: Palimpsest License +License Philosophy: MPL-2.0 /* SITE */ Last update: {{LAST_UPDATE}} diff --git a/templates/.well-known/provenance.json.template b/templates/.well-known/provenance.json.template index 6ee9d3d..cbb5b6a 100644 --- a/templates/.well-known/provenance.json.template +++ b/templates/.well-known/provenance.json.template @@ -22,7 +22,7 @@ ], "license": { "spdx": "AGPL-3.0-or-later", - "philosophy": "Palimpsest-0.4", + "philosophy": "MPL-2.0", "file": "LICENSE.txt" }, "consent": { diff --git a/templates/CITATION.cff.template b/templates/CITATION.cff.template index 69767e8..562073e 100644 --- a/templates/CITATION.cff.template +++ b/templates/CITATION.cff.template @@ -1,6 +1,6 @@ # CITATION.cff - Citation File Format for {{PROJECT_NAME}} # https://citation-file-format.github.io/ -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # Pre-formatted citations available in docs/CITATIONS.adoc diff --git a/templates/CITATIONS.adoc.template b/templates/CITATIONS.adoc.template index 2d1dbf5..8911609 100644 --- a/templates/CITATIONS.adoc.template +++ b/templates/CITATIONS.adoc.template @@ -1,7 +1,7 @@ = {{PROJECT_NAME}} - Citation Guide :toc: :sectnums: -// SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +// SPDX-License-Identifier: MPL-2.0 == Quick Copy Citations @@ -127,7 +127,7 @@ For project websites, include these Open Graph and Twitter Card tags: - + @@ -185,7 +185,7 @@ The GitHub repository includes proper `` tags for Zotero's web connector t == License for Citations -All citation formats in this document are provided under CC0 (public domain) for ease of use. The software itself remains under MPL-2.0 OR LicenseRef-Palimpsest-0.5. +All citation formats in this document are provided under CC0 (public domain) for ease of use. The software itself remains under MPL-2.0. == See Also diff --git a/templates/LICENSE.txt.template b/templates/LICENSE.txt.template index 5f55773..15516eb 100644 --- a/templates/LICENSE.txt.template +++ b/templates/LICENSE.txt.template @@ -1,67 +1,376 @@ -SPDX-License-Identifier: MPL-2.0 AND Palimpsest-0.4 +SPDX-License-Identifier: MPL-2.0 SPDX-FileCopyrightText: 2024-2025 Jonathan D.A. Jewell -================================================================================ -DUAL LICENSE: MPL-2.0 AND PALIMPSEST LICENSE v0.4 -================================================================================ +Mozilla Public License Version 2.0 +================================== -This project is dual-licensed. You may choose to use, copy, modify, and -distribute this work under the terms of either license. +1. Definitions +-------------- --------------------------------------------------------------------------------- -GNU AFFERO GENERAL PUBLIC LICENSE v3.0 (or later) --------------------------------------------------------------------------------- +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. -Copyright (C) 2024-2025 Jonathan D.A. Jewell +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. +1.3. "Contribution" + means Covered Software of a particular Contributor. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . +1.5. "Incompatible With Secondary Licenses" + means -Full text: https://www.gnu.org/licenses/agpl-3.0.txt + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or --------------------------------------------------------------------------------- -PALIMPSEST LICENSE v0.4 --------------------------------------------------------------------------------- + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. -The Palimpsest License v0.4 is a future-proof, layered licensing framework -designed for creative work in the age of AI. It protects creators while -addressing modern challenges like AI training, emotional lineage, and -quantum-proof traceability. +1.6. "Executable Form" + means any form of the work other than Source Code Form. -Governing Law: Netherlands (Book 6, Dutch Civil Code) -Enforcement Venue: Scotland (via Hague Convention, 2005) -Binding Languages: Dutch (primary legal), English (informative) +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. -Key Protection Mechanisms: - - Clause 1.2: Non-Interpretive (NI) systems require explicit consent - - Clause 2.3: Metadata preservation is mandatory - - Emotional Lineage: Protects narrative intent and cultural context - - Quantum-Proof Traceability: Future-proofs attribution mechanisms +1.8. "License" + means this document. -Full text: https://github.com/palimpsest-license/palimpsest-license +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. --------------------------------------------------------------------------------- -CHOOSING YOUR LICENSE --------------------------------------------------------------------------------- +1.10. "Modifications" + means any of the following: -You may choose to use this work under: - 1. MPL-2.0 only (copyleft, network use triggers sharing) - 2. Palimpsest License v0.4 only (enhanced protections for creative work) - 3. Both licenses simultaneously (maximum compatibility and protection) + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or -For derivative works: - - Network services: MPL-2.0 applies - - Creative/narrative content: Palimpsest License recommended - - Mixed projects: Dual licensing provides flexibility + (b) any new file in Source Code Form that contains any Covered + Software. -================================================================================ +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. diff --git a/templates/RSR_COMPLIANCE.adoc.template b/templates/RSR_COMPLIANCE.adoc.template index 66b6a1d..b3d092d 100644 --- a/templates/RSR_COMPLIANCE.adoc.template +++ b/templates/RSR_COMPLIANCE.adoc.template @@ -50,7 +50,7 @@ This document describes the Rhodium Standard Repository (RSR) compliance status |.editorconfig present |{{EDITORCONFIG_CHECK}} | |.well-known/ directory |{{WELLKNOWN_CHECK}} | |justfile present |{{JUSTFILE_CHECK}} | -|LICENSE.txt (AGPL + Palimpsest) |{{LICENSE_CHECK}} | +|LICENSE.txt (MPL-2.0) |{{LICENSE_CHECK}} | |Containerfile present |{{CONTAINER_CHECK}} | |flake.nix present |{{FLAKE_CHECK}} | |=== diff --git a/templates/STATE-bunsenite.scm.template b/templates/STATE-bunsenite.scm.template index 2bd57a4..df514bf 100644 --- a/templates/STATE-bunsenite.scm.template +++ b/templates/STATE-bunsenite.scm.template @@ -95,7 +95,7 @@ (features . ("Stable API" "Full documentation" "Production ready"))))) (licensing - (spdx . "MIT OR LicenseRef-Palimpsest-0.6") + (spdx . "MIT OR MPL-2.0") (rsr-compatible . #t)) (notes diff --git a/templates/STATE-zoterho-template.scm.template b/templates/STATE-zoterho-template.scm.template index e7ec703..98f9688 100644 --- a/templates/STATE-zoterho-template.scm.template +++ b/templates/STATE-zoterho-template.scm.template @@ -1,5 +1,5 @@ ;;; STATE.scm - Project State Checkpoint for zoterho-template -;;; SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +;;; SPDX-License-Identifier: MPL-2.0 ;;; Generated: {{GENERATED_DATE}} (define-module (zoterho-template state) @@ -11,7 +11,7 @@ (slug . "zoterho-template") (version . "{{VERSION}}") (author . "Jonathan D.A. Jewell") - (license . "MIT OR LicenseRef-Palimpsest-0.8") + (license . "MIT OR MPL-2.0") (created . "2024")) (rsr diff --git a/templates/aibdp.json.template b/templates/aibdp.json.template index ab2776d..6302c81 100644 --- a/templates/aibdp.json.template +++ b/templates/aibdp.json.template @@ -29,7 +29,7 @@ "status": "conditional", "conditions": [ "Link to original repository", - "Preserve AGPL or Palimpsest license", + "Preserve AGPL or MPL-2.0 license", "No deceptive or misleading use" ] }, @@ -45,7 +45,7 @@ }, "provenance": { "repository": "https://github.com/hyperpolymath/{{PROJECT_NAME}}", - "license": "MPL-2.0 OR LicenseRef-Palimpsest-0.5", + "license": "MPL-2.0", "citation": "CITATION.cff" }, "extensions": { diff --git a/templates/dc.xml.template b/templates/dc.xml.template index 48c9c76..6482d29 100644 --- a/templates/dc.xml.template +++ b/templates/dc.xml.template @@ -2,7 +2,7 @@ @@ -29,7 +29,7 @@ en https://rhodium.sh Global - MPL-2.0 OR LicenseRef-Palimpsest-0.5 + MPL-2.0 {{DESCRIPTION}} diff --git a/templates/hooks/install-hooks.sh b/templates/hooks/install-hooks.sh index c9f87d5..ed4df58 100644 --- a/templates/hooks/install-hooks.sh +++ b/templates/hooks/install-hooks.sh @@ -1,6 +1,6 @@ #!/usr/bin/env bash # RSR Git Hook Installer -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # Installs RSR standard git hooks from templates. # Usage: ./install-hooks.sh [--all | hook-name ...] diff --git a/templates/hooks/post-receive.template b/templates/hooks/post-receive.template index 3ed89bf..eacddda 100644 --- a/templates/hooks/post-receive.template +++ b/templates/hooks/post-receive.template @@ -1,7 +1,7 @@ #!/usr/bin/env bash # RSR Standard Post-receive Hook - IRC Notifications # Future: #!/usr/bin/env vsh -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # Sends commit notifications to IRC via irker/vext. # Install: cp hooks/post-receive .git/hooks/ && chmod +x .git/hooks/post-receive diff --git a/templates/hooks/pre-commit.template b/templates/hooks/pre-commit.template index 6fb9bf0..40208af 100644 --- a/templates/hooks/pre-commit.template +++ b/templates/hooks/pre-commit.template @@ -1,7 +1,7 @@ #!/usr/bin/env bash # RSR Standard Pre-commit Hook # Future: #!/usr/bin/env vsh -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # This hook validates RSR compliance before commits. # Install: cp hooks/pre-commit .git/hooks/ && chmod +x .git/hooks/pre-commit diff --git a/templates/hooks/pre-push.template b/templates/hooks/pre-push.template index 9077449..3120be2 100644 --- a/templates/hooks/pre-push.template +++ b/templates/hooks/pre-push.template @@ -1,7 +1,7 @@ #!/usr/bin/env bash # RSR Standard Pre-push Hook # Future: #!/usr/bin/env vsh -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # # Runs tests and security checks before pushing. # Install: cp hooks/pre-push .git/hooks/ && chmod +x .git/hooks/pre-push diff --git a/templates/justfile-hooks.template b/templates/justfile-hooks.template index 45fed33..b9ab612 100644 --- a/templates/justfile-hooks.template +++ b/templates/justfile-hooks.template @@ -1,6 +1,6 @@ # RSR Git Hooks Management # Add these recipes to your justfile for hook management -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # === Git Hooks === diff --git a/templates/rsr-metadata.ncl b/templates/rsr-metadata.ncl index 8cc973b..a9247f8 100644 --- a/templates/rsr-metadata.ncl +++ b/templates/rsr-metadata.ncl @@ -11,7 +11,7 @@ version | String | default = "0.1.0", author | String | default = "Jonathan D.A. Jewell", email | String | default = "j.d.a.jewell@open.ac.uk", - license | String | default = "MPL-2.0 OR LicenseRef-Palimpsest-0.5", + license | String | default = "MPL-2.0", domain | String, tags | Array String | default = ["RSR", "Rhodium Standard"], created | String, diff --git a/templates/wordpress/justfile.template b/templates/wordpress/justfile.template index 3572454..a19959a 100644 --- a/templates/wordpress/justfile.template +++ b/templates/wordpress/justfile.template @@ -1,5 +1,5 @@ # Sinople WordPress Deployment Justfile -# SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 +# SPDX-License-Identifier: MPL-2.0 # Project: {{PROJECT_NAME}} # === Variables === diff --git a/templates/wordpress/sinople-deployment.template b/templates/wordpress/sinople-deployment.template index 4080770..7124a75 100644 --- a/templates/wordpress/sinople-deployment.template +++ b/templates/wordpress/sinople-deployment.template @@ -1,6 +1,6 @@ {{!-- Sinople WordPress Deployment Template - SPDX-License-Identifier: MPL-2.0 OR LicenseRef-Palimpsest-0.5 + SPDX-License-Identifier: MPL-2.0 This template generates WordPress deployment configs for RSR projects. Uses Sinople theme with project-specific color schemes. From 692155774eeed22bd59d869bfada683845b6b25d Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Wed, 2 Sep 2026 12:31:36 +0100 Subject: [PATCH 2/2] fix(rsr): harden emitted licence download against HTTP error bodies Same review fix as contractiles/rsr-template-how-to: curl -sSfL to a temp file, verify the MPL-2.0 header before moving it into place, so a failed download can never leave an error page as LICENSE. Co-Authored-By: Claude Fable 5 --- .machine_readable/self-validating/examples/setup-repo.k9.ncl | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.machine_readable/self-validating/examples/setup-repo.k9.ncl b/.machine_readable/self-validating/examples/setup-repo.k9.ncl index f863b72..d97907b 100644 --- a/.machine_readable/self-validating/examples/setup-repo.k9.ncl +++ b/.machine_readable/self-validating/examples/setup-repo.k9.ncl @@ -132,7 +132,9 @@ K9! "add-license" = { description = "Add MPL-2.0 license", commands = [ - "curl -sL https://www.mozilla.org/media/MPL/2.0/index.txt -o LICENSE", + "curl -sSfL https://www.mozilla.org/media/MPL/2.0/index.txt -o LICENSE.tmp", + "grep -q 'Mozilla Public License Version 2.0' LICENSE.tmp", + "mv LICENSE.tmp LICENSE", "echo '✓ License added'", ], },