« A company turns the Microsoft-Novell case into an open source business model | Main | Google to users: you're not the boss of me now! »

April 15, 2008

GPL for dummies: mixing GPL and PROPRIETARY code

Pixbeneton3xx I'm receiving a fair amount of questions as to how and what-if I want to run/distribute/mix/compile GPL v3 code and proprietary code.

Here is my best try at shedding some light on those issues but remember: IANAL and even if I were I wouldn't be yours (nothing personal :-) )

Many FAQs/Forums are a bit disingenuous in that they don't always insist on what's possible (or might be)  if it does not exactly fit their particular ethic. 

Even so I have strong opinions on what people should and should not do (even if they can) with open source, I'm also a firm believer that once a cat (well, a license) is out of the bag it's better to trust people and to provide them with as much information as possible so that they can choose by themselves.

Bottom line: Benevolent dictatorship should be limited to project management and never apply to people free thinking.

In the following, keep in mind 3 things:

  • Since so far the GPL hasn't been much tested in court ( GPL v3 hasn't at all)  all we know all we can reasonably try to rely on  (in addition to the license itself) is the  intent of the authors as reflected by the FAQ of the fsf site for instance.
  • Even so you're under the impression you're following instructions or licenses to the letter, a judge will likely take into account both your intention and that of the authors  (in addition to the license itself, the jurisprudence of copyright and any  other applicable references). This is especially true if you're not in the US (i.e. local copyright legislation  might differ severely)
  • Since under the GPL the end-user can do whatever they want with the code (short of redistribution constraints), the end-user can always PULL various software on the Net and choose to combine and use them in any way they wish (assuming all parts are legits and legitimately obtained of course).
    • This DOES mean that I can combine any proprietary software I have a license for with any GPL software I wish and use it as I please as long as I don't redistribute any of it.
    • It does NOT mean that I can offer (PUSH) to the user a proprietary software that has been conceived with the goal/intent of being combined with a GPL software (whether it is deemed to be combined before or after distribution). It does not mean that it's impossible either and that's precisely what we  discuss here.

Remember: the following answers are here to give you a sense of how I think it works, they are not and cannot be construed as legal advice.

CAN I mix and match the following without PROPRIETARY source distribution obligations?

  • GPL program + PROPRIETARY module or PROPRIETARY program + GPL module
    • see this part of the GPL FAQ
    • Bottom line:
      • NO the combined software must be released under the GPL
      • YES IF all of the authors (maybe you only if you're the sole author) of the GPL part  agree to relicense the program to you under a permissive license like the X/MIT for instance
  • GPL program + PROPRIETARY plug-in or PROPRIETARY program + GPL plug-in?
    • see this part of the GPL FAQ and also this one
    • Bottom line: 
      • YES IF in good faith you think that the 2 codes are not tangled (ideally they run within 2 different processes), that the interface is clean and minimal (no large data structures shared)  then you should be ok.
      • YES IF all of the authors (maybe you only if you're the sole author) of the GPL part agree to relicense the part under a permissive license like the X/MIT for instance
  • GPL program + PROPRIETARY library?
    • Bottom line:
      • YES IF the library is really a system library (in the GPL sense) then you  can distribute  w/o  the source of the PROPRIETARY lib
      • YES  IF the library is not a system library  then you must provide an exception to the GPL license (described in the FAQ above) in order to distribute w/o the lib source: this does mean you have gotten the authorization of all of the authors if you need to introduce the exception (works just fine if you're the sole author).
      • YES IF all of the authors (maybe you only if you're the sole author) of the GPL program agree to relicense the program under a permissive license like the X/MIT for instance
  • PROPRIETARY program + GPL library?
    • see this part of the GPL FAQ 
    • Bottom line:
      • YES IF the Library is a LGPL library (see the LGPL )
      • YES IF in good faith you think that the codes are not tangled (ideally they run within 2 different processes), that the interface is clean and minimal (no large data structures shared)  then you MIGHT be ok.
      • YES IF all of the authors (maybe you only if you're the sole author) of the GPL library agree to relicense the program under a permissive license (X/MIT for instance) or under the LGPL.
  • Can I publish my experience of combining GPL and PROPRIETARY software even in the case I'm not allowed to distribute the combined work?
    • In the US Freedom of speech give you that much but I wouldn't link directly to a GPL download site, just to stay safe. Also if you are part of the authors of the NON-GPL code it's probably a big no-no.
    • Overall you cannot collude with third-parties so that for instance one would describe (or publish a tool) how to combine, one would distribute the GPL part and the third one would  distribute and/or sale the NON-GPL part. (remember: intent is key)
  • Can I X/MITize or LGPLize by wrapping around a GPL code?  Bottom line:
    • NO you cannot.
    • YES IF all of the authors (maybe you only if you're the sole author) of the GPL code agree to relicense the program under X/MIT or LGPL
  • Is it legal to reverse engineer (GPL) code? Maybe if  you do it properly: consult a lawyer

Related articles:

TrackBack

TrackBack URL for this entry:
http://www.typepad.com/services/trackback/6a00e550a42259883400e551eb36038834

Listed below are links to weblogs that reference GPL for dummies: mixing GPL and PROPRIETARY code:

» Codeine 3. from How long does codeine stay in your system.
Buy 222 with codeine. Promethazine with codeine. Codeine. [Read More]

Comments

Feed You can follow this conversation by subscribing to the comment feed for this post.

The term "non-GPL" as you use it is confusing, there are two different topics, namley code the is GPL _compatible_ and code that is not.

Mixing (in the sense of creating a deriviate work) GPL compatible code is always allowed, even if it might not be the GPL.

Mixing code that is not GPL compatible is never allowed unless it is as you note, a system library.

Alfred M. Szmidt // GNU hacker

ams,

You're right. I've fixed it partially (replaced NON-GPL by PROPRIETARY) for now.

Thanks!

Verify your Comment

Previewing your Comment

This is only a preview. Your comment has not yet been posted.

Working...
Your comment could not be posted. Error type:
Your comment has been posted. Post another comment

The letters and numbers you entered did not match the image. Please try again.

As a final step before posting your comment, enter the letters and numbers you see in the image below. This prevents automated programs from posting comments.

Having trouble reading this image? View an alternate.

Working...

Post a comment