On Mon, Nov 2, 2015 at 9:12 PM, Wheeler, David A <dwheeler@...> wrote:
Philippe Ombredanne:This + is a suffix and not a freestanding character, right?
You may be confusing a SPDX "license identifier" and a SPDX "licenseI am not confusing these at all. The gist of what I am saying is that
the plus is a legacy that should not be there. It does not make sense to
add to the large majority of GPL in the wild a + just to deal with a few
exceptions that do not allow other versions. Exceptions should be dealt
with an exception not with an extra + in an expression.
The purpose of a "license identifier" is to identify a specific textDavid:
What you saying in substance is that every time I want state
that code is licensed under the GPL 2.0 or any other version
(which is the default), you want me to craft a special license
expression with a plus. And If do not craft that expression,
then the SPDX meaning is that only the current version applies
and not any later version.
I am saying this instead: Since the default for the GPL is to allow
later versions, we should by default state the opposite:
The few times that "only the current version" should be used, state
this explicitly with an exception.
GPL-2.0 ==> implies GPL 2.0 only
GPL-2.0+ ==> implies GPL 2.0 or later
GPL-2.0 ==> implies GPL 2.0 with its defaults (including later versions)
GPL-2.0 with no-other-version ==> implies GPL 2.0 and no other version
Explicit is better than implicit.
Practically the use of a GPL version "only" is much less frequent
than the default "or later" and therefore forcing me to add a plus
is a source of confusion.
The most common use case should be the default and should not
require a special addition of a character in an expression.
"only" should be an exception and not the default, because it is
not the default, nor the prevalent usage of the GPL: it is exceptional.
The fact that the + convention has been used by Linux distros
package maintainers and neither always strictly nor consistently
does not make this right and something that should be endorsed blindly.
So to recap:
I am NOT arguing about the syntax to express this.
I am arguing about the essence of the meaning of the plain GPL-2.0
license key in a simple expression.
The mere use of a GPL-2.0 identifier should convey that the license
is GPL-2.0 or any other version.
We should have an exception to convey the rarer cases when only
the stated version applies.
The benefits are:
1. no ambiguity about the meaning of widely used licenses such as
2. simpler spec
2. simpler expressions in most cases, more verbose and more explicit
expressions when needed in some rarer cases.