I'm working on a FOSS project and would very much prefer to release it under MIT license.

To consider, it is a C program, using a MIT licensed library, a MIT licensed executable packaged in the files, and an Apache 2.0 licensed program, that I issue system calls to. And this where things get confusing for me. If I call the Apache 2.0 program using system(), is this something I have to consider in my license?

It'll be very helpful if someone can guide me to the right license, keeping the aforementioned things in mind. Thanks in advance.

  • Why exactly do you want to not grant patent rights? About the only use case for that is if you own a patent on the covered code and intend to enforce it against users of the code, which is 100% against the spirit of FOSS. Jun 1 at 7:16
  • @PhilipKendall I simply do not want the code to be, say part of some proprietary code with no reference to the original. I don't mean to enforce any patent or rights strongly, and it's fine to do anything with the code, as long as the original is referenced.
    – epodegrid
    Jun 1 at 7:21
  • I think you have a misunderstanding as to why FOSS licenses grant patent rights - they are to protect the users of the FOSS code from patent holders who release FOSS code but then enforce patent claims against the users. Voting to close this question as "needs details or clarity" until it is edited to give a specific reason that you do not want to give that protection to users. Jun 1 at 7:26
  • You may wish to read What does "express grant of patent rights from contributors to users" mean? which gives a good explanation as to why patent grants are important in FOSS licenses. Jun 1 at 7:29
  • I assume you want to prevent that others file patent applications for your project. But this is nowhere mentioned in the MIT license. What is stated there is that you provide no warranties of non-infringement, i.e. that you don't state that there are no existing patents around which might be infringed by your software. That's something completely different. For new patent applications your project code might serve as prior art, thus preventing that the patent can be granted. So the MIT License should be fine for what you want to do. Jun 1 at 7:30

1 Answer 1


The MIT and Apache 2.0 licenses are both permissive licenses that put no or very little restriction on what licenses you can use for your own code (even if that code is a modification to MIT/Apache 2.0 licensed code).

On top of that, if you invoke third-party code through the normal ways of calling a separate executable (and the system() function is one of those ways), then the third-party executable is considered to be completely unrelated to your code in copyright terms, so you can completely forget about that code's license when determine what license to use for your own code.

  • Your second paragraph seems oversimplified. In practice, programs that use system() and call a different executable won't normally be considered a derivative work of that executable that they call. However, I don't think this should be taken to mean that simply by using the C function system(), that you therefore get carte blanche over how you use that third-party executable. If you're persistent, I think it'd still be possible to use system() to create a derivative work (for example, if you bundle/embed a third-party executable together as an essential part of one program/product).
    – Brandin
    Jun 3 at 6:56
  • @Brandin, the determination if a work is a derivative of another (for copyright) does not look at how integrated the two are functional wise. It is entirely possible to create a closed-source GUI for a GPL command-line application. Functional wise, the GUI is completely dependent on the command-line application, but copyright-wise they can be completely independent. Jun 3 at 12:56
  • Are there real-life examples of closed-source GUIs for GPL command-line programs?
    – Brandin
    Jun 7 at 8:57

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.