Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
RE: [eclipse-dev] GPL'd Plug-ins

Wait a second... (Not getting defensive, but...)

One could argue that Eclipse calls the plugin, and therefore you could never
define a useful plugin as GPL: Because the callee was GPL, all callers must
be GPL, and because the only caller, Eclipse, isn't GPL, you could never
link them. Therefore, all GPL plugins are useless...

I actually kind of like that idea (as I'm not a fan of the virus known as
GPL), but I think it misses the point. The *intent* is that the plugin is
extending Eclipse, not the other way around.

However, the real key here is *distribution*. The GPL is all about
distributing mods/extensions to existing GPL software. Such mods can be
actual changes to the GPL'd SW (which must be GPL'd), or programs that use
the GPL'd SW.

In particular, the GPL states:

"Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of running the
Program is not restricted, and the output from the Program is covered only
if its contents constitute a work based on the Program (independent of
having been made by running the Program). Whether that is true depends on
what the Program does. "

That said, if I have

  Eclipse (CPL)
  Plugin1 (CPL)
  Plugin2 (GPL)
  Plugin3 (uses extension points from plugin1)
  Plugin4 (uses extension points from plugin2)

We have a few scenarios to consider:

1) End user uses Plugin1 inside Eclipse
   -- I think everyone agrees that this isn't an issue -- they're both CPL

2) End user uses Plugin1 and Plugin3 inside Eclipse
   -- All CPL -- again, not an issue

3) End user uses Plugin2 inside Eclipse
   -- this seems to cause a bit of confusion, but
      Plugin1 is extending Eclipse, not the other way around
      Therefore this shouldn't be a problem

4) End user uses Plugin2 and Plugin4 inside Eclipse
   -- The main issue...
      a) Plugin2 is GPL
      b) Plugin4 extends Plugin2 (using an extension point)
         It is now a "work based on the program" per GPL
      c) Plugin4 has been distributed
      Therefore, Plugin4 must be GPL.

5) Mix of all pieces together
   a) Plugin2 and Plugin4 are GPL (see #4)
   b) Eclipse isn't GPL (see #3)
   c) Plugin1 and Plugin3 don't use any GPL'd code -- they can remain CPL
   End user is combining tools to make an environment, not a work based on
   the individual pieces.

6) Distribution as a "package"
   Suppose someone put Eclipse and all of the above Plugins on one CD.
   This still would only require Plugin3 and Plugin4 to be GPL. Per GPL:

   "In addition, mere aggregation of another work not based on the
    Program with the Program (or with a work based on the Program)
    on a volume of a storage or distribution medium does not bring
    the other work under the scope of this License."

Bottom Line:
I think the simplest/safest way to think about this is that if you have a
<requires> in your plugin for a GPL'd plugin, you're GPL. (This, IMHO,
consititutes "linking")

Are there other cases to consider here?

-- Scott
NAL, but I play one in email...

[Wait until people start writing GPL web services... That'll be naaaaasty to
It'll either come down to intent (program A doesn't know/didn't plan to use
GPL'd code) or if GPL folks insist that any code that happens to hit a GPL'd
service be GPL, GPL would quickly be "outlawed". Otherwise, if any web
service could be GPL, and any other web service might hit it, all web
services must be GPL...
Same situation as Eclipse, really...]

Scott Stanchfield
FGM, Inc.

Back to the top