Under the Copyright Act, a derivative work is defined as "a work based upon one or more preexisting works, such as a translation, musical arrangement, dramatization, fictionalization, ..., or any other form in which a work may be recast, transformed, or adapted.
In some people's opinion, plugins are by their very nature derivative work since they cannot work without the host application. While there is a grain of truth in that argument, I nevertheless beg to differ on that opinion for the general case. A plugin needs a host application to run, that's true.
@eMAD parts of it can, yes. For example if it has GPLed JavaScript, then the source code for that must be available.
Derivative works are new, original works based upon one or more existing works. In software and computer programs, this includes lines of code. Creating a software derivative work involves modifying the source code of an existing computer program either by revising it or translating it into another computer language.
"What constitutes derivative work?" is not a question a programmer can answer. See for example What is the difference between an “aggregate” and other kinds of “modified versions”? and the GNU Licenses FAQ in general.
Regarding your specific case, Algorithms are usually not subject to copyright law, but (sadly) to patent law.
The way that these gray areas typically work is, that you are open about it, talk to the original authors, maybe work out a deal. It is very unlikely that such a case would end up in court, since neither party can gain very much from it. If it does end up in court, lawyers and judges will be the ones to decide, not programmers.
I typically use the X11 license (aka 3 clause BSD) when releasing any kind of library, even though I'm known to lean to the GPL2/3 when releasing a program. I do this because I want to ensure that my library can be used without restriction by any FLOSS project, this is more important to me than asserting the ideals of copyleft when it comes to libraries.
It's kind of silly to make a library restrictive in that regard, for instance, BSD re-wrote GNU's libreadline to editline and kept a 100% compatible interface. That's also a case in point for why you probably can do what you intend to do.
If you are looking at some example written in Scheme, or say LISP, perhaps even PERL .. and writing some implementation of it in C, you should be perfectly fine. There is absolutely nothing wrong with studying existing implementations when working on making your own.
I would strongly suggest just asking the GNU project, e-mail [email protected] and provide them with details on what you hope to accomplish. You will surely receive a very friendly reply and can probably proceed without worry.
Even RMS himself will admit that interpreting the GPL/AGPL/LGPL can be tedious, they expect and welcome these kinds of questions.
2 great licenses that probably fit your requirements:
Disclaimer: I am not a lawyer, and you should go see an intellectual property lawyer who knows enough about software licensing. If you go see a stupid one, he or she will tell you "don't do it just to be on the safe side," which anyone can say.
See Clean room design. If the software behaves almost exactly the same, you shouldn't have read the source code.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With