Jump to content

  • Log In with Google      Sign In   
  • Create Account

Interested in a FREE copy of HTML5 game maker Construct 2?

We'll be giving away three Personal Edition licences in next Tuesday's GDNet Direct email newsletter!

Sign up from the right-hand sidebar on our homepage and read Tuesday's newsletter for details!


We're also offering banner ads on our site from just $5! 1. Details HERE. 2. GDNet+ Subscriptions HERE. 3. Ad upload HERE.


GPL for dummies?


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
25 replies to this topic

#1 krez   GDNet+   -  Reputation: 443

Like
0Likes
Like

Posted 16 June 2009 - 10:22 AM

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)?

Sponsor:

#2 Sik_the_hedgehog   Crossbones+   -  Reputation: 1805

Like
0Likes
Like

Posted 16 June 2009 - 03:53 PM

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

#3 swiftcoder   Senior Moderators   -  Reputation: 10231

Like
0Likes
Like

Posted 16 June 2009 - 04:17 PM

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 - Software Engineer @Amazon - [swiftcoding]


#4 Oluseyi   Staff Emeritus   -  Reputation: 1678

Like
0Likes
Like

Posted 16 June 2009 - 05:15 PM

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.

#5 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 16 June 2009 - 05:57 PM

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]

#6 Hodgman   Moderators   -  Reputation: 30893

Like
0Likes
Like

Posted 16 June 2009 - 06:00 PM

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.

#7 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 16 June 2009 - 06:04 PM

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]

#8 Oluseyi   Staff Emeritus   -  Reputation: 1678

Like
0Likes
Like

Posted 16 June 2009 - 07:13 PM

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.

#9 Oluseyi   Staff Emeritus   -  Reputation: 1678

Like
0Likes
Like

Posted 16 June 2009 - 07:16 PM

The Free Software licensing quiz is very, very good.

#10 Hodgman   Moderators   -  Reputation: 30893

Like
0Likes
Like

Posted 16 June 2009 - 07:31 PM

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?

#11 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 16 June 2009 - 08:24 PM

Quote:
Original post by Oluseyi
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.

That phrase was intended to have the meaning of "The GPL is not only used by idealists, and the license terms don't apply to idelogy alone". Sorry if it was confusing.

Quote:
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?

That's ideological, too.

It was maybe confusing to assume that the "ideology" you mentioned was specifically about "FSF Ideology".


Quote:
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.

I don't claim anything, but you mentioned "understand and agree some ideology" in the context of GPL only, twice, if I read correctly. But actually, you also have to understand and agree to the ideology of the often-so-called less restricting licenses. Otherwise you could wake up one morning, and wonder about how others have surprisingly taken all your code and plagiarise the product; which is exactly what happened to given example, where they obviously didn't take the potential consequences of their choice seriously.

Quote:
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.

That's right. My GPL skills seem a little bit rusty :P

#12 Dmytry   Members   -  Reputation: 1148

Like
0Likes
Like

Posted 16 June 2009 - 10:30 PM

Quote:
Original post by Oluseyi
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.

I supposedly left the forum, but someone linked me here, so I could as well reply if I read it...
That's patently untrue for GPL v2. It is a legal text which explicitly speaks of binary distribution, not of vague 'publishing'.

GPL v3 attempts to address the loophole, but is not retro-actively restrictive on v2 or even "v2 or later" code.
Most of the code is released under v2, and I only used and released GPL and LGPL v2 code. There's mushroom clouds on horizon which are the prime reason why I may feel like using v3.
GPL is a practical license. When I release code under [L]GPL I can be pretty sure if its used commercially, I'm paid back, either in $ for GPL-free version or in free code (fixes and other maintenance). v3 is here to keep it so in today's environment. With MIT or BSD, however, from prior history, I can be pretty sure any commercial company will fork it just because they can, and either not release code at all or release it under GPL-like license (see Apple).

#13 Dmytry   Members   -  Reputation: 1148

Like
0Likes
Like

Posted 16 June 2009 - 10:50 PM

Quote:
Original post by krez
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)?

and to be useful:
Firstly, if you release your code under GPL, you can still use your own code as you please. E.g. you can release modified version of your own program in binary only. You can't do that if you use other people's code that is under GPL.
Secondly, for web applications, there's difference between GPL v2 or v3. v2 does not require to release code for web services etc. v3 supposedly does.
More about GPL v3
If you're just releasing your own code, I'd recommend releasing your code under v3, to require anyone else who uses your code in his web services to release back his fixes and changes* (but if you use those, you'll need to release the complete code too). If you're planning to use GPL libraries (not LGPL) in your code, even if those are v2, some might switch to v3 in the future and you'll have to either release your code or never update those anymore. So I'd recommend to use only LGPL libraries.
That's why it is important to understand philosophy behind licences. GPL philosophy is 'if you take you must give', and if v3 has loopholes that let you go against philosophy, there will be v4 and v5. LGPL is similar but giving is restricted to changes to the library.
edit:clarified.
edit: *might be untrue in v3, but if it is, there will be v3.1 or v4 addressing the issue.

[Edited by - Dmytry on June 17, 2009 5:50:06 AM]

#14 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 16 June 2009 - 11:11 PM

Quote:
Original post by Dmytry
Quote:
Original post by krez
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)?

and to be useful:
Firstly, if you release your code under GPL, you can still use your own code as you please. E.g. you can release modified version of your own program in binary only.

Heh, nice to see you.

That is, GPL is and always was explicitly about keeping the author's copyright. Nobody can just rip the copyright off, only the copyright owner himself is allowed to. A prominent example about what Dmytry just mentioned is Sun's (Oracle's?) VirtualBox: They distribute an OpenSource edition under GPL, and a non-free variant that has some additional features (though until now they always merged the non-free features into the free version after some time).

Btw, there's more about dual-licensing at wikipedia: "Dual Licensing".

Sidenote: Reversely, you are not allowed to distribute GPL software in any way if you changed the license to a GPL incompatible. And you are not allowed to tweak the copyright owner :D

#15 krez   GDNet+   -  Reputation: 443

Like
0Likes
Like

Posted 17 June 2009 - 03:58 AM

Quote:
Original post by Oluseyi
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 Dmytry
GPL v3 attempts to address the loophole

That is the main issue, thanks.


#16 Cornstalks   Crossbones+   -  Reputation: 6991

Like
0Likes
Like

Posted 17 June 2009 - 04:18 AM

Quote:
Original post by Oluseyi
The Free Software licensing quiz is very, very good.

Now that was depressingly enlightening. I didn't know if I dynamically link to something LGPL'd (like ffmpeg) I have to allow users to reverse engineer my program. Now I can't use anything GPL'd or LGPL'd :(
[ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]

#17 phresnel   Members   -  Reputation: 949

Like
0Likes
Like

Posted 17 June 2009 - 04:43 AM

Quote:
Original post by MikeTacular
Quote:
Original post by Oluseyi
The Free Software licensing quiz is very, very good.

Now that was depressingly enlightening. I didn't know if I dynamically link to something LGPL'd (like ffmpeg) I have to allow users to reverse engineer my program. Now I can't use anything GPL'd or LGPL'd :(


I think that's a vague issue. As far as I can tell, this only holds true for derivative work (e.g. when you build your application upon such library as a fundament). I think you are on the safe side as long as it is easy to replace the library by an equivalent one, or a newer version of it. Oh, and, IANAL. Just in case.

Wikipedia has more information: http://en.wikipedia.org/wiki/LGPL
About derivative work: http://www.linuxjournal.com/article/6366.

#18 swiftcoder   Senior Moderators   -  Reputation: 10231

Like
0Likes
Like

Posted 17 June 2009 - 04:53 AM

Quote:
Original post by phresnel
Quote:
Original post by MikeTacular
Now that was depressingly enlightening. I didn't know if I dynamically link to something LGPL'd (like ffmpeg) I have to allow users to reverse engineer my program. Now I can't use anything GPL'd or LGPL'd :(
I think that's a vague issue. As far as I can tell, this only holds true for derivative work (e.g. when you build your application upon such library as a fundament). I think you are on the safe side as long as it is easy to replace the library by an equivalent one, or a newer version of it. Oh, and, IANAL. Just in case.
Unfortunately, while that holds in some cases, the issue is a little more fuzzy. If the LGPL library contains a significant amount of code that is incorporated at compile or link time (rather than dynamic link time), such as pre-processor or template code, then it is very hard to use a newer version of the library.

Tristam MacDonald - Software Engineer @Amazon - [swiftcoding]


#19 Dmytry   Members   -  Reputation: 1148

Like
0Likes
Like

Posted 17 June 2009 - 09:22 PM

Quote:
Original post by MikeTacular
Quote:
Original post by Oluseyi
The Free Software licensing quiz is very, very good.

Now that was depressingly enlightening. I didn't know if I dynamically link to something LGPL'd (like ffmpeg) I have to allow users to reverse engineer my program. Now I can't use anything GPL'd or LGPL'd :(

I've no problem with that clause. I'm releasing my software dynamically linked against LGPL libraries. This phrase may sound rude to american, but all the chances are your software is not interesting enough to reverse engineer either. Besides, reverse engineering is allowed in many countries in EU, so if you worry about reverse engineering you better don't release your software at all.

#20 Oluseyi   Staff Emeritus   -  Reputation: 1678

Like
0Likes
Like

Posted 18 June 2009 - 02:18 AM

Quote:
Original post by phresnel
I don't claim anything, but you mentioned "understand and agree some ideology" in the context of GPL only, twice, if I read correctly. But actually, you also have to understand and agree to the ideology of the often-so-called less restricting licenses. Otherwise you could wake up one morning, and wonder about how others have surprisingly taken all your code and plagiarise the product; which is exactly what happened to given example, where they obviously didn't take the potential consequences of their choice seriously.

It is necessary to understand the "ideology" of any license, however even you must admit that the GPL is a fairly unique document in terms of promoting the notion of copyleft - of ensuring openness and placing that restriction on derivative products as well, while preserving author's rights. It was a radical departure from all that came before it, which either fell into "this is all mine and you need my permission to use it - and you probably have to pay me, too!" or "this is mine; you can use it, but don't ask me for support or claim I'm liable", and it has been equally influential on licenses that have come after it.

Further, copyleft is emblematic of a particular variation on a gift culture, whereas the overwhelming majority of humans live in a market or barter economy. It's an unfamiliar concept, and therefore bears emphasis more so than licenses that embody more common market ideals.

Do you now understand why it might be necessary to underline the ideological basis of the GPL, but not of, say, BSD?

Quote:
Original post by MikeTacular
Quote:
Original post by Oluseyi
The Free Software licensing quiz is very, very good.

Now that was depressingly enlightening. I didn't know if I dynamically link to something LGPL'd (like ffmpeg) I have to allow users to reverse engineer my program.

Yeah, that's the one I missed, too. Now we know.




Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS