6

From the license point of view:
Is it possible to use a plugin written under "LGPLv3+" in a program protected by "GPLv2"?
The plugin is built as a ".so" library and at runtime linked to the application.

riQQ
  • 107
  • 4
Giuseppe
  • 163
  • 4

1 Answers1

4

This answer is predicated on the assumption that dynamic linking does make a derivative work for copyright purposes, which is not a settled issue (pro, contra). That said, in my opinion, you may not do this. Any additional code used in a GPLv2 program falls under GPLv2 s2b, which says that

You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License

LGPLv3 permits on-the-fly relicensing under GPLv3 (more accurately, it is GPLv3, with a set of optional extra permissions), but that's no help, because the FSF say that "GPLv2 is, by itself, not compatible with GPLv3".

The FSF also directly address your point, and say that "LGPLv3 is not compatible with GPLv2 by itself".

If the original work had been GPLv2+, you could have taken it under GPLv3, and (as the FSF agree) there would have been no problem. But it's not, so you can't. Sorry.

MadHatter
  • 48,547
  • 4
  • 122
  • 166
  • Isn't the question about using a plugin and not about "copying, distribution and modification"? The GPL V2 only applies to the latter: "Activities other than copying, distribution and modification are not covered by this License; they are outside its scope"). Or is "using" a plugin already a "modification"? – riQQ Apr 13 '21 at 17:08
  • 1
    Since when is merely using a software covered by the GPL? – Polygnome Apr 13 '21 at 17:28
  • @riQQ if dynamic linking creates a derivative work then distributing the plugin is distributing a modified version of the original work, which as you point out is very much an activity restricted by the GPL. – MadHatter Apr 13 '21 at 19:10
  • @MadHatter yes, but they are talking about using not distributing. – riQQ Apr 13 '21 at 19:10
  • @riQQ the OP hasn't asked about writing the plugin, so he had to get it from somewhere. That distribution was itself forbidden by the licence terms on the original program (if my analysis holds), so the OP has no more rights to run this code than any other stolen code. If the OP is asking about whether (s)he can write this plugin de novo, then yes, that's a different question, but I have no reason to think (s)he is. – MadHatter Apr 13 '21 at 19:13
  • @MadHatter I'd say that's true only insofar as the plugin is derivative of the GPLv2 software, or insofar as they're distributed together. Suppose the LGPLv3 plugin was written for a proprietary system, and the GPLv2 was a clean-room reimplementation of the original software. The LGPLv3 plugin wouldn't be derivative of the GPLv2 software; I see no problem with downloading them both separately (from the proprietary app's index of known plugins and from the reimplementing developer's personal site, perhaps) and running the combination. – apsillers Apr 13 '21 at 19:38
  • 2
    @apsillers I think I agree with you, but we don't have any reason to believe such is the case from the OP's question. I'm increasingly finding the question ambiguous, I must confess. For the record: I think it's perfectly lawful to download from one place GPLv2 code that accepts plugins, and a completely-unrelated plugin from another place under LGPLv3+, and run the two together. I just find it incredibly unlikely that it would work at all, much less do anything useful, and so I don't think the question's about that. – MadHatter Apr 13 '21 at 19:47
  • @MadHatter I don't see any reason a completely separate plugin wouldn't work. Either the main program or the plugin would just need to have a public-facing API. If this wasn't the case, I'm not sure you could run GPLv2 code on a proprietary OS, as you have to design the GPLv2 program to use that OS's API. Same if you had a GPLv2 OS running proprietary programs. – trlkly Apr 13 '21 at 20:45
  • @trlkly I think I agree with that also, though of course the API must be separately-published by the original code's authors, not derived by others following inspection of the code. But again, the question gives no reason to think that to apply in this case. – MadHatter Apr 14 '21 at 05:19