views:

442

answers:

4

I am working on a game interpreter in javascript for sierra adventure games of the 80s. I ported bits of the existing reverse-engineered C interpreter called Sarien, which is GPL licensed. Making my work GPL too. So far so good.

However, my aim is creating a website where people can play these games online, with added multiplayer support. Multiplayer requires client+servercode, and the multiplayer part is proprietary closed (commercial) code. Does that have to be GPL too?

I know other people have asked GPL questions here, but it usually involves embedding, linking, etc, making things easier for me to understand. My setup is javascript-based. Can I distribute the core interpreter code as GPL and add a separate javascript layer that hooks into the IO part (to make multiplayer possible) and not GPL that part?

I am more than willing to contribute all my work as GPL, but parts of the multiplayer engine simply aren't mine to decide. If GPL forces me to make everything GPL then it forbids me of adding multiplayer, and thus stands in the way of making something cool :-(

UPDATE:

The original interpreter code -GPL licensed- has since merged into ScummVM. The interpreter files now show in the header that GPL version 2 or higher applies as the end-user sees fit. Does this change anything? And as a sidenote; is that allowed to modify a license this way?

A: 

I am afraid that GPL code can't be used in an application/system that it isn't also GPL licensed. There is nothing you can do about it. It isn't allowed even if there is a clear separation between the two parts.

I recommend that you contact the author(s) of the GPL code, explain the situation and ask for a difference license. The problem is that it may be difficult to find all of them, which is necessary for the re-licensing. That's a well known problem of the GPL license.

kgiannakakis
+2  A: 

Unmodified code is fine. So for example: static linking, because it requires source code modification, creates a derivative work and requires some thinking. On the other hand, dynamic linking is just using the GPL code as it was intended (to create a temporary relationship between your code and the GPL'd code) - as the GPL code requires no modification for this.

This explains it better than I can. The question is: do you modify the original GPL'd code, or do you just use it as it was designed to be used? If it's the latter, you're probably fine. But check with the original authors if you can, it's only polite!

EDIT: if all your code is Javascript, aren't you basically giving everyone the source anyway? :)

Robert Grant
A: 

You might need to talk to a lawyer. I am not one.

However the GPL boils down to a distribution license. GPL v2 doesn't say anything about code running on your server, so if you're not "distributing" the code then it doesn't need to be GPL. End-users are allowed to combine, for example, a proprietary video driver and the Linux kernel, but people are generally forbidden to distribute the combined work.

However, the code transmitted to the client side arguably IS being distributed and thus all of that code has to be compatibly licensed, either all proprietary or all GPL or whatever.

The GPL gives you additional benefits under copyright law. If you make no copies you can do what you want.

Note: there are other GPL-ish variants (besides v2) that consider hosting a public application to be "distributing". Read your licenses carefully. Define exactly which parts are under which licenses and also which will be combined together and which will be distributed. Talk to a lawyer if you're not sure (heck, maybe even if you are sure).

Also, as a nitpick, I'd say it's wrong or misleading to say "The GPL ... stands in the way of making something cool". You could just as easily say "The proprietary license stands in the way of making something cool". It's not the GPL's fault the multi-player code has an incompatible license.

Mr. Shiny and New
+1  A: 

Would a GPL webbrowser allow you to browse sites served by IIS? Of course. May a SAMBA client conect wo a Windows file server? Again yes. Open-sourced clients may communicate with closed-source servers.

MSalters