Giter VIP home page Giter VIP logo

gpl-history's Introduction

gpl-history

This is a collection of historical variants of various GPL and LGPL license texts as published by the FSF and GNU project as well as key adopters (such as the Linux kernel and GNU Bash, GCC or Findutils).

It started as a tongue-in-cheek exercise after some exchanges with Linus, Alan Cox and other kernel maintainers on LKML while I was working as an Elf helper to Thomas Gleixner during the 2017-2019 campaign to clean up the kernel licensing documentation. There was an argument about which source to use for the GPL text and whether the text used in Linux was correct, and I jumped in with some GPL text history.

This repo is an attempt to store it all in git.

Why? The GPL starts with this:

Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.

If you take this statement literally, "verbatim" becomes slightly more flexible if there are more textual variants to chose from, which happens to be the case.

Note also that any attempt to use strict checksums to identify a license is a weak approach since there are so many small variants.

The COPYING and linux.COPYING files have a partially reconstructed and incomplete git history.

The allvers directory contains every known version without any attempt to craft a proper git history; instead each version is a new file and there is a .notes files with notes and URLs.

There are also branches that contained the filtered Linux commit/patches history for the Linux COPYING file (built using historical Linux trees and lengthy git filter-branch), but this is incomplete.


Big thanks to:

  • Armijn Hemel @armijnhemel for helping maintaining this and reporting several new variants

On 2017-12-28 COPYING file from the Linux kernel moves to LICENSES/preferred/GPL-2.0

The Linux COPYING's history ends and meets and collides with this COPYING and GPL history! As a weird twist of fate the efforts of licensing clarification in the Linux kernel that led to the creation of this history as a tongu-in-cheek also altered the history of the Linux kernel COPYING file itself. This is the problem with time-travel: if you travel back in time, you will alter history and create a new now and a possibly different future.

For the history of history, here is the full commit message from Thomas Gleixner forever binding this repository history to Linux commit history:


LICENSES: Add the GPL 2.0 license
Add the full text of the GPL 2.0 license to the LICENSES directory.  It was
copied directly from the COPYING file in the kernel source tree as it
differs from the public available version of the license in various places
including the FSF.

Philippe did some research on the GPL2.0 history:

  There is NO trustworthy version of an official GPL 2.0 text: the FSF
  official texts are all fubar (if only in small and subtle ways). The FSF
  texts should be authoritative, but then which one? They published more
  GPL 2.0 versions than most. So we would be hard pressed to blame SPDX or
  the OSI for having their own minor variant.

  Then in digging further, I found the ONE true original GPL with a file
  time stamp on June 2 1991, 01:50 (AM?, PM? unknown time zone?)  ! in an
  old GCC archive.

  For the posterity and everyone's enjoyment I have built a git history
  of GPL 2.0 Mark1 to Mark6

  See https://github.com/pombredanne/gpl-history/commits/master/COPYING

  I also added a shorter history of the Linux COPYING text. The first
  version in Linus's git tree is based on the very fine and well tuned GPL
  2 Mark4, the first fully Y2K compliant version of the GPL 2, as you can
  see from the diffs with the former Mark3: that was dangerously stuck in
  the last century.

  The current version in is based on a rare GPL 2.0 Mark5.1 aka "Franklin
  St", that I do not have in my history yet and spells "Franklin St."
  rather than "Franklin Street."  Therefore there is likely another GPL 2.0
  version between Mark4 and Mark5 that I have yet to find and may not have
  been caught by the archive.org spiders. Here help and patches welcomed:
  this is likely an important missing link.

  Further information about this archaelogical research;

  http://lkml.kernel.org/r/CAOFm3uEzRMf261+O-Nm+9HDoEn9RbFjH=5J9i1C2GgMUg2G4LA@mail.gmail.com

Add the required tags for reference and tooling.

Signed-off-by: Thomas Gleixner <[email protected]>
Reviewed-by: Greg Kroah-Hartman <[email protected]>
Reviewed-by: Philippe Ombredanne <[email protected]>
Reviewed-by: Jonas Oberg <[email protected]>
Reviewed-by: Darrick J. Wong <[email protected]>
Signed-off-by: Jonathan Corbet <[email protected]>

For reference: https://lkml.org/lkml/2017/11/21/261

From    Philippe Ombredanne <>
Date    Tue, 21 Nov 2017 14:57:05 +0100
Subject Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
    

Alan, Linus,

