The OpenVADL distribution includes both the OpenVADL frontend with its different generators and various processor specifications. These are separate programs that are distributed together for the convenience of the users and they have separate licenses. Each source file has an SPDX copyright and license identifier to clarify the terms of every file.
-
OpenVADL as a whole is released under the GNU General Public License, version 3.0 or (at your option) any later version, for details see https://www.gnu.org/licenses/.
-
Parts of OpenVADL have specific licenses which are compatible with the GNU General Public License, version 3. Hence each source file contains its own licensing information. Source files with no licensing information are released under the GNU General Public License, version 3.0 or (at your option) any later version.
-
OpenVADL processor specifications are released under the Apache License, Version 2.0 http://www.apache.org/licenses/LICENSE-2.0.
-
Parts of OpenVADL processor specifications have specific licenses which are compatible with the Apache License, Version 2.0. Hence each specification contains its own licensing information. Specifications with no licensing information are released under the Apache License, Version 2.0.
-
OpenVADL documentation is released under the Creative Commons CC BY 4.0 Attribution 4.0 International license https://creativecommons.org/licenses/by/4.0/.
-
Parts of OpenVADL documentation is released under the GNU General Public License, version 3. Hence each documentation file contains its own licensing information. Documentation with no licensing information is released under the Creative Commons License CC BY 4.0.
-
Files generated by OpenVADL are machine generated and therefore can not be copyrighted and are in the public domain. OpenVADL includes a header for the generated files which states these facts.
-
Some files are generated from a template which is to a large part a copy of a third party library. In that case the license of the generated file is the license of the original file. This is case for some of the files generated by the compiler generator for the LLVM compiler infra structure. This fact is also stated in the header of the generated file.
OpenVADL includes some third party libraries. Some packages are linked with the generated artifacts. The following table lists the libraries and packages with their licence information:
| license | package name and description | repository |
|---|---|---|
| GNU version 2, BSD, MIT | QEMU - quick emulator | https://gitlab.com/qemu-project/qemu |
| Apache 2.0 with exceptions | LLVM - compiler infra structure | https://github.com/llvm/llvm-project |
| GNU General Public License | CocoR - a parser generator | https://www.ssw.uni-linz.ac.at/Research/Projects/Coco/ |
| Apache License 2.0 | picocli - a mighty tiny command line interface | https://github.com/remkop/picocli |
| Apache License 2.0 | Thymeleaf - template rendering engine | https://github.com/thymeleaf/thymeleaf |
| Apache License 2.0 | Guava - Google Core Library for Java | https://github.com/google/guava |
| Apache License 2.0 | Apache Commons Compress - (de)compression library | https://github.com/apache/commons-compress |
| Apache License 2.0 | Apache Commons Lang - Java utility classes | https://github.com/apache/commons-lang |
| Apache License 2.0 | Apache Commons IO - io utility library | https://github.com/apache/commons-io |
| LGPL 2.1 | Logback - logging library for Java | https://github.com/qos-ch/logback |
| ISC License | d3 - free, open-source javascript visualization library | https://github.com/d3/d3 |
| BSD 3-Clause | d3-graphviz - render DOT graphs with d3 using graphviz | https://github.com/magjac/d3-graphviz |
| BSD 2-Clause | svg-pan-zoom - simple pan/zoom solution for SVGs in HTML | https://github.com/bumbu/svg-pan-zoom |
| MIT License | tailwindcss - a css class library | https://github.com/tailwindlabs/tailwindcss/tree/main |
| MIT License | flowbite - tailwind component library | https://github.com/themesberg/flowbite |
| Apache License 2.0 | Error Prone - compile time analysis tool | https://github.com/google/error-prone |
| MIT License | NullAway - static null checking for java | https://github.com/uber/NullAway |
| MIT License | Z3 - a theorem prover from Microsoft Research | https://github.com/Z3Prover/z3 |
| EPL 2.0 or BSD 3-Clause | Eclipse LSP4J - language server protocol implementation | https://github.com/eclipse-lsp4j/lsp4j |
| license | package name and description | repository |
|---|---|---|
| EPL 2.0 | JUnit 5 - Java testing framework | https://github.com/junit-team/junit5 |
| Apache License 2.0 | AssertJ - assertion collection | https://github.com/assertj/assertj |
| Apache License 2.0 | ArchUnit - project architecture testing | https://github.com/TNG/ArchUnit |
| Apache License 2.0 | Availability - Java DSL for testing async processes | https://github.com/awaitility/awaitility |
| MIT License | Testcontainers - containerized testing library | https://github.com/testcontainers/testcontainers-java |
| EPL 2.0 | JQWIK - property based testing | https://github.com/jqwik-team/jqwik |
| Apache License 2.0 | Apache Velocity - macro processing engine | https://github.com/apache/velocity-engine |
| Apache License 2.0 | Snakeyaml - yaml processor | https://bitbucket.org/snakeyaml/snakeyaml |
Andreas Krall and the OpenVADL team