MRPT / mrpt

:zap: The Mobile Robot Programming Toolkit (MRPT)
https://docs.mrpt.org/reference/latest/
BSD 3-Clause "New" or "Revised" License
1.89k stars 627 forks source link

fix CSparse copyright and license info (LGPL, not BSD) #1255

Closed DrTimothyAldenDavis closed 1 year ago

DrTimothyAldenDavis commented 1 year ago

Changed apps/libraries

PR Description

The headers for the files in the CSparse folder incorrectly imply that the code is under the BSD license, and has been written by the MPRT authors. I've updated the headers to reflect the correct license (LGPL-2.0+) and copyright statement. The changeLog_doc.h isn't in the location listed below, so I didn't update it.

Please let me know if you have any questions.

Thanks -- Tim Davis, DrTimothyAldenDavis@gmail.com .


I acknowledge to have:

(Notify: @MRPT/owners )

codecov[bot] commented 1 year ago

Codecov Report

Merging #1255 (3f55a1b) into develop (6973afd) will decrease coverage by 0.00%. The diff coverage is n/a.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop    #1255      +/-   ##
===========================================
- Coverage    38.59%   38.59%   -0.01%     
===========================================
  Files         1280     1280              
  Lines       107995   107993       -2     
===========================================
- Hits         41677    41675       -2     
  Misses       66318    66318              
Impacted Files Coverage Δ
libs/math/src/CSparse/cs_add.c 100.00% <ø> (ø)
libs/math/src/CSparse/cs_amd.c 84.48% <ø> (ø)
libs/math/src/CSparse/cs_chol.c 100.00% <ø> (ø)
libs/math/src/CSparse/cs_cholsol.c 0.00% <ø> (ø)
libs/math/src/CSparse/cs_compress.c 100.00% <ø> (ø)
libs/math/src/CSparse/cs_counts.c 76.47% <ø> (ø)
libs/math/src/CSparse/cs_cumsum.c 100.00% <ø> (ø)
libs/math/src/CSparse/cs_dfs.c 0.00% <ø> (ø)
libs/math/src/CSparse/cs_dmperm.c 0.00% <ø> (ø)
libs/math/src/CSparse/cs_droptol.c 0.00% <ø> (ø)
... and 43 more

Continue to review full report at Codecov.

Legend - Click here to learn more Δ = absolute <relative> (impact), ø = not affected, ? = missing data Powered by Codecov. Last update 6973afd...3f55a1b. Read the comment docs.

jlblancoc commented 1 year ago

Oh, my! Thanks a lot for spotting and fixing it.

Of course, it wasn't intentional: looking at the files history, it seems they were included back in 2014 without any copyright note (perhaps the original files back then didn't have any?) then the automated script that updates the copyright notes every new year added it. Sorry for that!

Anyway, MRPT sources that go to Debian (so, to Ubuntu and derived distros) do not include your sources, as specified here.

Thanks a lot for developing and maintaining CSparse, it's a huge contribution!

Cheers, Jose Luis

DrTimothyAldenDavis commented 1 year ago

Thanks!

Yes, that's correct, the original files didn't have a copyright notice on each file, to keep the code short and concise (it's printed in its entirety in my SIAM book). That's also why the code style is so compact and terse. I normally write way more comments in my code, but in this case, the book is the "comment".

So instead of a per-file header with copyright/license info, I just had the notice in the cs.h include file, and in the License.txt file. You had both of those in your repo, with the copyright and license preserved, which is great. It was just the headers you added on each file that could lead to confusion.

I've decided to update CSparse (and CXSparse) to add these identical headers to all the files, though, to avoid any confusion in the future (I've seen it elsewhere).

Anyway -- I really appreciate the fact that you resolved this so quickly. I'm very happy to know my code is useful in your project -- that's why I wrote it and it's great to see it in action!

Thanks again -- Tim

barseghyanartur commented 1 year ago

AFAIK, you can't just change a licence from BSD to GPL on existing code if you're not the only contributor.

DrTimothyAldenDavis commented 1 year ago

I am the only author of CSparse, and the code has always been under LGPL. See for example: https://github.com/MRPT/mrpt/blob/develop/libs/math/src/CSparse/License.txt where the proper license is contained, and note the date on that file. It is my original license. The code has been under the LGPL since 2006 when I first published it. The only change here is the header on each file which listed the license incorrectly (BSD). The code has never been under the BSD license. This change is just making that more clear.

DrTimothyAldenDavis commented 1 year ago

Also note the original license file when CSparse was first included into MRPT: https://github.com/MRPT/mrpt/blob/211396265b74578f6d83c254960687421319643c/libs/base/src/math/CSparse/License.txt

barseghyanartur commented 1 year ago

I see. That's actually wrong. You simply can't add a GPL licensed code to an existing BSD licensed project codebase without affecting the licence of the whole project (clear indication is required).

DrTimothyAldenDavis commented 1 year ago

Your statement is incorrect. It’s LGPL not GPL. Including it this way is fine, because the end user can swap out the LGPL package with their own, as required by the license. This MRPT package is in full compliance with my LGPL license of my code.

In addition, when this code is distributed, it uses the Debian distro for the CSparse library.

On Wed, Oct 19, 2022 at 8:01 AM Artur Barseghyan @.***> wrote:

I see. That's actually wrong. You simply can't add a GPL licensed code to an existing BSD licensed project codebase without affecting the licence of the whole project (clear indication is required).

— Reply to this email directly, view it on GitHub https://github.com/MRPT/mrpt/pull/1255#issuecomment-1283978481, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEYIIONOJWDPQQRKSLQE4ADWD7WJHANCNFSM6AAAAAARHP7WZ4 . You are receiving this because you authored the thread.Message ID: @.***>

-- Sent from Gmail Mobile