Re: GPL Interpretation on load [Was: [bug #61594] suggest new $(hash ...) function]
On Wed, 2021-12-01 at 09:33 -0500, rsbec...@nexbridge.com wrote: > That is understood. Is this an official GNU Make policy because it is > not specified that way in GPL. Has the GNU Make team modified their > copy of the GPL license because it is not indicated as a modified > version? I'm not sure what you're asking here. As Eli says, most GNU projects that provide the ability to load modules like this, have a similar type of restriction. I don't see how this goes against the GPL license or would require an extension or exception to the GPL license. You, as the user of the program, have received all your rights under the GPL. There's nothing in the GPL that says or implies that the implementation of a program licensed under the GPL, must allow anything at all to be loaded regardless of license. Note that the GPL only applies to distribution, it doesn't apply to use. Just creating and using a plugin yourself doesn't mean it has to also be provided to everyone under a GPL-compatible license. It's only if you distribute the plugin that the GPL comes into play. Whether this is actually legally enforceable is not something I am qualified to discuss... this is the way the GNU project wants plugins to be handled. If you want to understand more about the process and philosophy here, you can read about it in the GCC plugins section (GNU make uses the same thinking): https://gcc.gnu.org/onlinedocs/gccint/Plugin-API.html https://gcc.gnu.org/wiki/GCC_Plugins
RE: GPL Interpretation on load [Was: [bug #61594] suggest new $(hash ...) function]
On December 1, 2021 9:41 AM, Eli Zaretskii wrote: > To: rsbec...@nexbridge.com > Cc: bug-make@gnu.org; bo...@kolpackov.net > Subject: Re: GPL Interpretation on load [Was: [bug #61594] suggest new > $(hash ...) function] > > > From: > > Cc: , , m...@gnu.org>, > > > > Date: Wed, 1 Dec 2021 09:33:22 -0500 > > > > > The test doesn't check that the library is under GPL, it tests that > > > it's > > "GPL- > > > compatible", which means it's Free Software. GNU Make doesn't want > > > to load non-free modules. > > > > That is understood. Is this an official GNU Make policy because it is > > not specified that way in GPL. Has the GNU Make team modified their > > copy of the GPL license because it is not indicated as a modified version? > > That's the official policy of the whole GNU project. GCC does the same, as > does Emacs and others. It might be policy, but it is not explicitly quantified in the GPLv3. I was looking for clarification. Thanks.
Re: GPL Interpretation on load [Was: [bug #61594] suggest new $(hash ...) function]
> From: > Cc: , , , > > Date: Wed, 1 Dec 2021 09:33:22 -0500 > > > The test doesn't check that the library is under GPL, it tests that it's > "GPL- > > compatible", which means it's Free Software. GNU Make doesn't want to > > load non-free modules. > > That is understood. Is this an official GNU Make policy because it is not > specified that way in GPL. Has the GNU Make team modified their copy of the > GPL license because it is not indicated as a modified version? That's the official policy of the whole GNU project. GCC does the same, as does Emacs and others.
RE: GPL Interpretation on load [Was: [bug #61594] suggest new $(hash ...) function]
On December 1, 2021 9:25 AM, Eli Zaretskii wrote: > > From: > > Date: Wed, 1 Dec 2021 09:09:55 -0500 > > Cc: bug-make@gnu.org, bo...@kolpackov.net > > > > On December 1, 2021 9:06 AM, Tim Murphy wrote: > > > > > > > -load $(XTRA_OUTPUTDIR)/hash$(XTRA_EXT) > > > > This thread brings up a question. The load function checks for GPL > compatibility. > > > > /* Assert that the GPL license symbol is defined. */ > > symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible"); > > if (! symp) > > OS (fatal, flocp, > > _("Loaded object %s is not declared to be GPL compatible"), > > ldname); > > > > I am wondering why that is the case. A DLL that is loaded by GNU Make is > not necessarily subject to GPLv2 or GPLv3. GPLvx makes it clear that you are > subject to GPLvx if you include portions of the code from the project under > license. However, an external DLL that is loaded by GNU Make via dlopen > does not have to use any code from the code base. Using a published API, > which would be the function interface has precedent for being excluded > from license enforcement - the UNIX kernel API is an example that is purely > public domain itself, while the individual header files are subject to licenses. > > The test doesn't check that the library is under GPL, it tests that it's "GPL- > compatible", which means it's Free Software. GNU Make doesn't want to > load non-free modules. That is understood. Is this an official GNU Make policy because it is not specified that way in GPL. Has the GNU Make team modified their copy of the GPL license because it is not indicated as a modified version?
Re: GPL Interpretation on load [Was: [bug #61594] suggest new $(hash ...) function]
> From: > Date: Wed, 1 Dec 2021 09:09:55 -0500 > Cc: bug-make@gnu.org, bo...@kolpackov.net > > On December 1, 2021 9:06 AM, Tim Murphy wrote: > > > > -load $(XTRA_OUTPUTDIR)/hash$(XTRA_EXT) > > This thread brings up a question. The load function checks for GPL > compatibility. > > /* Assert that the GPL license symbol is defined. */ > symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible"); > if (! symp) > OS (fatal, flocp, > _("Loaded object %s is not declared to be GPL compatible"), > ldname); > > I am wondering why that is the case. A DLL that is loaded by GNU Make is not > necessarily subject to GPLv2 or GPLv3. GPLvx makes it clear that you are > subject to GPLvx if you include portions of the code from the project under > license. However, an external DLL that is loaded by GNU Make via dlopen does > not have to use any code from the code base. Using a published API, which > would be the function interface has precedent for being excluded from license > enforcement - the UNIX kernel API is an example that is purely public domain > itself, while the individual header files are subject to licenses. The test doesn't check that the library is under GPL, it tests that it's "GPL-compatible", which means it's Free Software. GNU Make doesn't want to load non-free modules.
GPL Interpretation on load [Was: [bug #61594] suggest new $(hash ...) function]
On December 1, 2021 9:06 AM, Tim Murphy wrote: > -load $(XTRA_OUTPUTDIR)/hash$(XTRA_EXT) This thread brings up a question. The load function checks for GPL compatibility. /* Assert that the GPL license symbol is defined. */ symp = (load_func_t) dlsym (dlp, "plugin_is_GPL_compatible"); if (! symp) OS (fatal, flocp, _("Loaded object %s is not declared to be GPL compatible"), ldname); I am wondering why that is the case. A DLL that is loaded by GNU Make is not necessarily subject to GPLv2 or GPLv3. GPLvx makes it clear that you are subject to GPLvx if you include portions of the code from the project under license. However, an external DLL that is loaded by GNU Make via dlopen does not have to use any code from the code base. Using a published API, which would be the function interface has precedent for being excluded from license enforcement - the UNIX kernel API is an example that is purely public domain itself, while the individual header files are subject to licenses. So, my question is why the GPL enforcement outside of what would be a usual interpretation for GPLv3, for external integrations that may have nothing specifically to do with the Make code? Sure, if you include function.h then yes you are subject to it, but you do not have to. This seems overly aggressive and not really necessary. Is there an answer back in history that might explain it? Thanks, Randall