From: Luca Ceresoli <luca@lucaceresoli.net>
To: buildroot@busybox.net
Subject: [Buildroot] [RFC v2 16/31] linux: define license
Date: Mon, 16 Apr 2012 23:19:30 +0200 [thread overview]
Message-ID: <4F8C8CE2.3000702@lucaceresoli.net> (raw)
In-Reply-To: <CAAXf6LX8JkXWzHAkYV8J74sYDhsFPRJ=OdYxiB4+6PxRswx3MA@mail.gmail.com>
Thomas De Schampheleire wrote:
> On Fri, Mar 9, 2012 at 5:23 PM, Luca Ceresoli<luca@lucaceresoli.net> wrote:
>> Yann E. MORIN wrote:
>>> Lucas, All,
>>>
>>> On Wednesday 07 March 2012 21:58:16 Luca Ceresoli wrote:
>>>> Signed-off-by: Luca Ceresoli<luca@lucaceresoli.net>
>>>> ---
>>>> linux/linux.mk | 2 ++
>>>> 1 files changed, 2 insertions(+), 0 deletions(-)
>>>>
>>>> diff --git a/linux/linux.mk b/linux/linux.mk
>>>> index ae236d4..e6f2388 100644
>>>> --- a/linux/linux.mk
>>>> +++ b/linux/linux.mk
>>>> @@ -4,6 +4,8 @@
>>>> #
>>>>
>>>> ###############################################################################
>>>> LINUX_VERSION=$(call qstrip,$(BR2_LINUX_KERNEL_VERSION))
>>>> +LINUX_LICENSE = GPLv2-ONLY
>>> What's the point of giving the version 'v2' and stating 'only'?
>>> I would rather see:
>>> values meaning
>>> -------------------------------
>>> GPLv2 GPLv2 only
>>> GPLv2+ GPLv2 or later
>>> LGPLv2.1 LGPLv2.1 only
>>> LGPLv2.1+ LGPLv2.1 or later
>>> ... ...
>> When a project is GPL-licensed, it usually means it uses "either version X
>> of
>> the License, or (at your option) any later version". There are rare cases
>> (Linux, Busybox, any other?) chose to use a specific version, no later
>> version.
>>
>> So the "default" meaning of "GPLvX" is "GPL version X or later". Those rare
>> cases that allow no upgrade are distinguished by adding "only".
> I'm not sure this is correct. According to me, if the license file
> just specifies GPL version 2, then it really is only version 2.
> Only if the license file specifies the text 'or any later version, at
> your option', then it is GPLv2+.
>
> I think the distinction GPLv2 / GPLv2+ / GPLv3 / GPLv3+ etc. is
> common, and can be reused.
> So I agree with Yann here.
Ouch, you're right guys. And so I went back to read the original licenses once
more...
This is what the GPLv2 states (LGPLv2.0 is substantially equal):
> Each version is given a distinguishing version number. If the Program
> specifies a version number of this License which applies to it and "any
> later version", you have the option of following the terms and conditions
> either of that version or of any later version published by the Free
> Software Foundation. If the Program does not specify a version number of
> this License, you may choose any version ever published by the Free Software
> Foundation.
So there are indeed three cases:
1. the Program specifies a version -> GPLv2 only
2. the Program specifies a version or "any later version" -> GPLv2+
3. the Program does not specify a version -> how to name this, simply GPL?
Let's take a real case: tslib.
The source files in src/ state:
> * This file is placed under the LGPL. Please see the file
> * COPYING for more details.
and the COPYING file in the root tslib directory contains an LGPL v2.0
license. The Program does not explicitly specify a version, but a specific
version is present in COPYING. Is this case 1 or case 3? I think the comment
in the source file rules, but it's only a feeling.
OTOH, most source files in tests/ state:
> * This file is placed under the GPL. Please see the file
> * COPYING for more details.
and there is no COPYING file carrying any GPL in the whole tslib distribution!
So this must be case 3 (and we must assume that GPL means GNU General Public
License, although a good lawyer may certainly prove it means any other thing
from http://en.wikipedia.org/wiki/GPL_%28disambiguation%29).
This should be taken into account by Buildroot, which builds and installs both
the library and the test programs.
Another example: busybox.
This is a messy as well. The LICENSE file carries this heading:
> --- A note on GPL versions
>
> BusyBox is distributed under version 2 of the General Public License (included
> in its entirety, below). Version 2 is the only version of this license which
> this version of BusyBox (or modified versions derived from this one) may be
> distributed under.
>
> ------------------------------------------------------------------------
> GNU GENERAL PUBLIC LICENSE
> Version 2, June 1991
That looks clear, but many source files seem to disagree:
$ head coreutils/uname.c
> * Licensed under GPLv2 or later, see file LICENSE in this source tree.
And this is not a lone spot:
$ grep -irE 'GPLv2 or later' . |wc
358 5000 34106
$ grep -irwE 'GPLv2' . | grep -iv later|wc
241 2797 20656
GPLv2+ beats GPLv2 (only)!
I checked four packages in detail, and two of them have an unclear choice of
GPL version. I can't stand any more headache tonight, and I'm not sure I'll
have more luck with other packages. This is so frustrating...
Luca
next prev parent reply other threads:[~2012-04-16 21:19 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-07 20:58 [Buildroot] [RFC v2 00/31] Automatically produce legal compliance info Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 01/31] legal-info: infrastructure to collect legally-relevant material Luca Ceresoli
2012-03-09 7:45 ` Thomas De Schampheleire
2012-03-09 8:51 ` Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 02/31] cups: warn that legal-info is not implemented Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 03/31] fis: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 04/31] doom-wad: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 05/31] gettext: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 06/31] microperl: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 07/31] netkitbase: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 08/31] netkittelnet: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 09/31] newt: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 10/31] tinyhttpd: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 11/31] ttcp: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 12/31] uemacs: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 13/31] vpnc: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 14/31] xfsprogs: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 15/31] mpc: define license Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 16/31] linux: " Luca Ceresoli
2012-03-07 21:49 ` Yann E. MORIN
2012-03-09 16:23 ` Luca Ceresoli
2012-03-09 20:12 ` Thomas De Schampheleire
2012-04-16 21:19 ` Luca Ceresoli [this message]
2012-04-16 21:38 ` Yann E. MORIN
2012-04-16 21:40 ` Yann E. MORIN
2012-04-18 14:15 ` Thomas De Schampheleire
2012-04-18 15:39 ` Luca Ceresoli
2012-04-18 15:39 ` Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 17/31] m4: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 18/31] busybox: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 19/31] bzip2: " Luca Ceresoli
2012-03-07 21:52 ` Yann E. MORIN
2012-03-09 16:00 ` Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 20/31] directfb: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 21/31] iostat: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 22/31] lzo: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 23/31] lzop: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 24/31] tslib: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 25/31] libusb: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 26/31] pcre: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 27/31] netsnmp: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 28/31] berkeleydb: " Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 29/31] qt: define license choice Luca Ceresoli
2012-03-10 12:43 ` Arnout Vandecappelle
2012-03-07 20:58 ` [Buildroot] [RFC v2 30/31] foobar: create a fake proprietary package (testing only) Luca Ceresoli
2012-03-07 20:58 ` [Buildroot] [RFC v2 31/31] Create test configs " Luca Ceresoli
2012-03-07 21:30 ` [Buildroot] [RFC v2 00/31] Automatically produce legal compliance info Luca Ceresoli
2012-03-07 21:41 ` Yann E. MORIN
2012-03-08 10:02 ` Luca Ceresoli
2012-03-08 18:46 ` Yann E. MORIN
2012-03-09 8:48 ` Thomas De Schampheleire
2012-03-10 12:46 ` Arnout Vandecappelle
2012-03-07 21:54 ` Yann E. MORIN
2012-03-08 9:14 ` Luca Ceresoli
2012-03-09 8:47 ` Thomas De Schampheleire
2012-03-09 9:12 ` Luca Ceresoli
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4F8C8CE2.3000702@lucaceresoli.net \
--to=luca@lucaceresoli.net \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox