Skip to content
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

Can we use an SPDX Expression in the Bundle-License header? #630

Open
waynebeaton opened this issue Oct 12, 2023 · 3 comments
Open

Can we use an SPDX Expression in the Bundle-License header? #630

waynebeaton opened this issue Oct 12, 2023 · 3 comments
Assignees

Comments

@waynebeaton
Copy link

For the contents of the Bundle-License header, the specification states (in part) that...

This identifier should be one of the identifiers defined by [25] Software Package Data Exchange (SPDX) License List.

In cases where content is multiply licensed, it states that you should separate the individual licenses with a comma.

While it is probably reasonable to assume a dual-licensing scenario in which an adopter can choose the license that they prefer to consume the content under (or in SPDX), this is not necessarily the case. There may be cases where the adopter has to accept the terms of multiple licenses (and in SPDX).

The use of the word should when describing the license-identifier and that the header is described as purely informational gives us some flexibility.

So here's the question... would it be considered within the spirit/intention of the requirements of the Bundle-License header to specify an SPDX expression? And, since this information is described as purely informational can we safely assume that providing an SPDX expression shouldn't break anything?

e.g.,

Bundle-License: EPL-2.0 or GPL-2.0-only with Classpath-Exception-2.0
@tjwatson
Copy link
Contributor

https://docs.osgi.org/specification/osgi.core/8.0.0/framework.module.html#framework.module-bundle-license also states:

The Bundle-License header provides an optional machine readable form of license information. The purpose of this header is to automate some of the license processing required by many organizations like for example license acceptance before a bundle is used. The header is structured to provide the use of unique license naming to merge acceptance requests, as well as links to human readable information about the included licenses. This header is purely informational for management agents and must not be processed by the OSGi Framework.

While this header is not parsed by the OSGI Framework itself it still is expected to be machine readable and can be parsed by things like management agents (e.g. p2). The syntax defined by the specification does would not allow you to insert and, or keywords like that without some enhancements to the syntax.

@tjwatson
Copy link
Contributor

My reference to p2 was only as an example. I don't think p2 actually reads this header at all.

@stbischof stbischof self-assigned this Oct 17, 2023
@timothyjward
Copy link
Contributor

We should update this in the core specification for the next release

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants