GPL for dummies?

Started by
24 comments, last by phresnel 14 years, 10 months ago
Anyone know of a good, simplified (yet thorough) explanation of the GPL? The legalese kills my brain... More specifically, how does it apply to server-side code? For example, say I write a PHP web app and license it under the GPL. Does letting people access it through a website count as "distributing" or "conveying" it (and as such, require me to distribute the backend code)?
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
Advertisement
That's the main quirk of the GPL when it comes to networking. Suppose there's a board licensed under the GPL. If you deal with the source code directly (e.g. you're a maintainer), then the GPL applies for you. If you only use it as a client (e.g. you just are a member that uses the board interface), then the GPL does not apply to you. To get members be required to have those rights, the license should be AGPL (Affero GPL), not GPL.

Of course, you may want to recheck somewhere else, but that's how I'd understand it. You could e-mail the FSF asking about it as well, but they probably will tell you to use the AGPL and give the source code to everybody, regardless of what you actually want to do =P
Don't pay much attention to "the hedgehog" in my nick, it's just because "Sik" was already taken =/ By the way, Sik is pronounced like seek, not like sick.
Quote:Original post by Sik_the_hedgehog
If you only use it as a client (e.g. you just are a member that uses the board interface), then the GPL does not apply to you.
Roughly speaking, the client's browser does not download the source code (which would constitute distribution), instead it downloads HTML code generated by the GPL code - and the GPL only covers the program source code, not the program output.

As always, IANAL [wink]

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

Quote:Original post by krez
More specifically, how does it apply to server-side code? For example, say I write a PHP web app and license it under the GPL.

If you've licensed it under GPL, then you're required to make the code available. To whit: why did you license it under GPL in the first place?

Here's the question you should be asking: if you're writing a web application and happen to use a GPL component, are you required to distribute your own code once you make your application public? The answer is yes. By linking to, incorporating or in any way creating a derivative product from a GPL component, your derivative (your web application) falls under the GPL. And everything that falls under the GPL must have its code available on request.

If you are writing original code, avoid the GPL unless you fully understand its ramifications and agree with the ideological position it embodies. If you simply wish to make your code "open source" and available for others to use, look at the BSD, MIT and APL licenses first.
IANAL

Quote:Original post by Oluseyi
If you are writing original code, avoid the GPL unless you fully understand its ramifications and agree with the ideological position it embodies. If you simply wish to make your code "open source" and available for others to use, look at the BSD, MIT and APL licenses first.


The GPL is not only ideologist (the same can btw also be said about MIT, et al.). Instead, if you don't want your sourcecode to be used in other projects that don't open their sources for free use (i.e. proprietary software) or in projects that make actual money (alongside with other code) with your code, without giving you back anything, then the GPL or another copyleft license, can be useful, too.

That [copyleft license] it is only useful in ideology based environment is BS. The reason why I use it is exactly what I described: If I spend my precious spare time to code up something (read: when I am doing unpaid work), then I don't want others to profit from my benevolent coding without giving back any of the profit they made (may it be money, knowledge, or whatever) with the help of my unpaid work.

If I want to profit if my software is ever used, and want others to contribute back (e.g. the changes the made to my software, which is highly welcome), then MIT, common BSD, and the like, are not the right thing; instead, "Copyleft" + Dual Licensing works better.

If I want to give away my work for free after spending, maybe, man-years on it, and don't care what others do with it or how they profit from it, or if others claim it is their work, then maybe MIT etc. is the way.

For my part: nothing to do with being ideologist.


edit: To give an example of a project that was being idealistic about MIT license, but later switched to GPL:

Quote:http://en.wikipedia.org/wiki/Wine_(software)#Other_versions_of_Wine
TransGaming Technologies produces the proprietary Cedega software. Formerly known as WineX, Cedega represents a fork from the last MIT-licensed version of Wine in 2002. Much like Crossover Games, TransGaming's Cedega is targeted towards running Windows computer games and is sold using a subscription business model.


That perfectly conforms to my (and thousands of others spare time coders) reasoning.

[Edited by - phresnel on June 17, 2009 12:57:40 AM]
Quote:Original post by Oluseyi
If you've licensed it under GPL, then you're required to make the code available.
I thought you only had to make the code available if you distributed the licensed work.

e.g. if I use a GPL library to make a tool, then my tool is GPL. If I only ever use the tool privately, I don't release binaries of it (even if I distribute it's output files) then I don't have to release the code either.

