Closed GoogleCodeExporter closed 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
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
> 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
> 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
> 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
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
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:
+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
Original comment by yann.col...@gmail.com
on 4 Jan 2014 at 8:51
modification done to r111
Original comment by yann.col...@gmail.com
on 7 Jan 2014 at 6:52
Original issue reported on code.google.com by
alexande...@gmail.com
on 10 Dec 2013 at 12:10