last day (15 days later) » 

09:08
12
A: Does reimplementing GPLv2 code in another language create a derivative work that also falls under the GPL?

planetmakerYes. A derivative is a derivative. Porting existing code to another language also counts as making a modification. NOT a derivative is a so-called blackbox implementation. That is the case when you look only at the behaviour of the library WITHOUT looking at the code and re-implement that; this m...

Then can I upgrade them to GPLv3?
By (2) I think I mean by a blackbox implementation: I build the GPLv2-only code in (1), then I get every single feature implemented, without ever looking at both the original code and the code in (1). Then somehow, if I pass every single test the original code comes with (i.e. full feature-parity), will I be able to license it as MIT/Expat instead of GPLv2-only?
You've already looked at the original code, it will now be very hard to prove that you're not "contaminated".
What does 'contaminated' mean here?
That you have enough knowledge of the GPL code you cannot produce a implementation which is not based on, and thus a derivative work of, the GPL code.
ecm
ecm
@ZP-ZPanda If the version is specifically stated as "GNU GPL v2" or even more explicitly as "v2-only", and without an "at your option any later version", then you cannot upgrade to v3 no. (However, you. can license any additions you do as GNU GPL v2-or-later in which case it is valid to combine with v2-only things. The combined work is then only applicable as v2.)
09:08
Then can I dual-license it as MIT/GPLv2?
@ZP-ZPanda No, you cannot relicense GPL code under the MIT license (without permission from all authors whose work you are relicensing). The GPL has restrictions that the MIT license does not. The MIT license therefore would violate the GPL.
So should I use MIT/Expat or GPL?
@PhilipKendall I'm very not good at C so there is a >98% probability that I'll never gather enough knowledge of the C code, and my work in (2) is not a derivative. Will that free me from the GPLv2?
@ZP-ZPanda (2) is a derivative work since it's based on GPL'd code. GPL'd code must remain GPL'd. If you want to build non-GPL'd code on GPL'd code (note GPL and not LGPL), then you must make a GPL'd standalone executable that your non-GPL'd code can execute in a subprocess.
@jamesdlin Can I do a clean-room implementation of (1) as (2)?
@ZP-ZPanda As has already been explained to you, you cannot if you've looked at the GPL'd source code.
09:08
You once looked at the GPL sources. You can not do a clean-room implementation of it as you cannot un-see what you once saw. Clean-room means you never looked at the sources and only try to re-create the behaviour you can observe from the compiled programme or for a library from the published API for digestion of programmes which want to use it
jpa
jpa
Merely looking at the GPL'd source code does not necessarily make your own implementation derivative work. But it will make it difficult to prove it is not derivative.
@jpa yes, sure. But you also cannot un-see or un-know what you know. So even with the best of intentions you might create a derivative - not worth the potential hassle.
jpa
jpa
@planetmaker Yeah, for some reason the copyright interpretation has been so strict in programming. In e.g. literature, no-one is claiming that once you read a book, all books you write are derivative work - even though influences are often clearly visible.
@jpa It is not so much that copyright interpretation is stricter in programming, as much as it is that it's harder to write a program that does that same thing without copying. To write a book with "feature-parity" with an existing one still leaves one with a lot of freedom in how to construct it, but with software you are more constrained.
@jpa actually I see it as people are more careful because they are usually getting paid big bucks by mega-corporations who really don't want to be sued.

last day (15 days later) »