Re: [PATCH v2 2/2] dt-bindings: cisco: document the CrayAR compatibles

From: Krzysztof Kozlowski
Date: Wed Apr 12 2023 - 13:19:00 EST


On 12/04/2023 19:01, Daniel Walker (danielwa) wrote:
>>
>> Yes, I understand this. But also how corporations work should not really
>> be my problem. Especially that many of them were able to relicense even
>> existing work, not mentioning new work. New work is piece of cake
>> comparing with army of lawyers for existing, released work! Yet they
>> could...
>>
>>>
>>> What benefit does a BSD license hold for my employer over GPL v2 ?
>>
>> As BSD is permissive, it does not force the employer or its customer to
>> release the derived works to customers. GPL requires it (simplifying
>> now). The employer and its customer have now choice. Dual license gives
>> more choices. More choices is beneficial for the company or its
>> customers, isn't?
>
> I don't think we derive value from this because Cisco only sells chips internally, not
> externally.

My answer was generic: dual license is beneficial for a company. Not
specific: dual license is beneficial for Cisco. It might be the case you
do not have benefits from dual license, but you also do not loose anything.

Anyway, if SW release (for such chip) ever reaches external customer,
then it matters. GPL compliance is for some lawyers huge pain and scary
stuff, although should not be...

>
>>
>>>
>>> Here the licenses currently used by the bindings,
>>>
>>> 1 # SPDX-License-Identifier: BSD-2-Clause
>>> 1 # SPDX-License-Identifier: (GPL-2.0-only)
>>> 1 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause */
>>> 1 # SPDX-License-Identifier: (GPL-2.0-or-later)
>>> 3 # SPDX-License-Identifier: (GPL-2.0+ OR X11)
>>> 4 # SPDX-License-Identifier: GPL-2.0-or-later
>>> 4 # SPDX-License-Identifier: (GPL-2.0 OR MIT)
>>> 6 # SPDX-License-Identifier: (GPL-2.0)
>>> 7 # SPDX-License-Identifier: (GPL-2.0-or-later OR BSD-2-Clause)
>>> 7 # SPDX-License-Identifier: GPL-2.0-or-later OR BSD-2-Clause
>>> 11 # SPDX-License-Identifier: GPL-2.0+
>>> 12 # SPDX-License-Identifier: (GPL-2.0+ OR BSD-2-Clause)
>>> 12 # SPDX-License-Identifier: (GPL-2.0+ OR MIT)
>>> 33 # SPDX-License-Identifier: (GPL-2.0-only or BSD-2-Clause)
>>> 47 # SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
>>> 56 # SPDX-License-Identifier: GPL-2.0-only or BSD-2-Clause
>>> 102 # SPDX-License-Identifier: GPL-2.0-only
>>> 350 # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>>> 511 # SPDX-License-Identifier: GPL-2.0
>>> 610 # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
>>> 1570 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>>>
>>> Can you explain why so many are allowed to use GPL v2 , but my company is not
>>> allowed? Shouldn't these all be dual licensed if the project only allows dual
>>> license?
>>
>> The rule is for new bindings. All new bindings are forced to follow this
>> rule. Why do you think we treat Cisco special? Who else was allowed? Can
>> we be specific?
>>
>> Linking here existing bindings is not really an argument. What does it
>> prove?
>
> It shows the "rule" is not consistent. Sometime GPL v2 is ok, sometimes not.
>
> Here's is the last GPL v2 only binding added,
>
> commit f9b8556d5799b612404e19b21dd7624d551f71df
> Author: Johan Jonker <jbx6244@xxxxxxxxx>
> Date: Thu Dec 22 15:28:53 2022 +0100
>
> dt-bindings: usb: convert fcs,fusb302.txt to yaml

This is not a new binding. Read again the title.

