colgreen / Redzen

General purpose C# code library.
Other
94 stars 16 forks source link

The nuget package's license is MIT, but the license of TimSort is GPL #13

Open fenghou1st opened 3 years ago

fenghou1st commented 3 years ago

So, if I include the package in the commercial project, not providing the source code, it seems to cause a very serious problem. I don't care if TimSort is included, I really want this package to be used in commercial projects.

Of cause I can copy the source codes to my project, then delete the TimSort files. But that will make it difficult to sync to the newest version.

colgreen commented 3 years ago

Hi. Thanks for reporting. One thing to bear in mind here is this clause:

Oracle designates this particular file as subject to the "Classpath" exception as provided
by Oracle in the LICENSE file that accompanied this code.

The 'Classpath' exception says (from https://openjdk.java.net/legal/gplv2+ce.html)

As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent modules,
and to copy and distribute the resulting executable under terms of your
choice, provided that you also meet, for each linked independent module,
the terms and conditions of the license of that module.  An independent
module is a module which is not derived from or based on this library.  If
you modify this library, you may extend this exception to your version of
the library, but you are not obligated to do so.  If you do not wish to do
so, delete this exception statement from your version.

For further info, see:

https://softwareengineering.stackexchange.com/questions/119436/what-does-gpl-with-classpath-exception-mean-in-practice

So perhaps this will alleviate your concern?

Now, that said, on reflection I would like to keep the Redzen licensing clean and simple, and therefore I may remove Timsort from this library (and perhaps place it in some other package).

Another possibility here is that the recently proposed split of the Redzen.Random could happen sooner, and maybe that would work for you too?

fenghou1st commented 3 years ago

Thank you for the explanation, I haven't heard of this "Classpath" exception before. It means I don’t have to worry about the licenses, good!

Then, if TimeSort is not a problem, you don't have to delete it. Perhaps you could add some explanation to the README.md and NuGet page.