2

We have a MIT licensed application which we sell packed under virtual appliance to our customers. the application has a marketplace where users can download and install additional plugins.

We wish to pre-install some plugins from the marketplace and then distribute it, I understand that MIT is compatible with GPLv3 and hence both can be distributed together licensed as GPLv3, but we do not wish to disclose source for our MIT licensed application.

Note : Plugin (GPLv3) is not a dependency for Application (MIT) in any way.

  1. Do we violate GPL if we ship MIT licensed application pre-installed with GPLv3 plugin from the marketplace and do not release source for MIT licensed application ?

  2. Is it acceptable to not assemble plugin (GPLv3) and application (MIT) prior to distribution and ask the customer to do install plugin (GPLv3) after the distribution ?

  3. Would the situation be any different if we had re-licensed our MIT app to a proprietary licence ?

  • If you use a GPL-covered plug-in in your program, then at least the FSF considers that action as combining your program with the GPL-covered plugin, producig a derivative work (in which case, you would have to distribute the source to your application): GPL FAQ - When is a program and its plug-ins considered a single combined program? – Brandin Nov 14 at 8:22
  • @Brandin Right, but can that be avoided if I do not assemble them prior to distribution. – Shubham Nov 14 at 8:41
  • What do you mean by 'assemble'? The GPL is not dependent on whether or not you use an assembler or some other technical means to distribute your works. – Brandin Nov 14 at 9:03
  • @Brandin I will just distribute the MIT application and ask the customer to download the plugin from their end. Would that be considered as a violation ? – Shubham Nov 14 at 9:16
  • In your title you currently say "Distributing MIT application with GPLv3 plugin", which to me means that you are distributing an MIT application and distributing it together with a GPLv3 plugin. You should probably clarify this to state that you are not distributing a GPLv3 plugin, but that you are asking a user to download (of her own accord) a separate GPLv3 plugin to use with your application. – Brandin Nov 14 at 9:41
3

With respect to my colleague, I disagree with a lot of his answer. The core analysis I think is correct, not least because it comes straight from the GPL FAQ: if the plugin is tightly coupled to the main body of code, the whole (application and plugin) is a single work, which is a derivative of (amongst other things) the plugin; if not, then not. Note that this doesn't hinge on distribution arrangements: if you wrote your code to be tightly-coupled to someone else's pre-existing GPL code, then your code - from the moment of its creation - is a derivative of this GPL code, and when you distribute it, however you do that, GPL obligations will come into force.

Note also that because the plugin is free software, it will be very obvious to the plugin's authors whether or not the coupling is tight or loose. If it's tight, for example because complex memory structure is exchanged, then it would be very easy to establish that you had reference to the plugin's source during creation of your app, because there's no other reasonable way you could have discovered the API.

That said, I think the answers to your questions are as follows:

Do we violate GPL if we ship MIT licensed application pre-installed with GPLv3 plugin from the marketplace and do not release source for MIT licensed application ?

If the works are a single work as per the analysis above not only must you provide the source for the main application, but you must also convey the whole thing under the GPL. You can still release your application alone, without plugin, under MIT, but you must provide the source; and when the works are conveyed together, they must be free.

If the works are two works, it makes no difference whether they ship together or separately. If you ship the GPL plugin, you will still have source obligations in respect of the plugin, but that's all.

Is it acceptable to not assemble plugin (GPLv3) and application (MIT) prior to distribution and ask the customer to do install plugin (GPLv3) after the distribution ?

Asking the customer to assemble the pieces is fine, the licences are fine, not providing source for your app (if tightly-coupled) is not; see above. Copyright obligations are not a function of shipping arrangements.

Would the situation be any different if we had re-licensed our MIT app to a proprietary licence ?

No. It is the GPL that is placing obligations on you here, not the MIT licence.

An underlying confusion here is that you're writing a work and distributing under an MIT licence, without source. This seems to be causing problems, as some people are very used to being able to treat non-copylefted free code as being even more free than copylefted code, and thus are confused by your intent not to distribute source from the get-go. I maintain this is a cognitive error on their parts. It's completely lawful to distribute an original program under these terms, though it is unusual.

0

If you do not wish to disclose your sources for the MIT-licensed application, then it would be really helpful to everybody to make that intention clear by changing the license of the application to a closed-source license.

The licensing status of your application in combination with a GPL plugin depends very much on how the two interact.

If the application interacts with the plugin as a separate application (the plugin gets loaded as a separate process and the two communicate only over typical inter-process communication channels like sockets or STDIN/STDOUT), then the two are considered to be separate works of authorship and their licenses don't affect each other.

If the application interacts with the plugin as with a library (the plugin is loaded into the same process, function calls are made, data structures are shared, etc.), then many consider this a derived work and the terms of the GPL license apply to the whole combination.

  1. Do we violate GPL if we ship MIT licensed application pre-installed with GPLv3 plugin from the marketplace and do not release source for MIT licensed application ?

Assuming the second case of how the application and plugin interact, then yes it would be a violation of the GPL to not disclose the source code of the application.

  1. Is it acceptable to not assemble plugin (GPLv3) and application (MIT) prior to distribution and ask the customer to do install plugin (GPLv3) after the distribution ?

Again assuming the second case of how the application and plugin interact, I would still consider it a violation of the GPL license. It is less clear cut than distributing the combined work and would depend to some extent also on how actively you encourage the customers to use the plugin.

  1. Would the situation be any different if we had re-licensed our MIT app to a proprietary licence ?

Yes, that would make a very big difference.

With the MIT license, there can be an assumption that you would be willing to comply with the terms of the GPL licence, when that is used in a plugin, and release the source code with the necessary freedoms.

With a proprietary, closed-source license, there is no question that the license is GPL-incompatible and that you don't intent to ever honour GPL-like conditions on your source code. If people want to license their plugin under the GPL license in this case, they will have to add an exception to their license to allow the plugin to be used with your software.

  • In pt 2. would the GPL violation be on our part or on the customer end ? also there is an open source version of the application available to run the plugin instead of proprietary one would that make any difference ? – Shubham Nov 14 at 17:59
  • @Shubham If you 'pre-install the GPLv3 plugin' then it means you are violating the GPL if you don't adhere to its terms. I.e. you installed/distributed it, not the user. – Brandin Nov 15 at 7:07

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.