-
Notifications
You must be signed in to change notification settings - Fork 2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Patents? #335
Comments
Here is a discussion about this Facebook "patent" policy for open-source: I wonder how it relates to the fact that many people out of Facebook were and are also involved in development of this project ... As this policy starts with version 1.0, maybe instead of helping developing here, people not working for Facebook should branch it a bit earlier and focus on developing such independent really free branch - without this potentially dangerous and discouraging policy? |
That discussion seems to center on a different version of the patent grant, though. |
The patent is independent from the code. Even if you branch before the patent statement, the patent still apply. |
Yes, there are two important questions here: conditions of the patent grant termination and whether there are actually any patents (owned by Facebook, that is, otherwise they could of course not issue a grant for them) covering the zstd algorithm(s). |
I don't think you are right (but I'm not a lawyer). |
There is also the question whether it is still legal to use Zstd in projects licensed under GPLv3 and the Apache License, which contain their own patent clauses? |
Here is Facebook explanation: https://code.facebook.com/posts/1639473982937255/updating-our-open-source-patent-grant/ So, as I understand it, it only concerns PATENTs used in a given software, not termination of the BSD license itself(!). Does ZSTD contain something Facebook could try to patent in this moment? (In US there is a year after publication). ps. another discussion: https://news.ycombinator.com/item?id=8985541 |
Well, this is why people still use zlib out there and other obsolete technologies. It's a patent war in US, that can put you out of business, which is far more dangerous then a few milliseconds/kilobytes that the users will barely notice. zlib, libpng, jpeglib - this was and continues to be the magic trio... This clause is somewhat dangerous, even if Facebook has of course its reasons: "For avoidance of doubt, no license is granted under Facebook’s rights in any patent claims that are infringed by (i) modifications to the Software made by you or any third party or (ii) the Software in combination with any software or other technology." So if you have the misfortune to be sued by someone, you lose also this patent grant. Even the previous case was false, and you get out, you will still infringe this one for sure. I'm not an expert, but the patent has nothing to do with the actual code, but the covered algorithm. Without the new code, you may be even missing the patent grant, since you actually need this document. What was actually patented is probably even not relevant. The existence of any doubt for me is a sentence for this library. I was hoping to see zlib finally replaced, but it will not happen. Compression is the core of any application, if something turns out bad with these patents, imagine any file that you ever created now can't be opened. You must pay whatever Facebook says so you can continue existing. |
Patents were the major reason that arithmetic coding was not used for a few decades: https://en.wikipedia.org/wiki/Arithmetic_coding#US_patents Fortunately, it seems there are currently no patents used and so this "Additional Grant of Patent Rights" is meaningless - it would be nice if someone experienced in law could really clear it. |
Well it can be really hard to tell whether something is covered by patents, and FB owning so many adds to that. Although my guess would be that there are indeed none. A layman's guess is hardly a solid legal foundation for deciding whether to use a library/technology or not. |
We’re not able to respond directly to issues regarding patents. The following basic bullet points can be reminded (nothing surprising, they have already been mentioned) :
For more details, your concerns have also been forwarded to legal team. |
Since this is only added recently, one may try to audit for the additional code added after that point in a fork. |
Brotli is not Apache licensed any more. It's MIT, so you can be as sure as with zstd I guess... This is a step that most companies do nowadays, since the patent mess. They are too busy protecting their own company I guess, providing you safe patent grant is their last concern. And really, this is something normal considering what is the patent law in US. For example you can even patent good old algorithms, but put in another context/field. Typical example are the quasi monte carlo methods. They are used in physics since the world war. But using them in computer graphics and economy for example is... patented. So who can say what was patented out there? You can even already use something, and someone else decide to patent it and sue you! This is why, I don't believe anyone can give you legal advice, it's one huge mess... I've heard that the best legal advice is - don't research this topic at all. Since this is your only protection - to prove you didn't know. At the end, you will just stop using it if something goes wrong. But imagine you store compressed data. All that data will be unusable without clearing the patent situation... |
This may be debatable, due to the concept of implied license: http://en.swpat.org/wiki/Implicit_patent_licence. It can be argued that the BSD license grants an implied patent license, as it says use and redistribution and permitted, without specifying that it means use and redistribution under copyright law only. If this seems strange, note that the BSD license has never been purely about copyright anyway; half the license is taken up by a warranty disclaimer (which arguably isn't really needed, but that's another issue). Under this argument, the addition of extra language which mentions patents may actually remove or narrow the implied license, not expand it. Logically, most likely to be problematic are statements worded in a way that appears to remove rights rather than add rights, e.g. "For avoidance of doubt, no license is granted ...", or "The license granted hereunder will terminate, automatically and without notice, if you ...". Still, it is a legal gray area, so some explicit statement on patents will likely be needed either way, otherwise people will complain --- even if there are, in reality, no patents or if nothing relevant is patentable. But it should be worded in a more user-friendly way. An official statement that there are no patents, if there aren't any, may also be valuable to users. Of course, it's not possible to avoid all problems anyway, such as a third party managing to get relevant patents --- even though that should be impossible, the patent review process is very broken. Disclaimer: I am not a lawyer, and this is my personal opinion only. |
Please also note the following, retrieved from Facebook's CLA:
Effectively, this also applies to your contribution to these projects, such that if anyone using your work try to sue you, this protection also applies. I think all these clauses are related to the fact that many people try not to be attacked by patent trolls building upon your work in any way. What I would not comment on is whether "any entity" for the latter part would also include Facebook. Disclaimer: I am also not a lawyer so all comments here are my personal opinion and are not legal advises, nor could I ever make one. |
"This may be debatable, due to the concept of implied license" "Software" means the Zstandard software distributed by Facebook, Inc. If I make a fork for example and distribute it, I guess this patent grant is voided, since it will be no longer "distributed by Facebook, Inc.". And such intent is logical, since Facebook wants to own this technology in some way. It was existing as open source project, long before Facebook bought it. And as the owner, they make the rules. But it's 100% better to list them clearly so everybody can decide if this works for them or not. |
Would anyone feel safer if the |
No, the information needs to be clear on allowed use & transfer, file names don't matter. People are afraid of complications if their product can't quickly & cleanly have their ownership transferred to another person/corporation. Simply licensing software "MIT" etc is clear to non-lawyers. BSD seems to be less popular with web devs. |
But if it is patented, & you don't clearly say so, that is worse. |
For me, yes. If at some point it turns out that some of Facebook patents apply to zstd, I am sure Facebook will get appropriate reputation for such act. People will immediately switch to something else and that will be it. With Even if you decide that IANAL, so feel free to disagree with me. As a side note, it is really sad to see such a good piece of software being associated with a company. No matter how this issue is resolved, I am sure that the whole situation will be a huge barrier for zstd adoption. Sad. |
By the way, isn't this issue solved in Apache 2.0 license? What is the reason to reinvent the wheel? |
@Cyan4973 Facts:
There is no point to keep the file. That's confusing and will limit the adoption of zstd without a real reason. Also, you could add a statement to the README and the web clarifying that zstd doesn't use patented algorithms. |
Fresh discussion about Facebook "Additional Grant of Patent Rights": https://news.ycombinator.com/item?id=12692552 |
There's also a complementary FAQ : |
This FAQ from Facebook seems to agree, that the concerns raised in the article referenced in hacker news are simply unanswered by the FAQ. It is also worth mentioning that Apache License 2.0 provides some similar protection but doesn't extend them to all claims. |
In addition to what @itsnotvalid said, here is a comment that is spot on:
|
I don't think there is something obfuscated here. It's clearly stated:
They allow you to counter sue if they have started first. But if you sue them first, you lose the patent grant. This doesn't mean that Facebook can infringe your patents. It means that you will lose their patent grant when you go to defend yourself. This really concerns big companies with a lot of patents, but like stated elsewhere, even startups should be aware, since if they want to sell or merge, this may be a show breaker. The biggest issue is that they ruin software that may not be even related to any patents, just to use it as a shield against patent wars. IMO, this is whole another level of patent insanity. Patent war even without patents... Patent war not just against the big companies, but as a side effect - against the small guys also. It was stated multiple times, that there are exactly 2 ways to really make this library really open:
Until then, thanks, but no thanks... |
@Cyan4973 if there are known patents that apply to zstd, it would be useful to include a list of them and if there are none, you could remove the file or replace it with an explicit statement that there are no known patents applying to it, which would help reduce the confusion (that is slowing inclusion in the openSUSE Linux distribution atm). |
If anyone would like to chat to a member of the open source team about this issue, feel free to contact me on jpearce@fb.com |
I have sent several emails to James Pearce, no answer to any of my emails so far. |
@Cyan4973 BSD already grants patent, because BSD is a OSS license certificated by OSI. |
My question to FB was more if they have applied any patent on this. |
@itsnotvalid I'm not sure the contributors are protected, because the clause "(iii) against any party relating to the Software" is quite ambiguous. In addition, other clauses are supplied to protect only Facebook, its subsidiaries, and its affiliates. |
@ivalylo I agree to that any patent holder want to protect himself, but oss license is not appropriate to do so. And, the scope of non-assertion obligations is overly broad and unfairly grant Facebook families a privilege. |
@Cyan4973 yes. |
@bmwiedemann It is not important that there are known patents or not. Some patents can be visible only after they are granted, and it is almost impossible to prove absence of patent. It's a devil's proof. |
I've clarified the scope of non-assertion obligation. |
On 2017-02-12 01:07, Cat-sushi wrote:
@bmwiedemann <https://github.com/bmwiedemann> It is not important that
there are known patents or not. Some patents can be visible only after
they are granted, and it is almost impossible to prove absence of
patent. It's a devil's proof.
you describe the general case, but if Facebook wrote the software and
applied for patents on its technologies, it should know - even before
being granted.
Or are you worried about non-Facebook patents on this?
|
@bmwiedemann Yes, I describe some general case in order to show that absence of patent at this point is not so important. I don't want to discuss about 3rd party patents, because licenses are helpless against 3rd party patents, anyway. |
Recent continuation of this discussion: https://encode.ru/threads/2780-ZSTD-license A year has passed, but searching patents with "facebook compression" suggests no patent application regarding ZSTD has been filled (?): https://www.google.pl/#q=facebook+compression&tbm=pts&tbs=sbd:1 However, others are currently trying to patent basic applications of ANS, including Google - if granted, I don't think it could bring any danger to ZSTD (?), but it is not so certain for more recent compressors using ANS: claims and sources, 400+ comments on Reddit. |
Apache foundation recently banned BSD+Patents clause software (as used by Zstd) from use in any apache project. Other Facebook software was relicensed, e.g. RocksDB switched to Apache2|GPL2 with the explanation that Apache-2 grants the same rights as BDS+Patents clause (they need the GLP2 option in order to integrate with MySQL): https://issues.apache.org/jira/browse/LEGAL-303 Is there a change in the licensing considered to make it again compatible with apache 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. |
Does PATENTS from 4ded9e5 refer to specific patents that are actually used by zstd or is it a generic file added to github.com/facebook projects and zstd doesn't use any patented tech?
Ie. is the "recipient of the software" the developer of a software using zstd (presumably) and/or also the user of a software using zstd?
In the latter case, what does it imply in layman's terms? Would the patent license self-terminate if a company using a software using zstd did anything listed in (i)–(iii) in the second paragraph (line 14)?
Clearing this up would be pretty important I feel before this can be used in other FOSS projects.
The text was updated successfully, but these errors were encountered: