Good point.

What makes this particular syntax more confusing is that pre-2.0 the + was
considered part of the license identifier.  It was promoted to an operator
in the 2.0 spec which does create some backwards compatibility issues (as
well as some confusion).

Gary
> -----Original Message-----
> From: Wheeler, David A [mailto:[email protected]]
> Sent: Monday, November 2, 2015 12:12 PM
> To: Philippe Ombredanne; Gary O'Neall
> Cc: [email protected]; SPDX-legal
> Subject: RE: Is "+" a valid character of a LicenseRef idstring?
> 
> Philippe Ombredanne:
> > This + is a suffix and not a freestanding character, right?
> > Then again we would be better off to get rid of the plus entirely!
> 
> You may be confusing a SPDX "license identifier" and a SPDX "license
> expression".  It's a subtle point.
> 
> The purpose of a "license identifier" is to identify a specific text of
> a specific license text, using a short name.  In SPDX 2.0 there is no
> "+" in a standard license identifier.  In particular, "GPL-2.0" is a
> license identifier, and "GPL-2.0+" is *NOT*.  If all you want to do is
> identify a particular license text, use a license identifier.  No "+"
> exists at the end of a license identifier.
> 
> However, a "license identifier" is often inadequate for describing the
> licensing requirements imposed on users and later developers.  Many
> packages have different subcomponents with different licenses.  Many
> packages include the text of some license (such as the GPL version
> 2.0), but there are often two possible cases:
> - You must use this particular version of the license.
> - You may use this or any later version of the license.
> 
> Thus, SPDX 2.0 defines a "license expression" for describing how
> license texts apply to software packages,.  A license expression is
> built out of license identifiers but adds ways to describe how the
> license texts are used. A "+" appended after the name of a license
> identifier means "or any later version may also be used".  E.G., the
> license expressions "(GPL-2.0+ WITH Classpath-Exception-2.0)" and "(MIT
> AND BSD-3-CLAUSE)" express how the license text requirements are
> imposed on recipients (users and developers).  License expressions use
> the long-standing convention is that if software is licensed using
> "this or any later version" you add a "+" to the name of the license.
> You can argue that the "+" should be the default, but standards
> typically work best if they build on pre-existing conventions, and that
> was certainly the case here.
> 
> --- David A. Wheeler

_______________________________________________
Spdx-tech mailing list
[email protected]
https://lists.spdx.org/mailman/listinfo/spdx-tech

Reply via email to