5,548,129 members and growing! (20,266 online)
Email Password   helpLost your password?
General Programming » Programming Tips » General     Beginner License: The GNU General Public License (GPL)

GNU GPL for dummies

By TheBigRedDog

Synopsis of GPL v3 discussed in simple terms
C++, .NET, LINQ, Ajax, Design, CEO, Architect, Dev

Posted: 14 Apr 2008
Updated: 14 Apr 2008
Views: 5,616
Bookmarked: 9 times
Announcements
Want a new Job?



Search    
Advanced Search
Sitemap
9 votes for this Article.
Popularity: 3.26 Rating: 3.41 out of 5
1 vote, 11.1%
1
0 votes, 0.0%
2
1 vote, 11.1%
3
5 votes, 55.6%
4
2 votes, 22.2%
5
Note: This is an unedited contribution. If this article is inappropriate, needs attention or copies someone else's work without reference then please Report This Article

UPDATE: I have also posted GNU GPL for dummies (II): mixing GPL and NON GPL code to give better answer to the most frequent question questions

--

Many resources are out there explaining the GNU GPL. It’s fair to say that most of them discuss the GNU GPL but they don't always paint a ... (ahem) simple picture. If you have no doubts about the following questions then this paper is not for you.

  • Are you forced to redistribute all of your GPL mods? (answer: no)
  • Can you sell both the GPL source code and/or the executable? (answer: yes)
  • Can you distribute GPL code with proprietary code without distributing the source of the proprietary code? (answer: it depends).
  • Where is the official GPL FAQ? (answer: here)

Note: this article will be followed by one on the LPGL and yet another one on the Affero GPL

So here are a few short paragraphs deciphering the GNU GPL in plain Natural Language (hey, not everybody is Eben Moglen :) )

Everything here pertains to the latest version v3 of the GNU GPL. All the entries below have to be understood as most-of-the-time. Remember, the goal is to give you a good grok, a big picture, it is NOT an appropriate or lawful interpretation: consult a lawyer (I'm not).

The GNU GPL gives you the freedom to use the software for any purpose, to modify it in anyway you wish, and to share it (including mods) with anybody you want (1). In order to benefit from those rights you must respect the following:

(1)It’s not because you have the right to do so as regard to the GPL that you have the right to do it in real life; for instance the right to share doesn’t give you the right to break exports laws and the right to use it anyway you wish is not a free pass to break into a bank account

Right to use and mod:

You can mod, mix (including with any other source code), match, run, compile etc. GPL code any way you want without any obligation as long as you don’t redistribute it. Note that you cannot modify the license itself of sub-license the GPL code.

Special case: if you subcontract a mod to a third-party and if you don’t distribute the resulting code you don’t have any obligation to redistribute sources (nor does the third-party).


Right to share: source-code-distribution contagion

If you distribute an executable code that contains GPL code: most often you must give access to ALL the source code as well, including sources not originally under GPL

  • If two codes interacting closely together don’t have compatible licenses you cannot redistribute them together, period.
  • If your GPL executable is distributed so that to run and interact closely with another code, you must give access to both source codes to the users (yes linking usually means interacting closely)
  • Running your proprietary software written in PhP, on top of Linux and using MySQL does not mandate any redistribution of your proprietary source code
  • The mere distribution of executables along side each other on a media (or through a network) doesn’t trigger any source-code-distribution contagion; for instance: a Linux distro commonly contains many files under various licenses, sometimes incompatible with each other.


Equivalent Access distribution

You can distribute GPL code any way you want (including for a fee) as long as getting the source code is not made harder for the user than getting the executable. This means that:

  • If users pay for the executable they cannot be charged more for getting the source
  • If a certain procedure has to be respected for accessing the executable then the procedure to access the source cannot be substantially harder, longer, more complicated or expensive etc.
  • Access to the source code should be given with enough information/tools/files including the source code of appropriate libs (2), so that it’s reasonably easy to compile into a working code

(2) A few common sense exceptions though: you’re not forced to distribute the source of the entire Linux kernel, C or Python source lib etc.

The box is the computer (Tivoization)

If a device runs GPL code and if this device is distributed then users must be able to access (3) the source AND must be provided (4) with clear instructions so that to re-install the box with any mod they wish.

(3) If the box is hooked-up to a network, this does NOT mean that you can subsequently access the network onto which the box is hooked-up anyway you want. For instance, if the box is a DSL-like router it MIGHT be ok to access usual ISP services but not other additional services.

(4) A few common sense exceptions mostly related to the fact that sometimes (one-time flashing etc.) the provider itself cannot mod the code

DRM software (not DRM-crack software) written under GPL

Any DRM system released under the GPL (or containing GPL software) can be circumvented by a program without constituting a DMCA violation (5). Remember: the GPL has been written that way to offer some reasonable protection, no guaranty about what a judge will decide at the end though.

(5) This does NOT mean that writing crack code under the GPL (or containing GPL code) shields you in anyway way from the DMCA (except if the DRM you cracked was written with software under GPLv3 in which case you MIGHT be ok)

GPL Impact on patenting

  • By authoring code under the GPL (including mods) you give away all patent rights that would contradict the terms of the GPL (e.g. you cannot prevent people to use, mod and share the code as stated by the GPL)
  • If a GPL contributor sues another GPL contributor for patent infringement, their rights under the GPL are immediately terminated.

Note: it also means you cannot do deals like that of Microsoft and Novell (search the GPL for the word discriminatory)

Road to GPL compliance

If you violate the terms of the GPL in good faith you can be re-established in your rights after showing compliance

FUD consideration: Worth noting is that the GPL is a license, not a contract. As such, copyrights laws cannot force you to release your proprietary code under the GPL even if this is what you should have done at the first place; you will likely be ordered to stop distributing the software in question and maybe asked to pay fines, damages etc.

PS: You might also be interested in reading this: Choosing an open source license

blog.milkingthegnu.org

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPL)

About the Author

TheBigRedDog



Location: United States United States

Other popular Programming Tips articles:

Article Top
Sign Up to vote for this article
You must Sign In to use this message board.
FAQ FAQ Noise ToleranceSearch Search Messages 
 Layout  Per page   
 Msgs 1 to 8 of 8 (Total in Forum: 8) (Refresh)FirstPrevNext
Subject  Author Date 
GeneralGUI and GPLmemberBrakanjan23:42 25 May '08  
Generalgpl mod and lgpl api?memberadrian_0073:47 15 Apr '08  
General[Message Deleted]memberTheBigRedDog3:51 15 Apr '08  
GeneralRe: gpl mod and lgpl api? [modified]memberTheBigRedDog4:18 15 Apr '08  
GeneralLinking, DLLs and executablesupporteryarp19:25 14 Apr '08  
GeneralRe: Linking, DLLs and executable [modified]memberTheBigRedDog20:21 14 Apr '08  
GeneralRe: Linking, DLLs and executablememberrobert bouwens23:24 14 Apr '08  
GeneralRe: Linking, DLLs and executablesupporteryarp1:23 15 Apr '08  

General General    News News    Question Question    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

PermaLink | Privacy | Terms of Use
Last Updated: 14 Apr 2008
Editor:
Copyright 2008 by TheBigRedDog
Everything else Copyright © CodeProject, 1999-2008
Web07 | Advertise on the Code Project