Get Updates by Email

Sunday, 24 May 2015

License For Modified GPL Code

No comments:
Today I saw that there is a good article about GPL licence on Distrowatch. As someone who uses Linux for almost 10 years now (I like Ubuntu, Mint Linux and OpenSUSE) I think that the GPL is very important. The #1 thing I like about Linux is: No viruses --  at least, not the type that gets the Windows PC's down. The #1 thing I don't like about Linux is: Unable to use certain printers, scanners, and other USB stuff. The #2 thing I don't like about Linux is lack of compatible software for certain popular Windows programs (but that is constantly changing -- free software tries to catch up, while Windows-only programs continue to evolve).

GNU Logo.
Source: http://www.gnu.org/graphics/gerwinski-gnu-head.png

One of the common beliefs about the GPL (General Public License) is that those who make use of code released under the GPL must subsequently release their modified code under the GPL license -- and it must be free. Jesse Smith, in the article about GPL on Distrowatch, states that that code released under GPL can be modified and released with requirement of payment. A person can take GPL code and modify it, and charge someone for it. But an interesting question is, how much of the final product is the property of that person? Let's say the person takes code, changes one line, and charges for the software. Let's say the code is 1000 lines long. We know that the GPL allows for the person to charge for the modified code. But what is the extent of the copyright owned on the new code?

It is natural to believe that the person who modifies the code owns it, only to the extent of effort that he has put into it. That means, only the lines that he has changed. The original code remains free and available to the public under the GPL. It seems unfair that by changing just one line, the person would be able to claim the copyright ownership for the whole of the modified code. Yet this needs to be balanced against another scenario. Some enterprising programmers may release code under the GPL for free. At a later stage, after the software has become well-developed, thanks in part to the efforts of passionate programmers (gotcha!), the project lead or project owner may decide that later versions are to be released under a premium, non-free model, and withhold the source code. Does the project owner own the modified code for the premium version? Most would say yes. How about if the premium version was derived from the GPL version, with only one line changed? Does the project owner own the code for the premium version? Unquestionably, for his business model to work (selling the premium version of a discontinued GPL product), the project owner has to be assured that he owns the copyright for the new premium version -- 100%. Otherwise, somewhere down the road, someone may challenge him, stating that 70% of his product is GPL -- therefore compensation for infringement of his software should be 30% of a software which is 100% proprietary and built-from-scratch.

It's an interesting topic. It seems that under GPL version 2 (there's also version 3), as one writer put it: "If you have modified the software, you have already agreed to release the changes you make under the GPL v2, if they are released at all." (Source)

From the GNU website's page on the GPL version 3, it says in section 8, works licensed under GPL v3 may only be modified as laid out by the license.  (Source)

In section 3, it says "You may convey covered works to others for the sole purpose of having them make modifications exclusively for you ... provided that you comply with the terms of this License in conveying all material for which you do not control copyright." That means we can take GPL v3 licensed code and hand it to others, and ask them to modify it for us. But whenever we do not own the copyright (because the code is GPL) it must be given to that person in whole (verbatim) as stated in section 4.

It's not really clear from GPL v3 whether you can release a modified version of GPL software under another license. Section 4 allows unmodified, wholesale transmission (they call it "conveying") of GPL code -- the resulting copy is also GPL. Section 5 allows propagation of "work based on the Program, or the modifications to produce it from the Program, in the form of source code" under section 4 -- that means, the resulting copy is released under GPL as well. Section 6 allows transmission of source code in "object code" (i.e. compiled code) under section 4 and 5, -- the resulting copy is also released under GPL.

Then comes section 7 of GPL v3 -- the "additional terms" section. There are two things covered here, "additional permissions" and "additional conditions".

"You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission."

Following that, a number of terms that can be added "for material you add to a covered work" -- but nothing allowing it to be released other than under GPL.

Then this paragraph:

"All other non-permissive additional terms are considered “further restrictions” within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying."

That whole paragraph just means that any other terms that restrict the GPL license may be removed. Relicensing is mentioned, but does not specifically refer to the GPL. It says instead, "If a license document contains a further restriction but permits relicensing…."

And finally, section 8 says, "You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void..."

It appears, modifications to GPL-licensed source code must be released under GPL. But if it is the case, then the project owner who first releases software under GPL and attracts people to help develop the GPL project, must then continue to live with the GPL license. Then it would appear that the same GPL software cannot be used as the basis for a proprietary software. The GPL license does not restrict charging users for code (source code or compiled), but this does not seem to stop the recipient of the code from making extra copies for free. And so, it seems that in the future, software writers may have to consider releasing their software under the GPL-but-please-pay-for-it model, and anticipate that the purchasers of their software may say, "Hey it's GPL, so we're going to make a copy of it."

In closing, let's look at some explanations from the FAQ pages of the GNU (about the GPL).

In answering whether there is copyright to modified GPL code:

  • "Whether you claim a copyright on your changes or not, either way you must release the modified version, as a whole, under the GPL (if you release your modified version at all)." 

In answering whether GPL software can be incorporated into a proprietary system:
  • "You cannot incorporate GPL-covered software in a proprietary system."

In answering whether modified GPL software can be sold commercially:
  • "You are allowed to sell copies of the modified program commercially, but only under the terms of the GNU GPL. Thus, for instance, you must make the source code available to the users of the program as described in the GPL, and they must be allowed to redistribute and modify it as described in the GPL."


In answering "Can I release a modified version of a GPL-covered program in binary form only?"

  • "No. The whole point of the GPL is that all modified versions must be free software—which means, in particular, that the source code of the modified version is available to the users."


In answering whether private use of a modified GPL software requires release of the source code to the public:

  • "The GPL permits anyone to make a modified version and use it without ever distributing it to others."


With reference to the last explanation, it seems that there is still hope for people who want to sell modified software commercially. If a client approaches a software consultant for a solution, the consultant may modify GPL software for the private usage of the client. The resulting modified GPL software, used privately, is GPL. But it will become the source of "competitive advantage" and thus, the client is not likely to share the software with others. This is because, when such specialized software is required, it is likely that most other people will not have a need for it; and those who do find it useful are likely to be competitors. Thus, the consultant will be able to approach competitors of his own client and sell substantially the same thing (with a few adaptations for the need of his new client), without infringing the GPL. It could even be more profitable than making the software available off-the-shelf, because the modified software would not be widely available to the public.

References.

  1. Smith J (2015) Myths and Misunderstandings: GPL. DistroWatch Weekly, Issue 610, 18 May 2015. URL: http://distrowatch.com/weekly.php?issue=20150518#myth
  2. Wilson R (2005) The GNU General Public License V2 - An Overview. OSS Watch, University of Oxford. 10th November 2005, updated 14th May 2012. URL: http://oss-watch.ac.uk/resources/gpl
  3. Free Software Foundation Inc (2007). GNU General Public License Version 3, 29th June 2007. URL: https://www.gnu.org/licenses/gpl.html
  4. Free Software Foundation Inc (undated) Frequently Asked Questions about the GNU Licenses. URL: https://www.gnu.org/licenses/gpl-faq.en.html
Continue Reading...