openhwgroup / cv32e40p

CV32E40P is an in-order 4-stage RISC-V RV32IMFCXpulp CPU based on RI5CY from PULP-Platform
https://docs.openhwgroup.org/projects/cv32e40p-user-manual/en/latest
Other
902 stars 399 forks source link

Aligned all RTL/BHV files headers with correct date, contributors and Solderpad Hardware License v2.1 #963

Closed pascalgouedo closed 3 months ago

pascalgouedo commented 3 months ago

Used latest Solderpad Hardware License v2.1 defined in Appendix here.

MikeOpenHWGroup commented 3 months ago

@pascalgouedo , my current understanding is that:

  1. Any file that is meaningfully modified under a preexisting license should have a new copyright declared by the contributor or contributor's organization and the preexisting copyright and license must be preserved.
  2. The current advice from Eclipse is that legally, the only year in the copyright header should be the year that the content was created.
  3. Files must retain the header of the original, whether they are substantially modified or split into multiple files.

If we follow the above, then much of this PR is not required, and my recommendation would be to simply preprend a new copyright to each file you have modified:

// Copyright (c) 2024 Dolphin Design
pascalgouedo commented 3 months ago

And what about SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 ?

If I don't add it all files stays with 2.0 license

pascalgouedo commented 3 months ago

Is this example with added bolded lines ok ?

// Copyright (c) 2024 OpenHW Group and Dolphin Design // SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 // // Copyright 2020 Silicon Labs, Inc. // // This file, and derivatives thereof are licensed under the // Solderpad License, Version 2.0 (the "License"). // // Use of this file means you agree to the terms and conditions // of the license and are in full compliance with the License. // // You may obtain a copy of the License at: // // https://solderpad.org/licenses/SHL-2.0/ // // Unless required by applicable law or agreed to in writing, software // and hardware implementations thereof distributed under the License // is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS // OF ANY KIND, EITHER EXPRESSED OR IMPLIED. // // See the License for the specific language governing permissions and // limitations under the License.

MikeOpenHWGroup commented 3 months ago

And what about SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 ? If I don't add it all files stays with 2.0 license

Yes, that is my understanding. When you joined the project, most of the files were licensed under Solderpad 2.0. If these files have not changed, they can remain licensed under SHL-2.0. We can update the license, but we are not required to.

...at least, that is my understanding...

pascalgouedo commented 3 months ago

And what about SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1 ? If I don't add it all files stays with 2.0 license

Yes, that is my understanding. When you joined the project, most of the files were licensed under Solderpad 2.0. If these files have not changed, they can remain licensed under SHL-2.0. We can update the license, but we are not required to.

...at least, that is my understanding...

Quite hard to figure out which files have changed and which haven't after more than a year of development ...

pascalgouedo commented 3 months ago

A lot of headers have already been changed since v1. I have to restore all v1 headers and add copyright and correct license if needed? If this is the case it will be quite cumbersome I will never be able to freeze this week.

pascalgouedo commented 3 months ago

What I can see is that nearly all files changed, at least because of verible usage. And also because of top level parameter name changes...

MikeOpenHWGroup commented 3 months ago

What I can see is that nearly all files changed, at least because of verible usage.

True enough. Then I suggest the following is sufficient:

// Copyright (c) 2024 OpenHW Group and Dolphin Design
// SPDX-License-Identifier: Apache-2.0 WITH SHL-2.1

It would be great if @davideschiavone or @DBees or @Floadv298 or @Silabs-ArjanB could chime in.

DBees commented 3 months ago

guys trying to follow the chain here. Are we proposing to up-version the license to SHL-2.1 from SHL-2.0 and change the copyright statement to 2024 on code that was authored by others? I don't think we can do that but I may misunderstand what's being proposed @MikeOpenHWGroup @pascalgouedo

MikeOpenHWGroup commented 3 months ago

No, we are explicitly not doing that. My recommendation is that we should not modify the license header on files that have not been modified, or with minor modifications. Pascal has pointed out that many files have had substantial modifications, so it makes sense to update the copyright statement.

On Tue, Mar 19, 2024, 21:20 DBees @.***> wrote:

guys trying to follow the chain here. Are we proposing to up-version the license to SHL-2.1 from SHL-2.0 and change the copyright statement to 2024 on code that was authored by others? I don't think we can do that but I may misunderstand what's being proposed @MikeOpenHWGroup https://github.com/MikeOpenHWGroup @pascalgouedo https://github.com/pascalgouedo

— Reply to this email directly, view it on GitHub https://github.com/openhwgroup/cv32e40p/pull/963#issuecomment-2008497292, or unsubscribe https://github.com/notifications/unsubscribe-auth/ANFQQI4JZ3EBINCEWEQG4QDYZDP7HAVCNFSM6AAAAABE4HWP4WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDAMBYGQ4TOMRZGI . You are receiving this because you were mentioned.Message ID: @.***>

DBees commented 3 months ago

Right but who modified the files? If not the original author you could add a new copyright statement/date by the additional new author.

Floadv298 commented 3 months ago

To my understanding only files touched, should get an updated license and copyright but we may need to check with some legal experts. Agree with Duncan, the original author can easily update the copyright. Can we discuss this at the E40Pv2 Verification meeting today at 1pm Paris time?

MikeOpenHWGroup commented 3 months ago

Everyone should read the Eclipse Legal Documentation Requirements, especially the associated FAQ.

My interpretation is that the only change we need to make to any files we modify is to declare the copywrite holder of the changes. Adding this one-liner to the top of the file is all we need:

// Copyright (c) {year} {owner}

We could do more, but that is all that is required.

pascalgouedo commented 3 months ago

Everyone should read the Eclipse Legal Documentation Requirements, especially the associated FAQ.

My interpretation is that the only change we need to make to any files we modify is to declare the copywrite holder of the changes. Adding this one-liner to the top of the file is all we need:

// Copyright (c) {year} {owner}

We could do more, but that is all that is required.

This is talking about Eclipse Public License, not Solderpad Hardware License. And the (c) is nowhere else in any other license text I saw.

MikeOpenHWGroup commented 3 months ago

This is talking about Eclipse Public License, not Solderpad Hardware License.

As OpenHW Group CORE-V repositories are governed by EF I think this document applies. I could not find anything in Solderpad that contradicts these guidelines.

And the (c) is nowhere else in any other license text I saw.

Maybe it is a North American thing. Consider it optional.

pascalgouedo commented 3 months ago

Even if we comply with EPL, we still don't comply with SHL 0.53 about changed file.

For me it should and SHL AND EPL, not EPL only.

MikeOpenHWGroup commented 3 months ago

I disagree. My original recommendation stands. Let's not make this more complex than it is.