diff --git a/LICENSE.txt b/LICENSE.txt index c42051afa0a..b233dc6aa64 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -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) diff --git a/checker-qual/build.gradle b/checker-qual/build.gradle index dc4437548cf..6acd2f2be6e 100644 --- a/checker-qual/build.gradle +++ b/checker-qual/build.gradle @@ -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)