Dann Corbit wrote:
Here is what is allowed:
1). To read someone's code, learn the algorithms, and write your own version. This is totally fine (legally, morally, and otherwise) unless there are patents on the algorithms (which do not pertain to Russia or Europe anyway?).
At any rate here is what is not allowed:
2). To copy and paste some code from a licensed program and not follow the license.
Hello Dann.
Notwithstanding Russian law, with which I'm completely unfamiliar, do you believe that the following is acceptable (allowed):
1) Decompile (or otherwise extract and translate portions of a binary file) and then integrate some of this translated code into ones own program. (Normally this integration would require some instrumentation of the decompiled code)
2) Identify portion of a binary file that can be extracted and then directly included into another binary, without going through intermediary translation. (this is more difficult to do when compared to decompiled code, but is certainly possible with some instrumentation of the copied code.)
Dann,
you mentioned license and I presume you mean the EULA. In most general terms the
user license agreement is concerned with the right to
use the software and has this form:
"The user is granted the right to use this software under these conditions ... [conditions] ... failure to satisfy the conditions may result in revoking the right to
use the software."
This is pretty much where the User License agreement ends. In this sense if the license is "You can use this software without restrictions" this means that there is nothing you can do to lose your right to
use the software. However, what the above 'license' doesn't say is that you
own the software.
The important difference, IMO, is the transfer of ownership, which is necessary for IP-rights -- there is a distinct difference between "You have the right to use this software regardless of what you do" and "You own this software".
I don't remember ever seeing software EULA that transfers IP-rights to the individual user. The 'owner' of the IP must be a well defined entity otherwise the users can start seeking legal actions against each other due to "everyone is an owner" paradox. When a transfer of ownership is not specified then, naturally, the original author [creator] remains the only owner.
Analyzing the code for infringements doesn't have to be limited to 'source code' similarity. This is especially relevant when someone is trying to reconcile similarities between 'original source' and 'translated [decompiled] source' -- it is very unlikely (in fact, impossible) to have the code be a perfect match under those circumstances. What may become relevant in this case is (among many others):
1) History. Does the offending piece of software have history (CVS, SVN, other) that can be traced to establish its emergence or did the source code pop-out from 'nothing'.
2) Does the offending code appear to be decompilation [mechanical translation of machine code to human readable code]. There are some clear signs when people have copied and used decompiled code.
3) The authors understanding of the code. If the author has no understanding of how the code works (and why) and cannot satisfy #1 then there is an indication of 'copy&paste' procedure.
4) The author's own admissions. (for instance: "I decompiled this program" ... etc.)
Best Regards,
Hristo