Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I am a little confused on where the lines are drawn, and hopefully someone can clear this up for me. Let's keep focused on copyright law; TOS covers some of these other issues, but I am curious where things like DMCA can apply.

I am extending this question as this: I write program A. I compile program A into binary/executable A'. I copyright A and A'. (Is this a bad premise?)

Here are my questions, for which the question is always "Does this violate copyright?"

(1) Somebody translates A to B by renaming identifiers and reformatting whitespace.

(2) Somebody translates A to B by refactoring one function in the code.

(3) Somebody translates A to B by refactoring a huge majority of the functions in the code. (When is it no longer the same? This is similar to the N bars-of-music issue.)

(4) Somebody translates A to B by treating it like a black box and reverse engineering on observation; they replicate most or all the behaviors in a language of their choice and release their code. (This covers some linux game conversion projects.)

(5) Somebody translates A' to B', enabling the project to run on a different chipset.

(6) Somebody translates A' to B, a reverse engineering that leaves it in the same programming language as the original language.

(7) Somebody translates A' to B, a reverse engineering that leaves it in a different programming language from the original language.

(8) Somebody runs A' twice on their own machine (two copies of the running image in memory).

(9) Somebody runs A' one or multiple times on their own machine and provides VNC access to others to play with A'.

(10) Somebody runs A' on their own machine, and the process is forked in a distributed fashion, allowing outsiders to run the process natively on their own client.



IANAL, but here's my understanding of it:

1. Yes.

2. Yes.

3. Yes. No longer the same when all the original code is gone (see BSD Unix). Note, though, that BSD is descried as a rewrite, not a refactor. There may be a line short of that, but I doubt it.

4. No. To be completely safe, though, it should be Chinese-walled.

5. I don't think so, so long as they do not distribute B'. Copyright law contains a statutory right to make modifications to enable it to run. Note that this is often done - VM hosts rewrite code for virtualization, the JVM does JIT compilation, and as an extreme example the Transmeta Crusoe processor rewrote x86 machine code into its instruction set on the fly.

6 and 7 - how is the reverse engineering done? If it is a translation of A', it is probably copyright infringement, but this situation is somewhat confusing to me.

8. I hope not! Further, on modern OSes, the non-modifiable executable memory pages should be shared between processes, so there's only actually one copy in memory but it's mapped into both processes. It might violate a EULA or other licensing terms, but that doesn't make it copyright infringement. Copyright itself isn't very clear on this kind of ephemeral copying so far as I know.

9. This one is getting shadier, but I don't think it's copyright infringment. It might violate a EULA, but not all EULA violations are copyright infringement (depending on a variety of factors).

10. I don't entirely understand this one. If the process is designed to be forked and distributed in this fashion, then absent other license terms I'd have to say probably not.


The expression "violates copyright" is confusing here. None of these ten things violate copyright if "somebody" has your permission to do them.

Also, some permissions are implied. For example, I can copyright some code and post it on my web site. The very act of reading the code in a browser creates a copy of the code in your computer's memory, but permission to create that copy is implied by my posting it on the web. However, that implied permission doesn't extend to you reposting the same code on your web site.


Good point on the expression.

However, that implied permission doesn't extend to you reposting the same code on your web site.

I wonder if the technology changes this. Here is what comes to mind:

Is it okay if in my copy I provided an attribution to the original author? How extensive does the attribution need to be? Is "raganwald wrote this" sufficient, or do I need a link to the original location? If it is a link, do I need to actively ensure the link is still valid, just in case you decide to change the location or stop publishing? If, after publishing your code once, you decide to retract it, can you force me to retract my attributed copy as well? What if my copy is a picture of your code? What if it is an iframe?

And thank you to everyone for these kinds of answers; I think a lot of people have a number of strange opinions and buy into various myths with regards to copyright. Hopefully my questions have covered a good enough number of scenarios to help translate the legalese to layman's terms.


In many cases, you cannot copy the entire thing without permission, even if you provide an attribution. The doctrine governing this case is subject to interpretation:

http://en.wikipedia.org/wiki/Fair_use




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: