Skip to content

docs: add GPLv3 LICENSE - #9

Merged
wezell merged 1 commit into
mainfrom
docs/add-gpl3-license
Sep 21, 2026
Merged

wezell merged 1 commit into
mainfrom
docs/add-gpl3-license

Conversation

@sfreudenthaler

Copy link
Copy Markdown
Member

Adds the LICENSE file the repo is missing before it gets linked from a public engineering blog post.

What core actually used before BSL

Checked rather than assumed — dotCMS/core's LICENSE history:

commit date license
9ceb691 … b69a711 2022-08 → 2024-09 GPLv3, verbatim FSF text, with an enterprise/ carve-out under the proprietary dotCMS Enterprise License
7189abf 2025-02-07 Business Source License 1.1 ($5M Total Finances additional use grant)
9125c53, 1bb336d, 0910e9d 2025-04 → 2025-08 BSL, date/change-date refreshes

So pre-BSL core was GPLv3. This PR matches that.

Why GPLv3 and not a non-commercial license

The brief was "community and free, but not monetizable, and contributions should have to come back to it." GPLv3 delivers three of those four literally, and the fourth needs stating plainly rather than silently resolving:

  • Community and free — OSI-approved, FSF-published, universally recognised.
  • Contributions come back — copyleft. A distributed modification ships under GPLv3 with source, so improvements to the detection rules return to everyone relying on them.
  • Not monetizable — in the sense that matters: nobody can take this proprietary, close the source, and sell it as their own product. It does not forbid commercial use, and it should not. The audience for a supply-chain implant scanner is companies sweeping their own repositories. A literally non-commercial license (PolyForm Noncommercial, CC BY-NC) would forbid use by companies, which is the entire population the tool was published for — and neither is an OSI-approved open source license, which many security teams check before they will run third-party code at all. An NC license would block adoption by exactly the people who need to scan.

AGPLv3 was considered and rejected: its network clause only bites when a modified version is offered to users over a network, and this is a shell script run locally on a developer machine or CI runner. It buys close to nothing here, and blanket AGPL bans in corporate policy would cost real adoption. Open to revisiting if the hosted-scanning-service scenario is a concern worth the friction.

Contents

  • LICENSE — verbatim GPLv3 from the FSF text, unmodified, so GitHub's license detection resolves the repo to GPL-3.0 and shows the badge.
  • README.md — a License section carrying the dotCMS LLC copyright notice, the standard GPL warranty disclaimer, the reasoning above in short, and the third-party-components statement that core's own LICENSE preamble carried.

Copyright line is Copyright (C) 2026 dotCMS LLC — first commit in this repo is 2026-08-25.

No code changes.

🤖 Generated with Claude Code

Matches the license dotCMS core carried before the move to the Business
Source License: verbatim GPLv3, which is what core's LICENSE held from
2022 until commit 7189abf (Feb 2025).

Chosen over a non-commercial license on purpose. The audience for an
implant scanner is companies sweeping their own repositories, and a
genuinely non-commercial license (PolyForm NC, CC BY-NC) would forbid
exactly that use, as well as failing the OSI definition that many
security teams check before running third-party code. GPLv3 keeps the
tool free and usable by anyone while copyleft keeps improvements to the
detection rules in the open.

LICENSE is the verbatim FSF text so GitHub's license detection resolves
it to GPL-3.0; the dotCMS copyright notice lives in the README.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

@wezell wezell left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not Apache 2.0? Not asking for a change, just wondering about the thinking.

@wezell
wezell merged commit e57add2 into main Sep 21, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants