Skip to content

Commit

Permalink
License clarification; fixes #3429
Browse files Browse the repository at this point in the history
  • Loading branch information
mernst committed Jul 6, 2020
1 parent 83305b2 commit 7f44828
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 21 deletions.
42 changes: 24 additions & 18 deletions LICENSE.txt
Expand Up @@ -6,34 +6,40 @@ Most of the Checker Framework is licensed under the GNU General Public
License, version 2 (GPL2), with the classpath exception. The text of this
license appears below. This is the same license used for OpenJDK.

A few parts of the Checker Framework have more permissive licenses.
A few parts of the Checker Framework have more permissive licenses, notably
the parts that you might want to include with your own program.

* The annotations and utility files are licensed under the MIT License.
(The text of this license also appears below.) More specifically, all
the parts of the Checker Framework that you might want to include with
your own program use the MIT License. This is the checker-qual*.jar and
checker-compat-qual*.jar files and all the files that appear in them:
every file in a qual/ directory, plus utility files such as
NullnessUtil.java, RegexUtil.java, SignednessUtil.java, etc. In
addition, the cleanroom implementations of third-party annotations,
which the Checker Framework recognizes as aliases for its own
annotations, are licensed under the MIT License.

Some external libraries that are included with the Checker Framework have
different licenses.
(The text of this license also appears below.) This applies to the
checker-qual*.jar and all the files that appear in it: every file in a
qual/ directory, plus utility files FormatUtil.java,
I18nFormatUtil.java, NullnessUtil.java, Opt.java,
PurityUnqualified.java, RegexUtil.java, SignednessUtil.java, and
UnitsTools.java. It also applies to other utility files
(SignednessUtilExtra.java) and to the cleanroom implementations of
third-party annotations (in checker/src/testannotations/ and in
framework/src/main/java/org/jmlspecs/).

The Checker Framework includes annotations for some libraries. Those in
.astub files use the MIT License. Those in https://github.com/typetools/jdk
(which appears in the annotated-jdk directory of file checker.jar) use the
GPL2 license.

Some external libraries that are included with the Checker Framework
distribution have different licenses. Here are some examples.

* javaparser is dual licensed under the LGPL or the Apache license -- you
may use it under whichever one you want. (The javaparser source code
contains a file with the text of the GPL, but it is not clear why, since
javaparser does not use the GPL.) See file stubparser/LICENSE
and the source code of all its files.
javaparser does not use the GPL.) See
https://github.com/typetools/stubparser .

* Annotation Tools (https://github.com/typetools/annotation-tools) uses
the MIT license.

* Libraries in plume-lib (https://github.com/plume-lib/) are licensed
under the MIT License.

The Checker Framework includes annotations for some libraries. Each annotated
library uses the same license as the unannotated version of the library.

===========================================================================

The GNU General Public License (GPL)
Expand Down
8 changes: 5 additions & 3 deletions checker-qual/build.gradle
Expand Up @@ -21,13 +21,15 @@ task copySources(type: Copy) {
include '**/org/checkerframework/**/qual/*.java'
include '**/PurityUnqualified.java' // TODO: Should we move this into a qual directory?
// Utility classes
// If you change this list, also update ../LICENSE.txt .
include "**/FormatUtil.java"
include "**/I18nFormatUtil.java"
include "**/NullnessUtil.java"
include "**/Opt.java"
include "**/RegexUtil.java"
include "**/UnitsTools.java"
include "**/SignednessUtil.java"
include "**/I18nFormatUtil.java"
include '**/Opt.java'
// include "**/SignednessUtilExtra.java"
include "**/UnitsTools.java"

// Make files read only.
fileMode(0444)
Expand Down

0 comments on commit 7f44828

Please sign in to comment.