spdx / license-list-XML

This is the repository for the master files that comprise the SPDX License List
Other
344 stars 275 forks source link

New license request: CRYPTOGAMS #2517

Open swinslow opened 1 month ago

swinslow commented 1 month ago

How license meets inclusion principles

Largely similar to BSD-3-Clause, with an "Alternatively" option embedded in the middle, allowing distribution under GPL (version unspecified), "provided that this notice is retained in full".

Very similar in spirit to Brian-Gladman-3-Clause, though not a match as different wording is used for each clause and the disclaimer.

License Name

CRYPTOGAMS License

Suggested short identifier

CRYPTOGAMS

License or Exception?

license

URL to license text

http://web.archive.org/web/20180829174116/https://www.openssl.org/~appro/cryptogams/

OSI Status

Not Submitted

License author or steward

Unknown, though historically the (archived) URL was hosted on OpenSSL's website

URL to project(s) that use license

http://web.archive.org/web/20180829174116/https://www.openssl.org/~appro/cryptogams/ => historically used in OpenSSL

Referenced in many projects, e.g.:

paste text of license here

Copyright (c) 2006-2017, CRYPTOGAMS by appro@openssl.org All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

ALTERNATIVELY, provided that this notice is retained in full, this product may be distributed under the terms of the GNU General Public License (GPL), in which case the provisions of the GPL apply INSTEAD OF those given above.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

swinslow commented 1 month ago

A few further notes:

karsten-klein commented 1 month ago

{metæffekt} Universe matched expression: BSD 3-Clause License (copyright holder variant) + GNU General Public License (undefined) markers: Do Not Promote Marker

ScanCode matched id: bsd-new OR gpl-1.0-plus

Comments I'm inclined to not add it. It's rather a BSD 3-Clause License (copyright holder variant) with an option to license under GPL, which should be addressable by an expression (even it this particular case is challenging with SPDX, since a LicenseRef for the "ALTERNATIVELY, ..." paragraph is required).

richardfontana commented 1 month ago

I guess I'm inclined to agree with Karsten. This is a good case for use of AdditionRef-, I'd think.

OliverFendt commented 1 month ago

I also do not see a need to integrate this in the license list. In my opinion this is: GPL-1.0-or-later OR BSD-3-Clause (and the BSD-3-Clause license text is the with "CRYPTOGAMS" individualized text) So I agree to Karsten and Richard

jlovejoy commented 1 month ago

so, from a practical standpoint, I certainly agree that it is effectively, GPL-1.0-or-later OR BSD-3-Clause

But that is the human-readable side of things. Being true to SPDX goals of being human and machine readable - I wouldn't think a license scanner would likely be able to parse that from a matching standpoint.

where does that leave us? Especially in light of the "precedent" set by https://spdx.org/licenses/Brian-Gladman-3-Clause.html ?

@swinslow @richardfontana - I also recalled there being a bunch of example of this kind of think in the kernel, do either of you remember how/if those licenses got resolved?

OliverFendt commented 1 month ago

I checked some files of the Linux kernel, I am currently working on, there are many files which carry the following license information (the files listed are only examples, this list is by far not complete there are hundrets of such cases in the Linux kernel and since you find Linux Kernel files in many other packages these files are also in other packages:

linux-6.1.97/net/can/af_can.h linux-6.1.97/net/can/bcm.c // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause)

bcm.c - Broadcast Manager to filter/send (cyclic) CAN content

Copyright (c) 2002-2017 Volkswagen Group Electronic Research All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. Neither the name of Volkswagen nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

Alternatively, provided that this notice is retained in full, this software may be distributed under the terms of the GNU General Public License ("GPL") version 2, in which case the provisions of the GPL apply INSTEAD OF those given above.

The provided data structures and external interfaces from this code are not restricted to be used by modules with a GPL compatible license.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

So the kernel developers made (GPL-2.0 OR BSD-3-Clause) out of the text in the file. This you will find many times in the Linux kernel.

There are also many other cases like the following ones:

linux-6.1.97/crypto/algif_rng.c Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, and the entire permission notice in its entirety, including the disclaimer of warranties.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

ALTERNATIVELY, this product may be distributed under the terms of the GNU General Public License, in which case the provisions of the GPL2 are required INSTEAD OF the above restrictions. (This clause is necessary due to a potential bad interaction between the GPL and the restrictions contained in a BSD-style copyright.)

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

linux-6.1.97/include/crypto/drbg.h Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

  1. Redistributions of source code must retain the above copyright notice, and the entire permission notice in its entirety, including the disclaimer of warranties.
  2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
  3. The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.

ALTERNATIVELY, this product may be distributed under the terms of the GNU General Public License, in which case the provisions of the GPL are required INSTEAD OF the above restrictions. (This clause is necessary due to a potential bad interaction between the GPL and the restrictions contained in a BSD-style copyright.)

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, ALL OF WHICH ARE HEREBY DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF NOT ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

What you see is that the linux-6.1.97/crypto/algif_rng.c has an other text than the suggested license. What you else see in the last example is that no version number of GPL is specified which then leads to GPL-1.0-or-later OR BSD-3-Clause As already said there are hundrets of such cases in the Linux kernel. With this in mind I disagree that such a "new" license adds to

human-readable side of things

Because you would need to establish complicated matching rules or you need to add a whole bunch of "new" licenses" and both things do not enhance human-readability and will put a lot more effort on license compliance work.

Sorry I be perhaps a bit harsh but I disagree to do a new license

swinslow commented 1 month ago

It sounds like the general consensus here is not to add this license, or at least this particular version of it (seeing that the kernel seems to have several variations of it).

Given that, I'm fine with marking this as "not approved" if folks generally feel that a "GPL or BSD" expression is more appropriate here.

richardfontana commented 1 month ago

It occurs to me that a "GPL or BSD" expression is arguably not appropriate for the "Alternatively, provided that this notice is retained in full" variant of this license.

jlovejoy commented 1 month ago

thanks @OliverFendt for the research! That is really helpful to know how the kernel ended up dealing with this, which somehow I missed.

@richardfontana - not sure what you mean? what is not appropriate? (or what would be better?)

I think this is one of those somewhat "unfortunate" licensing situations that we have to live with. I think the disjunctive expression captures the intent, it's just a bit odd b/c of how the actual license text/notice is implemented (i.e., BSD-3-Clause with some text shoved in the middle, instead of just having the full text of both licenses, separate/distinct.

Perhaps this would be useful to capture in a FAQ in case someone finds these files (likely) and is wondering about this (and also so we don't "revisit" this again!) :)

richardfontana commented 1 month ago

@jlovejoy not appropriate because it's not just signifying 'you have a choice of GPL or BSD', it's saying 'you have a choice of GPL or BSD But you have to preserve this whole notice'.

swinslow commented 1 month ago

Discussed on 2024-08-08 legal team call; lack of consensus about the preferred way to handle it.

Given the imminent upcoming release, there's more that would be needed to be figured out regarding variants. I'm going to label this as "Later Release" in case this comes up again in the future.