On Mon, Nov 20, 2017 at 4:31 PM, Alan Cox <[email protected]> wrote:
> On Sat, 18 Nov 2017 11:14:00 -0800
> Linus Torvalds <[email protected]> wrote:
>
>> You may be confusing things because of a newer version.
>>
>> On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
>> <[email protected]> wrote:
>> >
>> > That should be "GNU Lesser General Public" and not "GNU Library General Public"
>>
>> That's just FSF revisionism.

Linus:

Revisionism it is indeed! Please see the fun and twisted tale of the
five official GPL texts below.


>> It used to be called "Library" over "Lesser", in the original GPL2.
>>
>> I suspect your other issues are similar "there's been different
>> versions over time" things. the address being one of them.
>>
>> We've actually taken some of the FSF updates over the years ("19yy" ->
>> "<year>", and the address change) but the main COPYING file still
>> calls the LGPL the "GNU Library General Public License".
>>
>> I refuse to change the original copyright wording due to idiotic
>> internal FSF politics that tried to change history.
>
> Do we have any files which had the later LGPL text attached to them - if
> so then they should be keeping that header.
>
> Which raises another question. If there are multiple GPL 2.0 texts which
> are *supposedly* legally identical but this has never been tested in law
> -that implies SPDX is wrong in tagging them identically in case they turn
> out not to be...

Alan:

This last comment rings as a red herring to me. There are many minute
variations of the GPL around and these are unlikely relevant.
No sane judge would consider any of these variations material IMHO and
should fine and throw in jail for contempt anyone arguing that this is
important.

Now, on the fun side, I discovered a while back through fixing a bug
in scancode-toolkit that there are FIVE versions of the official GPL
2.0 texts published by the FSF over the years. I am ashamed that I end
up doing this research and I would never thought I would need to
rummage through this pile.... but that came up while reviewing kernel
license scans and a few other scans to support Thomas and Greg
licensing clarification efforts.

Shocking, isn't it?

Let me call these GPL versions the GPL-2.0.0, GPL-2.0.1, GPL-2.0.2,
GPL-2.0.3 and GPL-2.0.4 :D

(but please this one time only!, let's forget about these afterwards)

GPL-2.0.4 v5. The most recent one was published after the GPL 3.0
publication [1] [2]. It refers to the `Franklin Street` address and to
the `GNU Lesser General Public License` top and bottom

GPL-2.0.3 v4. Slightly after the HTML publication of the new address
in v3, the address was changed in the text version [3]: It refers to
the  `Franklin Street` address and to the `GNU Library General Public
License` top and bottom.

GPL-2.0.2 v3. The previous one in force before the publication of the
GPL 3.0 came about the time of the FSF office move on May 1, 2005 to
Franklin Street [4] In this HTML version, it refers to the `Franklin
St` address and uses the `GNU Library General Public License` at the
top and `GNU Lesser General Public License`  at the bottom with a
conflicted opinion on which one of the LGPL 2 or 2.1 version to use.

GPL-2.0.1 v2. Around December 2003, a variation was published [5]. It
also predates the move to Franklin and it refers to the `Temple Place`
address and the `GNU Library General Public License` at the top and
`GNU Lesser General Public License`  at the bottom. Still split on
confused about which LGPL version to recommend.

GPL-2.0.1 v1. The one true and only original GPL 2.0.... the oldest
cached version [6] predates the move and it refers to the `Temple
Place` address and the `GNU Library General Public License`
throughout.

FWIW, I made sure I have all these texts as scancode detection rules
so I would get 100% exact hash matches on these oddities.

Now you will surely agree with me that the sole sane conclusion of
studying this mess is that there must some unhappy ghost that
triggered these text changes when the FSF moved from Temple Place to
Franklin Street in protest for the move. The only other possible
explanation I could fathom would be a bug in their teletype [7].

[1] https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
[2] http://web.archive.org/web/20070716031727/http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
[3] http://web.archive.org/web/20050511030123/http://www.fsf.org/licensing/licenses/gpl.txt
[4] http://web.archive.org/web/20050507090312/http://www.fsf.org/licensing/licenses/gpl.html
[5] http://web.archive.org/web/20031202220858/http://www.fsf.org/copyleft/gpl.html
[6] http://web.archive.org/web/19980119061851/http://www.fsf.org/copyleft/gpl.html
[7] https://en.wikipedia.org/wiki/IBM_Selectric_typewriter
-- 
Cordially
Philippe Ombredanne

And then https://lkml.org/lkml/2017/11/21/506 :

From    Philippe Ombredanne <>
Date    Tue, 21 Nov 2017 18:55:49 +0100
Subject Re: [patch V2 02/11] LICENSES: Add the GPL 2.0 license
    

On Tue, Nov 21, 2017 at 2:57 PM, Philippe Ombredanne
<[email protected]> wrote:
> Alan, Linus,
>
> On Mon, Nov 20, 2017 at 4:31 PM, Alan Cox <[email protected]> wrote:
>> On Sat, 18 Nov 2017 11:14:00 -0800
>> Linus Torvalds <[email protected]> wrote:
>>
>>> You may be confusing things because of a newer version.
>>>
>>> On Sat, Nov 18, 2017 at 11:03 AM, Charlemagne Lasse
>>> <[email protected]> wrote:
>>> >
>>> > That should be "GNU Lesser General Public" and not "GNU Library General Public"
>>>
>>> That's just FSF revisionism.
>
> Linus:
>
> Revisionism it is indeed! Please see the fun and twisted tale of the
> five official GPL texts below.
>
>
>>> It used to be called "Library" over "Lesser", in the original GPL2.
>>>
>>> I suspect your other issues are similar "there's been different
>>> versions over time" things. the address being one of them.
>>>
>>> We've actually taken some of the FSF updates over the years ("19yy" ->
>>> "<year>", and the address change) but the main COPYING file still
>>> calls the LGPL the "GNU Library General Public License".
>>>
>>> I refuse to change the original copyright wording due to idiotic
>>> internal FSF politics that tried to change history.
>>
>> Do we have any files which had the later LGPL text attached to them - if
>> so then they should be keeping that header.
>>
>> Which raises another question. If there are multiple GPL 2.0 texts which
>> are *supposedly* legally identical but this has never been tested in law
>> -that implies SPDX is wrong in tagging them identically in case they turn
>> out not to be...
>
> Alan:
>
> This last comment rings as a red herring to me. There are many minute
> variations of the GPL around and these are unlikely relevant.
> No sane judge would consider any of these variations material IMHO and
> should fine and throw in jail for contempt anyone arguing that this is
> important.
>
> Now, on the fun side, I discovered a while back through fixing a bug
> in scancode-toolkit that there are FIVE versions of the official GPL
> 2.0 texts published by the FSF over the years. I am ashamed that I end
> up doing this research and I would never thought I would need to
> rummage through this pile.... but that came up while reviewing kernel
> license scans and a few other scans to support Thomas and Greg
> licensing clarification efforts.
>
> Shocking, isn't it?
>
> Let me call these GPL versions the GPL-2.0.0, GPL-2.0.1, GPL-2.0.2,
> GPL-2.0.3 and GPL-2.0.4 :D
>
> (but please this one time only!, let's forget about these afterwards)
>
> GPL-2.0.4 v5. The most recent one was published after the GPL 3.0
> publication [1] [2]. It refers to the `Franklin Street` address and to
> the `GNU Lesser General Public License` top and bottom
>
> GPL-2.0.3 v4. Slightly after the HTML publication of the new address
> in v3, the address was changed in the text version [3]: It refers to
> the  `Franklin Street` address and to the `GNU Library General Public
> License` top and bottom.
>
> GPL-2.0.2 v3. The previous one in force before the publication of the
> GPL 3.0 came about the time of the FSF office move on May 1, 2005 to
> Franklin Street [4] In this HTML version, it refers to the `Franklin
> St` address and uses the `GNU Library General Public License` at the
> top and `GNU Lesser General Public License`  at the bottom with a
> conflicted opinion on which one of the LGPL 2 or 2.1 version to use.
>
> GPL-2.0.1 v2. Around December 2003, a variation was published [5]. It
> also predates the move to Franklin and it refers to the `Temple Place`
> address and the `GNU Library General Public License` at the top and
> `GNU Lesser General Public License`  at the bottom. Still split on
> confused about which LGPL version to recommend.
>
> GPL-2.0.1 v1. The one true and only original GPL 2.0.... the oldest
> cached version [6] predates the move and it refers to the `Temple
> Place` address and the `GNU Library General Public License`
> throughout.
>
> FWIW, I made sure I have all these texts as scancode detection rules
> so I would get 100% exact hash matches on these oddities.
>
> Now you will surely agree with me that the sole sane conclusion of
> studying this mess is that there must some unhappy ghost that
> triggered these text changes when the FSF moved from Temple Place to
> Franklin Street in protest for the move. The only other possible
> explanation I could fathom would be a bug in their teletype [7].
>
> [1] https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
> [2] http://web.archive.org/web/20070716031727/http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
> [3] http://web.archive.org/web/20050511030123/http://www.fsf.org/licensing/licenses/gpl.txt
> [4] http://web.archive.org/web/20050507090312/http://www.fsf.org/licensing/licenses/gpl.html
> [5] http://web.archive.org/web/20031202220858/http://www.fsf.org/copyleft/gpl.html
> [6] http://web.archive.org/web/19980119061851/http://www.fsf.org/copyleft/gpl.html
> [7] https://en.wikipedia.org/wiki/IBM_Selectric_typewriter

Now in earnest here is the situation: There is NO trustworthy version
of an official GPL 2.0 text: the FSF official texts are all fubar (if
only in small and subtle ways). The FSF texts should be authoritative,
but then which one? they published more GPL 2.0 versions than most. So
we would be hard pressed to blame SPDX or the OSI for having their own
minor variant.

Then in digging further, I found the ONE true original GPL with a file
time stamp on June 2 1991, 01:50 (AM?, PM? unknown time zone?)  ! in
an old GCC archive.

For the posterity and everyone's enjoyment I have built a git history
of GPL 2.0 Mark1 to Mark6

See https://github.com/pombredanne/gpl-history/commits/master/COPYING

Each commit message has the link to the original archive.org page or
archive download.

For simplified diffs, the allvers/ dir contains all the versions of the texts.

Acks and reviews are welcomed, but not really.

I also added a shorter history of the Linux COPYING text. The first
version in Linus's git tree is based on the very fine and well tuned
GPL 2 Mark4, the first fully Y2K compliant version of the GPL 2, as
you can see from the diffs with the former Mark3: that was dangerously
stuck in the last century.

The current version in is based on a rare GPL 2.0 Mark5.1 aka
"Franklin St",  that I do not have in my history yet and spells
"Franklin St." rather than "Franklin Street."
Therefore there is likely another GPL 2.0 version between Mark4 and
Mark5 that I have yet to find and may not have been caught by the
archive.org spiders. Here help and patches welcomed: this is likely
an important missing link.

Linus:
I am rather sad to see that you never adopted the GPL 2.0 Mark6 ;)
aka. the  "final frontier" or "graveyard" release that came after the
GPL 3 launch and when the GPL 2.0 was made an "old" license: this
latest version is the finest ever published and I am sure we are all
missing out something worthy!

