Copyright law doesn’t really care about what you do with copyrighted works as long as you don’t make what you did public.
My understanding of the DMCA is that if there's any copyright access control (DRM, etc.), you're not allowed to attempt to circumvent that protection mechanism. Not even recreationally, privately..
Au contraire. The only reason you can rip a CD and put it on your computer is because of the doctrine of fair use. Without it, copyright law most definitely says you are not allowed to make unauthorized copies, period. What you do with them is not relevant.
I write a blog in English. Somebody translates my words to Russian, creating a document that is semantically identical to my words.
Copyright seems to apply here in a most appropriate way.
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.
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.
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.
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.
The copyright act says:
A “derivative work” is a work based upon one or more pre-existing works, such as a translation, musical arrangement, dramatization, fictionalization, motion picture version, sound recording, art reproduction, abridgment, condensation, or any other form in which a work may be recast, transformed, or adapted. A work consisting of editorial revisions, annotations, elaborations, or other modifications which, as a whole, represent an original work of authorship, is a “derivative work”.
Edit: to clarify, I see you are questioning whether I'm classing a translation as a derivative work or a independent work. However, this is irrelevant to my assertion that a machine-generated translation confers no copyright protections at all, which is the situation with the github code.
Interestingly, Eve uses Stackless Python for much of the network multiplayer engine.
The Unreal Engine uses a rather slow language called UScript for all the level scripting.
They don't do any real computation with it, its more used for descriptive purposes and small conditionals.
Games are no exception to the standard rule of software, that 95% of the time is spent in 5% of the code. You can use whatever language for the other 95% and not see any meaningful problem with performance.
second: I think it should be pretty easy to decompile .pyc files yourself. An other way would be to provide a decompile script. There are allways possibilities to decompile something.
This is one of the rare cases in which DMCA request makes perfect sense.
However, when the decompiled sources are uploaded to a public server, nobody needs the original program, to use it.