If I'm right about this, then a private web-app would be much the same as my hypothetical tool, assuming the binaries are kept private and only it's output is distributed.
IANAL


Quote:Original post by Hodgman
Quote:Original post by Oluseyi
If you've licensed it under GPL, then you're required to make the code available.
I thought you only had to make the code available if you distributed the licensed work.


Yes. You could also purely distribute on ordinary CD-ROMS, via computer shops and the like. Then you don't even have to give away your work for free or via the internet, and must only include the sourcecode on the CD-ROM (it's about distributing the sourcecode in appropriate form, and if you only distribute via CD-ROM, then that's appropriate).

I like the analogy to buying a car: Nobody gives away a car for free (though they are allowed to, and except maybe for some TV shows :D), and anybody who buys the car has the right to tweak it (maybe as a virtual penis enlargement), to resell it, and to learn about the inner workings of your car. And if you decide to give away your car, you can't forbid that the new owner [uses,tweaks,learns from,resells] the car.

Quote:e.g. if I use a GPL library to make a tool, then my tool is GPL. If I only ever use the tool privately, I don't release binaries of it (even if I distribute it's output files) then I don't have to release the code either.


Yes. But consider also that for libraries there is the LGPL.

[Edited by - phresnel on June 17, 2009 12:04:02 AM]
Quote:Original post by phresnel
The GPL is not only ideologist...

I never said the GPL was the only ideologically motivated license. Don't refute claims that weren't made.

Quote:Instead, if you don't want your sourcecode to be used in other projects that don't open their sources for free use (i.e. proprietary software) or in projects that make actual money (alongside with other code) with your code, without giving you back anything, then the GPL or another copyleft license, can be useful, too.

Which is an ideological motivation. If you want to give your code away for free, why must you compel others to do so, too? Particularly for someone who is unclear about whether he has to open his sources - suggesting that he doesn't already subscribe to the motivation of "ensuring openness" - this is a nonsensical discussion.

Quote:That [copyleft license] it is only useful in ideology based environment is BS.

I never said Copyleft (in fact, I never referred to Copyleft, only to the GPL since the OP's question was explicitly about GPL) was useful only in ideologically-based environments. I said not to use the GPL unless its ideology was clearly understood and agreed with. Again, don't refute claims that weren't made.

Quote:Original post by Hodgman
Quote:Original post by Oluseyi
If you've licensed it under GPL, then you're required to make the code available.

I thought you only had to make the code available if you distributed the licensed work.

In the specific example, he was publishing the web application. That counts as distribution. If the web app is only privately used, then he doesn't have to make the code available. If the web app is publicly accessible, though, even if users only receive non-code data as the output, then he is obligated to provide the source code if asked.

Quote:Original post by phresnel
You could also purely distribute on ordinary CD-ROMS, via computer shops and the like. Then you don't even have to give away your work for free or via the internet, and must only include the sourcecode on the CD-ROM (it's about distributing the sourcecode in appropriate form, and if you only distribute via CD-ROM, then that's appropriate).

That's not entirely correct. You don't have to include the source on the program CD-ROM, but you must make the code available on CD-ROM if a someone orders it, for which you are permitted to charge the cost of distribution.
The Free Software licensing quiz is very, very good.
Quote:Original post by Oluseyi
Quote:Original post by Hodgman
Quote:Original post by Oluseyi
If you've licensed it under GPL, then you're required to make the code available.
I thought you only had to make the code available if you distributed the licensed work.
In the specific example, he was publishing the web application. That counts as distribution. If the web app is only privately used, then he doesn't have to make the code available. If the web app is publicly accessible, though, even if users only receive non-code data as the output, then he is obligated to provide the source code if asked.
What if instead of publishing it to a web-server (where the general public can use the application) it was hosted on a private server. However, another non-GPL public web application is given exclusive access to the private GPL app.

This way the GPLed server is "in your own home" so to speak, but it's output is distributed by a separate public application.

What if this public server doesn't directly talk to the private GPL server, but requires human data-entry to connect the two? What level of connection counts as distribution of the GPL code?

This topic is closed to new replies.

Advertisement