you can charge as much as you want for distributing, supporting, or documenting the software, but you cannot sell the software itself.
I don't believe this is correct. You can sell the software.
Since any program that contains GPL code must be open-sourced, it's impossible to grant anybody a right to use it at the exclusion of everybody else, or to prevent people from using it against your will.
A very poor choice of wording, though.
If you are careful with who you distribute the binary to, you could in theory keep the source sort of "secret", though I don't think it's a good general approach to GPL software.
It's an elegant solution for many projects: Highcharts, extjs, mysql, neo4j...
Why? Anyone that purchases a single copy can re-compile and re-release to the world for free. In addition to this, anyone can share it for free and it's allowed by the license.
If your app has any popularity it all, you will slowly lose your customer base because it's too easy to generate free competition (you will essentially with an exact duplicate of your software for free, and it's legal), unless of course you want to become a support company. Support might work for larger companies, but doesn't scale well at all for a one-man shop.
It's quite obvious to me that Stallman doesn't want you to be able to charge for software, due to the very nature of the license.
He has said when questioned that support is a viable way to make money from "free software". I don't know about you, but I don't want to run a support company.
I have licensed a lot of custom-built software under the GPL (because I used GPL'ed bits and pieces). None of my clients ever redistributed their software, most likely because they considered it a competitive advantage. Think about it for a moment and you'll realize it's not a big problem. For me, it's an advantage, because I could reuse the code I did in other projects, something I wouldn't be able to do if I didn't license the code under the GPL in the first place.
> Stallman doesn't want you to be able to charge for software
No. What he doesn't want is that programmers are able to restrict freedoms of their users. BSD allows that. GPL forbids that.
In other words, he fights for the users. ;-)
This kind of thing can get really ugly in M&A situations.
I love FOSS, but it can lead to some unexpected and unpleasant outcomes, even for seasoned veterans of software development and business. As soon as you're faced with "redistributing" key software to potential bidders so they can do their homework on your company's technical, operational and financial merits, you're in copyleft land, like it or not.
Don't get me wrong – I'm not an agent of FUD when it comes to FOSS. I just doubt that most consultant developers are thinking about advisors, accountants, lawyers, private equity, investors, executive and board candidates, etc. when they decide to incorporate GPL'd code.
Personally, I think the GPL is a rather poorly-drafted license, and the concept of "distribution" is right at the heart of the issue. Fortunately, its relevance is waning from my point of view – fewer clients showing interest, and I certainly haven't needed anything that wasn't under MIT/BSD in a few years.
Yes. You have to be very careful with distributing binaries. Have a lawyer at hand, always.
This makes sense if you're selling some niche code to businesses, but things like the Sveasoft Linksys firmware drama indicate that selling direct to users, especially technical users who understand and maybe already use the GPL, is a whole different world.
Some people think they can have their cake and eat it too.
The price of using GPL is setting your users free.
edit: thanks for the corrections, narcissus
Essentially, Sveasoft (which is/was, iirc, a single guy) took the original Linksys firmware releases, and built some fairly impressive new features on top. His business plan involved selling subscriptions to receive updates on a regular basis, with the sources being made public (beyond the subscribers) after some embargo period.
What actually happened was that very few people subscribed, and immediately began posting the latest sources publicly (as permitted under the GPL), which resulted in Sveasoft threatening them with legal action, issuing C&Ds to anyone involved, and inserting more and more complicated tracking tokens and other booby-traps in the code.
I'm not sure if (how?) it's ended, but there is still activity on at least one of the anti-sveasoft sites: http://sveasoft.blogspot.com/
http://wrt54g.thermoman.de/#readingpleasure has a lot of the original stuff, I think.
I suspect it's mostly died down because there are now much more viable alternatives (DD-WRT, OpenWRT, Tomato, etc) than there were at the time, and nobody wants the hassle of dealing with it.
It does raise the issue (as mentioned in the licence article this thread is about) of dealing with the GPL on embedded devices, where most of the work is in kernel modules or statically linked binaries. The usual techniques which allow proprietary software to be segregated and interface with GPL code aren't really appropriate, and it's quite difficult to build such a thing.
Whether this is a good thing or not depends on your perspective, of course.
Exactly point point. This is why you can't run a viable business selling GNU software.
In some cases, it works. How large is your client base? 20? 50? Did your clients even read the license or know that they have the rights to redistribute it?
If Photoshop were under the GNU, there would be a ton of free versions out there for anyone to download. Same thing with Windows or any other high-profile proprietary app.
Both those companies would slowly start to lose money until they just couldn't make a profit any longer. It then comes down to who has the bigger marketing budget.
"because I could reuse the code I did in other projects, something I wouldn't be able to do if I didn't license the code under the GPL in the first place."
Are you talking about other people's code? I can reuse all of my code in any project, regardless of the license.
"In other words, he fights for the users. ;-)"
He sacrifices the freedoms of the developer for the users. Also making it impossible to make a living by just selling software.
I personally don't ever use GNU code in any commercial projects. I prefer the BSD license because I can use code in any way and I'm not forced to give any of my future rights away as a developer.
I also have released many libraries and apps under the BSD license.
The BSD license doesn't mitigate against this at all, so here you're arguing in general against open source. But more importantly, there are already a ton of free versions of Photoshop and Windows and Rosetta Code and any other popular application, regardless of their level of sophisticated DRM, just a few clicks away on your-favorite-torrent/filedump-site. The legality of this doesn't scare people. The binaries are free for them, yet somehow these companies are still in business...
If another site hosts your software too, that's less potential load on your download servers to handle the actual number of users. With some hosting providers, this directly reduces the amount of money you spend on web hosting (whenever less bandwidth is consumed).
And even if a 3rd party hosts your software, they can't just take away your copyright and claim that they wrote the software themselves. The software remains associated with you so the 3rd party's hosting provides a bit of free advertising. Maybe you didn't spend money on advertising, but some people do; and you could arguably spend less if enough 3rd party sites make it known that your project exists.
This probably doesn't amount to much but my point is that 3rd parties aren't creating complete freebies; their actions do help a little.
For now, we need the GPL to force change. BSD-style does not slowly force the ever-stuck-in-the-past industry to stop making inferior unfree software. It will not prevent the same people from leeching off the efforts of the FLOSS community without giving anything in return (or even trying to sabotage our efforts with patents or similar nonsense).
 Yes, proprietary software is and always was an enormously stupid idea, probably up there with patents and copyright on the list of Most Ridiculous Bullshit In Human History.
 Free as in Speech.
