5

Suppose I have some open source project which makes use of both GPL and MIT licensed components. The source code of my project is also MIT licensed (not copyleft).

What is the right way to indicate this and comply with all licenses in the final (binary) distribution of the software?

Many projects just include a single LICENSE.txt or COPYING.txt file, but due to the multiple licenses I'm not sure how to apply that here without creating confusion. The requirements are the following:

  • Due to the GPL component the binary distribution must be distributed under the GPL. This has to be made clear.

  • But I don't want to create the misconception that the project's source code is GPL licensed, as it is not (and has substantial reusable parts that do not depend on GPL'd libraries).

  • The license of all utilized libraries needs to be indicated, with attribution (i.e. from the MIT license: "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.")

What is the usual way to achieve this? What text should go where in the final package, to make sure I comply with all requirements and do not create confusion? This is not a GUI program.

  • There is a partial answer at opensource.stackexchange.com/questions/1711/… – Martijn Sep 15 '15 at 9:24
  • 2
    @Martijn - I read the first line of the currently first answer and discovered a mistake: If you use the GPL, you of course do not need to put the whole project under the GPL as the influence of the GPL ends at work level. If you create a collective work that includes a GPLd work, the GPL only applies to the work that actually is under GPL. For the whole project, the accumulated restrictions of all used licenses apply. – schily Sep 15 '15 at 10:13
  • 1
    @schily Yes, so I can still license the code I write under a more permissive license than the GPL, though the final binary product must be distributed according the the GPL. However, people can still take parts of my own code and re-use it without the GPL's restrictions. Of course such licensing only makes sense if some of my code is sufficiently independent of any GPL'd libraries to make it useful on its own. – Szabolcs Sep 15 '15 at 10:25
  • That question is about combining source from different licensed sources into a single file, which will almost certainly have mutual depencies. This is a much tighter coupling than the static linking that the FSF and most others consider sufficient for the GPL to require covering the entire work under the GPL. Since that question is a non-gpl question, it's only touched upon briefly (and the comment above indicates that it's a partial answer to this question, not a full one) – Martijn Sep 15 '15 at 10:28
  • The exact way to go depends on whether you created a derivative work or a collective work. See my answer. For a better advise, I would need to know more of the project and license structure and where different single identifiable works end. – schily Sep 15 '15 at 10:31
2

Without knowing more internals of the project, it is hard to give an advise. It depends on the way the different licenses are used together.

  • If you create a work based on a GPLd work, you need to make the whole work use the GPL. Such a work is called a derivative work in the legal speech. It is created when you take a GPLd work and modify it or if you develop a work that calls code from GPLd code. The latter case is even disputed amongst lawyers.

  • If you however create a collective work where the GPL is just the license used by one of the works, only the restrictions from the GPL sum up to the restrictions for the whole collective work. Given that the GPL has no restrictions on the licenses used for code in libraries that is called by a GPLd work, a collective work is typically created if a GPLd work calls code from a library written by a different code owner and this library may have any possible license.

If you create a collective work you should describe work limits in an unambiguous way.

Note that an OS distribution is typically a collective work of the parts rather than a mere aggregationas the creation of the distribution is a task that requires a certain level of creation that makes a work which causes the Copyright law to apply.

  • All good points, but my question was not what license to apply, but how to indicate the licensing in the distribution. The second answer to the question Martijn linked to gives a possible answer when it mentions the NOTICE file. – Szabolcs Sep 15 '15 at 10:43
  • 2
    Offer a file that lists and names all separate works and the licenses that are used by identifiable works. – schily Sep 15 '15 at 10:45
  • @Szabolcs, yeah, you can just list it in a file, like this, bxr.su/n/distrib/notes/common/legal.common, or this, bxr.su/o/lib/libssl/src/LICENSE, or this, bxr.su/o/usr.bin/ssh/LICENCE. – cnst Nov 18 '15 at 23:32

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.