Answer the question
In order to leave comments, you need to log in
Different licenses for the program and plugins for it?
Good day!
I am writing a program under GPLv3 with the ability to connect plugins (dynamic linking).
The question is - will there be any restrictions on the license for the plugins themselves (for example, if the author wants to limit the commercial use of his plugin)?
Can I limit which license plugins can be used with (eg MIT or GPLv3 only)?
Answer the question
In order to leave comments, you need to log in
IANAL, TINLA.
> I'm writing a program under GPLv3
So. And the choice of conditions lies entirely with you? That is, it is either entirely your work (which is almost impossible :-), or all the owners of all dependencies have allowed you to do this at your own discretion?
If yes, then note that you can selectively weaken the GNU GPL copyleft as you like - well, for example, directly allow linking with certain non-free libraries. And it won't contradict her.
> with the ability to connect plugins (dynamic linking)
So.
> Question - will there be any restrictions on the license for the plugins themselves
Exactly this question is answered in detail [0] in the FAQ on GNU licenses.
- When is a program and its external modules considered a single combined program? (#GPLPlugins)
This depends on how the main program calls its plug-ins. If the main program uses fork and exec to do this, and they communicate closely through complex data structures, shared or passed back and forth, then they become a single combined program. When the main program simply uses fork and exec to call external modules without having to communicate closely with them, the external modules remain separate programs.
If the main program is dynamically linked to modules and they call functions from each other and share common data structures, we are convinced that they form a single combined program that should be considered an extension of both the main program and the modules. If the main program is dynamically linked to modules, but the interaction between them is limited to calling the "main" procedure of the module with some parameters and waiting for the result, then this is an extreme case.
Using shared memory to exchange complex data structures is quite equivalent to dynamic linking.
— If I write an external module for use with a program released under the GPL, what requirements does this impose on the licenses under which I can distribute my module? (#GPLAndPlugins)
See the [previous] question for a definition of whether modules and the main program are considered to be a single combined program or separate works.
If the main program and modules constitute a combined program, that means that you must release the module under the GPL or a compatible free software license and distribute it with source code in a way that is compatible with the GPL. If the main program is separate from external modules, then this does not impose requirements on external modules.
Why didn't he suit you?
> Can I limit the license with which plug-ins can be connected (for example, only MIT
If yes (second paragraph), then yes, only then your program will not be under the GNU GPLv3. *Such* condition contradicts it.
[0] https:/ /www.gnu.org/licenses/gpl-faq.ru.html#GPLPlugins
___
PS And yes, although you didn't ask about it, I can't help advising you not to follow bad examples, and don't distribute your work under the terms of the GNU *L version of this -and _only_ such-and-such, but always choose version such-and-such _or later_.As this one is recommended in itself [a].This
is true even if it now has a dependency on running under version N exactly.
[ a]https://www.gnu.org/licenses/gpl-3.0.html#howto
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question