Slashdot Mirror


License for Open-Source Software w/ Plugins?

ThiagoHP asks: "I have developed MultiMAD, a rapid application development and prototyping for for mobile devices in my master's course, and now I want to share it with the community. It's written in Java and it has a plugin architecture in order to support different mobile device platforms (WAP, J2ME, PalmOS, etc). I want to give the freedom to anybody write their plugins, even closed-source, as long as the tool itself is not modified for them to run. This implies that GPL cannot be used. At the same time, I do not want any closed-source tool based in MultiMAD code, so licenses such as the Apache one cannot be used. Am I right in my assumptions regarding licenses? What license do you suggest?"

13 of 91 comments (clear)

  1. LGPL by A.K.A_Magnet · · Score: 5, Informative

    That's exactly what the LGPL is for.

    Derivative of your code will be in LGPL, but code linked to it (as plugins or using it as a library) have no license requirement.

    Check it out

    1. Re:LGPL by NotoriousQ · · Score: 3, Insightful

      Even better is to split the program into two parts. LGPL the core, and GPL the interface.

      --
      badness 10000
  2. Software freedom requires modification rights. by jbn-o · · Score: 2, Insightful

    The poster wants to deny users the freedom to modify the MultiMAD program ("[...] as long as the tool itself is not modified for them to run"). Thus, MultiMAD is to be licensed under a non-free license.

    The GNU GPL is a free software license; it allows users to modify the licensed program and to distribute those modified versions.

    They will not be able to make commercial applications based off of your code, and they can make all the plugins they want, closed or open source, so long as they don't modify the host application's (MultiMAD's) code.

    The GPL is not anti-commercial software development, it's pro-free software development and distribution. The moment a GPL'd program is used in a business context (such as distributing copies of GPL'd programs for a fee), that program becomes "commercial". Commercial and non-free are not the same thing. Not being able to change MultiMAD means denying users a freedom they ought to have. The GPL denies users the ability to distribute non-free derivatives. These are not the same issues and there's a good reason why the GPL does this--in order to preserve software freedom for derivatives, there had to be a choice between what was valued more and the FSF values giving more users software freedom.

  3. That or by hummassa · · Score: 3, Insightful

    license your code under the GPL, and grant an additional exception that plugins can be proprietary. It would work, too... supposing the GPL really forbids dynlinking to proprietary modules, which is disputed.

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
  4. It's not a GPL variant. by hummassa · · Score: 3, Informative

    Linux is a massively complex work when the subject is copyright. Basically, the kernel as a whole is GPLv2, and Linus (who has the copyright on a lot of code and has indirect copyright on almost the whole kernel [much kernel code which is not his is still derivative on his original linux v0.01]) says he -- like other intelligent people -- do not consider the FSF GPL FAQ as correct about linking (especially dynalinking) and the GPL.
    IOW: when you GPLv2 some code, you are probably granting the right to dynalink proprietary modules to your work. Linus only stated this explicitly, thus estopping himself from suing anyone (nVidia?) who makes proprietary loadable kernel modules.

    --
    It's better to be the foot on the boot than the face on the pavement. ~~ tkx Kadin2048
    1. Re:It's not a GPL variant. by oliverthered · · Score: 2, Interesting

      'when you GPLv2 some code, you are probably granting the right to dynalink proprietary modules to your work.'

      Yep, I agree google for 'Abstraction, Filtration, Comparison' and you should have no doubt that dynamic linking and GPLv2 are ok. This guy is obviously worried that the GPL doesn't allow linking (as many people seem to be) so I advised that he use the GPL with a clause that allows for plugin modules.

      The kernel license says...

      "NOTE! This copyright does *not* cover user programs that use kernel
        services by normal system calls - this is merely considered normal use
        of the kernel, and does *not* fall under the heading of "derived work".

      I think it would be ok for the person who asked the question to put a similar clause in his license and use GPL.

      --
      thank God the internet isn't a human right.
  5. Re:Tried and tested by Trepalium · · Score: 2, Interesting

    The Linux kernel does not explicitly allow binary modules. This is a commonly repeated myth. Please see Linus's posting on LKML for the truth behind this.

    --
    I used up all my sick days, so I'm calling in dead.
  6. Yes you can... by joto · · Score: 4, Informative
    Here's how you word it:

    This software is licensed under the General Public License (GPL), version 2 (see below for the full text of this license). As a special exemption, software plugins using the documented plugin API for this software, will be allowed to be distributed and/or run-time linked with this software regardless of their license.

    [Explain the plugin API, or where to find the "documented" parts of it]

    [Full text of GPL]

  7. Just don't sue people who write closed plugins by Anonymous Coward · · Score: 3, Insightful

    Uhm, the GPL doesn't control your app, YOU do. Here's what you can do.

    #1) place the GPL in a file called "GPL".

    #2) Place the following text in a file called "COPYING":

    This program is copyright XYZ and can be distributed under the terms of the GPL (see the file "GPL") plus the following exception: any plugins written for this application are expressly exempt from any obligations required by the GPL. You must include this entire paragraph in any copies you make of this application.

    Jeezuz people, it's YOUR application, you can license it any way you want! You can make it GPL on Tuesdays and MIT on Saturdays. This isn't rocket science, RMS doesn't control your app, you don't assign copyright to the FSF, a little bearded man doesn't pop out of your screen if you choose not to sue people who make closed-source plugins. The GPL doesn't enforce your copyright, YOU DO!

  8. GPL + barrier by vlad_petric · · Score: 2, Insightful

    If you specifically say that use of the plug-in API does not make the plug-in a derived work, then you should be alright. A similar case is, interestingly enough, the linux kernel. While modifying the kernel is derived work, making syscalls from userspace does not make the user program a derived work. Besides the kernel/user space barrier, there's also a subset of kernel functions that are effectively GPL barriers (so some modules don't need to be GPL)

    --

    The Raven

  9. GPL is the right license by Pope+Raymond+Lama · · Score: 2, Informative

    Since you own the copyright to your code, you can add an exception to the GPL that exempts plug-ins from being GPL compatible.

    Read the GPL FAQ on www.gnu.org to undertand this better. The GIMP itself uses |GP in this way, since there are non-free plug-ins for it.

    --
    -><- no .sig is good sig.
  10. A truly shocking suggestion by petrus4 · · Score: 2, Interesting

    What about using (*lowers voice to a whisper*) the BSD license? (*hears gasps of horror coming from the audience*)

    Before the GPL zealots come screaming out of the woodwork on this one, there's something they (and you) should know. The BSD license actually includes a copyright notice. Have a look at it and see. For FreeBSD as an example, the copyright is held by the CSRG.

    That means that in using it as a license, you don't actually surrender your copyright. (Unlike certain FUD which is spread by individuals who remain nameless states) You don't get a patent, no...but you *do* get copyright, in the originally intended sense of the word. This to me is a demonstration of why the GPL *is* both unnecessary and repressive, despite claims to the contrary.

    What you get the copyright to is your own work; what you're giving other people is the right to make *derivative* works. They get copyright on derivative works, yes...but they don't get the copyright on your work itself. So if you wanted to, you could use a non-viral license (the BSD license is only one option...www.opensource.org lists many) without having to assume that you're automatically putting your work in the public domain.

    My single biggest objection to Richard Stallman is that I believe that *his* philosophy is the only acceptable one. To me the use of the phrase "GPL compatible" in particular sounds a lot like the campaign Microsoft had a number of years back where they were certifying things as "Windows compatible" or "made for Windows 95."

    Stallman claims to be about freedom...but look closer. What he's really about is forming a cultural/social movement with himself at the head. That isn't anywhere near as much about freedom as it is about agreeing with whatever he decrees.

  11. Common Public License (CPL) is Perfect for this by canolecaptain · · Score: 2, Insightful

    I work on a Network Management application where the core is open source and the plugins can be any variation of license. We went through this same process and found GPL and LGPL to be more viral than beneficial for this same reason. We don't care, as you don't, that propriatary plugins (heck even extensions) are created and/or sold with our product, and they can have any license they want. However, we retain rights to our code, and any direct source code modifications to our files must be under our license.

    Here's the problem with LGPL: (from opensource.org) " However, linking a "work that uses the Library" with the Library creates an executable that is a derivative of the Library (because it contains portions of the Library), rather than a "work that uses the library". The executable is therefore covered by this License."

    If any plugin 'links' to your library, it's derivitive. That's crap in my opinion, and since you are using Java, some could argue that 'run-time linking' is still linking since it's running in the same JVM.

    Use the BSD or CPL - you'll be much better off. :-)