>
> Convert fcs,fusb302.txt to yaml.
>
> Changed:
> Add vbus-supply property
>
> Signed-off-by: Johan Jonker <jbx6244@xxxxxxxxx>
> Reviewed-by: Rob Herring <robh@xxxxxxxxxx>
> Link: https://lore.kernel.org/r/0336a3c4-4a43-c983-11d7-e2ae16187fc8@xxxxxxxxx
> Signed-off-by: Rob Herring <robh@xxxxxxxxxx>
>
>
> This was only a few months ago. It's a new yaml file with a new license line, made
> from an existing text file. I can see how maybe this uses parts of the GPL v2
> txt files so you could not relicense to BSD.

It's not a new binding. The license was GPLv 2.0, so it would have to be
relicensed with agreement of all copyright holders.

>
> here's one less than a year ago,
>
> commit bdeb3cf013d0d1d09ff3bf66ba139ab259dab3a4
> Author: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> Date: Mon Jul 4 20:24:48 2022 +0300
>
> dt-bindings: clock: separate bindings for MSM8916 GCC device
>
> Separate bindings for GCC on Qualcomm MSM8916 platforms. This adds new
> clocks/clock-names properties to be used for clock links.
>
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> Reviewed-by: Marijn Suijten <marijn.suijten@xxxxxxxxxxxxxx>
> Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
> Signed-off-by: Bjorn Andersson <andersson@xxxxxxxxxx>
> Link: https://lore.kernel.org/r/20220704172453.838303-3-dmitry.baryshkov@xxxxxxxxxx
>
>
> uses one line from a text file that's GPL v2.

It was probably based on old binding (from which it separated) which was
GPL-2.0. As derivative work it had to be also GPL-2.0.

However that binding actually should be relicensed, because we have the
right to do it for Qualcomm. Also mistakes happen, on submitters side
and reviewers as well. Feel free to find all mistakes I did in review.
There will be tons of them. Only the one who does not review, makes no
mistakes.


>>>
>>> It's very likely that new bindings will be made by making a copy of other
>>> bindings, then make modifications. If my company copied bindings which are GPL
>>> v2, then we are required to honor the license of the prior binding
>>> and that means we legally aren't allowed to relicense under BSD AFAIK.
>>
>> So copy some bindings which are dual-licensed... Since this is new work,
>> you can do it.
>
> Writing the binding is already done. It's hard to go back.

You can go back any time. Just "rm -fr" and write again. Since there is
no other copyright holder than you (and/or your employer), you can do
pretty much anything you wish with it.

>
> Is this dual license mandate documented someplace,

Run checkpatch and do not send patches which fail.

> because it seems like a
> massive trap.

Trap? Of what? Srsly... I heard GPL is a trap, but never about dual or
BSD license.

>
>>>
>>> Also the documentation for the bindings here Documentation/devicetree/
>>>
>>> changesets.rst
>>> dynamic-resolution-notes.rst
>>> index.rst
>>> kernel-api.rst
>>> of_unittest.rst
>>> overlay-notes.rst
>>> usage-model.rst
>>>
>>> all the rst files are GPL v2 and not dual license.
>>
>> These are not bindings, so I do not understand your argument. What do
>> you prove? That non-bindings do not have to use bindings rules? Yes,
>> they are not bindings...
>>
>> Anyway, I feel like we are making some useless circles and wasting quite
>> a lot of energy on trivial rule. I tried to explain it, but if you do
>> not like it - it's your choice. It will be a NAK.
>
> I'm pointing out that your dual license mandate has problems. Another issue is
> you have dts files exclusively GPL v2,

It's not a problem... but even if it was, why do you not want to
dual-license them as well?

> and the dt bindings have dts fragments
> which then have to be relicensed under BSD.

Point me to the DTS fragment in this patch. I could not find it.

>
> Are you as well going to nak our dts files? Or are those ok without bindings ?

1. All compatibles must be documented, so if your DTS does not follow
this rule I will NAK.
2. New platforms are supposed to have zero dtbs_check warnings, which is
depending on above (1) plus enforces DT schema conversion.


Best regards,
Krzysztof