On Wed, Apr 30, 2025 at 05:22:37PM +0200, Mario Fleischmann wrote:
> On 30.04.2025 14:56, Daniel P. Berrangé wrote:
> > On Wed, Apr 30, 2025 at 02:47:07PM +0200, Mario Fleischmann wrote:
> >> On 30.04.2025 10:20, Daniel P. Berrangé wrote:
> >>> On Wed, Apr 30, 2025 at 07:27:22AM +0200, Mario Fleischmann wrote:
> 
> [...]
> 
> >>>> diff --git a/mcd/mcd_api.h b/mcd/mcd_api.h
> >>>> new file mode 100644
> >>>> index 0000000..8c89353
> >>>> --- /dev/null
> >>>> +++ b/mcd/mcd_api.h
> >>>> @@ -0,0 +1,3963 @@
> >>>> +/*
> >>>> + * Copyright (c) 2008, ARM Ltd., Infineon Technologies, NXP 
> >>>> Semiconductors,
> >>>> + * Lauterbach, STMicroelectronics and TIMA Laboratory.
> >>>> + * All rights reserved.
> >>>> + *
> >>>> + * PREAMBLE
> >>>> + *
> >>>> + * The MCD API (Multi-Core Debug) has been designed as an interface 
> >>>> between
> >>>> + * software development tools and simulated or real systems with 
> >>>> multi-core
> >>>> + * SoCs. The target is to allow consistent software tooling throughout 
> >>>> the
> >>>> + * whole SoC development flow.
> >>>> + * The MCD API (the "SOFTWARE") has been developed jointly by ARM Ltd.,
> >>>> + * Infineon Technologies, NXP Semiconductors, Lauterbach,
> >>>> + * STMicroelectronics and TIMA Laboratory as part of the SPRINT project
> >>>> + * (www.sprint-project.net).
> >>>> + * The SPRINT project has been funded by the European Commission.
> >>>> + *
> >>>> + * LICENSE
> >>>> + *
> >>>> + *  Any redistribution and use of the SOFTWARE in source and binary 
> >>>> forms,
> >>>> + *  with or without modification constitutes the full acceptance of the
> >>>> + *  following disclaimer as well as of the license herein and is 
> >>>> permitted
> >>>> + *  provided that the following conditions are met:
> >>>> + *  - Redistributions of source code must retain the above copyright 
> >>>> notice,
> >>>> + *    this list of conditions and the disclaimer detailed below.
> >>>> + *  - Redistributions in binary form must reproduce the above copyright 
> >>>> notice,
> >>>> + *    this list of conditions and the disclaimer detailed below in the
> >>>> + *    documentation and/or other materials provided with the 
> >>>> distribution.
> >>>> + *  - Neither the name of its copyright holders nor the names of its
> >>>> + *    contributors may be used to endorse or promote products derived 
> >>>> from the
> >>>> + *    Software without specific prior written permission.
> >>>> + *  - Modification of any or all of the source code, documentation and 
> >>>> other
> >>>> + *    materials provided under this license are subject to 
> >>>> acknowledgement of
> >>>> + *    the modification(s) by including a prominent notice on the 
> >>>> modification(s)
> >>>> + *    stating the change(s) to the file(s), identifying the date of 
> >>>> such change
> >>>> + *    and stating the name of the publisher of any such modification(s).
> 
> [...]
> 
> >>> AFAICT this license is derived from a classic BSD 3 clause, with the
> >>> extra 4th clause added.
> >>>
> >>> I don't see any SPDX license matching this, which is painful as it
> >>> means it is going to need license approval before it can be included
> >>> by distributions downstream.
> >>>
> >>> Does this really have to be under a custom license instead of a
> >>> well known standard license ? There's really no good reason for
> >>> inventing new open source licenses.
> >>
> >> BSD 3-Clause Modification matches the license of the MCD API and is
> >> listed under the SPDX License List. Is it possible to extend
> >> checkpatch's @valid with "BSD-3-Clause-Modification"? That way, we can
> >> also add the SPDX-License-Identifier to mcd_api.h without an error being
> >> generated by the script.
> > 
> > Conceptually this is similar to BSD-3-Clause-Modification, but the
> > actual text of the license does not match
> > 
> >   https://spdx.org/licenses/BSD-3-Clause-Modification.html
> > 
> > so IMHO we can't claim this is BSD-3-Clause-Modification currently.
> > 
> > IIUC, it would have to be submitted to SPDX for review to decide
> > whether it needs to be a new license, or whether the permitted text
> > for BSD-3-Clause-Modification can allow a choice of matches.
> So, according to the SPDX License List matching guidelines, changes to
> BSD-3-Clause-Modification can only be seen as equivalent if at most the
> clauses are stated in a different order, as indicated by the red text?

I believe for matching requirements, ordering of paragraphs must
be a fixed per:

  
https://spdx.github.io/spdx-spec/v2.3/license-matching-guidelines-and-templates/#b32-guideline-verbatim-text

In terms of lists, however, they permit the numbers to be substituted
by bullets and vica-verca per

 
https://spdx.github.io/spdx-spec/v2.3/license-matching-guidelines-and-templates/#b8-bullets-and-numbering

> I assume we agree that the first three clauses match BSD-3-Clause.

There are some slight wording differences in the first 2 clauses,
but IMHO they don't make a semantic difference.

> To show that the fourth clause matches BSD-3-Clause-Modification, I
> split up both license texts and indented MCD API's license:

For BSD-3-Clause-Modification it currently defines the 4th clause
as

  If any files are modified, you must cause the modified files to
  carry prominent notices stating that you changed the files and
  the date of any change.

vs this file

  Modification of any or all of the source code, documentation and other
  materials provided under this license are subject to acknowledgement of
  the modification(s) by including a prominent notice on the modification(s)
  stating the change(s) to the file(s), identifying the date of such change
  and stating the name of the publisher of any such modification(s).

Even though (IMHO) the legal implications are basically equivalent,
under the SPDX matching guidelines I don't think we can consider
this a match.

> Stated like this, I think it is appropriate to see both clauses as
> equivalent. Since the contributor appendix on the third clause is not
> present in BSD-3-Clause-Modification, we have to specify the composite
> 
> Valid-License-Identifier: BSD-3-Clause-Modification AND BSD-3-Clause

I'm afraid that's not how SPDX license clauses work - the text of
the license in the file needs to match one specific SPDX license,
modulo fuzzy matching to the extent documented in the links above.

> Under which conditions is this Valid-License-Identifier ...well...
> valid? IIUC, we either need a formal approval from SPDX legal team or a
> relicensing of the MCD API. Is there maybe another way?

The quickest option is almost certainly to get this reviewed by
SPDX team as a new BSD variant.

Is there a canonical link where this license originates from ?

In terms of this QEMU series, I don't consider this a hard blocker,
as we can work through it asynchronously.

With regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|


Reply via email to