I look forward to the future publication of Mark7 and all the fine GPL
2.0 versions to come that we should all long for.

-- 
Cordially
Philippe Ombredanne aka. the unwelcomed GPL archeologist

gpl-history's People

Contributors

armijnhemel avatar gtback avatar pombredanne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gpl-history's Issues

known GPL2 versions (HTML)

This is the complete list of HTML versions of the GPL license I have uncovered. In some cases it was hard to determine the correct date. The data that I am unsure of I have added in brackets. Numbering continues where #16 left off.

In case of 8 I have been a bit more liberal with the date and looked at the "last modified" date on the webpage. Because in other cases this has turned out to be not reliable it might be better to change this date to January 26 1998 instead. In cases 11a and 11b I have used the "last modified" date as this is around the time that FSF moved.

In other cases I have relied on the date of what was stored in the Internet Archive (which is far more reliable).

# date introduced/changed source
8 on/before August 4, 1997 http://web.archive.org/web/19980126185638/http://www.gnu.org/copyleft/gpl.html
9 between December 7, 1998 and January 28, 1999 http://web.archive.org/web/19990128195748/http://www.gnu.org/copyleft/gpl.html
10 between April 24, 1999 and February 29, 2000 http://web.archive.org/web/20000229081353/http://www.gnu.org:80/copyleft/gpl.html
11 between October 1, 2003 and December 3, 2003 http://web.archive.org/web/20031203000022/http://www.gnu.org/copyleft/gpl.html
12a May 2, 2005 http://web.archive.org/web/20050507090312/http://www.fsf.org/licensing/licenses/gpl.html
12b May 5, 2005 http://web.archive.org/web/20050507011043/http://www.gnu.org/licenses/gpl.html
13 June 7, 2005 http://web.archive.org/web/20050609004347/http://www.gnu.org/licenses/gpl.html
# description comment
8 address formatting from the second text version, no "Appendix:" in the appendix
9 appendix made Y2K-proof
10 "yyyy" changed to "year" in appendix
11 "Library" to "Lesser" in appendix only
12a "Franklin St" in preamble, "Franklin Street" in appendix, "USA" in appendix only on fsf.org
12b "Franklin Street" in appendix and preamble, "USA." in appendix only on gnu.org
13 "Library" to "Lesser" in preamble only on gnu.org

