I was having a programming problem and Google brought me to this blog, which refers to a GPLv2+ licensed file. However, I would like to keep my project MIT-licensed. What should I do?

I'm considering the following approaches:

  1. Invent a GPLv999 license, make it MIT-compatible, and accept it since v999 >= v2.
  2. Generate a configure from the GPL-licensed file configure.ac and use the generated file.
  3. Type the source code by hand, and tailor it to my need.
  4. Read the source code, learn from it, throw it away, and write my own configure.ac.

Which, if any, of the above options are legitimate?

By the way, a GPLv3-licensed utility program autoconf will be run when a user installs my package. Will this cause a license incompatibility?

1 Answer 1

  1. Won't work, because you can't legally call it the GPL; see eg the GPL FAQ:

You can legally use the GPL terms (possibly modified) in another license provided that you call your license by another name

The practical upshot is that only the FSF can issue versions of the GPL.

  1. The resulting configure would be a derivative work of a GPLv2+ licensed file, which must therefore be licensed under GPLv2+ as per GPLv2 ss 3, 2b.

  2. That would be a simple manual copy, which must therefore be licensed under GPLv2+ as per GPLv2 s1.

  3. It's a derivative work, see above, unless you do a clean-room reimplementation. You cannot do that on your own.

The licence on autoconf is not a problem, as long as you're not distributing it. The licence on a program does not (generally) affect the licence status of the program's output; the licence on the program's inputs do, hence point 2 above.

Basically, none of the options you list are legitimate. The author of the configure.ac file you link to did not intend for you to be able to release it under an MIT licence, and has signalled his intent by picking a licence that forbids such release.

An argument could be made, however, that the compilation environment of a work is not the work itself. Having an MIT codebase the compilation of which is directed by a series of files under GPL, when all these files are distributed together, isn't immediately obviously a GPL violation (at least, not to me). Certainly if you shipped a GPL compiler with your MIT code, it would be possible for the compilation environment in the field to invoke the compiler without the compiler's licence bleeding into the main, MIT-licensed code. It's not clear to me that files that direct the operation of the compiler are more tightly coupled to the main code, in a copyright or licensing sense, than the compiler itself.

If you're betting a company on this, however, take professional legal advice first. If you're not, it might be simpler just to release your work under GPLv2+, and remove any risk.

  • For #1, it's also worth noting that the "or later" mechanic is formally specified in the GPL itself and requires the FSF to be the publisher (emphasis mine): If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation.
    – apsillers
    Commented Oct 20, 2019 at 21:08
  • @apsillers I noticed that too, but unfortunately it's not how the author of the code in question has chosen to express him/herself. (S)he just wrote "Licensed under GPL-2 or later".
    – MadHatter
    Commented Oct 21, 2019 at 5:22
  • I would argue that #4 would work if you're purely learning from it and adding other information as you go on.
    – S.S. Anne
    Commented Oct 21, 2019 at 23:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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