Development: Definition of Derived Work
According to United States Copyright law, a code snippet may be considered "derived from" if an author did his work similiar in nature to a piece of existing code after viewing that code, especially if the same author admits to doing so in a written form. Consider the case of a copyrighted manuscript that is translated into a different language. All the words are different, with no where near a one-to-one correspondence between definitions or word placements, and idioms may be completely different. Yet in case after case, courts on every continent have virtually always sided with the original Author if the second author admitted in evidence presentable to a court (primarily written testimony) that they read the original manuscript before writing there own.
Under current United States copyright law on software, only "Clean room" programming can reasonably be considered "non-derived" (See [1]).
- <html>This is hyperbole - there's no 100% firm legal standard for a derived work, in any area and even less in software. As far as there is one for software, however, it's based on a "filtration test" where you go through and chop out all the unprotected code and see whats left over. The Abstraction-Filter-Comparison test was defined in Gates Rubber vs Bando. An overview with more detail links can be found at http://www.groklaw.net/article.php?story=20040715212732854.<br>
<br> Current US copyright law has allowed some really egregious abuses of "derived", such as subconcious copying, and while those could be applied to software, if you let yourself get sucked into that sort of overprotection you'll never write any code at all. Or anything else for that matter. <br> Much of software is not copyrightable - code who's implementation is defined by external factors, or where there is only one way to implement it, is not copyrightable. This would apply, for example, to the wxSocket code in question.<br> <br> Note that translations are a special case under the law, because there's no original content being created, being a raw translation from one language to another. As far as I know this concept has never been applied to software, such as in the context of "porting". - Arkanes</html>
The GPL's viral clauses specifically disallow sublicensing, and the LPGL specifically allows code segments to fall under the GPL if bundled with a GPL project, thus any LGPL wxWidgets code forked into a GPL project became GPL upon release. If the original authors of the said GPLd code did not put these changes into wxWidgets, nor grant wx specific exemptions (which must appear in writing), it is possible that any subsequent releases of the wxWidgets Library should be re-licensed as a GPLd library (along with any application that statically linked to it), due to the viral nature of the LGPL and the GPL.
- Let's not jump to conclusions here. I agree the code forked into xMule became GPL upon release (though still falling under the copyright of the origional authors). If copyrightable code was added to this base, it would have been GPL, too. If such copyrightable code then found its way into wxWidgets without the author licensing it as LGPL (c.q. wxWindows licence), there is copyright infringement, which must be resolved. It can be resolved in several ways: the offending code being removed (and possibly clean-room reimplemented), etc. Releasing wxWidgets as GPL is one option, but not very a reasonable one and probably practically impossible. I suggest replacing 'it is possible that...' with 'there might be copyright infringement which should be adequately addressed.' -ARN
- I would word this more strongly - theres no such thing as an enforced GPL. It would have to be applied by a court as a remedy for copyright infringment and it's extremely unlikely that a court would do such a thing. Code removal and/or injunctions against distribution are far more likely. - Arkanes