Hacker News new | ask | show | jobs
by slowpoke 5076 days ago
Unfortunately, according to Wikipedia, Skype holds software patents on parts of the algorithm. Even though they said they'd make them avaiable royalty-free, this still means it isn't completely free.
4 comments

In what way is using a technology not free, if you are given a royalty-free license to use the patents on it? (Honest question, I don't know what you mean here.)
Here are the terms of the license, I think: http://datatracker.ietf.org/ipr/1602/

Notice that permission is only given for implementations that comply with the specification. (And if Skype ever infringes any of your patents, you can't sue them without losing the rights to Opus.)

Whether or not you agree with Skype's moral right to its patents, this is clearly a limitation of developers' freedom. Imagine if HTTP were covered by this kind of patent: anyone could implement a client or server, but developing a backward-incompatible extension like SPDY would be off-limits. If you were to take the license terms literally, even releasing a buggy implementation that doesn't precisely follow all of the requirements of the spec would make you liable.

Thanks for the link.

> Notice that permission is only given for implementations that comply with the specification.

That's typical - otherwise, you could implement some almost arbitrary protocol but say it was this one (and use a small amount of it) and claim that you were shielded from Skype's patents. The patent license is just for this particular codec.

Of course there are issues with this, it's been debated a lot regarding the Java and C# licenses, which also have similar clauses for similar reasons. The motivation for them is reasonable, but the details can be tricky.

> (And if Skype ever infringes any of your patents, you can't sue them without losing the rights to Opus.)

Personally I think that's fine. If you want to engage in a full-on patent war, you should not benefit from a patent license like this.

> Whether or not you agree with Skype's moral right to its patents, this is clearly a limitation of developers' freedom. Imagine if HTTP were covered by this kind of patent: anyone could implement a client or server, but developing a backward-incompatible extension like SPDY would be off-limits. If you were to take the license terms literally, even releasing a buggy implementation that doesn't precisely follow all of the requirements of the spec would make you liable.

If a single bug makes you liable, obviously it is unfair, etc, but that's exactly where the details of the license come into play - I am not a lawyer, so I have no idea if the terms here are reasonable or not.

>That's typical - otherwise, you could implement some almost arbitrary protocol but say it was this one (and use a small amount of it) and claim that you were shielded from Skype's patents.

No, that's what standard bodies are for. No need for stupid patent licenses.

Besides, this is exactly why this isn't free.

Could I make a format based on Opus, but not conforming to the spec? Maybe because I had an idea for better algorithms in some parts? No. I cannot take the parts of Opus which fall under Skype/Microsofts patents and use them in derivatives. This means that both the implementation as well as the standard are free and open on paper only. In reality, I am denied freedom number 3 - the right to distribute modified implementations.

Take note that you could just solve this with a trademark on Opus (which probably already exists). Many large FLOSS projects do that. Firefox, for example - derivatives are not allowed to call themselves "Firefox" (which I think is one of the very few valid uses of trademarks).

If Skype/Microsoft would be actually interested in a free and open standard, they would have pledged to let go of these patents. I don't know if you can just say "this patent is now invalid", but if not, they could hand them over to the standard body, which could then assure that everybody is allowed to use these patents until they expire.

>Personally I think that's fine. If you want to engage in a full-on patent war, you should not benefit from a patent license like this.

I find it quite funny that people already implictly assume that if someone starts a patent infringement lawsuit, they are in for patent war. Please tell me again why we haven't got rid of patents yet?

>If a single bug makes you liable, obviously it is unfair, etc, but that's exactly where the details of the license come into play - I am not a lawyer, so I have no idea if the terms here are reasonable or not.

Speaking as one of the authors of the spec here, this is very much not the intention. I personally believe a patent license should never be used to enforce standards compliance, and that's not the purpose of that term. Keep in mind, I don't think anyone involved in this standard wants to go around suing people, particularly those interested in implementing and deploying it! In addition to being a gigantic waste of time and money, it would kill the standard dead.

But we specifically included a conformance test to make it easy to know if you met the legal requirements, so you didn't have to trust us. At the request of the working group, this test was made so lax that we worried you could start deleting random lines of code (as an "optimization") and still manage to pass it (to combat this the test also displays a "quality" parameter which drops long before you get to the failure point, so implementors can start marketing that number if their competitors try this tactic, instead of being stuck in a race to the bottom).

You make a good point, I agree that even with royalty-free licenses like these the use of the technology is not completely free.
in some ways, a perpetual unrestricted license is better than an unpatented algorithm. The big excuse for not adopting webm was "uncertainty" about the patent situation. If skype has the patents and is giving free licenses, there isn't any uncertainty here, you know that microsoft has no basis to ever sue.
This is true and is one reason that free things these days are given "licenses" instead of simply being declared by their makers to be in the public domain. The public domain isn't what it used to be.
It's impossible to declare a work under the public domain in the USA. A creative work reaches the public domain only when its copyright expires, or if it's a government work.

Read up on the rationale behind the CC0 license for more information:

https://creativecommons.org/about/cc0

To some (significant) degree, but you never know that no one else has patents on a technology. That's exactly what is so messed up with software patents.
On any specific technology, you absolutely can know that no one else has patents on it. That is the responsibility of the patent office: to grant exclusive rights to an 'invention'. you cannot be held liable for infringement of anything you have a license for.

In this case though, Microsoft only has patents on part of the algorithm, so it is theoretically possible that other parts of the algorithm are covered by other patents.

It's rare, but I remember reading that USPTO has mistakenly issued conflicting patents. Legally, any publication is enough to bar others' patents, they're just not good at finding anything in the software literature, so having your own patent sort of rubs examiners' noses in it.
But the point is that if the USTPO issues conflicting patents, it is them that is liable instead of you. If you have a license, you're golden.
> On any specific technology, you absolutely can know that no one else has patents on it. That is the responsibility of the patent office: to grant exclusive rights to an 'invention'.

The problem though is that anything complex like a video or audio codec can constitute many "inventions" from the USPTO's point of view. H.264 has many patents on it, for example. Again, this is one of the big problems with the current patent system.

So in practical terms you can never use a codec with the knowledge that no one else has patents on it.

And in certain situations it's better not to know, because knowingly infringing patents can result in significantly higher monetary penalties than unknowingly infringing them.
There is also the question of whether the statements from Skype about patents are still true given their purchase by Microsoft.
free_enough + available > completely_free
I vehemently disagree. This is supposed to become an open standard. Open standards must, in my opinion, be completely free. No compromises. No exceptions. No footnotes. No patent bullshit.