SRL Archive - Discussions and Debates

Are bots legal..


Brandon

2013-04-30 14:43:04

I was looking up how Smart and RSBot get the image from the applet's canvas.. SMART replaces the Canvas via VMArguments and RSBot replaces it via injection.. But the Java license says:

JAVA TECHNOLOGY RESTRICTIONS. You may not create, modify, or change the behavior of, or authorize your licensees to create, modify, or change the behavior of, classes, interfaces, or subpackages that are in any way identified as "java", "javax", "sun", “oracle” or similar convention as specified by Oracle in any naming convention designation.


And the canvas is java.awt.Canvas.. And looking up the VMArguments for both bots:

Note: Applications that use this option for the purpose of overriding a class in rt.jar should not be deployed as doing so would contravene the Java 2 Runtime Environment binary code license.


So if distributing an application that replaces anything in java is illegal, how does RSBot and SMART get away with it then?

[XoL]

2013-04-30 15:13:21

It may be something that is so often over looked for other cases that it just doesn't hold ground in court?

Wetish

2013-04-30 15:26:48

You would have to ask a decent lawyer. They most likely know a loophole that allows them to develop and release the bot.

The Killer

2013-04-30 15:27:54

I couldn't comment if its illegal or not, but I'm glad this is in members :')

Kevin

2013-04-30 15:38:52

I cannot speak as an official in any manner - and it's quite possible that my understanding is worth less than a grain of salt. So with that in mind…

I believe the issue comes down to a couple of things. Most importantly, 'license agreements' aren't actually necessarily held up in court. I do know for a fact that there are TONS of license agreements that get thrown out all the time.
Most notably, the cases of Nintendo suing creators of the R4 chip (it allows you to play homebrew, or copied games), and even creators of the custom firmwares for their devices such as the Wii (that can allow the same thing). In each of these cases, in all related countries, the actual license agreements that were broken through this were thrown out as invalid in court because they were trying to punish users that were trying to engage in the full amount of playability that could have existed for the devices due to the 'homebrew' communities (which is legitimately the situation for some people).
This has happened in other cases as well, and as such there easily could be similar manners keeping us safe; even though my examples were hardware based.

Also, that specific example is overridden by the prior statement in the licensing agreement in our uses:
2. Subject to the terms and conditions of this
Agreement and restrictions and exceptio ns set forth in
the Software's documentation, You may reproduce and
distribute portions of Software identified as a
redistributable in the documentation
("Redistributable"), provided that:
(b) Your Programs add significant and primary
functionality to the Redistributable,


So noting that our program adds significant and primary functionality by replacing the canvas with our own, I think we're safe twice over. :)

Echo_

2013-04-30 19:26:29

It's not really modifying the actual Canvas class though, RSBot only modifies the class in the client using Canvas. Plus Canvas is not a final class, therefore you are allowed to extend it and make it work however you like.

weequ

2013-04-30 20:28:44

From: Echo_
It's not really modifying the actual Canvas class though, RSBot only modifies the class in the client using Canvas. Plus Canvas is not a final class, therefore you are allowed to extend it and make it work however you like.
Ok then rsbot isn't breaking that rule but replacing a class is not the same thing as extending it.

Would it be legal if we compiled SMART with OpenJDK?

Brandon

2013-04-30 23:17:02

From: Echo_
It's not really modifying the actual Canvas class though, RSBot only modifies the class in the client using Canvas. Plus Canvas is not a final class, therefore you are allowed to extend it and make it work however you like.


Except that we "Replace" the canvas with a custom copy and under Ben's license: https://github.com/BenLand100/SMART/blob/master/src/Canvas.java

Le Jingle

2013-05-01 00:55:55

From: Brandon
Except that we "Replace" the canvas with a custom copy and under Ben's license: https://github.com/BenLand100/SMART/blob/master/src/Canvas.java


Isn't this updated in newer JDK versions (accessibility class)?

Echo_

2013-05-01 12:20:32

From: weequ
Ok then rsbot isn't breaking that rule but replacing a class is not the same thing as extending it.

Would it be legal if we compiled SMART with OpenJDK?


http://openjdk.java.net/legal/gplv2+ce.html

2. You may modify your copy or copies of the Program or any portion of it, thus
forming a work based on the Program, and copy and distribute such modifications
or work under the terms of Section 1 above, provided that you also meet all of
these conditions:

a) You must cause the modified files to carry prominent notices stating
that you changed the files and the date of any change.

b) You must cause any work that you distribute or publish, that in whole or
in part contains or is derived from the Program or any part thereof, to be
licensed as a whole at no charge to all third parties under the terms of
this License.

c) If the modified program normally reads commands interactively when run,
you must cause it, when started running for such interactive use in the
most ordinary way, to print or display an announcement including an
appropriate copyright notice and a notice that there is no warranty (or
else, saying that you provide a warranty) and that users may redistribute
the program under these conditions, and telling the user how to view a copy
of this License. (Exception: if the Program itself is interactive but does
not normally print such an announcement, your work based on the Program is
not required to print an announcement.)

These requirements apply to the modified work as a whole. If identifiable
sections of that work are not derived from the Program, and can be reasonably
considered independent and separate works in themselves, then this License, and
its terms, do not apply to those sections when you distribute them as separate
works. But when you distribute the same sections as part of a whole which is a
work based on the Program, the distribution of the whole must be on the terms
of this License, whose permissions for other licensees extend to the entire
whole, and thus to each and every part regardless of who wrote it.

Thus, it is not the intent of this section to claim rights or contest your
rights to work written entirely by you; rather, the intent is to exercise the
right to control the distribution of derivative or collective works based on
the Program.

In addition, mere aggregation of another work not based on the Program with the
Program (or with a work based on the Program) on a volume of a storage or
distribution medium does not bring the other work under the scope of this
License.


So I guess it would be legal in that case? The only problem is that OpenJDK only works with Linux (unless you use cygwin).