add Linux kernel version from kernel 2.2

The version from Linux kernel 2.2.0 is identical to the one from 1.0, except:

  • different address
  • corrected spelling ("Linux" instead of "linux") in syscall notice

typo in README.md

there's a typo in README.md: "an reporting several" should probably be "and reporting several".

known GPL2 versions (text)

This is the complete list of text versions of the GPL license I have uncovered. In some cases it was hard to determine the correct date. The data that I am unsure of I have added in brackets.

# date introduced/changed source
[x] 1a June 2, 1991 http://ftp.gnu.org/gnu/findutils/findutils-4.1.tar.gz (COPYING file dated June 2, 1991)
http://ftp.gnu.org/old-gnu/make/make-3.60-3.62.diff.gz (patch date recorded June 3, 1991)
[x] 1b June 2, 1991 http://ftp.gnu.org/old-gnu/gcc/gcc-2.0.tar.bz2
[x] 2 November 26 or 29, 1995 or earlier http://ftp.gnu.org/old-gnu/gcc/gcc-2.7.2.tar.gz (date on FTP server: November 29, 1995 but release announcements are dated November 26, 1995)
(October 26, 1995 or earlier) (COPYING file dated October 26, 1995)
[ ] 3 February 2, 1999 or earlier http://web.archive.org/web/19990202012404/http://www.gnu.org/copyleft/gpl.txt
(July 15, 1997 or earlier) http://ftp.gnu.org/gnu/grep/grep-2.2.tar.gz (COPYING file dated July 15, 1997, archive dated April 27, 1998)
[x] 4 between October 18, 2000 and December 1, 2000 http://web.archive.org/web/20001201224600/http://www.fsf.org:80/copyleft/gpl.txt
[ ] 5a between May 1, 2005 and May 11, 2005 http://web.archive.org/web/20050511030123/http://www.fsf.org:80/licensing/licenses/gpl.txt
[ ] 5b between May 1, 2005 and May 8, 2005 http://web.archive.org/web/20050508084041/http://www.gnu.org/licenses/gpl.txt
[ ] 6a between May 16, 2006 and May 28, 2006 http://web.archive.org/web/20060528005322/http://www.fsf.org/licensing/licenses/gpl.txt
[ ] 6b April 7 or 8, 2006 http://web.archive.org/web/20060408075851/http://www.gnu.org/licenses/gpl.txt
[ ] 7 between June 15, 2006 and July 1, 2006 http://web.archive.org/web/20060701033154/http://www.gnu.org/licenses/gpl.txt
# description comment
[x] 1a FSF's address at 675 Mass Ave, Cambridge, MA 02139, USA first version
[x] 1b like 1a but with a spelling mistake found in an official gcc archive and might only have been used there
[x] 2 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
[ ] 3 "Appendix: " removed from the appendix, address modified (replacing a hyphen with a comma)
[x] 4 appendix made Y2K-proof
[ ] 5a 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA only on fsf.org
[ ] 5b 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA only on gnu.org
[ ] 6a "Library" to "Lesser" in appendix only only on fsf.org
[ ] 6b "Library" to "Lesser" in appendix and preamble only on gnu.org
[ ] 7 "Inc." to "Inc.," in preamble, "USA" to "USA." in appendix only on gnu.org

COPYING.6 does not match GPL text downloaded from GNU.org

The file COPYING.6 does not match the version of GPL2 downloaded from GNU.org. The difference is

$ wget -c https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
$ md5sum gpl-2.0.txt COPYING.6
b234ee4d69f5fce4486a80fdaf4a4263 gpl-2.0.txt
917e0347010320df8c8ac79f10aa7e6c COPYING.6

$ ll gpl-2.0.txt COPYING.6
-rw-rw-r-- 1 armijn armijn 18031 Jun 26 21:42 COPYING.6
-rw-rw-r-- 1 armijn armijn 18092 Mar 24 2010 gpl-2.0.txt

The difference: fewer spaces and the lack of a newline in COPYING.6. Some preliminary research on a very large set of license texts seems to suggest that COPYING.6 is used very little, while the other one (from gnu.org) is used a lot.

Please add different versions from GNU.org

The versions found at https://www.gnu.org/licenses/old-licenses/gpl-2.0.html and https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt differ in the appendix.

HTML version:

one line to give the program's name and an idea of what it does.
Copyright (C) yyyy name of author

Text version:

<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year>  <name of author>

The differences: angle brackets and "yyyy" instead of "year"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.