Skip to content

Commit 5f6dc0d

Browse files
hyperpolymathJonathan D.A. Jewellclaude
authored
iseriser: normalize licensing to MPL-2.0 (code) + CC-BY-SA-4.0 (docs) (#68)
* iseriser: make Phase 0 ABI proofs genuinely compile and verify The hand-written Idris2 ABI was never compiler-checked and did not typecheck under Idris2 0.7.0. Make the foundation real and machine-verified. Layout.idr - Discharge the two open holes: ?fieldsAlignedProof and ?offsetInBoundsProof. - Add a sound decDivides decision procedure (builds genuine m = k*n witnesses) and decFieldsAligned; checkCABI now returns a real CABICompliant proof or an error. - offsetInBounds had an unsound signature (claimed every field fits any layout); make it an honest decidable Maybe. - Fix paddingFor (Nat has no Neg; use minus) and give the three concrete struct layouts explicit alignment witnesses. - Replace alignUpCorrect's non-compiling Refl proof with a sound alignUpDivides decision; the general lemma is noted as residual work. Types.idr - FullyResolved and GenerationComplete carried no obligation; give them real So-proofs (no {{/}} markers remain; all seven categories present). - thisPlatform was a %runElab stub needing ElabReflection; make it total. - DecEq Result used `No absurd` with no Uninhabited instance; discharge the off-diagonal cases explicitly. - createHandle left the auto So (ptr /= 0) unsolved; use choose. Proofs.idr (new) - Machine-checked theorems: the three concrete FFI struct layouts are provably C-ABI aligned; Result→C-int pins; generation-completeness. Structure / tooling - Move ABI into src/interface/abi/Iseriser/ABI/ so it builds as an Idris2 package (matches the chapeliser layout); add iseriser-abi.ipkg. - Add `just proofs` recipe; ignore Idris build artifacts. - verification/proofs/ now documents and points at the verified proofs. Verified: `idris2 --build iseriser-abi.ipkg` clean (0 warnings); cargo test green (57 unit + 9 integration). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DF9CcCuL4YJoqs26eHsYiA * Add SPDX header to LICENSE and set Cargo.toml license field The governance/licence-consistency check requires an SPDX-License-Identifier header on the LICENSE file and a `license` field in the manifest. The LICENSE body is MPL-2.0 text, so stamp `SPDX-License-Identifier: MPL-2.0` (matching the actual body) and set `license = "MPL-2.0"` (replacing `license-file`). Verified with standards/scripts/check-licence-consistency.sh (passes). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DF9CcCuL4YJoqs26eHsYiA * iseriser: normalize licensing to MPL-2.0 (code) + CC-BY-SA-4.0 (docs) Make the repo's licensing story single and consistent: code/config under MPL-2.0, documentation prose under CC-BY-SA-4.0, with both full texts in LICENSES/ and the MPL-2.0 LICENSE at root for GitHub's licence chip. - README: replace the PMPL-1.0/Palimpsest-Covenant badges and the "Licensed under the Palimpsest License" footer with MPL-2.0 (code) + CC-BY-SA-4.0 (docs) badges/text linking LICENSES/. - dep5: add a docs carve-out (*.adoc, *.md, docs/**) -> CC-BY-SA-4.0 so the two-SPDX split is actually encoded (was *-> MPL-2.0 with no docs split). - Remove contradictory self-licence claims from QUICKSTART-MAINTAINER.adoc, docs/RSR_OUTLINE.adoc, docs/STATE-VISUALIZER.adoc, rhodibot.yml comments, and the two Trustfile LICENSE-content checks. - Preserve legitimate non-self references: cargo-deny's AGPL deny-list, the "never use AGPL" estate policy, and the Contributor Covenant CoC. Verified: standards/scripts/check-licence-consistency.sh passes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01DF9CcCuL4YJoqs26eHsYiA --------- Co-authored-by: Jonathan D.A. Jewell <paraordinate@yahoo.co.uk> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 6f102af commit 5f6dc0d

8 files changed

Lines changed: 18 additions & 14 deletions

File tree

.github/workflows/rhodibot.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
# Reads root-hygiene rules and auto-fixes what it can:
55
# - Delete banned files (AI.djot, duplicate CONTRIBUTING.adoc, stale snapshots)
66
# - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml)
7-
# - Fix SPDX headers (AGPL → PMPL in dotfiles)
7+
# - Fix SPDX headers (AGPL → MPL-2.0 in dotfiles)
88
# - Create missing required files (SECURITY.md, CONTRIBUTING.md)
99
# - Report unfixable issues as PR comments
1010
#
@@ -87,7 +87,7 @@ jobs:
8787
for dotfile in .gitignore .gitattributes .editorconfig; do
8888
if [ -f "$dotfile" ] && grep -q "AGPL-3.0" "$dotfile" 2>/dev/null; then
8989
sed -i 's/AGPL-3.0-or-later/MPL-2.0/g; s/AGPL-3.0/MPL-2.0/g' "$dotfile"
90-
FIXES="$FIXES\n- Fixed SPDX header in \`$dotfile\` (AGPL → PMPL)"
90+
FIXES="$FIXES\n- Fixed SPDX header in \`$dotfile\` (AGPL → MPL-2.0)"
9191
CHANGED=true
9292
fi
9393
done

.machine_readable/compliance/reuse/dep5

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,10 @@ License: MPL-2.0
5252
Files: cliff.toml
5353
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
5454
License: MPL-2.0
55+
56+
# Documentation prose is CC-BY-SA-4.0 (code/config is MPL-2.0).
57+
# Last-match-wins in the Debian copyright format, so this overrides the
58+
# `Files: *` default above for prose docs.
59+
Files: *.adoc *.md docs/* docs/**/*
60+
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
61+
License: CC-BY-SA-4.0

.machine_readable/contractiles/trust/Trustfile.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ is traceable.
3434

3535
### license-content
3636
- description: LICENSE contains expected identifier
37-
- run: grep -q 'PMPL\|MPL\|MIT\|Apache\|LGPL' LICENSE
37+
- run: grep -q 'MPL-2.0' LICENSE
3838
- severity: warning
3939

4040
## Container Security

QUICKSTART-MAINTAINER.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ Or via OPSM: `opsm update {{PACKAGE_NAME}}`
106106

107107
== Security Notes
108108

109-
* License: MPL-2.0 (Palimpsest License)
109+
* License: MPL-2.0 (code) / CC-BY-SA-4.0 (docs)
110110
* All dependencies SHA-pinned
111111
* `panic-attacker` scan results: link:INSTALL-SECURITY-REPORT.adoc[]
112112
* OpenSSF Scorecard: see badge in README

README.md

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0
33
SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
44
-->
55

6-
[![License: MPL-2.0](https://img.shields.io/badge/license-PMPL--1.0--or--later-blue)](LICENSE) ![Palimpsest
7-
Covenant](https://img.shields.io/badge/Palimpsest-Covenant-purple) ![29
6+
[![License: MPL-2.0](https://img.shields.io/badge/license-MPL--2.0-blue)](LICENSE) [![Docs: CC-BY-SA-4.0](https://img.shields.io/badge/docs-CC--BY--SA--4.0-blue)](LICENSES/CC-BY-SA-4.0.txt) ![29
87
repos](https://img.shields.io/badge/-iser_family-29_repos-brightgreen)
98
![Idris2 ABI](https://img.shields.io/badge/ABI-Idris2-red) ![Zig
109
FFI](https://img.shields.io/badge/FFI-Zig-orange)
@@ -303,9 +302,7 @@ Hypatia neurosymbolic scanning.
303302

304303
# License
305304

306-
SPDX-License-Identifier: `MPL-2.0`
305+
Code is licensed under `MPL-2.0`; documentation under `CC-BY-SA-4.0`.
306+
Full licence texts are in [`LICENSES/`](LICENSES/).
307307

308308
Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath)
309-
310-
Licensed under the [Palimpsest
311-
License](https://github.com/hyperpolymath/palimpsest-license).

contractiles/trust/Trustfile.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ Maximal trust by default — LLM may read, build, test, lint, format.
1616

1717
### license-content
1818
- description: LICENSE contains expected SPDX identifier
19-
- run: grep -q 'SPDX\|License\|MIT\|Apache\|PMPL\|MPL' LICENSE
19+
- run: grep -q 'SPDX\|MPL-2.0' LICENSE
2020
- severity: critical
2121

2222
### no-secrets-committed

docs/RSR_OUTLINE.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
= RSR Template Repository
22

3-
image:[Palimpsest-MPL-1.0,link="https://github.com/hyperpolymath/palimpsest-license"] image:[Palimpsest,link="https://github.com/hyperpolymath/palimpsest-license"]
3+
image:https://img.shields.io/badge/license-MPL--2.0-blue[MPL-2.0,link="LICENSES/MPL-2.0.txt"] image:https://img.shields.io/badge/docs-CC--BY--SA--4.0-blue[CC-BY-SA-4.0,link="LICENSES/CC-BY-SA-4.0.txt"]
44
:toc:
55
:sectnums:
66

@@ -78,7 +78,7 @@ just validate-rsr
7878
|Container build (Wolfi base, Podman)
7979

8080
|`LICENSE`
81-
|MPL-2.0 (Palimpsest MPL)
81+
|MPL-2.0 (code) / CC-BY-SA-4.0 (docs)
8282

8383
|`EXHIBIT-A-ETHICAL-USE.txt`
8484
|Ethical use guidelines (LICENSE Exhibit A)

docs/STATE-VISUALIZER.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ CONTAINER ECOSYSTEM (Phase 2)
8787
8888
REPO INFRASTRUCTURE
8989
.machine_readable/ ██████████ 100% STATE/META/ECOSYSTEM active
90-
Governance & License ██████████ 100% PMPL & Ethical use verified
90+
Governance & License ██████████ 100% MPL-2.0 & Ethical use verified
9191
Development Shells (Nix/Guix) ██████████ 100% Reproducible env stable
9292
9393
─────────────────────────────────────────────────────────────────────────────

0 commit comments

Comments
 (0)