GPL License is evil

Jorge Castro
9 min readMay 19, 2020

And not for the reason of what your think.

“This article is for the viewpoint of the creator or copyright owner.”, for the end user is simple: GPL = FREE.

There is nothing wrong with open source, it could be use as a business model or just for sharing information.

How a “open source” license works.

  • I share a code with a open source license.
  • Somebody (called X) uses it under some conditions.
  • If X breaks the conditions, then he/she couldn’t use it as open source. So, it is turned automatically into a close source project or the license is denied. See: Oracle vs Android. It is not shady as it looks and it is quite fair: “follow the rules or else” The else is a commercial license/ or denied. To whom? And it is the catch.

You have a code or project or library and you want to share as GPL, then you copy the GPL license and share with your code:

So, let’s check GPL (v3 but v2 is almost the same)

GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007

Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

We start bad. Who owns your code? FSF?. Who are they?. I can understand two things: FSF copyright your work or FSF copyright the license. And why the license is copyrighted anyways?. We read first paragraph and it is a hell of shady.

but changing it is not allowed.

What?. We are not even able to add our ownership.

Preamble

The GNU General Public License is a free, copyleft license for
software and other kinds of works.

The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program — to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.

Who is the author or authors anyways? It is not even mentioned.

When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.

yadayadayada

To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.

“We need to prevent”. Who? FSF?. While FSF could give legal protection but they could not. They are free to pick to who to protect. So, FSF is not an insurance and some developers finally rely to protect its code on their own.

For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.

…..

Lots of legalese.

Also add information on how to contact you by electronic and paper mail.

If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:

<program> Copyright © <year> <name of author>
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w’.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c’ for details.

So at last, it shows some real copyright but it is outside of the license. What it means?. However, the source code is inherently editable while the license not (because officially, it is a legal document, a contract).

How to Apply These Terms to Your New Programs

If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest

Safest to whom?

to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the “copyright” line and a pointer to where the full notice is found.

<one line to give the program’s name and a brief idea of what it does.>
Copyright © <year> <name of author>

So the real ownership is written in a single line and it is not in the license. Also, the same license says “you could change the code!”, it is not quite clear if it also includes the source code.

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

C’mon!.

The hypothetical commands `show w’ and `show c’ should show the appropriate
parts of the General Public License. Of course, your program’s commands
might be different; for a GUI interface, you would use an “about box”.

You should also get your employer (if you work as a programmer) or school,
if any, to sign a “copyright disclaimer” for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
<http://www.gnu.org/licenses/>.

The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
<http://www.gnu.org/philosophy/why-not-lgpl.html>.

And it is more marketing for the GNU.

The GPL license is more marketing and propaganda for GNU and less protection for the owner of the code (or owners).

Let’s say the next code

/** copyright Harry Potter 2006 **/
function helloworld(name) {
print(“hello “+name”)
}

It could be changed as:

/** copyright Voldemort 2020 **/
function helloworld(name) {
show=”hello “+name
print(show)

}

You could say, hey, it only changed the copyright. No, it also changed the interior of the functionality (code flipping / refactoring). Why not? The license says everybody could change the code (it talks about modify 14 times!) and it includes the comment that is used as copyright because the code is part of the code. Also, comment is not a copyright nor a legal tool.

Example Oracle vs Android

However, my point is not about code flipping but license flipping. GPL hardly protects against it.

MIT License

Let’s compare with other license. MIT is more liberal btw.

Copyright <2006> <Harry Potter>

It starts great, so somebody is the creator and copyright owner.

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

And that’s it!. Did you see other copyright or propaganda?. Nope. There is not a third-party foundation or organization in the copyright. This document protects the owner:

Voldemort is unable (legally) to change the copyright. He could change the code at whim but he is unable to change the license.

Apache License

Copyright <2006> <Harry Potter>

It’s the same than MIT.

Licensed under the Apache License, Version 2.0 (the “License”);
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an “AS IS” BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Simple and functional and it marks who is the owner.

And we could change and edit both licenses MIT and Apache.

Breaking a GPL license.

For example, I want to break a GPL license. I can’t do it directly, it’s also pointless. But I can change the code (and the GPL license allows it), so I remove all copyright inside the code and I put my owner. Finally, I delete the GPL license. Why? Because who will sue me for that? The owner of the code?, but it is me.

Linux example

linux/crypto/842.c

It is the current “license”:

// SPDX-License-Identifier: GPL-2.0-or-later
/*
* Cryptographic API for the 842 software compression algorithm.
*
* Copyright © IBM Corporation, 2011–2015
*
* Original Authors: Robert Jennings <rcj@linux.vnet.ibm.com>
* Seth Jennings <sjenning@linux.vnet.ibm.com>
*
* Rewrite: Dan Streetman <ddstreet@ieee.org>
*
* This is the software implementation of compression and decompression using
* the 842 format. This uses the software 842 library at lib/842/ which is
* only a reference implementation, and is very, very slow as compared to other
* software compressors. You probably do not want to use this software
* compression. If you have access to the PowerPC 842 compression hardware, you
* want to use the 842 hardware compression interface, which is at:
* drivers/crypto/nx/nx-842-crypto.c
*/

And it is the original “license” code

/*
* Cryptographic API for the 842 compression algorithm.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110–1301, USA.
*
* Copyright © IBM Corporation, 2011
*
* Authors: Robert Jennings <rcj@linux.vnet.ibm.com>
* Seth Jennings <sjenning@linux.vnet.ibm.com>
*/

It keeps the original authorships and the copyright (IBM) but the license has changed, so it shows how weak is the protection of license inside a code that everybody could change. It says Copyright IBM but under which conditions? It doesn’t say.

There is a line

// SPDX-License-Identifier: GPL-2.0-or-later

But legally it doesn’t say that the copyright of IBM = GPL 2.0. Even IBM could claim ownership of it and even turned into close source.

Collaboration

About licensing, it’s simple. If the code says

“copyright <Harry Potter>”

, then Harry potter is the owner of this code. If the code says

“author <Harry Potter>”

or editor or whatever, then no, Harry Potter owns nothing. Even more, if the code doesn’t even mentions Harry Potter, then Harry Potter owns nothing too.

Example: But who owns Linux?

  • If you are a collaborator but it doesn’t say “copyright” then no, you don’t own part of Linux.
  • There are a lot of copyright on Linux. Linux is more a group of copyrighters. However, since every part is removable, then it is possible to oust out somebody from Linux.
  • Finally, everything that is not copyrighted by somebody then it falls under the copyright of Linux Foundation and the Foundation has the right to change the license at whim (but only what they own).
  • GPL, for this case, acts as a duct-tape

Long story short

If the license doesn’t say explicit: “I own it and you can’t change the license and copyright without my consent”, then the license does not work. GNU heavily protects its own license, and they know it. But the left the creator on their own.

Also, if you allow to modify the code and you write the license/copyright into the code, then you could be fooling yourself.

--

--