Repository navigation
fix(license): ship the canonical CERN-OHL-W-2.0 text (the file carried the S preamble) - #177
Merged
Merged
Conversation
…d the S preamble) The root LICENSE and 12 per-cartridge copies were titled "Weakly Reciprocal" but carried the CERN-OHL-S-2.0 body (preamble, 1.1, 1.2, section 4, no External Material definition). GitHub classified the repo as CERN-OHL-S-2.0, while every manifest and ADR-011 declare CERN-OHL-W-2.0. Replace those 13 files byte-for-byte with SPDX license-list-data text/CERN-OHL-W-2.0.txt. Other licence files are left unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aldoruizluna
added a commit
that referenced
this pull request
Oct 10, 2026
…tice URL Ten cartridges (gear-reducer, implicit-lattice-hyperobject, maze, portacosas, relief, scara-robotics, spiral-planter, superformula, torus-knot, voronoi) shipped a reworded 184-line text titled "Weakly Reciprocal" that is not CERN's licence. Replace each with SPDX license-list-data text/CERN-OHL-W-2.0.txt byte-for-byte (sha1 de1a34e1). The 27 short W notices wrote the URL as https:/cern.ch/cern-ohl (one slash, copied from a typo in CERN's own W how-to example). Correct it to https://cern.ch/cern-ohl, the form CERN's how-to rule text gives. Completes the fleet fix after #177 (merged b299908); different files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
aldoruizluna
added a commit
that referenced
this pull request
Oct 10, 2026
…tice URL (#178) Ten cartridges (gear-reducer, implicit-lattice-hyperobject, maze, portacosas, relief, scara-robotics, spiral-planter, superformula, torus-knot, voronoi) shipped a reworded 184-line text titled "Weakly Reciprocal" that is not CERN's licence. Replace each with SPDX license-list-data text/CERN-OHL-W-2.0.txt byte-for-byte (sha1 de1a34e1). The 27 short W notices wrote the URL as https:/cern.ch/cern-ohl (one slash, copied from a typo in CERN's own W how-to example). Correct it to https://cern.ch/cern-ohl, the form CERN's how-to rule text gives. Completes the fleet fix after #177 (merged b299908); different files. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What was wrong
The root
LICENSEwas titled CERN Open Hardware Licence Version 2 - Weakly Reciprocal, but everything under the title was the CERN-OHL-S-2.0 (Strongly Reciprocal) text. A diff against SPDXtext/CERN-OHL-S-2.0.txtshows only three differences: the title line and two typographic variants (Modifyingandlicence). GitHub's licence detection matched the body and classifies this repo as CERN-OHL-S-2.0.Examples of what the shipped text said, compared with what W says:
12 per-cartridge
LICENSEfiles were byte-identical copies of the same bad root text.Why it matters
Every manifest declares
commons_license: CERN-OHL-W-2.0, and internal-devops ADR-011 records W as the ruled commons licence, matching fashion-cabinet. The text this repo actually shipped gave different, stronger reciprocal terms than the ruling and the manifests.What changed
These 13 files were replaced byte-for-byte with SPDX license-list-data
text/CERN-OHL-W-2.0.txt, with no header added. The rootLICENSEnever had a header, so there was nothing to keep.LICENSEbook-fold-phone/LICENSE,clamshell-dual-screen-handheld/LICENSE,extrusion-hyperobject/LICENSE,hinge-hyperobject/LICENSE,keyv2/LICENSE,locking-mechanism-hyperobject/LICENSE,microscope-slide-holder/LICENSE,microscope-slide-holder/libs/microscope-slide-hyperobject/LICENSE,microscope-slide-hyperobject/LICENSE,polydice/LICENSE,rugged-box/LICENSE,stemfie/LICENSEThe rule was to change only files that were exact copies of the bad root text (same sha1). All 12 cartridge manifests involved, including the nested
microscope-slide-holder/libs/microscope-slide-hyperobject, declarecommons_license: CERN-OHL-W-2.0.What was left alone, and why
The repo has 52
LICENSE*/COPYING*files. The other 39 are unchanged:ab-drive,ab-front-idler,bed-extrusion-mount,captive-nut,commons-lib,corner-idler-bracket,din-rail-clip,faircap-filter,fasteners,framing-hyperobject,gears,glia-diagnostic,gridfinity,insert-jig,motor-mount,multiboard,parametric-connector,prosthetic-socket,rubiks-hyperobject,soft-jaw,thumb-screw,toolhead-proxy,x-carriage,xy-joint,z-belt-clamp,z-drive-housing,z-joint. They name the right licence. One small point: the URL is writtenhttps:/cern.ch/cern-ohl, with a single slash.custom-mshandjulia-vasecarry the real CERN-OHL-W-2.0 body. They differ from SPDX only in wrapping, indentation and the same three typographic variants, so their terms are already right.gear-reducer,implicit-lattice-hyperobject,maze,portacosas,relief,scara-robotics,spiral-planter,superformula,torus-knotandvoronoicarry a 184-line file titled "Weakly Reciprocal". It is not the canonical text: it is a reworded, shortened version. For example, its 1.2(c) reads "work making Available Licencee's public licence grants the rights", which is not CERN wording. It is not the S defect this PR fixes, so it was not changed here. The same file sits at fashion-cabinetdocs/licenses/CERN-OHL-W-2.0.txtand yantra4ddocs/licenses/CERN-OHL-W-2.0.txt, which is why the FC copy was not used as the source. Fixing it is a separate decision for the owner, across all three repos.How this was verified
LICENSEbefore the change, compared with SPDXCERN-OHL-S-2.0.txt: 3 lines differ (title,Modifying,licence). The same file compared with SPDXCERN-OHL-W-2.0.txt: 109 lines differ.CERN-OHL-W-2.0.txt(de1a34e1…).LICENSE(already verified against SPDX). Word for word they differ only in three typographic spots:CERN- OHL-W,modifyingandlicensein SPDX, againstCERN-OHL-W,Modifyingandlicencethere.hyperobjects-spec@142db18, without a CAD kernel:y4d-spec checkover every top-level cartridge with aproject.jsongavecartridges=512 failures=0 notes=36. The 11 changed top-level cartridges all printok. The nestedmicroscope-slide-holder/libs/microscope-slide-hyperobjectis not in CI's glob. Run directly, it fails one rule about mode/part ids, which has nothing to do with the licence and is not touched here.python -m pytest .github/scripts -qgave59 passed.y4d-spec's declared-vs-shipped check (structure.shipped_license_rules) matches only the title line. That is why the S body passed CI under a W title. Making the check compare the body belongs in hyperobjects-spec and is not part of this PR.GitHub's licence detection reads the default branch, so the repo badge changes from CERN-OHL-S-2.0 to CERN-OHL-W-2.0 only after this is merged.
🤖 Generated with Claude Code