Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign upConsider re-licensing to Apache License v2 #775
Comments
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Conan-Kudo
Jul 26, 2017
My main concern with relicensing to purely ASL 2.0 is that it means that zstd would be unsuitable for projects that have an explicit goal of being (L)GPLv2 compatible or are GPLv2. It makes things very ugly for GPLv2-only projects or people using GPLv2+ projects in a manner in which they do not wish to abide by the terms of the GPLv3 in order to be compatible with ASL 2.0.
My preference here would be to reduce the scope of the PATENTS license to something similar to what the WebM Project does, which limits it to patents related to the codebase itself and limits the domain to software patents.
Conan-Kudo
commented
Jul 26, 2017
|
My main concern with relicensing to purely ASL 2.0 is that it means that zstd would be unsuitable for projects that have an explicit goal of being (L)GPLv2 compatible or are GPLv2. It makes things very ugly for GPLv2-only projects or people using GPLv2+ projects in a manner in which they do not wish to abide by the terms of the GPLv3 in order to be compatible with ASL 2.0. My preference here would be to reduce the scope of the PATENTS license to something similar to what the WebM Project does, which limits it to patents related to the codebase itself and limits the domain to software patents. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
umbrant
Jul 26, 2017
Hi @Conan-Kudo,
RocksDB went with a dual-license of ALv2 and GPLv2, which would work for GPLv2 projects. I think this would be workable for zstd too, but this is ultimately up to the zstd maintainers.
umbrant
commented
Jul 26, 2017
|
Hi @Conan-Kudo, RocksDB went with a dual-license of ALv2 and GPLv2, which would work for GPLv2 projects. I think this would be workable for zstd too, but this is ultimately up to the zstd maintainers. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Conan-Kudo
Jul 26, 2017
If zstd were being dual-licensed, I'd probably go with ASL 2.0 + LGPLv2+ as the combo, since it is a library and the goal is to encourage adoption.
Conan-Kudo
commented
Jul 26, 2017
•
|
If zstd were being dual-licensed, I'd probably go with ASL 2.0 + LGPLv2+ as the combo, since it is a library and the goal is to encourage adoption. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
boxerab
Jul 27, 2017
Good idea! I for one am not comfortable with the PATENT grant in zstd, so ASLv2 is way better.
+1
boxerab
commented
Jul 27, 2017
•
|
Good idea! I for one am not comfortable with the PATENT grant in zstd, so ASLv2 is way better. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
nemequ
Jul 27, 2017
Does Facebook actually claim to have any patents which cover zstd? AFAICT (IANAL) the patent license only revokes the license to use patents which are necessary for zstd if you're involved in patent litigation against FB; the copyright license (BSD-3-Clause) remains.
If there are no such patents it's a moot point; they're just terminating a license to use nothing. OTOH, if FB does own relevant patents then simply removing the PATENTS file would eliminate the license to use them, which puts everyone in the same position they would be in if they had sued Facebook.
This issue is obviously impeding zstd adoption, which seems like a pretty high cost for an empty (assuming FB doesn't have any relevant patents) threat, so I'd like to see it resolved somehow. Switching to Apache 2.0 would be fine, but it seems like overkill… I'd be comfortable if FB just publicly stated that they don't have any relevant patents (like Google did for Brotli) and dropped the threatening PATENTS file.
nemequ
commented
Jul 27, 2017
|
Does Facebook actually claim to have any patents which cover zstd? AFAICT (IANAL) the patent license only revokes the license to use patents which are necessary for zstd if you're involved in patent litigation against FB; the copyright license (BSD-3-Clause) remains. If there are no such patents it's a moot point; they're just terminating a license to use nothing. OTOH, if FB does own relevant patents then simply removing the PATENTS file would eliminate the license to use them, which puts everyone in the same position they would be in if they had sued Facebook. This issue is obviously impeding zstd adoption, which seems like a pretty high cost for an empty (assuming FB doesn't have any relevant patents) threat, so I'd like to see it resolved somehow. Switching to Apache 2.0 would be fine, but it seems like overkill… I'd be comfortable if FB just publicly stated that they don't have any relevant patents (like Google did for Brotli) and dropped the threatening PATENTS file. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
boxerab
Jul 27, 2017
Even if they have no patents at the moment (and there is no way of really telling whether this is true)
they may file them in the future. ASLv2 gives a patent grant in the license itself, with no strings attached like the PATENTS grant (but there is a retaliatory clause )
http://en.swpat.org/wiki/Patent_clauses_in_software_licences
boxerab
commented
Jul 27, 2017
|
Even if they have no patents at the moment (and there is no way of really telling whether this is true) http://en.swpat.org/wiki/Patent_clauses_in_software_licences |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
boxerab
commented
Jul 27, 2017
|
More discussion of this issue can be found here |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
boxerab
Jul 27, 2017
The ASLv2 retaliatory clause is limited to patents related to the Work being licensed, while the zstd grant
applies to any patent litigation, not necessarily related to zstd.
boxerab
commented
Jul 27, 2017
•
|
The ASLv2 retaliatory clause is limited to patents related to the Work being licensed, while the zstd grant |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
nemequ
Jul 27, 2017
I agree that ASLv2 would be stronger than what I suggested, but there are drawbacks… for one, there is something to be said for short, easy to understand licenses like BSD/MIT/ISC/zlib etc. which most people can grok without consulting a lawyer. Another good solution would be BSD + a patent grant which doesn't terminate on legal action against Facebook.
I don't think future patents are much of a concern; zstd has been public for a while now, so AFAIK it shouldn't be possible to file new patents which cover it.
FB acquiring existing patents which cover zstd is more of an issue, but if those exist they're already out there and already a threat to anyone thinking about using zstd; Facebook acquiring them wouldn't make that problem any worse. Frankly I'd rather have Facebook holding something like that defensively than a patent troll.
Going back to Brotli, part of that IPR disclosure is a promise that any patents is a commitment to make any patents they do/will have available for licensing under FRAND terms. FB could easily do the same.
Like I said, I would be comfortable with a statement that FB doesn't believe it owns any patents which cover zstd, which should at least get you clear of willful infringement territory. Others may want something more, but there are solutions other than ASLv2.
nemequ
commented
Jul 27, 2017
|
I agree that ASLv2 would be stronger than what I suggested, but there are drawbacks… for one, there is something to be said for short, easy to understand licenses like BSD/MIT/ISC/zlib etc. which most people can grok without consulting a lawyer. Another good solution would be BSD + a patent grant which doesn't terminate on legal action against Facebook. I don't think future patents are much of a concern; zstd has been public for a while now, so AFAIK it shouldn't be possible to file new patents which cover it. FB acquiring existing patents which cover zstd is more of an issue, but if those exist they're already out there and already a threat to anyone thinking about using zstd; Facebook acquiring them wouldn't make that problem any worse. Frankly I'd rather have Facebook holding something like that defensively than a patent troll. Going back to Brotli, part of that IPR disclosure is a promise that any patents is a commitment to make any patents they do/will have available for licensing under FRAND terms. FB could easily do the same. Like I said, I would be comfortable with a statement that FB doesn't believe it owns any patents which cover zstd, which should at least get you clear of willful infringement territory. Others may want something more, but there are solutions other than ASLv2. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
JarekDuda
Jul 28, 2017
nemequ, I have checked it looks Facebook has no published related patent application in the neighboring issue, however, later someone has commented it that beside 1 year since making idea public, there are 18 months for publication of patent application - so we need to wait ~1.5 more years to be certain...
However, as the Google ANS patent application took 6 months to be published, I have found this article saying that these 18 months is a myth, in practice publication can be 3-36+ months from filling ... making the use of ZSTD a real paranoia not worth the risk for large companies ... another comment I have found here: "I work at a fairly big company that has a good relationship with Facebook (they're a customer and partner) and we aren't allowed to use React or zstd."
JarekDuda
commented
Jul 28, 2017
•
|
nemequ, I have checked it looks Facebook has no published related patent application in the neighboring issue, however, later someone has commented it that beside 1 year since making idea public, there are 18 months for publication of patent application - so we need to wait ~1.5 more years to be certain... |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
adamkennedy
Aug 3, 2017
If zstd is not relicensed, it would seem that it will have to be rolled back and removed from Hadoop, HBase and Spark by August 31st. Am I reading that correctly?
All the issues for adding support to Hadoop seems to be here https://issues.apache.org/jira/browse/SPARK-19112?jql=text%20~%20%22ZStandard%22
It looks like HBase is already in the processing of identifying what needs to be removed in HBASE-18391.
adamkennedy
commented
Aug 3, 2017
|
If zstd is not relicensed, it would seem that it will have to be rolled back and removed from Hadoop, HBase and Spark by August 31st. Am I reading that correctly? All the issues for adding support to Hadoop seems to be here https://issues.apache.org/jira/browse/SPARK-19112?jql=text%20~%20%22ZStandard%22 It looks like HBase is already in the processing of identifying what needs to be removed in HBASE-18391. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
adamkennedy
Aug 3, 2017
It would be really good if we could get guidance from the maintainers on their intentions for this...
adamkennedy
commented
Aug 3, 2017
|
It would be really good if we could get guidance from the maintainers on their intentions for this... |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
umbrant
Aug 3, 2017
From the Apache Hadoop and HBase perspective, our current integration with zstandard is fine since we do not include zstandard directly in our projects. It's available as an off-by-default optional dependency. Users enable it by installing zstandard themselves and recompiling Hadoop to link against it.
However, this is difficult for many users and complicates setup. Particularly since it doesn't look like there are pre-build zstd packages for the major platforms (RHEL, CentOS, Ubuntu, Suse). It'd be a lot easier if we could enable zstd by default and bundle it with the rest of our code.
umbrant
commented
Aug 3, 2017
|
From the Apache Hadoop and HBase perspective, our current integration with zstandard is fine since we do not include zstandard directly in our projects. It's available as an off-by-default optional dependency. Users enable it by installing zstandard themselves and recompiling Hadoop to link against it. However, this is difficult for many users and complicates setup. Particularly since it doesn't look like there are pre-build zstd packages for the major platforms (RHEL, CentOS, Ubuntu, Suse). It'd be a lot easier if we could enable zstd by default and bundle it with the rest of our code. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Conan-Kudo
commented
Aug 4, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
boxerab
Aug 6, 2017
I was planning on using this codec for a project of mine, also contributing code, but will not be able to do so until license is changed.
boxerab
commented
Aug 6, 2017
|
I was planning on using this codec for a project of mine, also contributing code, but will not be able to do so until license is changed. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
adamsch1
Aug 9, 2017
Hi Cyan, any update on this issue? Would love to see ZSTD relicensed like other Facebook software wrt the patents clause.
adamsch1
commented
Aug 9, 2017
|
Hi Cyan, any update on this issue? Would love to see ZSTD relicensed like other Facebook software wrt the patents clause. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
working on it... (sorry, I can't be more precise) |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
boxerab
Aug 10, 2017
In a nutshell, either there are patents or planned patents for zstd, or there are not.
If there aren't any patents, please remove the PATENTS file, as it is not relevant to the project.
If there are patents, or planned patents, at the very least please disclose this so users can make
informed decisions.
Otherwise, there is a chilling effect on use of this fantastic library.
boxerab
commented
Aug 10, 2017
|
In a nutshell, either there are patents or planned patents for zstd, or there are not. Otherwise, there is a chilling effect on use of this fantastic library. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
umbrant
Aug 10, 2017
Thanks for the update Cyan, appreciate your efforts. I understand that these internal discussions can take time.
umbrant
commented
Aug 10, 2017
|
Thanks for the update Cyan, appreciate your efforts. I understand that these internal discussions can take time. |
sitalkedia
referenced this issue
Aug 14, 2017
Closed
[SPARK-19112][CORE] Support for ZStandard codec #18805
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
aras-p
commented
Aug 19, 2017
|
Hey look, #801 just merged! This is awesome. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Conan-Kudo
commented
Aug 19, 2017
|
@Cyan4973 Thanks for the fix! This keeps everyone sane and happy. :) |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Cyan4973
Aug 20, 2017
Contributor
Wanted to let the community know that we’ve released zstd v1.3.1 earlier today, which adjusts it to be dual licensed as BSD and GPLv2.
We expect this new license to also be compliant with ASF projects.
|
Wanted to let the community know that we’ve released zstd v1.3.1 earlier today, which adjusts it to be dual licensed as BSD and GPLv2. |
Cyan4973
closed this
Aug 20, 2017
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Conan-Kudo
Sep 3, 2017
@Cyan4973 Is it dual-licensed or double-licensed? That is, can I pick either BSD or GPLv2 (dual-licensed) or do the terms of both apply simultaneously (double licensed)?
Conan-Kudo
commented
Sep 3, 2017
•
|
@Cyan4973 Is it dual-licensed or double-licensed? That is, can I pick either BSD or GPLv2 (dual-licensed) or do the terms of both apply simultaneously (double licensed)? |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
sergey-dryabzhinsky
commented
Sep 4, 2017
|
You can agree only with one of them. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Cyan4973
Sep 5, 2017
Contributor
Indeed, dual license always implies an "or", you can select the one which better fits your needs.
|
Indeed, dual license always implies an "or", you can select the one which better fits your needs. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
peterh
Sep 5, 2017
Contributor
Since you mean "or", could you please change the text to use the word "or"? Right now, all the source files read "and", which doesn't mean the same thing.
The other dual-licensed projects I could think of off the top of my head (Perl5, jQuery circa 2012) use "either … or" language. I've also seen "or (at your option)" for dual/multi licensed projects (eg. in the default GPL boiler plate).
|
Since you mean "or", could you please change the text to use the word "or"? Right now, all the source files read "and", which doesn't mean the same thing. The other dual-licensed projects I could think of off the top of my head (Perl5, jQuery circa 2012) use "either … or" language. I've also seen "or (at your option)" for dual/multi licensed projects (eg. in the default GPL boiler plate). |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Cyan4973
Sep 6, 2017
Contributor
The license text at the top of each file will be changed to this content :
/**
* Copyright (c) .....
* All rights reserved.
*
* This source code is licensed under both the BSD-style license (found in the
* LICENSE file in the root directory of this source tree) and the GPLv2 (found
* in the COPYING file in the root directory of this source tree).
* You may select, at your option, one of the above-listed licenses.
*/
The last line is added to make it explicit that it's one license or the other.
|
The license text at the top of each file will be changed to this content :
The last line is added to make it explicit that it's one license or the other. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
nemequ
Sep 6, 2017
Facebook's legal signed off on that? IANAL, but that sounds like it's licensed under both or you can choose one of the two.
I would have expected something more like
This source code is licensed under either a BSD-style license (found in the LICENSE file in the root directory of this source tree) or, at your option, the GPLv2 (found in the COPYING file in the root directory of this source tree).
I guess if the lawyers are good with the first version it's not a problem…
nemequ
commented
Sep 6, 2017
|
Facebook's legal signed off on that? IANAL, but that sounds like it's licensed under both or you can choose one of the two. I would have expected something more like
I guess if the lawyers are good with the first version it's not a problem… |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
|
All license texts come straight from legal dept |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
peterh
Sep 7, 2017
Contributor
Much better, thanks. Still a little unusual as @nemequ points out, but at least it's clearer now what is intended.
|
Much better, thanks. Still a little unusual as @nemequ points out, but at least it's clearer now what is intended. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Zeeman206
Sep 20, 2017
@Cyan4973
Zstd in the performance to bring us a lot of surprises, thank you for your generous contribution.
But because of the limitations of the memory we use, we can not use the GPL license software (create multiple processes will lead to more memory consumption, and performance degradation).
We can see you have modified the zstd.h in here:
https://github.com/facebook/zstd/blob/dev/lib/zstd.h
/* You may select, at your option, one of the above-listed licenses.
*/
But here is still the old version in the archive, we can only use both BSD and GPL V2 license.
https://github.com/facebook/zstd/archive/v1.3.1.zip
1. What is your plan to modify in the 13.1 version, or will be modified in 1.3.2?
2. For the GPL license, do we need to delete any GPL files or source code?
Thank you!
Zeeman206
commented
Sep 20, 2017
•
|
@Cyan4973 We can see you have modified the zstd.h in here: But here is still the old version in the archive, we can only use both BSD and GPL V2 license. 1. What is your plan to modify in the 13.1 version, or will be modified in 1.3.2? Thank you! |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Conan-Kudo
Sep 20, 2017
@Zeeman206 Are you trying to say that you couldn't use it as a process because you're trying to make proprietary software with it? Just say that instead.
Anyway, yes @Cyan4973, a release with the new terms would be helpful.
Conan-Kudo
commented
Sep 20, 2017
|
@Zeeman206 Are you trying to say that you couldn't use it as a process because you're trying to make proprietary software with it? Just say that instead. Anyway, yes @Cyan4973, a release with the new terms would be helpful. |
This comment has been minimized.
Show comment
Hide comment
This comment has been minimized.
Cyan4973
Sep 20, 2017
Contributor
The added sentence will be present in next release.
It is merely a clarifying sentence, it doesn't change the term of the license. Existing text in current release means the same : you can select whichever license suits your needs, like any other dual-license. So you can use it safely in your software.
|
The added sentence will be present in next release. |
umbrant commentedJul 25, 2017
Hello,
The Apache Software Foundation recently changed its policy regarding the "Facebook BSD+patents" license that applies to zstd and many other FB open-source projects, and now considers it unsuitable for inclusion in ASF projects. There is a discussion of this in the context of RocksDB on LEGAL-303, which was resolved when RocksDB was relicensed as dual ALv2 and GPLv2.
Is the zstd community also open to relicensing with ALv2? This change would be helpful for Apache Hadoop (of which I'm a PMC member) since it would let us bundle zstd as part of our release artifacts. @omalley also expressed interest in this relicensing as an Apache ORC PMC member.
Thanks in advance!