xiaoyin0208 / lz4

Automatically exported from code.google.com/p/lz4
0 stars 0 forks source link

COPYING file is GPL license while project uses BSD license #101

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
What steps will reproduce the problem?
1. Checkout sources from svn
2. Observe COPYING file in sources
3. Look at the content of COPYING and see it's GPL v2 text.

What is the expected output? What do you see instead?

There should be BSD license text, because that's what project page states.

What version of the product are you using? On what operating system?

svn trunk r109.

Please provide any additional information below.

Is there any reason for having GPL license in the sources? It's misleading a 
bit. I'd like to be able to copy file with license text to my project.

Original issue reported on code.google.com by alexande...@gmail.com on 10 Dec 2013 at 12:10

GoogleCodeExporter commented 8 years ago
As stated on homepage :

License : the libraries (lz4, lz4hc and xxhash) are BSD license. The command 
line interface programs (lz4.exe, fullbench, fuzzer) are GPLv2.

Copying is not required when using only the libraries. 
Copying is provided for the "make install" command,
which builds command-line utilities, which are GPLv2.

Original comment by yann.col...@gmail.com on 10 Dec 2013 at 12:42

GoogleCodeExporter commented 8 years ago
Hi Yann,

The message is not clear. lz4 and lz4hc produced by make (from the root 
directory in the source) are not libraries but command line interface programs. 
And after you say command lines interfaces programs are GPLv2. Is there an 
error in filenames or in the meaning of the sentence?

Especially because you choose a complex licensing scheme, could you ship which 
file is BSD (and which file is GPL) in the source tarball?
It would help, if the BSD license is also shipped like the GPL one (there are 
several BSD licenses) and website can move (or be remove) in the future.

Original comment by sebastien.luttringer on 24 Dec 2013 at 5:33

GoogleCodeExporter commented 8 years ago
> lz4 and lz4hc produced by make (from the root directory in the source) are 
not libraries but command line interface programs.

You mean lz4 and lz4c, right ?

> And after you say command lines interfaces programs are GPLv2. 

Correct.
The situation as it is now :
- the libraries are BSD.
- the command line interface programs are GPLv2.

Initially, the command line interface program was called lz4c.

But, after some solicitations, the name of the binary was changed to lz4.
I guess it can contribute today to the confusion situation, since both the 
library and the command line interface are now called lz4.

Note also : the license of each file is clearly labeled at the beginning of 
each file.

> Especially because you choose a complex licensing scheme,

Maybe something even clearer is required.
For example, a different directory structure, separating libraries files (BSD) 
from command line interface ones (GPL).

Original comment by yann.col...@gmail.com on 24 Dec 2013 at 5:45

GoogleCodeExporter commented 8 years ago
> You mean lz4 and lz4c, right ?
yes.

> Correct.
> The situation as it is now :
> - the libraries are BSD.
> - the command line interface programs are GPLv2.
>
> Initially, the command line interface program was called lz4c.
>
> But, after some solicitations, the name of the binary was changed to lz4.
> I guess it can contribute today to the confusion situation, since both the 
library and the command line interface are now called lz4.
Ok, so, the lz4 binary (make lz4) is GPLv2 (like lz4c) and the lz4 library 
(which cannot be built with the default make) is BSD.

> Note also : the license of each file is clearly labeled at the beginning of 
each file.
Yes it's why I switched package license from both GPLv2 and BSD to GPLv2 only 
because we only ship the binary and not the library.
But there is BSD code inside the binary built by make (lz4 and lz4c). I'm not 
sure if a binary can be both GPL and BSD?

> Maybe something even clearer is required.
> For example, a different directory structure, separating libraries files 
(BSD) from command line interface ones (GPL).

What is important to my packaging stuff is to have, inside the tarball:
- a way to know which file is GPL and which is BSD (a file/or directory 
structure);
- a copy of the license files (at least for BSD one);
- if a binary is built from multi-license files, which license is applied.

Original comment by sebastien.luttringer on 24 Dec 2013 at 6:48

GoogleCodeExporter commented 8 years ago
> Ok, so, the lz4 binary (make lz4) is GPLv2 (like lz4c) and the lz4 library 
(which cannot be built with the default make) is BSD.

Yes

> I'm not sure if a binary can be both GPL and BSD?

No, the binary is GPL.
The result of a combination of GPLv2 & BSD is a GPLv2 program.
That's why GPL is called "viral".

For the license (and maybe the directory structure too),
it's probably possible to use something equivalent to FSE :
https://github.com/Cyan4973/FiniteStateEntropy

Original comment by yann.col...@gmail.com on 24 Dec 2013 at 10:40

GoogleCodeExporter commented 8 years ago
Coming back to this issue, in preparation for r111.

The idea would be to separate libraries from programs, in a bid to make the 
license clearer.

Following the example of FSE, 
the libraries (lz4 and lz4hc) would remain at the root, with a BSD license 
document,
and the programs (bench, lz4cli, fuzzer, etc.) will be moved to a "programs" 
subdirectory, with a GPLv2 license file.

The Makefile at the root would have the objective to create libraries (for 
developers), on top of creating the distribution package (make dist) and the 
installation (make install).

The Makefile inside the "programs" subdirectory will be in charge of the 
executable creation.
The Makefile at root will be able to call the Makefile inside "programs" 
whenever necessary, notably keeping the current "make all" capability.

The end result will be more complex than today, where all files are at the root 
directory. But it may help to formalize what is BSD (the LZ4 libraries) and 
what is GPLv2 (the programs), since the current situation (mentioning it in the 
source files, Makefile, and homepage) seems not clear enough.

Any comment on this proposal ?

Original comment by yann.col...@gmail.com on 2 Jan 2014 at 11:43

GoogleCodeExporter commented 8 years ago
The following attached file is an example of what would become the directory 
tree.
It's important this part is settled to work on next requirements (typically, 
library builder), since it directly affects the building scripts.

Note that the cmake file will also have to be updated to reflect the new 
directory tree.

Original comment by yann.col...@gmail.com on 3 Jan 2014 at 3:00

Attachments:

GoogleCodeExporter commented 8 years ago
+1 on having separate directories. I also noticed that you added a LICENSE 
file, I think this is helpful too!

Original comment by jpou...@gmail.com on 4 Jan 2014 at 5:35

GoogleCodeExporter commented 8 years ago

Original comment by yann.col...@gmail.com on 4 Jan 2014 at 8:51

GoogleCodeExporter commented 8 years ago
modification done to r111

Original comment by yann.col...@gmail.com on 7 Jan 2014 at 6:52