Skip to content

Relicense KeY from GPLv2-only to GPLv2-or-later - #3986

Open
wadoon wants to merge 1 commit into
mainfrom
weigl/gpl2+
Open

wadoon wants to merge 1 commit into
mainfrom
weigl/gpl2+

Conversation

@wadoon

@wadoon wadoon commented Sep 26, 2026 •

Copy link
Copy Markdown
Member

By AI in 140 kTokens. The prompt:

The license is currently gplv2-only. Please change the license, and the license header to gplv2-or-later. The license header is set by spotless via Gradle. Please check if there are other signs of gpl2-only, .e.g, in POM generation or license dialog.


Change the KeY license from "GPL-2.0-only" to "GPL-2.0-or-later" (SPDX GPL-2.0-or-later), i.e. "GNU General Public License Version 2, or (at your option) any later version".

License headers (set by spotless via Gradle):

  • Update the spotless header template gradle/header to the new wording and run spotlessApply to rewrite the headers of all Java files in the main build (~2770 files).
  • Update the headers of the taclet rule files (*.key, where the spotless Key-format header step is currently disabled) and of the standalone scripts/tools/mt project.
  • Update the header template embedded in the source generators GenerateUnitTests/GenerateUnitTestsUtil so generated tests carry the new notice, and fix the two files spotless did not cover (package-info.java, fully commented-out AssertCommand.java).

Maven POM generation:

  • Declare "GNU General Public License (GPL), Version 2, or later" in the mavenPublishing licenses block used to generate the per-module POMs.

License dialog:

  • Update the KEY_FALLBACK text of LicenseAction to "GNU General Public License v2, or (at your option) any later version".

Documentation and license texts:

  • LICENSE.TXT: the declaration now reads "either version 2 of the License, or (at your option) any later version".
  • README.md, CONTRIBUTING.md and .github/pull_request_template.md updated; removed the "(no later versions)" and "GPLv2 (only)" wording.

Deliberately left unchanged:

  • key.ui/examples/case-studies/timsort/.../TimSort.java: verbatim third-party OpenJDK copy (Oracle copyright) used as the case-study subject.
  • scripts/mvndeploy/*.pom.xml: POMs describing third-party libraries (recoder, docking-frames).

Validation: spotlessCheck passes; no GPL-2.0-only references remain in tracked files.

Change the KeY license from "GPL-2.0-only" to "GPL-2.0-or-later"
(SPDX GPL-2.0-or-later), i.e. "GNU General Public License Version 2,
or (at your option) any later version".

License headers (set by spotless via Gradle):
- Update the spotless header template gradle/header to the new wording
  and run `spotlessApply` to rewrite the headers of all Java files in
  the main build (~2770 files).
- Update the headers of the taclet rule files (*.key, where the spotless
  Key-format header step is currently disabled) and of the standalone
  scripts/tools/mt project.
- Update the header template embedded in the source generators
  GenerateUnitTests/GenerateUnitTestsUtil so generated tests carry the
  new notice, and fix the two files spotless did not cover
  (package-info.java, fully commented-out AssertCommand.java).

Maven POM generation:
- Declare "GNU General Public License (GPL), Version 2, or later" in the
  mavenPublishing licenses block used to generate the per-module POMs.

License dialog:
- Update the KEY_FALLBACK text of LicenseAction to "GNU General Public
  License v2, or (at your option) any later version".

Documentation and license texts:
- LICENSE.TXT: the declaration now reads "either version 2 of the
  License, or (at your option) any later version".
- README.md, CONTRIBUTING.md and .github/pull_request_template.md
  updated; removed the "(no later versions)" and "GPLv2 (only)"
  wording.

Deliberately left unchanged:
- key.ui/examples/case-studies/timsort/.../TimSort.java: verbatim
  third-party OpenJDK copy (Oracle copyright) used as the case-study
  subject.
- scripts/mvndeploy/*.pom.xml: POMs describing third-party libraries
  (recoder, docking-frames).

Validation: `spotlessCheck` passes; no GPL-2.0-only references remain
in tracked files.
@wadoon
wadoon requested review from mattulbrich and unp1 September 26, 2026 15:05
@wadoon wadoon self-assigned this Sep 26, 2026
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.

1 participant