Lets say there is a GPL library written in C++ for example a library that finds some value using some algorithm and there are two individuals A and B. A uses Emscripten on it to convert it into Javascript . B writes an assembly port of the program. Can A or B release their source under MIT licence or develop a closed source application with that code?


Person A definitely can only use that Javascript code under the GPL license. For copyright purposes, there is no difference if source code is mechanically translated to machine code (a.k.a. it is compiled), or if it is mechanically translated to another language.

For person B, it makes a difference if they translated the GPL source code into assembly code, or if they replicated the behaviour of the library without looking at the source code.

If they replicated the behaviour without looking at the GPL source code, then the version of person B is an independent work for copyright and they can use any license they want.

If they did inspect the GPL source code and wrote the assembly port based on that knowledge, then the assembly port is considered to be a derived work and, per the GPL, must be under the GPL license as well.

  • How does the owner determine wether the GPL software is inspected or not? – compenthusiast Oct 27 '20 at 17:17
  • 5
    That could be inferred from the structure of the code, careless statements by B or the fact certain bugs exist in both libraries. – Bart van Ingen Schenau Oct 27 '20 at 17:56
  • 4
    @compenthusiast The degree to which the author of a work has had exposure to another work is an evidentiary question to be decided by the court. Likely arguments to be made by the plaintiff might include "there is no way the defendant could have made such similar code without exposure to ours first" and the defense might say, "we have documentation of our rigorous clean-room approach to ensure authors of our software never saw the original". – apsillers Oct 27 '20 at 17:57
  • Ok .This answer answers it. – compenthusiast Oct 28 '20 at 1:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.