I'm not clear on what counts as a "copy" in the case of code.

If I read your code, that was MIT licensed, implement a similar logic on my own and use no code fragments from the original author, does that constitute a "copy" without attribution to the original author and therefore a violation of the MIT license if I release the code under my own copyright?

  • 2
    I would vote no, because the MIT license licenses the code itself, rather than the logic behind it, but that's not much more than a semi-educated guess. – freginold Mar 22 '18 at 11:00
  • If you don't use the MIT license grant (i.e., because you don't want to comply with its conditions) then the answer is exactly the same as if the code were not under any FLOSS license and merely had visible source code. That is, you wouldn't be violating the MIT license so much as ignoring it entirely, and then either making an authorized derivative work, or not. – apsillers Mar 22 '18 at 13:02
  • 1
    Also, extremely relevant for the U.S.: "The Abstraction-Filtration-Comparison test (AFC) is a method of identifying substantial similarity for the purposes of applying copyright law. In particular, the AFC test is used to determine whether non-literal elements of a computer program have been copied by comparing the protectable elements of two programs." – apsillers Mar 22 '18 at 13:06
  • 1
    This will probably be considered "reverse engineering" of the MIT-licensed code. There's a lot of good material about that on the EFF site at eff.org/issues/coders/reverse-engineering-faq In addition to the AFC test mentioned above, read about the "Compaq Computer Corp. v. Procom Technology, Inc." case, where some specific values were carried over and it was found to be infringement: "Use no code fragments" can be a hard standard to meet. – Bob Jacobsen Mar 24 '18 at 16:18
  • 1
    @rootavish The question is about copyright, which is intellectual property.. Copyright law applies whether source is open or closed: without a license, it forbids various things, including certain forms of copying. If you’re acting outside any applicable license, it doesn’t matter what inapplicable licenses say, you have to stay within the copyright limitations, e.g. fair use. – Bob Jacobsen Mar 26 '18 at 9:27

You're okay to independently and entirely re-implement an existing algorithm, and then copyright your code, as long as the algorithm isn't patented.

For example, the lzw compression algorithm used by gif was patented (the patent expired ~2004). And therefore, (a) you couldn't copyright an independently-written gif generator or viewer, and (b) you couldn't even write one without copyrighting it, and just give the code away.

And assuming no patent, then to be completely safe about copyright violation, you'd be best off reading a textbook discussion of the algorithm in a cleanroom-like fashion, e.g., https://en.wikipedia.org/wiki/Clean_room_design , rather than poring over already-copyrighted code for long hours.

  • 2
    1. The patent you mention was only regarding the LZW compression, not GIF itself. For example the statement "you couldn't copyright an independently-written gif generator or viewer" is wrong; libungif is an example of a program that avoided the patent problems (by not offering compression). 2. Patents don't inhibit your ability to copyright your code. Suppose you write a program and unknowingly violate a patent in doing so. You still can copyright your code; in fact it is copyrighted automatically. – Brandin Mar 28 '18 at 10:35

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.