views:

593

answers:

6

I am developing a close source Web-based C IDE which uses gcc compiler for compiling the code on the server. You can think of it as something like Google Doc where you write C source and can see the console output in a separate window. I want to use a monthly subscription model for my website, where users pay a monthly fee to use the software. Since gcc is licensed under GPL, do I need to open source the source code for my website? One point to note is that the only way I use the gcc compiler is through some make file on server. Does it entail to linking in GPL terms? I think my situation is like the popular websites www.github.com, where you can create private git(GPL) repo paying a monthly subscription. Thanks for your answer.

A: 

As far as I get things, you likely don't have to open your code, because you use the software, but you're not distributing it (the AGPL was created for this reason).

But since you want to make money with this, the standard Stack Overflow answer for this kind of question applies better than ever:

Ask a lawyer.

balpha
+2  A: 

I think you can. Check out this General Public License, Explained

Shoban
+12  A: 

Your compiled code is not derived from the gcc code; It uses its compiled executables externally. In fact, you don't need to ever see or use the gcc code itself. Therefore, I think you can use it without violating the terms; Compiling using gcc is not even linking, merely external usage of the program.

Quoting General Public License, Explained by Lawrence Rosen mentioned at @Shoban's answer:

A "derivative work" is defined in the Copyright Act, 17 USC 101, as a:

"work based upon one or more preexisting 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'."

Simply combining a copyrighted work with another work does not create a derivative work. The original copyrighted work must be modified in some way. The resulting derivative work must itself "represent an original work of authorship." So if the licensee does not modify the original GPL-licensed program, but merely runs it, he is not creating a derivative work.

Making code compiled using gcc subject to GPL would make the same sense as making a document written using MS Word an intellectual property of Microsoft.

Anyway, If you're serious about this site, you can either contact the gcc team directly, consult a lawyer or further read about this subject on the web.

EDIT:

It seems that the strong dispute on GPL contagiosity is about dynamic linking; That is, whether dynamically linking to a GPL-licensed component enforces you to apply GPL to your code. It seems that the legal status of that such linking is unclear, so you might not want to allow your users to do that on your site.

You might want to refrain from dynamically linking gcc components to your server-side code; Use them as a totally separate process to be in the safe side.

EDIT:

We're dealing with lawyers and copyright laws, so I figured it would be better to ask Lawrence Rosen If quoting him was OK without trusting my ideas about Fair Use. He quickly responded to my email and allowed it! How cool.

Links:

Adam Matan
I think it's really up to individual copyright owners how they interpret GPL. I assume that Linux will be easier to distribute with non-GPL'd binaries while on the other hand, Oracle would force you to buy commercial license if you would want to distribute MySQL together with your non-GPL'd program. Anyway, if he is not thinking of distributing his application to anyone, then using GPL code in the software is completely fine without restrictions and in fact very common thing for web-applications and internally used software.
lubos hasko
A: 

As long as you don't distribute it, you're fine. Note that web components ARE distributed to the client (e.g. java applets). Javascript is also distributed to the client, but that should be fine since it IS the source.

Mike
+5  A: 

What is really important here is whether this software is going to run only on your servers or you are going to distribute it to others (on-site installations).

If you are not going to distribute your software to anyone, then GPL doesn't apply to you at all and you are safe. If you will ever decide to start selling the software so people can install it on their own servers, as long as you don't include GPL dependencies and let people obtain them by themselves, you are safe again.

GPL is about distribution of software, not about usage.

From Wikipedia:

Those who do not agree to the GPL's terms and conditions do not have permission, under copyright law, to copy or distribute GPL licensed software or derivative works. However, if they do not redistribute the GPL'd program, they may still use the software within their organization however they like, and products constructed by the use of the program are not covered by this license.

That's why millions of commercial (and closed-source) websites out there can depend on MySQL without paying a cent.

Is it illegal? No. Does it violate spirit of GPL? Probably yes. Consider this comment posted on Slashdot 10 years ago.

lubos hasko
+1 Great link! Feels like @codefx posted it using a time machine.
Adam Matan
A: 

You're safe. You are not using any third-party libraries, so the only thing you will be linking to is libC. To my knowledge this is still Lesser/Library-GPL licenced, and the LGPL explictly permits linking without the whole program having to be classed as GPL.

Remy