I can accept that you find the language used to make a point not that important, but you should consider that not everyone might agree with that.
If a project is releasing frequently and often, such as the X Windows system did in the early days, and people want the features in the new releases, the overhead in constantly forward porting private, proprietary enhancements (whether they be I18N support or driver support) tends to encourage people who might be tempted to keep code to themselves to contribute it back to the mainstream codebase. But if the project releases too slowly, or tries too hard to keep internal API backwards compatibility, it can cause people to fail to contribute their changes back, and then the open side of the project stagnates.
This is something that Charles Hannum, one of the NetBSD founders, eventually realized:
In fact, he observed that a non-copyleft license tends to encourage fragmentation, and what do we see happening with Android? With a GPL license, things like Touchwiz would be have to be released as source code. (Of course, with a GPL license, there's a chance handset manufacturers would have been scared off, which is why apparently Andy Rubin very early chose Apache instead. Personally, I don't believe that to be true, given that Android did use the Linux kernel, which was GPL'ed. But, he was the startup founder, and he didn't want to take that chance with his baby, which is totally understandable.)
-I want everyone to freely use and distribute it, if they are contributing back their source code to the me or the community.
- Except, I don't want my code to be used by patent-abusers/suers and their platforms (especially the patent war-lord Apple irritates me). I don't want them to suck my code like a black hole and avoid giving their code back to the community.
Would BSD/MIT or Apache or any variation of them help me in this case? Does GPL really help?
If you want to stop your code from being sucked into a black hole, a more "restrictive" license like the GPL would be your best bet. I would recommend the GPL because it's well-known and a lot of people have some idea of what the terms are, as opposed to something like the Apache license, which people might have to look up.
This may not be entirely accurate.
Original slashdot comment:
Archive of one of the authors answering if cphack was GPL:
>"The origin of the confusion is that in one source file in cphack (note that cphack is just one of the four main items in the cp4break package), there's a comment saying "Released under the GPL". There is also a similar statement in the onscreen "About" box."
But previously: "The suggestion that it might have been GPL surprised Eddy and I just as much as it did anyone else"
Really? They think that the suggestion that a piece of software which says "Released under the GPL" in the source code and similar things in the about box is in fact released under the GPL is surprising?
Then it goes on: "I think that doesn't mean much because saying "the GPL" doesn't really identify "the GNU General Public License version 2" as specifically as a copyright notice should."
A very strange argument. Are they really claiming that the author purposely wrote that it was released under "the GPL", but was referring to a different GPL (and never mentioned it)? Or is he trying to say that by keeping the language ambiguous, he can retroactively change the intention?
I'm not sure whether to interpret all this as ineptitude, stubbornness or deception.
Look, it is quite clear that they did not release it under the GPL, I'm not contesting that. But what they're claiming is quite ridiculous, and I feel like there must be more going than what they're writing.
I think it is too wordy though, and for 99% of projects, the MIT vs BSD vs Apache difference is not terribly important, so why weight your project down with a crazy big license?
I prefer MIT. It's a little clearer to me, and is claimed to be GNU GPL compatible.
MIT has a killer failing: it was developed prior to the onset of software patents, and so has no patent release. This dooms it to being appropriate for only trivial projects. It doesn't matter if you think there's nothing patentable in your code: others don't know that. If you want people to use your code in this day and age, a patent release is critically important.
Use Apache. Why be concerned about license length? Include the license once and then refer to it in your source copies. No big deal.
But if you're building something like node.js, nginx, or Lucene, choosing MIT/BSD is likely a terrible idea. Apache gives huge protections for unforeseen scenarios: automatic property rights assignment for contributions, poison-pill–like protections against patent suits, &c.
I highly recommend this book on Proprietary Information and Open Source: http://www.amazon.com/Intellectual-Property-Open-Source-Prot...
Aside — Sean, I took your CS101 class in '07. Crazy running into you randomly here ;)
The job would have be trivial enough to make it clear to everyone concerned that there was nothing patentable in it, I suppose.
As to GPL compatibility, I've seen this play out with the AFL too (I use the AFL a lot). My take on it is: GPL incompatibility with well-designed, modern licenses like the AFL and Apache is not their fault. It's the fault of the FSF for producing licenses with outstanding flaws. As someone firmly in the BSD camp, I'm not too concerned about the FSF's foibles.
Please, tell that to Linux users. Now, compare the vibrant ecosystem around Linux with the vibrant ecosystem around FreeBSD and try to think why it happens and what's the difference between them.
+100. I love this attitude.
Where I work contracts and grants prefers that we use BSD because they (as I understand it) think apache's patent grants are too broad.
Contracts and grants prefers we use Education Community License over apache http://www.educause.edu/wiki/Educational+Community+License
This site gives a good overview:
IMO, you may just as well use GPLv3, ALv2 source is almost as risky in commercial products.
"Mixing copyright law with patent law", whatever that means, has nothing to do with risk in commercial products. Apache is very well regarded as a BSD-style license in the commercial environment.
Releasing software as UNLICENSE or CC0 has the same consequences of releasing it as BSD but it conveys a much stronger point.
 http://unlicense.org cache: http://webcache.googleusercontent.com/search?q=cache:NQW6BVB...