Hacker News new | ask | show | jobs
by xyzzy_plugh 748 days ago
Every time I go to reach for rough.js I get a bit uncomfortable when I read this:

> Some of the core algorithms were adapted from handy processing lib.

handy is LGPLv3, but rough.js is MIT. This line makes me think parts of rough.js are actually LGPLv3, as those parts are derivative works.

In practice this is unlikely to negatively impact me but I'm not super pleased by the uncertainty.

1 comments

Algorithms can't be copyrighted (though code can be), so this really depends on what level of copying is implied by the word "adapted".
"I read this code and then reimplemented it from scratch in a different language" does not release you from licensing obligations. If that were the case then brb while I go reimplement unreal engine in rust.
You absolutely can do that.

And yes, it does release you from licensing obligations (unless the license included specific clauses).

You should consult a lawyer. It's one thing if it's a clean-room implementation but every IP attorney I have ever interacted with would disagree with you.

It doesn't take much for a court to consider something a derivative work.

You cannot copyright algorithms. Ergo, the expression of an algorithm in one language is not a copyright violation of an expression of the same algorithm in a different language.

Of course, there's a gray zone: what about a reimplementation in the same language, but with different variable names? Those cases are why we have courts.

But ... if you figure out how to solve Rathbone's conjecture[0] and reveal the source code for it in C++, my reimplementation of that in Rust or Lua does not constitute a derivative work.

One exception would be if you managed to patent some feature of the algorithm (RSA comes to mind, or frequency-based colors for drawing waveforms). That's a different story.

[0] invented :)

To be clear the origin of the derivative work is not the reimplementation of the algorithm but instead the fact that the copyrightable atom of work can be considered a variant with insufficient originality because you are familiar with the source material. If you were able to claim and prove ignorance of the source material then there is less of an argument to be made, but that's not what we're discussing, to be clear.

Your advice is dangerous. Consult an attorney.