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
