3

We are making use of the following tools in our software, and not modified any of these tools. Tools 1-3 are used directly in my software. Tool 4 is used for reference, but included as part of our software distribution.

  1. Z3:MIT License https://github.com/Z3Prover/z3/blob/master/LICENSE.txt
  2. ANTLR:BSD 3-clause license https://github.com/antlr/antlr4/blob/master/LICENSE.txt
  3. Wolfgang:BSD 3-Clause "New" or "Revised" License https://github.com/iig-uni-freiburg/WOLFGANG/blob/master/LICENSE
  4. ITS-Tools : GNU GPLv3 https://github.com/yanntm/ITS-Tools-MCC/blob/master/LICENSE - we use this only to see if it gives the same results as our tool.

I wish to make my software binary available publicly (not the source code yet, as it still needs fine tuning).

  1. Which software licenses would be suitable in this case?
  2. Can I make this closed source, as I am not modifying any of the above tools?

I support open-source, but not ready to publish the source of this software yet as it still is a work in progress.

Since this is for an artifact submission as part of a research paper, I am required to submit everything described in my research, hence I need to include Tool 4 in my artifact as well.

3
  • 2
    What do you mean by "tool 4 is used for reference"?
    – MadHatter
    Sep 12 at 15:05
  • I use it for comparison, just edited the question to make it clearer (due to character constraints on comment) Sep 12 at 15:14
  • 2
    I don't have time for a full answer, but look up the concept of “mere aggregation” for the GPL. All of these licenses allow you to distribute verbatim copies of the source code without conditions (you have to keep the licensing info intact). You are not required to choose any of these license for your software. You could create a ZIP archive with binaries of your software and the source code of the other programs – as long as they are clearly separate programs. You could then upload the archive as the artifact.
    – amon
    Sep 12 at 16:50
2

You have two different classes of tools here:

  • Tools 1-3 (Z3, ANTLR and WOLFGANG): you are using these directly in your program, so the license of your program must be compatible with the licenses of all three of these.
  • Tool 4 (ITS-Tools): as this is something which is clearly a distinct entity from your program, this is aggregation and has no bearing on what license you use for your program. You must of course comply with ITS-Tools' license if you distribute it.

So for your program, it must be compatible with both the MIT and 3-clause BSD licenses. Both these are "permissive" licenses which let you license your program under any license, so long as you obey the conditions of the license, which are basically to include a copy of the MIT and BSD licenses with appropriate copyright lines with your program.

Which software licenses would be suitable in this case?

As above, basically anything you choose, including closed source.

Can I make this closed source, as I am not modifying any of the above tools?

Yes and no. You can make your program closed source, because the MIT and BSD licenses allow you to do so. However, this is not because you are not modifying the tools - for example, if you were actually directly using ITS-Tools in your program, even unmodified, you would have to make your program open source (this is the "viral" aspect of the GPL).

1
  • As noted in vonbrand's answer, you may not need to follow the ANTLR license if you are using only its output (the generated parser) in your code. This doesn't affect the overall conclusions though. Sep 14 at 9:57
1

What do you mean by "use" of the programs mentioned? I'm not familiar with all of them, but at least ANTLR is a program that is used to generate programs given a specification (a LL parser generator and a bunch of helpers). If the others mentioned are similar tools, you need to check the licenses of the generated files. Only if you use (pieces of) the programs as part of your program (and not as separate entities, just being called) do you have to check the program's licenses.

E.g. GCC compilers are under GPL, but the generated object code is yours. Executables generated by GCC are usually yours too, due to special dispensations in the compiler's library code included in executables. Ditto for bison, GNU's LALR (and other) parser generator, the generated parser includes a sizeable part of bison's source, and can be used under a special dispensation. I.e., if I write e.g. a Scheme to C compiler and a script frontend that calls my compiler and compiles the result with gcc, that is mere normal use of gcc and thus my script (and Scheme compiler) are free of gcc-related restrictions.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.