10

I am a contributor to a very old project presently in violation of the GPL. Our project is a plugin for a closed-source program, but the GPL does not permit this kind of linking. The project should have been licensed under the LGPL instead, but the original authors were not aware of this.

There are only about 30 contributors to the project, but it's almost ten years old at this point; Many of these people have moved on and I'm not sure I can find them all.

How should I proceed with relicensing the project if I can't contact everyone?

3
  • 1
    Are you certain it's in violation? The status of linking GPL programmes is contentious. Maybe you could just specify an exception. Aug 10, 2015 at 20:37
  • The assumption here is probably wrong - if the host was GPL, then you can't have closed-source plugins. But since the authors of the plugin designed it to work with a closed-source host, and these authors placed it under the GPL license, the GPL license on the plugin has to be interpreted in light of the intended use.
    – MSalters
    Aug 30, 2017 at 8:12

2 Answers 2

8

You need all the copyright owners' permission to change license.

There's no natural GPL-implied path here because LGPL is more permissive. It allows redistribution of unmodified binaries without the offer of source, explicitly disallowed by GPL. This makes it moderately incompatible in this direction (but you could include LGPL in a GPL work).

So in order to distribute it under a different license, you need permission from either:

  • The copyright owners (all of them).
  • An agent who operates the copyright on behalf of the owners (all of them).
  • Somebody with explicit permission to redistribute and sublicense under the terms you require.
  • Some fancy combination of the above.

If you can't get suitable explicit permissions, you have to replace their work. This could be quite simple (if they all did whole blocks that could be replaced from fresh without needing to look at them, ie a clean-room implementation), but equally, it can mean awfully painful bisects that make the process more legally dubious. It might be a good prompt to extract the best parts and rewrite.

That said, this is civil law and you only have to answer to these people or their agents. A best-effort to contact them, followed by a best-effort to remove their code will be seen by most as a honourable attempt to do the right thing.


Just as a sidebar, the FSF isn't quite as adamant you need to move to LGPL:

If the program uses fork and exec to invoke plug-ins [...] there are no special requirements.

If the program dynamically links plug-ins, [...] that combination [...] would violate the GPL. However, you can resolve that legal problem by adding an exception to your plug-in's license, giving permission to link it with the non-free main program.

You still have a licensing issue that requires everybody's input, but it might be a smaller step to leave the existing license in place and add an additional excepted license for the application you want to link into it, extra-GPL.

4
  • 2
    I wasn't aware it was permitted to change the license. How do I go about doing this, just add text to the GPL? I'm not worried about my -contributors- coming after me for this, they clearly intended for the software to be used with the non-free program in question. It's the FSF or another third party coming after me that I'm worried about. Aug 10, 2015 at 15:29
  • 1
    Think of it as dual licensing rather than editing. You are giving that application permission to deep link into your code. Without that separate license the external application has to fall back on GPL and as it doesn't provide its source, it's in violation.... If you see what I mean? Users using and redistributing it are doing it under GPL, but the extra-GPL act of linking in needs extra permission. Remember I'm just a guy on the internet, but that's my interpretation.
    – Oli
    Aug 10, 2015 at 16:04
  • But again, this doesn't change the issue that you can't contact everybody. Even with this you will need permission from everybody who has a copyright stake in the project.
    – Oli
    Aug 10, 2015 at 16:06
  • 1
    @DanielSeagraves Third parties won't come after you. Note Oli's comment "That said, this is civil law and you only have to answer to these people." If one of your contributors disagreed and you went ahead anyway, they may seek a third party as legal or financial aid. For example, sfconservancy.org/linux-compliance/vmware-lawsuit-faq.html
    – lofidevops
    Aug 11, 2015 at 5:49
4

Step 1: document the situation. Put up a notice that explains the problem; but be clear, not alarmist. As discussed on other questions, there's no problem for users of your plugin, only for people who would want to distribute a combined work of your plugin and the host.

Step 2: Survey the contributions of the unreachable individuals. Perhaps they are very small? This might either make them easily replaceable, or not big enough to copyright.

Step 3: Survey the mailing list archives. If there's a clear intention to allow this usage, then you might conclude that it's safe to change the license (by adding a permissive term or by switching to LGPL) on the grounds that you have evidence that all the copyright holders intended this in the first place.

HOWEVER: You've noted in other questions that you incorporated code from other GPL sources. You can't relicense that without permission from its copyright holders, so there's really no point to changing your license unless you can replace that code.

To repeat what I have written elsewhere: You and your fellow contributors have not violated anything. You have, however, created an opportunity for a very small group of people to violate the license of the GPL code you incorporated. If there is no realistic situation in which anyone would want to distribute a combined work, then this is more humorous than disastrous. Your notice would consist, more or less, of:

Hey, we used the GPL and we forgot to add a dynamic linking exemption, and we incorporated some other GPL code that has no dynamic linking exception. If you are an end user, this makes no difference to you. The GPL gives you all the rights you need. Our mistake only matters if you want to create a derived work by combining our plugin with <INSERT APPLICATION NAME HERE> and distribute that combined work. In that case, we're really sorry, but we can't guarantee that some copyright holder won't call you out for a violation, so we have to tell you that this would be a very bad idea.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.