-
Notifications
You must be signed in to change notification settings - Fork 140
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
License expression semicolon operator #123
Comments
https://wiki.spdx.org/view/FileNoticeExamples#Package_Examples The wiki page, for convenience's sake. |
I think the |
The short answer is the ‘;’ example was included to provide a use case that was not possible to represent with the license expression semantics. Dennis provides a summary here: A more common example is when a package contains a GPL-2.0 program and an LGPL-2.1 library. It is important to represent the packages as: Or an example where the package contains a GPL-2.0 program, an Apache program and a LGPL-2.1 library which is used by both programs yet the programs are independent. I would like to represent the package license as: I hope this helps clarify the purpose of the ‘;’ use case. |
Moving to 3.1 for consideration. cc: @swinslow |
I'm inclined to close this issue, as I don't think there's been any further discussion about it in nearly the past 5 years. Personally, I continue to view ";" as indistinguishable in effect from "AND". The purpose of the license expression is to communicate which licenses, or combinations of licenses, apply to a software artifact at the particular level of specificity that is being expressed. In other words:
Looking back at the earlier comments referenced in this thread), I think there may be a misperception that someone should be able to look at an "AND" expression and automatically conclude whether it expresses a "legally compliant" or "legally compatible" combination of licenses. I don't think this is intended. A software Package might contain some files under GPL-2.0-only and others under GPL-3.0-only. The license expression for this Package is properly given as "GPL-2.0-only AND GPL-3.0-only". Even if those licenses are not considered "compatible" with one another, actually answering that question is a matter of both legal interpretation and analyzing the manner of interactions between the various components within the Package. Parts of this can be reflected using certain Relationship types, but I don't think there is a need to encode this within the license expression string itself. The only purpose of the license expression is to state "for this software artifact, at this level of specificity, here are the licenses that apply." Given all of this, I really can't articular a difference between the effect of ";" and "AND", so I'm not inclined to complicate the syntax by introducing a new operator. Since there is nothing here that is covered in 3.0, I'm going to go ahead and close this issue. If there is a community desire to re-engage on this discussion for 3.1, we can consider re-opening the issue. Thank you! |
Sorry, I neglected to mention: Since the old wiki is no longer active and has been set to read-only mode, I don't think there's an action here to update that wiki page. If it's necessary, we can look into whether it's feasible to re-open the wiki for editing, but I'm hesitant to do that as I imagine there's plenty of other old / outdated content elsewhere on the wiki as well :) |
The Wiki page for File Notice Examples refers to a semi-colon operator which is not in the spec and is not currently supported by most license expression parsers.
We should either add it to the spec or remove it from the example page.
The text was updated successfully, but these errors were encountered: