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

Add Solderpad 2.1 Licence as exception to Apache 2.0 #1027

Closed
andrewjskatz opened this issue May 12, 2020 · 13 comments
Closed

Add Solderpad 2.1 Licence as exception to Apache 2.0 #1027

andrewjskatz opened this issue May 12, 2020 · 13 comments

Comments

@andrewjskatz
Copy link

Proposed SPDX Identifier:

APACHE-2.0-WITH-SHL-2.1

Solderpad 2.0 has generated a small number of issues, and this had led to a small point release of Solderpad 2.1 (which has not been officially released yet: official release will coincide with acceptance of Solderpad 2.1 onto the SPDX license list (if approved).

The changes from version 2.0 are summarised as follows:

  1. The preamble has been clarified, to remove the implication that that the Apache 2.0 imposes obligations (as a licence, it contains conditions, but not obligations).
  2. The text of version 2.0 contains bold and italic formatting to assist with interpretation (and to indicate changes from Apache 2.0). This was found to be confusing, and version 2.1 is formatted in text only. Accordingly, the last sentence of the preamble in 2.0 (which specifies that the bold and italic formatting is to be ignored) was removed for version 2.1 as it is no longer necessary
  3. The definition of “Rights” has been modified slightly to ensure that the usage of “Mask Works” is consistent with the definition of “Object Form”

I attach a copy of the text version of Solderpad 2.1, which will (shortly!) be hosted at a persistent URL on the solderpad.org website.
Solderpad 2.1.txt

@swinslow
Copy link
Member

Thanks @andrewjskatz! Appreciate all your help with this. It sounds like the 2.1 version will be cleaner both for general use and also for adding to the license list.

A couple of things I wanted to clarify:

  • Is the intention that this would align with what we'd discussed for Solderpad 2.0, where it would be added to the Exceptions list? If so, then the identifier for that list would just be SHL-2.1, and in regular usage it would be Apache-2.0 WITH SHL-2.1.

(Nitpicking a bit just to note that there would be no hyphens around the WITH keyword, and also noting that Apache-2.0 isn't all-caps. Though in the latest version of the SPDX spec, we did say that license IDs should be matched in a case-insensitive manner, so.) :)

  • Would you still be looking to add Solderpad 2.0 to the list (see Add SolderPAD 2.0 #945), or should we close that issue if it's not being used going forward? I don't know whether you're expecting the Solderpad 2.0 license will remain in significant use or if most / all folks will be switching to 2.1.

@andrewjskatz
Copy link
Author

Thanks @swinslow for responding so quickly.

  1. Yes, this should go on the exceptions list.
  2. Yes, of course you are right about the identifier. Oops.
  3. Yes, 2.0 should still be added if possible as it is currently in use by a reasonable number of projects. We will try to persuade them to port to 2.1, but this is often easier said than done.

By the way, I assume that it's possible to use
Apache-2.0 WITH SHL-2.1+
in cases where a licensor specifies that a licensee can apply later versions we may issue?

Is there anything else I need to do at the moment? I'm not sure I'm brave enough to perform the PR at this point...

@swinslow
Copy link
Member

So that's an interesting point on the + for the license exception operator. To my knowledge the SPDX license expression syntax doesn't currently permit use of the + operator with exceptions, but only with licenses. @goneall @zvr or others, please feel free to weigh in if I'm wrong...

I don't see any reason why this couldn't be changed, however it would require a change to the spec since that is where this is defined. The 2.2 version of the spec was just released, but version 3.0 is in active discussions and moving forward with some significant changes. I will file an issue in the spdx-spec repo so that this gets considered there.

(To be clear, it's of course possible for anyone to say that they'll permit use of later versions of SHL; it's just that the SPDX license expression syntax isn't currently rich enough to express that.)

The other option would be to switch back to listing SHL as a license, rather than as an exception. If you're expecting people wanting to use the + operator then that might be the preferable option. And although I don't know that we want to point to this as precedent, it would mirror how it has worked for LGPL-3.0, as another "license" that is really an exception, but was included on the list as a license because that's how everyone thinks about it. @jlovejoy I'd be interested in your thoughts on this, given @andrewjskatz's comments above...

Either way, once we make a decision on license vs. exception, I can certainly help with the PR :)

@andrewjskatz
Copy link
Author

Thanks @swinslow. To be honest, I'm hoping that we won't need another version of Solderpad for some time, to I'm not too bothered about this. Since it's highly permissive anyway, it seems unlikely that we would want to amend it in a way that wasn't compatible with previous versions anyway. To have it listed as an exception will potentially drive adoption, as it's then easier to state that any design licensed under it is licensed under an OSI approved licence (Apache), and that the Solderpad exception (which is optional) simply extends and clarifies those rights, so my preference here is to keep it listed as an exception, and not worry too much about the + operator.

@andrewjskatz
Copy link
Author

OK, so in discussion with FOSSi, we have a further tweak to 2.1 enclose as a text file. This clarifies that it's a copy of the Solderpad licence which needs to be provided to recipients of the Work or a Derivative Work, not a copy of the Apache licence. Subsection 4(a) has been amended accordingly. Please use this version.
Solderpad 2.1.txt

@andrewjskatz
Copy link
Author

Apologies, but making some changes has inevitably focussed minds, so we have made another couple of changes, again for clarity both in terminology and the relationship between Apache 2.0 and Solderpad. We have also adopted US English, so the noun form is now "License". This is consistent with Versions 0.5 and 0.51. We have re-adopted the Appendix of Apache 2.0 as well. We now have a persistent URL at: https://solderpad.org/licenses/SHL-2.1/
Solderpad 2.1b.txt

@jlovejoy
Copy link
Member

@swinslow - agree with your assessment above. I think it's preferable to save the course and add SHL-2.1 as an exception, rather than make (another) "exception" to how we deal with license modifiers (aka exceptions)

@andrewjskatz - do we think it's solid text now or do you expect more tweaks?

@jlovejoy
Copy link
Member

@andrewjskatz - here's a crazy idea... any chance of adding the SPDX identifier to the Appendix on how to apply the license?
as in:

APPENDIX

Copyright [yyyy] [name of copyright owner]
SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1

Licensed under...

@andrewjskatz
Copy link
Author

andrewjskatz commented May 13, 2020

Solderpad 2.1c.txt
@jlovejoy That is certainly one of least crazy ideas I've come across! Consider it done.

@jlovejoy
Copy link
Member

I made a PR to get this going at #1028
did not add SPDX identifier in Appendix though - easy add, when confirmed!

@andrewjskatz
Copy link
Author

Fantastic - thanks Jilayne. One final tweak - please in your reference version can you add a period at the end of the word Apache License version 2.0 in the Appendix so it doesn't run on to the next sentence. It should read as follows:

Licensed under the Solderpad Hardware License v 2.1 (the "License"); you may not use this file except in compliance with the License, or, at your option, the Apache License version 2.0. You may obtain a copy of the License at

@jlovejoy
Copy link
Member

@andrewjskatz - done!

so, do you think everything is solidified to add this for the next release (in the next couple days)?

@swinslow
Copy link
Member

Completed and merged in #1028 -- thanks everyone!

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

No branches or pull requests

3 participants