Advertisement

GPL for dummies?

Started by June 16, 2009 04:22 PM
24 comments, last by phresnel 15 years, 5 months ago
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
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).
Advertisement
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]
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
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.
--- krez ([email="krez_AT_optonline_DOT_net"]krez_AT_optonline_DOT_net[/email])
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 :(
[size=2][ 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 ]
Advertisement
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.
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. Ex-BigTech Software Engineer. Future farmer. [https://trist.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'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.
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.

This topic is closed to new replies.

Advertisement