I have an MIT-licensed library that supports user-provided backends. I was asked to implement a backend that would require using a GPL-licensed library. If I write such a backend, license it's files as GPL, and have no dependence from my MIT code on the GPL code (the user would have to load and enable the GPL-backed), would that be acceptable under the terms of the GPL?

This questions indicates that it'd be allowed if I put them in separate repositories. So, would it be a "mere aggregation" if I put all of the files in the same repository?

If it makes a difference, the user would have to specifically load the file, then set a global variable in the main library to an interface function from the GPL-licensed code.

1 Answer 1


Judging by your last paragraph, the backend plugins are loaded as libraries into the application that contains your library. The GPL license considers that the application and all involved libraries are a single work and that the GPL terms and conditions must apply to every part of that work.

As a consequence, if you distribute your library build with/configured for this GPL backend, then your library must also be distributed under the GPL license. However, a version of your library that is built with/configured for some other backend could still be distributed under the MIT license.

If you can make it clear that the effective license of the library depends on which backend you use, then you can have everything in a single repository. If you can't make that clear or you don't want to bother, then you can use separate repositories.

Regardless of your repository setup, you can offer a download for "library + GPL backend" under the GPL license and "library + MIT backend" under the MIT license, even when the library code is identical.

If you do that, one thing to look out for is that third-party contributions to the library are licensed to you under the MIT license, even if the contributor started off with the version with the GPL backend. Make sure you get agreement on these license details before accepting a contribution. A Contributor License Agreement would be the way to go.

  • Thanks. It's probably clearer to just put the GPL in a separate repository. Jul 28, 2020 at 12:42

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.