I think this is an important distinction to be aware of.
Licenses like the GPL exist for a reason. And that reason is an attempt to maximize the amount of software that is free.
Licenses like the MIT and BSD license exist for a different reason. And that reason is to give people who want to share what they did on generous terms a way to do so. And historically this was done in the belief that enlightened users would see it as being in their interest to contribute back.
The result was that people who used generous licenses got frustrated that others would come along, use their software, criticize the original author for "not protecting freedom", then create a modified version that the original author was not free to use as they wish!
Historically the free software movement was very clearly described with long essays by Stallman. With the open source marketing campaign, there were essays that people who liked more generous licenses could get behind. And indeed lots of people began producing free software with no encounter with the ideas that started the free software movement. The link above was Stallman's response to this.
If you understand the conflict, then you can form your own opinion. Here is mine.
When you choose a license, you should choose correctly for what you want to have happen. Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing? Well then, you shouldn't use a BSD license. By contrast you shouldn't use the GPL if your response would be, "Bully for them, I had fun and they made the world better."
Conversely if someone else used an open source license, DO NOT assume that their motivations are yours. It is their code with their choice of license chosen for their reasons. Respect that.
> Would it outrage you for someone else to take your code ... and make millions while you make nothing? ... You shouldn't use the GPL if your response would be, "Bully for them, I had fun and they made the world better."
This is wrong. Copyleft licenses are concerned with freedom, not price.
I don't care if somebody gets rich off my software while I don't.
I don't want somebody to take the work I have done and turn it into proprietary software that other users may no longer have the freedom to inspect, modify, and share. THAT is why all my work is GPL or AGPL. It has nothing to do with whether you make money or those users spend money or I get a cut of some money.
Now that we have so many SaaS startups, "turn it into proprietary software" includes "use it to build a service and never distribute the sources."
GPL and AGPL protects my code from this happening, while licenses like MIT and BSD ("permissive" licenses) do not.
Permissive licensing, in the context of SaaS, is functionally equivalent to proprietary licensing. Somebody benefits (not necessarily monetarily) from the use of my software without paying its price: improvements must be shared.
> This is wrong. Copyleft licenses are concerned with freedom, not price.
Precisely. The thought that someone might take the code I wrote and make it into a proprietary product, removing the freedoms I had, is horrible. But if someone made an free software product based on it and made millions, all the better for them!
BSD doesn't remove any freedoms from the original software author, and in fact it unshackles them from having to publish all future development, allowing them to go proprietary in the future if they wish to.
To put it another way, once you license something under GPL, it is forever GPL. That's a strength of that license in the sense that it has allowed so much excellent and important software to grow and flourish. On the other hand, when you license something under BSD, at any point you have the power to take it to another license or make it proprietary. That's the "permissive" part that many people (including GPL advocates) don't get. The source code itself is still open as long as the original author wishes it to be. Under the GPL, the source code is open for all eternity, even if the original author changes her mind later.
Another aspect of this (and it was mentioned elsewhere in this discussion) is that, even if a company comes along and turns your BSD licensed code into their own proprietary product, you still get to keep your code and continue to improve it. All they've really done is forked it; if they are a good citizen they will even contribute improvements back to you. I think the classic example of this is Mac OS X, which is based in part on FreeBSD. When Apple forked FreeBSD into the base of their new commercial OS, the FreeBSD project didn't magically disappear. Here we are 15 years later and both the commercial OS X and the open source FreeBSD are flourishing. Development of FreeBSD didn't die the day OS X was born.
> BSD doesn't remove any freedoms from the original software author
Neither does the GPL. The GPL does not place restrictions on the author. In fact, as the author of a project, you can declare your project GPL and totally fail to comply with the GPL yourself, because the license is a copyright license, not a contract.
> To put it another way, once you license something under GPL, it is forever GPL. That's a strength of that license in the sense that it has allowed so much excellent and important software to grow and flourish.
Both the GNU GPL and BSD licenses are non-revocable (except, in the case of the GPL, if a reuser violates the license)
> On the other hand, when you license something under BSD, at any point you have the power to take it to another license or make it proprietary.
Assuming "you" refers to the author of a project, they can change the license they use for the project in the future regardless of whether they initially chose BSD or the GPL.
(I'm on the Debian ftpmaster team, which checks all new binary packages submitted to Debian; I review licenses for fun)
> To put it another way, once you license something under
> GPL, it is forever GPL.
It's forever GPL for people who use it under the GPL license. If you're the copyright holder, not a licensee, you can change the license if you want to. Of course that doesn't stop people from using existing GPL copies, and you do have to be the actual copyright holder (e.g. if you accepted patches from other parties, you have to get permission from their authors to make such a change). But given such permission, a change can totally be made.
An example is the Mozilla code, which used to be licensed under a tri-license that included the GPL and was relicensed to a different license (MPL2). This process required finding everyone who had copyright on the codebase (several companies and a number of individuals) and getting their permission for the license change.
Now it's true that using the BSD license means you don't have to hunt down those other contributors and get their permission to relicense, so the bar for the author taking the code proprietary is lower (and in fact identical to the bar for anyone else doing so).
I don't understand why Mozilla would need extra permissions to upgrade from the old tri-license to MPLv2?
The MPLv1 already had an auto-upgrade clause that allowed any downstream to use and distribute the code under a later version published by the license steward; the MPLv2 also is implicitly a triple-license with LGPL/GPL.
MPL v1.1 "6.2. Effect of New Versions" does mention the new version of the license has to be published by Netscape instead of the Mozilla Foundation; was that the issue perhaps?
This page seems to agree with my reasoning in "Does Mozilla need permission from anyone to change the MPL?"
"No permission is needed from any contributor to upgrade the codebase from MPL 1.1 to MPL 2 because the MPL 1.1 contains within itself a provision which allows software under 1.1 to be redistributed under a later version of the licence."
> when you license something under BSD, at any point you have the power to take it to another license or make it proprietary
And that's why I would NEVER contribute code to any of your projects. You want people to work for you for free, then when you're ready just close the code and run with it? Yeah, right, try again.
The GPL is a "you can't screw me, I can't screw you" license. The BSD is a "whatever" license, much like the MIT or a CC0/Public Domain. If I don't care about the code, if it took me no effort to create, I may consider the BSD... or just the CC0, whatever. Otherwise, you're either looking at a real contract or the GPL, and you better don't try to screw me either way.
Oh, and you can re-license YOUR code under any license you wish. If you published it once under the GPL, it only affects whoever may get it from that publication; you can still re-publish it in the future under any other license you wish, since it's YOUR code, to do as you please.
If they accepted changes from someone else, that someone else has copyright on those changes and the license can't be changed without them agreeing to it (or possibly their changes being removed from the codebase; I am not an IP lawyer and you should consult one if you want to be sure on this score).
> BSD doesn't remove any freedoms from the original software author, and in fact it unshackles them from having to publish all future development, allowing them to go proprietary in the future if they wish to.
IANAL but as best i can tell, neither apply for GPL.
The changes do not have to go back to the original developer. All that is required is that the code changes are published if ever binaries based on those changes are made public.
And going proprietary is possible if everyone involved agrees. Note the number of multi-license projects out there, including some fairly substantial ones like Qt.
OS X uses the FreeBSD userland, but it was more or less a one time pull, the kernel is radically different, so it would be hard to keep things synced; as a result, I doubt there has been a lot of contributions of patches backwards. However, Apple and FreeBSD both had license problems with gcc, and Apple sponsored LLVM, which benefits FreeBSD as well. Maybe there's a cultural benefit for FreeBSD as a result of OS X exposing people to the FreeBSD userland, although running into limitations that have been fixed upstream more than ten years ago may give people the wrong ideas.
> The thought that someone might take the code I wrote and make it into a proprietary product, removing the freedoms I had, is horrible.
I feel this argument is weak: even if I license my works under BSD, no one can make my BSD licensed code that has already been distributed into to a proprietary product, even not myself.
To make that software that I licensed under BSD a proprietary product they would need to somehow convince all users of my software to get rid of all copies as well as convincing me to stop distributing it under a free licence.
Building a proprietary product that includes my code does NOT remove anyones freedom to use my code, no?
This presumes that any modifications to "your" code that someone else makes should be none of your business. Seems fine on the surface.
But what if your code writes files or communicates over the network? And what if, say, Microsoft takes your permissively-licensed code that is just beginning to gain popularity, changes one piece of it to make it incompatible with yours, and doesn't release their change? They use their massive marketing department or pre-bundling to get lots of Windows users to use it. Everyone is still free to use "your" version of the code, but nobody wants to, since it is incompatible with the more popular Microsoft version, now on its way to becoming "the standard."
If you are okay with that, no rabid copyleft zealot like me has any place to criticize you. Release your code with a permissive license. That's fine. (Permissive licenses are considered "Free Software" by FSF and rms as well, after all.)
But to me, that seems grossly unfair for code I spent my valuable time designing and developing, so I don't release my code under a permissive license. If Microsoft wants to build a product with the work I have done, it needs to convey the same freedoms to its users that I did. That's the cost.
This is hypocritical, because the GPL does exactly what you describe through its "or any later version" clause. Remember when gcc switched to GPLv3? Did you contribute to gcc? If so, your contribution got re-licensed under whatever the FSF decided, and thereby acquired a bunch of new restrictions that you never agreed to.
And sure, everyone is free to use the v2 version of the code (i.e. gcc 4.2), but nobody wants to, since all new development is happening with the v3 version, which is now the standard.
Linux is a famous exception: it omits the "or any later version" clause, and so avoids getting steamrolled in the way you describe.
> Remember when gcc switched to GPLv3? Did you contribute to gcc? If so, your contribution got re-licensed under whatever the FSF decided, and thereby acquired a bunch of new restrictions that you never agreed to.
How can they relicense the code unless every contributor signed a Contributor License Agreement granting them that right?
A quick search seems to indicate that GCC has no such CLA.
The standard GPL includes a clause that let's you published a modified version of the software under a later version of the GPL.
So if you write something under the GPLv2, and I change it and publish it, then the GPL says I need to release the source under the GPLv2 or later. This means that I can publish it under the GPLv3, and you can't take back my changes unless you upgrade your software to the GPLv3.
Linux removed the "or later" text from their version of the GPLv2, meaning that I can't change the Linux kernel and publish the result under the GPLv3.
This is incorrect, no version of the GPL has such a clause. The FSF merely recommends that authors give downstreams the option to use GPL version N "or later".
However, you can "upgrade" LGPL code to GPL, see LGPLv3
"2. Conveying Modified Versions".
There is a FLOSS license that has an implicit upgrade to new version clause: the Mozilla Public License, see "6.2. Effect of New Versions" in MPLv1.1.
It looks like the "or later clause" is a built in option, but not a built in default, of the GPLv2. With that I mean that the meaning of that phrase is explained in the 9th clause.
Can you provide examples of software that were released by their original author using BSD/Mit style licence and got steamrolled by a third party who took their code and mangled it?
At least to my knowledge the opposite seems to be more common. Experts release a library under a very permissive licence, and everybody wins. One such example is libPNG.
I got an example, you are likely using it right now.
KHTML (LGPL, not GPL) taken by Apple to make WebKit (LGPL), later "rewritten" and licensed BSD for 2.0.
Apple did also the dirty trick of giving a single huge patch against the previous release of KHTML making it almost impossible to integrate back to the main codebase. Even LGPL can be abused. Lesson learned the hard way by the community.
And you now have everyone parroting how great WebKit is, nobody remembers the original team at KDE. It was brutal.
Microsoft used their own implementation of Kerberos. From the Kerberos Wikipedia entry:
> While Microsoft uses the Kerberos protocol, it does not use the MIT software.
The license of the original implementation is thus irrelevant. Pretty much the only thing that would have prevented MS would have been if there were patents on Kerberos.
Did MS use kerberos implementation or the protocol, wiki page isn't very clear on it. If it is 2nd then it would be an entirely different issue, which even GPL/copyleft wouldn't have helped (though oracle java lawsuit may do so).
How would the Oracle lawsuit change anything? Protocols are almost explicitly the things that are not protected by copyright. The problem is, people here are confusing interfaces in human-readable code (copyright-eligible) with interfaces for binary interoperability between systems (not eligible).
no dude, not only did they take the code and extend the protocol[1], while attempting to relicense it[2], but then they tried to sue /. to remove posts of people that talked about it[3].
Yes, they used the code itself (which was legal due to the 3-clause license), but didn't credit until publicly shamed. There was a huge stink back in the day because of it.
Oh yeah I just pulled that from a fever dream I had, that sort of thing never happens in real life.
> "Embrace, extend, and extinguish", is a phrase that was used internally by Microsoft to describe its strategy for entering product categories involving widely used standards, extending those standards with proprietary capabilities, and then using those differences to disadvantage its competitors.
I could not find a single example of "permissively licensed software" in there. Nor do in think one exists. Remember, this is the Microsoft that would not touch open source with a 10-foot pole.
MS did embrace and extend standards, but that is a very different thing from code.
> This is wrong. Copyleft licenses are concerned with freedom, not price.
I have long been annoyed by this canard. Yes, someone can create a piece of code, slap a GPL license on it, and charge $10,000 a copy. In the real world, that developer will make exactly $10,000, because their first user is free to share the code with the rest of the world at zero cost.
"Free as in free speech and beer, not just free beer."
FTFY
In that case, the parent could have asked, "Would it outrage you if someone slapped a GUI on your code and released it as freeware?" I think they didn't because even fewer readers would see the harm in that.
> I don't care if somebody gets rich off my software while I don't.
This is either incredibly naive or incredibly stupid. I'll give you the benefit of the doubt and assume the former. To spend your time like most of us do, getting paid to make someone else wealthy, is one thing. Getting paid nothing to make someone else wealthy is little more than voluntary slavery. Don't want/need the money? Fine, then give it to a worthwhile charity and make the world a better place. But at least make your time and effort count for something.
> This is either incredibly naive or incredibly stupid.
In order to interpret that one sentence the way you did, you had to:
- divorce it from the context where the software was released as copyleft
- ignore that person getting wealthy must share their source code
- willfully misinterpret "don't get rich" as "get paid nothing"
- presume that money given to some charity is more of a societal good than software
- presume that that the creation of free software "counts for nothing"
But please do continue to abuse me as "incredibly" naive and/or stupid, and make comparisons to "slavery!" It might not feel like a genuine Hacker News discussion if you didn't.
This is the naive comment. It takes a lot of effort to start a company and make money off of something, even if you didn't make the original version. If people are willing to pay millions of dollars for software, and someone comes along and builds something that fits that demand, then why shouldn't they?
Some people make software for fun, or to help others. If my software helps someone make millions, then cool, good for them. Personally, I would certainly monetize free software I made if I saw the opportunity. However, some people might already be wealthy and want to play with their kids or something instead of chasing a new startup opportunity, so they shouldn't care if someone else makes millions off of their software. You are acting very arrogant when you assume everyone's values line up with yours.
While the style of your comment was acidic, it still remains a psychological fact that people do not value things that are free.
One can be afraid of a perception that since "everybody can code" and "opensource is free as in ... beer? Speech? I don't care, it's free so it's basically worthless" that the intrinsic value of people who code is not that high. This is not a risk in large corps and dedicated software houses but it can create crappy management-employee dynamics in smaller orgs where code is just the enabler for the main product.
That said, it is up to the authors to decide how they feel about the fruits of their labour being used. There is nothing wrong with being generous and embracing all positive externalities - or blocking them or attempting to extract value from them for that matter.
I use the BSD license for all the GPL reasons, plus one more: I am not bothered by the existence of other uses, and do not wish to eradicate them. I don't see them as a threat. The free version of the code is there, and gives users all the same rights as the GPL, and more.
I like all the freedom and sharing as does Stallman. I just don't see proprietary software as evil, and I don't think that if I prevent some code of mine from being proprietized, that I'm striking some blow against proprietary software. If anything, it might backfire: instead of using my quality, debugged code, they will have to choose something else that is perhaps not as good (or worse: whip something up from scratch). Somehow, in some way, that will come back and bite me.
I agree with you. I also feel kindness breeds kindness. I don't give out charity and expect something back. I don't look at it as "hey, I just gave you $100. If you ever do anything you must do the same". I just give the money and walk away. Similarly with my open source, it's all MITed.
Would I feel miffed if someone stole my biggest open source project?Maybe. Would that make me wish I had GPLed it? No.
I also have no idea what the percentages are on influence but my personally belief is MIT/BSD breed more open source than GPL. GPL attempts to breed open source by force. MIT/BSD by kindness. I'd like to think MIT/BSD does better because of that. It makes it easy for people to contribute and or fork and share and not worry their contributions can't be used in their own non open projects. You might see that as less open but I see it as more because their contributions wouldn't exist otherwise.
I think LLVM and all the zillions of things that are being spawned from it are a good example. If it was GPLed I doubt most of those projects would exist.
Speaking of kindness, I work on free code simply to express my creativity to the world, not out of kindness. If I wanted to be kind, I'd go volunteer with kids who have cancer.
I believe copyright is complete rubbish; it's just a legal extension of a sense of entitlement.
Since I believe copyright is rubbish, I must believe that all that is based on it is rubbish, including the GPL. Therefore, I won't use it.
The MIT and BSD licenses are good "interface adapters" between creators who believe copyright is rubbish, and the practical world with its legal framework which insists that there must be copyright.
Stallman also basically believes copyright is rubbish, but he used it to forge the "copyleft" which exploits it for an agenda.
My view is that if you disagree with it, don't wield it.
In my experience, its more like "get your $100, then offer you another $500". I've been offered several jobs to continue working on open source software I've written at companies where that software is being used. In all of those cases I've been allowed to continue opensourcing the changes I've made. For small projects, nobody wants to maintain their own fork.
While I believe there are those who is genuine when saying that, I am a bit burned by all those people who would quickly complain if someone made a patched version of their code and put it under GPL.
Snippets of BSD code have ended up in all kinds of GPLed projects. It would be kind of "rude" to just take a BSD-licensed project in its entirety and re-license it. It's legally questionable too. As someone who isn't the copyright holder, you can't really dictate the license.
In fact, incidentally, I believe that if you integrate BSD-licensed code into a proprietary product (where, say, it is manifested as a translation to machine code), you don't actually own those sections of machine code. They are derived works, governed by the BSD license: anyone can rip that out and use it accordingly. The code has not been turned proprietary at all---it just appears in a form that is difficult to modify and tightly coupled to proprietary code.
Yes, that's just silly. If you allow proprietary use of your code (Microsoft can compile it into a binary and ship it with Windows without source) how can you possibly have a fit over it being used in GPL-ed code.
What I would do is help myself to their patch, if it's worthwhile and backport it to the BSD-licensed version.
The code is my copyright, and the patch is a derived work of something of mine; therefore I own it and it falls under my license.
Not to mention that if you take someone's BSD program, and just slap a GPL on it, it doesn't actually hold. Once the users are aware that it's actually a re-labeled BSD program from another author, they can just go with that license.
>> What I would do is help myself to their patch, if it's worthwhile and backport it to the BSD-licensed version.
>> The code is my copyright, and the patch is a derived work of something of mine; therefore I own it and it falls under my license.
That is completely incorrect. You have no rights to the patch just because it is a derivative work. You have the right to prevent distribution of derivative works (not to own or distribute), but you gave that up with the BSD license which expressly allows it.
You're also wrong about the license of the patch. The author of the patch gets to chose it. For GPL licensed software the condition of redistribution is that all derived works be distributed under the GPL as well. If you don't GPL it, you lose your permission to redistribute the original code and derived works.
BSD and MIT licenses don't include this restriction, so you're shit out of luck with making any claim on that patch.
Are you sure that's correct, from a legal perspective?
If I release an MIT project, someone makes a GPL fork with a significant new feature, wouldn't pulling that feature back into my project make my project GPL?
Someone can't make a "GPL fork" of your MIT-licensed project. The new code they add can be GPL-licensed, but they cannot simply change the licensing of the existing code from MIT to GPL.
You are correct that pulling their GPL-licensed feature/additions into your code would require you to adhere to the GPL and re-license the code. The best you could do would be to ask the author of the changes to release them under the same license (MIT) as your original project so the changes could be incorporated without modifying the license.
>they cannot simply change the licensing of the existing code from MIT to GPL.
That is an issue of contention. GPL advocates believe that they are permitted to do that, and have done so in the past. The Software Freedom Law Centre (the legal arm of the FSF) advices developers that they are permitted to do it[1], as do GPL advocates on HN[2].
The only one who is talking about changing existing code from MIT to GPL is Theo de Raadt, and he has never provided any evidence to support that anyone did it or suggested it.
People can create derivative work from BSD licensed software and have any license they want to added with it. Theo has argued that some peoples bug fixing patches did not qualify for copyright, and he is perfectly free to think so. I doubt however that he would ever put money where his mouth is and test it in court. When silence can qualify for copyright, it is a hard argument to make.
> Permission is hereby granted... to deal in the Software without restriction, including without limitation the rights to... sublicense
Because you have the right to "sublicense", you can take MIT code and license it under another license (GPL) even though you are not the copyright holder.
The BSD license is less clear on this point (in fact this is one of the important differences) and whether the BSD's grant includes the right of sublicense is more debatable, but in my view the answer is "probably".
I am not a lawyer; I am not your lawyer; this is not legal advice.
The BSD license does not grant any sublicensing rights. It clearly says that the notice and disclaimers must be preserved.
The original license required copyright notices in binary code. A newer form does not, but this is for pragmatic reasons. The binary code is still copyrighted. If you decompile it into a source language, then you probably have to restore the copyright notice and disclaimers.
When a proprietary, binary-only program with a highly restrictive EULA contains BSD code, those sections of the machine language which correspond to the BSD code are not actually under the EULA. They are not sublicensed, but only used with permission, as granted by the original license.
> he has never provided any evidence to support that anyone did it or suggested it.
Which part of the patch[0] that removed the BSD license and made the file GPLv2 isn't evidence?
You'll note that the patch removed the lines that say "Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above copyright notice and this permission notice appear in all copies."
In other words they removed the notice that specifically says you're not allowed to remove the notice.
Okey, someone apparently thought they could do it, but then realized better and fixed it. The source today includes the original copyright notice. That they fixed it afterward should point towards what their current believes are, and if they thought their past patch was correct.
Was that version ever distributed to anyone?
I also notice in that thread that the author of Ath5K .c code give explicit permission to "Alternatively, this software may be distributed under the terms of the GNU General Public License". Removing the old license text of the header file and replacing it with GPL might be incorrect, and people are free to argue what a judge would say about it. It just seems very far from an actually issue, any proof of current believes, or what advices FSF gives.
They only fixed it after Theo posted angry messages on the OpenBSD mailing lists about it, the story got posted to Slashdot, it became a huge controversy and the SFLC got involved.
If it was, any proprietary work which are also derivative of the BSD work could then be "pulled" back BSD. People would get really upset if that happened.
Your first sentence is right, the rest is advocating copyright infringement. You have violated the GPL if you take someone else's GPL code and publish it in a BSD program — it's irrelevant that their patch was built on your software, their work is still their copyright exclusively under the law.
> how can you possibly have a fit over it being used in GPL-ed code
Because it's tasteless. Legal, of course, but tasteless. The person doing that is exhibiting a degree of hypocrisy in their refusal to pay it back to the original developer, while demanding that those who use their code pay it back to them. It's a "rules for thee but not for me" type of thing.
> The code is my copyright, and the patch is a derived work of something of mine; therefore I own it and it falls under my license.
This is a misapprehension of how software licensing works.
Not a lawyer, but I think the standard way to do this would be to "clean room" it. You notice that the GPL'd fork made this change, and instead of changing it you write to a co-developer "Our `name` variable is too short; it should be one byte longer. Could you fix this?"
The idea that `name` is short by a byte isn't protected, just the literal code.
(It's quite likely that this particular change is too trivial to be covered by copyright, but the chilling effects reach wide enough here that it might not be worth risking it.)
No you can't. Well, due to fair use you probably could without losing a legal battle over it, but for more substantial improvements you couldn't do that. Presumably you thought about this when choosing the BSD license (or when choosing to contribute to a BSD licensed project).
I believe that any improvements which are such that a source file still has only my name and copyright notice on it fall under the original license.
The original license forbids changing the license:
"Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer."
If you want to appropriate the code as GPL, you better do most of the work in new source files, or else change the file so significantly that (according to your lawyer) you're justified in replacing or altering the original copyright notice.
Anything that has only my name and my copyright notice on it is mine, even if it was modified. Whoever modified it acknowledged that it's mine by preserving the notices. It smells a lot like copyright assignment, and I suspect that very argument would easily succeed in court. I don't see how you can argue with a straight face that A. U. Thor is making an infringing use of your work, by taking an excerpt from a file which is "Copyright 2013 A. U. Thor".
There's nothing stopping a contributor from keeping your copyright notice, and adding his own license that only covers his own modifications. The contributor does not technically need to change the license of _your_ work, but he is free to chose whatever license he likes for his own changes to your code.
You should read phkahler's comment very carefully, because I think it's especially important that people with such strong ties to non-GPL licenses as yourself fully understand these licenses.
I think the point of the GPL is to make a political statement about changing the state of affairs, and it's done remarkably well in that regard.
When you choose GPL you're saying "I believe software should be free"[1]. When you choose BSD you're saying, "here's something I've made; use it as you like". Those are two very different kinds of statements, operating at entirely different levels.
[1]: Of course, not everyone chooses GPL for that reason.
You may want to consider Apache instead of BSD simply because it includes a patent grant where BSD does not. (Which will cause some people to treat your code with suspicion because we live in a world with patent trolls)
The licenses are functionally equivalent in every other way.
I really don't get why people don't just declare their work public domain.
I hate having to dig through and grok licenses to figure out what using some random library does to the precarious legal framework of my project. Developers often engineer software dependencies badly, but we don't bother engineering legal dependencies at all, we just slap them in like new coders copy-pasting from stack overflow.
I see people saying this:
>Licenses like the GPL exist for a reason. And that reason is an attempt to maximize the amount of software that is free.
But mostly I think they are really concerned about this:
>Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing?
It's just another means of jealous control. We bag commercial licenses for stealing developer freedom, and then willfully use licences that deliberately obstruct people from using our work as a foundation for successful entrepreneurial efforts, because we can't handle the idea, even the /mere possibility/, that someone might be more successful with our own project then we are. We even have the nerve to pretend that we're being generous when we do this!
I think it takes guts and trust to really let your work go, but I'd like to see more of it. I also truly believe that making our works public domain will foster innovation now we have tools like github that allow living public domain works. People won't stop contributing just because you aren't forcing them, BSD is proof of that, and I'd be using way more open source libraries and doing way less Not Invented Here if I didn't have to wade through legalese to do so.
I really don't get why people don't just declare their work public domain.
Well there's one very good objective reason not to: it's not clear if you legally can in all jurisdictions. It's not clear that you can just relinquish all IP rights to something. This means that the user of the IP can't be completely sure what they are and are not allowed to do with it, and they may be less inclined to use it than they would a BSD style license where they know what they can't do.
Some public domain desgnations, like CC0, partially get around this problem by including a clause that says that if they can't relinquish all rights, then they'll relinquish as much as is legally possible. This helps, but doesn't completely get around the uncertainty.
But mostly I think they are really concerned about this
Please don't be so quick to pass judgement. First, there are plenty of people who use the GPL to maximize the amount of software that is free, for whom "jealous control" is a secondary objective or completely irrelevant.
Second, there's nothing wrong with what you label "jealous control". If someone is made uneasy by the idea of someone taking their code and "stealing" from them, but they still want to embrace their users' freedoms, and they use the GPL, more power to them.
The only way that the GPL restricts my licensees is by requiring them to not use the fruits of my labor to restrict other people's freedoms. I don't want to be involved in infringing on people's rights like that.
> I really don't get why people don't just declare their work public domain.
Because in many jurisdictions, this is not a thing that can be done. It is not in the author's power. If you want people in those jurisdictions to be able to use your software, you need to provide some sort of license even if you consider the work to be public domain.
Even in jurisdictions when it is possible to do this, it's understandable that hobbyists would still want the protections of the "Don't use my name" and "Don't sue me" parts of 3-clause BSD at the least.
As for GPL, people choose that because they have different priorities than you. For an obvious and topical example, see Richard Stallman. He believes that nonfree software is actively harmful, and therefore takes measures to avoid accidentally supporting its development. You may not agree with this viewpoint, but he is clearly sincere in holding it, and it is his right.
That claim works both ways. If I write a GPL library that you want to use, you could accuse me of wanting to control the library and not letting you use it however you want, but I could just as easily accuse you of wanting to control your resultant application by not wanting to release it under the GPL. If you GPLed your application, there's no licencing headaches.
You could and I bet you would, because you seem like that kind of person, but I wouldn't do that to you so I wish you wouldn't do it to me. That's the jealous control part. Please stop trying to shove your license down my throat with a plunger.
>If you GPLed your application, there's no licencing headaches.
There'd be way less special snowflake implementations of security protocols, login mechanisms and account systems if this wasn't the prevailing attitude in the open source community.
> deliberately obstruct people from using our work as a foundation for successful entrepreneurial efforts
No, the GPL does not do this.
Obeying the requirement to share source code does not necessitate that your profits must evaporate. If your competitor picks up your (A)GPL'd source code? They too then must release their changes.
> because we can't handle the idea, even the /mere possibility/, that someone might be more successful with our own project then we are.
If by "success" you mean "rich," then no. GPL is not concerned with money, it is concerned with the user's freedom to inspect and modify the source code of the software they use.
Go ahead, get rich. Be more popular than me. But if you base your work on mine, I want to see what your software is doing in my computer, or with my information. I want to fix a bug long after you have stopped supporting your software. I want to make the software run on devices that you will never care about. I want all the value and data and time I've spent on your SaaS service to not simply evaporate when your crappy VC-funded startup gets bought and shut down by Facebook.
> People won't stop contributing just because you aren't forcing them, BSD is proof of that,
Yes, some people would still be ethical and contribute back. Many won't. Companies are notoriously sociopathic, especially companies who are legally required to maximize profit for their shareholders, especially companies whose primary goal is return on investment for the VC that funded them.
I don't trust companies to be nice. You want to avoid paying a developer to build a poor NIH mimic of my awesome work? The price is that you must give your users the source code of your changes. I don't care if you get rich in the process. But I reject the implied assertion that you're "obstructed" from doing so.
I really don't get why people don't just declare their work public domain.
It's simple to understand. If it is in the public domain, people can just strip your name from your work. I have always seen the BSD, MIT, and comparable licenses as 'this is effectively in the public domain, but please keep my name on what I wrote, and don't sue me if it causes damage'.
That's why I specifically wrote "credit" rather than copyright notice. If you distribute modified binaries without code (as you can do with BSD/MIT), there's no copyright notice on code to see.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
I would be perfectly fine if everyone declare their work public domain. Free software licenses was an reaction to people who stopped putting their work in public domain and started to deliberately obstruct people from doing changes, running them, and distributing. Some people think you have to restrict those things in order to make a
successful company, and until that changes, I doubt we will return to the time where everyone declared the work public domain.
>Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing?
If he does it with the same license as mine (i.e. GPL), then no, it wouldn't outrage me (I would even be interested in applying to his company, so he teaches me how she did it). What I care about is the freedom of the users of my software (so I want to seal it to not be proprietary, ever), not about how other developers benefit from my creation.
> I really don't get why people don't just declare their work public domain.
Firstly, people do. Secondly, those who do are uninformed. Declaring your work to be "public domain" does not actually place it in the public domain. It in fact remains copyrighted.
Passage into public domain occurs when a copyright expires.
People who declare their work to be in the public domain are doing that because of the simplicity. If you include an all-permissive license and the public domain declaration, it's no longer simple and it's not as simple as an all-permissive license only.
By the way, I completely forgot to mention another reason for avoiding a public domain declaration, and going with a license: namely, liability!
The liability disclaimers in, for instance, the BSD license are important.
In fact, I have come up with a slightly modified BSD license.
My version makes it clear that retaining the license is a condition of redistribution, and that use of the software is subject to agreeing with the disclaimers.
The original BSD license lumps redistribution and use together, and only stipulates that the license not be removed.
All proprietary software EULA's I've ever seen make it clear that you accept the liability disclaimers as a condition of using the software. (E.g. by clicking on some Agree button, or opening a shrinkwrap or whatever.)
The disclaimer part of a freeware license is in fact a use license; they are not strictly redistribution licenses.
(By the way, I don't think it's a good idea to go around customizing de facto standard licenses willy nilly; I thought long and hard before making the decision to fix the BSD license for myself.)
For what it's worth, as someone who currently favours the public domain over copyright for his work, I will say that it's not especially because I think that it's simpler to choose the public domain; it's because I've tried to understand what copyright means and what public domain means and I think that public domain makes more sense and better serves my interests.
In particular, it reflects the fact that I don't think readers of my work should be obliged to follow any rules I might set (license) when they turn to the creation of derived works. They should go and do as they like and, where appropriate, acknowledge prior art (as a matter of professionalism).
I also feel that the problem of associating each "expression" with it's legal creator is a nasty problem fraught with difficulties; certainly, in this regard, you can say that I choose public domain because of its simplicity.
By the way, djb has argued in defence of the public domain here:
Anyway, I'm interested to read other developers views on this topic but I'm no authority and don't want to give the impression that I think it's unreasonable to choose differently. And anyway, most do! GPL, BSD and the rest seem much more popular than public domain.
Even though SQLite is in the public domain and does not require a license, some users want to obtain a license anyway. Possible reasons for obtaining a license include:
* You are using SQLite in a jurisdiction that does not recognize the public domain.
* You are using SQLite in a jurisdiction that does not recognize the right of an author to dedicate their work to the public domain.
* You want to hold a tangible legal document as evidence that you have the legal right to use and distribute SQLite.
* Your legal department tells you that you have to purchase a license.
> We bag commercial licenses for stealing developer freedom,
You have completely missed the point of the F in FOSS. It is not just about developer freedom but user freedom as in all users to modify (or pay to have modified for non-developers) code as they need.
>It's just another means of jealous control. We bag commercial licenses for stealing developer freedom, and then willfully use licences that deliberately obstruct people from using our work as a foundation for successful entrepreneurial efforts, because we can't handle the idea, even the /mere possibility/, that someone might be more successful with our own project then we are. We even have the nerve to pretend that we're being generous when we do this!
The GPL is not strictly about developer freedom, and it doesn't pretend to be. It's about guaranteeing user freedom.
From the GPL's Preamble:
"The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users."
> I hate having to dig through and grok licenses to figure out what using some random library does to the precarious legal framework of my project
For 99% of open source libraries, there is only one yes/no question: Does the whole thing have to be under this licence? i.e. is it a GPL licence or not? I don't think that's too hard.
>> Developers often engineer software dependencies badly, but we don't bother engineering legal dependencies at all, we just slap them in like new coders copy-pasting from stack overflow.
You sound like a legal liability waiting to happen.
Developers absolutely must take licenses into account or just don't use third party software.
Your comment is focused about how terrible the GPL is for you as a developer. But the GPL was not created to make life easy for you as a developer, it was made to increase the freedoms of the end users.
And even the GPL was too short sighted. The "ASP/PHP" loophole exploited by Google and others had a dismal impact in the free software community. They used the code, extended but never shared it. Some sociopathic corporations made BILLIONS on top of it buy contributed back almost nothing. Yes, the glorious Google being the prime example, but there are many others.
And let's not forget the patent trick Oracle pulled on Apache and Google.
I used to be a BSD fan, but from my own experience and some close firends's experience I learned the lesson. I would only release via Affero-GPL from now on. I hope the FSF will eventually bring out a revised version with a more aggressive stance against software patents (e.g. not valid to use if you ever sued anybody with a software patent or something like that).
> I would only release via Affero-GPL from now on.
Fine with me. Do as you please.
Everyone else keep in mind that your potential userbase drops dramatically if you only offer your software under AGPL. Even adding a commercial option in addition makes AGPL more usable.
I always avoid AGPL altogether. The idea that if I change 1 line of code I now have to setup a public repository is just crazy to me. Unless my reading of the AGPL is entirely wrong?
What Oracle patent trick are you talking about? If you're referring to the Java suit (Oracle v. Google), the Federal Circuit didn't issue a decision that found Google in violation of any patents. Google is currently awaiting a response from the Supreme Court to Google's petition to hear the case so that it may find Google's actions to be noninfringing under copyright, not patent law.
FSF and others were safe because they used a GPL-derived IcedTea codebase (earlier Sun code). That license protected from patent abuse and many other things. Apache and Google didn't take that path and it came back to haunt them. There were many threats. If I were Stallman, I would've died of a stroke lauging (ASF was very harsh on FSF/Stallman and anti-GPL).
> FSF and others were safe because they used a GPL-derived IcedTea codebase (earlier Sun code). That license protected from patent abuse
There very definitely isn't any patent indemnification provided by the GPLv2—which is the (only) version in effect for OpenJDK. That fact is a big reason why GPLv3 exists.
> Apache and Google didn't take that path and it came back to haunt them
In what way? This question was the entire point of my last comment, but it remains unanswered.
let's not forget the current systemd loophole, by allowing proprietary applications to bypass GPL restrictions via RPC.
The legally-gifted amongst the free software movement should probably fork GPLv3 to insert a clause about good faith efforts to ensure the application doesn't circumvent the license.
When I choose MIT over GPL I'm usually trying to make my work as easy for others to adopt as possible. I want some of the software I wrote to become a commodity. The MIT seems a clearer path to commoditized software than the GPL.
I think this is for one hyper-specific case that he in fact "okayed" the switch to BSD.
In response to the change of license, Richard Stallman of the Free
Software Foundation says, "I agree. It is wise to make some of the
Ogg Vorbis code available for use in proprietary software, so that
commercial companies doing proprietary software will use it, and help
Vorbis succeed in competition with other formats that would be
restricted against our use.
The problem with the GPL is that it presupposes its own supremacy and refuses to work with other free licenses. Two prime examples are MPL and CDDL (which was based on the MPL). Both of which GNU regards as free software licenses, but says to not use them because they don't bow to the FSF.
The binary in memory linking clause is the most harmful thing to ever happen to free software. It destroys collaboration and restricts user freedom. It causes partisanship and infighting within our communities and prevents good ideas, the best ideas, from being freely shared (breaking both freedoms 2 & 3!). GNU has declared war on other licenses for far less than that.
Can we all admit that the in memory linking clause makes GPL non-free software? We'd all be better off to realize it.
License incompatibility happens when two licenses has different conditions which both need to be happen in order stay in compliance.
Its very easy for a license to fix this. They can either use common conditions, or they do like GPLv3 and have a list of additional conditions which may be added in order to be compatible with other licenses. MPL do not have that, nor does CDDL, and thus we have the situation where they are incompatible with most other copyleft licenses.
I don't see why it's on the CDDL to fix. CDDL is a file based source license, the resulting binaries can be freely linked against binaries with different licenses. Section 3.6 explicitly says so!
The primary difference between MPL 1.1 and CDDL 1.0 with MPL 2.0 is that sections 1.7 and 3.3 of MPLv2 explicitly bow to GPL, a concession made by Mozilla to attempt to end this nonsense. Section 3.7 of MPL 1.0 and 1.1 (3.6 of CDDL) are clauses that imply GPL compatibility, without explicitly naming GPL. That wasn't good enough for the FSF, thus, MPLv2.
MPL was chosen as a template for CDDL because sections 3.7 (CDDL 3.6) gives it a quality like BSD, that the binaries can be larger works with different license terms while the rest of the license retains the copyleft qualities of the source code. Thus, CDDL would have "all the advantages of BSD, all the advantages of GPL".
Any supposed incompatibility is in the legal opinion of the FSF, who never stated their reasons, only the final conclusion, preventing healthy discussion on the matter.
Since the FSF and GNU identify all versions of MPL and CDDL to be "free" and "copyleft", why is the burden on CDDL or MPL? The FSF could have solved this by explicitly naming MPL/CDDL in GPLv3 (as they did with AGPL).
The MPLv2 was specifically designed to be compatible with as many FOSS licenses as possible. It was not possible to make it compatible with GPLv2 however, because the GPLv2 is incompatible with any license that has explicit patent clauses (which I would consider to be a historic accident and a serious issue with GPLv2).
That issue was resolved with a specific section in the MPLv2 that allows licensing the code under (L)GPLv2+/AGPLv3+.
1.12. “Secondary License”
means either the GNU General Public License, Version 2.0, the GNU Lesser General Public License, Version 2.1, the GNU Affero General Public License, Version 3.0, or any later versions of those licenses.
The MPLv1.0/v1.1 allows automatically upgrading to any later version of the MPL, in section "6.2. Effect of New Versions. ". Therefore (IANAL etc.) any code published under MPL is compatible with GPLv2+.
>Both of which GNU regards as free software licenses, but says to not use them because they don't bow to the FSF.
CDDL is and was created with the purpose of being GPL incompatible, because Sun did not want Linux to be able to use ZFS and DTRACE which were technical crown-jewels of Solaris.
>The binary in memory linking clause is the most harmful thing to ever happen to free software.
(usual disclaimer, not a lawyer, etc.). CDDL is file based - basically saying "if you modify this file, and distribute the software, you must provide the source code to the modified files".
Sun's intent (as far as I understand) was to appease OEMs by allowing them add additional files to Solaris (think device drivers, etc.) without requiring them to give away the source to their IP.
Yes that was indeed the case, Sun Solaris was losing hard to Linux and they were trying to go the open source route to get back on track (OpenSolaris), however since they (rather obviously) did not want to hand over their key technology advantages like ZFS and DTrace to Linux (their main competitor to which they were losing), they needed to release them under a non-GPLv2 compatible license to prevent Linux inclusion.
They were initially waiting for GPLv3 to be finalized (which would have been fine since Linux is GPLv2 ONLY) but it took too much time so they created CDDL which was, of course GPL incompatible.
License proliferation was a problem largely supported by the OSI. IMHO there are really only 3 free/open licenses necessary - GPL, LGPL and BSD (or MIT). Anyone else is trying to be open or free while also supporting some other agenda.
If you want it both ways, go dual lincense with GPL and a commercial license. Just be up front and honest about it.
There are a few other variants. Affero, as noted, also the Mozilla Public License, which applies on a file-by-file basis and allows for proprietary code to be integrated into a MozPL licensed work as a whole and distributed.
But otherwise, yes: GPL, LGPL, BSD/MIT are the principle cases.
You're missing a _technical_ reason for using a BSD/MIT license, and one that's been relied on to great effect: to promote use of a standard.
Apache was licensed under the BSD license in part due to philosophical preferences of its creators, but with the effect of promoting HTTP as a standard transport for online documents. Nobody had to ask for permission to use Apache, or to incorporate it into their own products (as IBM did).
Arguably the orginal use of the BSD license, to spread use of Berkeley Unix, achieved similar aims.
From the ideological standpoint:
* If your goal is to promote Free Software, use the GPL (or a variant with stronger ties to distribution for Web or online services).
* If your goal is to promote use of Free Software Libraries, in an environment where there are numerous non-free alternatives, the LGPL has benefits.
* If your goal is to promote use of an open standard, the BSD/MIT licenses are more effective because they allow for proprietary use.
> Licenses like the MIT and BSD license exist for a different reason. And that reason is to give people who want to share what they did on generous terms a way to do so. And historically this was done in the belief that enlightened users would see it as being in their interest to contribute back.
I think the thing that people ignore is that there's a huge incentive to contribute back with licenses like MIT/BSD. The incentive is not having to maintain a set of patches and an in-house fork. Proprietary forks can be expensive (an engineer will have to apply those patches every release -- and engineers are expensive. Not to mention the good ones won't want this kind of work.)
The notion of a company taking a BSD-licensed product and taking it to market while leaving the creator out in the cold seems rare. I won't say it never happens, but for most companies it makes economic sense to contribute back.
It makes economic sense... if you plan to ever update the software (especially more than a small handful of times). For most software, that's a pretty sane assumption, but there's a fairly important niche where it's not: embedded firmware, all the way from the GUI of some random thing-with-a-cheap-LCD to device drivers for flagship Android phones (which are more likely to be in the "small handful" category than "never", but still). In the latter case, even though Linux is under the GPL, at the rate the hardware changes there is often little incentive to contribute back to mainline. Or fulfill GPL obligations at all, for that matter - but at least most big Western manufacturers have some place to get a source dump. If Linux were BSD-licensed, things would be even worse.
On the contrary, out of all the free OSes out there, it was Linux with GPL the most successful, because companies could contribute back knowing that their competitors would not take the code and run away and produce proprietary forks backed by large marketings budgets.
See FreeBSD and Mac OS. If I contribute to Darwin, Apple will take my changes to improve their product. I get nothing in return. This may be fine for an individual, but for a company who depends on a product, it's a bad scenario.
I write open source application security software (e.g. https://github.com/paragonie/easydb) and use a very permissive license to encourage the wider adoption of better practices.
I don't care if I make some schmuck billions of dollars off my work while I suffer through poverty (which won't happen from a simple DB library), I care about making the Internet more secure, even if only a little.
> However, for everything else, I'm inclined to use GPLv3 / AGPL and offer commercial licensing under MIT for companies
Do you actually use MIT, or something similarly permissive but without permission to redistribute in source form? Because offering a true MIT license to paying customers means they could then redistribute that version to everyone. (Of course, doing so might mean they don't get any future versions from you under that license, but still...)
For example with libogg he was primarily concerned that the world would get locked into proprietary video code that was patent encumbered. (An issue which has happened a number of times. For example at various points free software had trouble with patents on things like the compression algorithm used by the gif format, and the RSA algorithm used in encryption. Both are thankfully long expired now. But video encodings in particular have a ton of patent issues.)
For instance, the Gnu Public License serves the needs of Oracle very well and quite possibly helped MySQL AB be salable to Sun and thus to Oracle.
Most of us who use MySQL are limited by the GPL, whereas Oracle has the right to use it in other ways, license it to specific customers on different terms, etc.
That's why Stallman prefers distributed code copyright: if contributors own their contributions, then dual-licensing won't work. On the other hand, this prevented a project like the linux kernel from moving to gplv3 since the distributed corpus of contributors could not all agree to switch.
Historically the FSF required copyright assignment for FSF works. This was to avoid having any potential problems where a contributor thought they were OK to contribute, but the employer potentially had a "work for hire" claim. (The ease with which such claims can exist varies by local law, and many are not aware of the fact that they have such a liability.)
Historically the FSF required copyright assignment for FSF works. This was to avoid having any potential problems where a contributor thought they were OK to contribute, but the employer potentially had a "work for hire" claim.
How would that work? If you don't have the legal standing to contribute to the project, you certainly can't reassign the copyright to another party.
The copyright assignment is so that the FSF can sue if someone break the project's license. They also require a disclaimer that the work isn't for-hire, but that's a different issue.
The process of getting the employer disclaimer mentioned in your link exists exactly to catch cases where the contributor was mistaken about their ability to legally contribute.
There is a third path, like that of the OpenStreetMap project. Originally it was released under a CC-BY-SA licence, but in 2012 was changed. As many users as possible were contacted and asked to agree or decline the new licence (ODbL). Eventually some data had to be deleted.
In response there is a Contributor Terms for all people wishing to add to OSM, which allows the OSM Foundation the right to relicence to a new free and open licence that 2/3 of active contributors agree to.
This means the copyright is owned by many people, not one organisation/company, but that there is a way to relicence without requring 100% acceptance.
> On the other hand, this prevented a project like the linux kernel from moving to gplv3 since the distributed corpus of contributors could not all agree to switch.
That's not enitrely true.
If I remember correctly Linus himself does not like the GPLv3 and opposes its use for the Linux kernel.
Basically his argument is that the changes and new restrictions imposed by GPLv3 in practice makes it a new kind of license, but that the naming seems designed to "lure" people who think it's a regular license upgrade into adopting a license they would otherwise not consider using.
I'm not sure if this is in writing anywhere, but I recall him talking about this on the same Debconf where he admitted that he had never managed to install Debian Linux.
So moving the Linux kernel to GPLv3 may not be entirely trivial, but that's not the reason it hasn't been done. Linus simply didn't want to.
Yes, the GPL comes in two flavors. If copyright is assigned to one holder, than that holder has special rights. Linux does things differently, so much that Linux can't possibly be dual licensed.
MySQL and Linux have both been big successes as well as Apache Hadoop, which is under an Apache license. There are a lot of choices that can work out fine for open source.
>Licenses like the GPL exist for a reason. And that reason is an attempt to maximize the amount of software that is free.
Does that work well out in practice though?
I think companies are much more likely to work with and contribute to open source programs if they are MIT/BSD/Apache.
>The result was that people who used generous licenses got frustrated that others would come along, use their software, criticize the original author for "not protecting freedom", then create a modified version that the original author was not free to use as they wish!
In 2015 most of the internet is running on free applications running on top of free operating systems and commercial companies are spending billions to maintain this situation. If you had predicted that circa 1990, you would have been dismissed as a lunatic. So something resembling success has happened for the free software movement. And no matter how you ascribe credit, it is hard to say that it would have happened without RMS.
How many cases has that happened?
A lot, but you don't hear about it if you're not swimming upstream trying to maintain code under a generous license. For a random example where it boiled out in public, see http://lwn.net/Articles/247872/.
So, OpenWRT (https://openwrt.org/) exists only because of the FSF enforcing the GPL. A non-complient company tried to unlawfully withhold it, and only because the GPL has some teeth did it actually end up with the source available.
I'd rephrase parent's statement to "that reason is an attempt to maximize the relative amount of software that is free."
So, if with BSD/MIT you'd end up with a few more contributions, but you'd also help a few companies build proprietary software that restricts their users, it's better to use GPL since fewer users end up being restricted by proprietary software.
And yes, I know that the users have the choice to not use proprietary software, but regardless of that discussion, that still doesn't mean you should help that happen.
> * Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing? Well then, you shouldn't use a BSD license.*
Pedantically, with the GPL, that could happen. However it'll be a GPLed GUI programme. That sort of business, selling units of software, doesn't like when customers can just copy the software and sell it themselves (so GPL would kill that business models), however many non-technical consumers would not know that they could do that, or have the business acumen to pull it off. We often say execution is important for a business, so does the GPL matter much for that?
It is entirely possible to use AGPL code commerically. You just have to give a copy of the source code to your user. This is no different from RMS selling copies of Emacs and giving the customers the code afterwards.
I could be wrong, but I think if you communicate with the GPL application using the command line under the hood, the application doesn't fall under the GPL either; which I think is how the closed source applications that provide a Git frontend work
I hate it when people repeat gossip without actually knowing what they're talking about, but here I go doing that very thing!
My ignorant understanding of this issue is that it has not been tested in court, and there are differing opinions about whether or not the strategy you describe is open to legal action.
In the GPL v2.0, there's some language in section 2 that suggests that if you ship your closed-source app with the open-source app, then you're licensing both under the GPL. GPL2 isn't super clear on the issue.
In GPL 3.0, there's a lot of language in section 1 about "Corresponding Source" which I believe was believed by the authors to specifically close the loophole you describe.
So, if I were trying to obey the letter of the law religiously, I wouldn't do what you describe. And if I was trying to obey the _spirit_ of the law, I'd do what a previous employer of mine did: personally contact the authors of the GPL code in question and verbally ask for permission.
> In the GPL v2.0, there's some language in section 2 that suggests that if you ship your closed-source app with the open-source app, then you're licensing both under the GPL. GPL2 isn't super clear on the issue.
That's unequivocally false.
It's not even a matter of GPLv2 making vague suggestions or being unclear. It's explicit and says the exact opposite of what you've written.
You can ship closed source apps and free software together. If that wasn't the case, then none of the Linux-based consumer devices that ship with proprietary userland would be able to exist.
You certainly can ship non-free software and free software together, in the general case. I was, of course, talking about the context of the parent comment, which was about (non-free) software that, as a fundamental part of its operation, use free software via a well-defined non-link-time interface. Such as, for example, a GUI text-search tool that, to do its fundamental work, shells out to gnu grep.
My understanding is that the relevant part of the GPLv2 is (with emphasis mine):
"If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it."
I honestly agree it's pretty explicit, but disagree with you about what it says.
IANAL, but I have heard the analysis I gave from two independent sources, one of whom is a lawyer specializing in IP law, and the other of whom used to work with the FSF on policy issues.
As I say, my understanding (given to me by the aforementioned lawyer) is that this has not been tested in court.
> When you choose a license, you should choose correctly for what you want to have happen. Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing? Well then, you shouldn't use a BSD license. By contrast you shouldn't use the GPL if your response would be, "Bully for them, I had fun and they made the world better."
BSD or GPL equally won't get you a dime, this example is flawed. The difference is that with GPL they must redistribute whatever modification they did (unless they are providing a "service", then you had to protect the code with AGPL).
> It is their code with their choice of license chosen for their reasons. Respect that.
If I may offer one addition to this: if you intend for your software to be open source, please use a recognized open source license, rather than rolling your own. Doing so makes it much easier for outside parties to understand how you would like them to interact with your software.
>Licenses like the MIT and BSD license exist for a different reason. And that reason is to give people who want to share what they did on generous terms a way to do so. And historically this was done in the belief that enlightened users would see it as being in their interest to contribute back.
And this works on an individual level, but once corporate bureaucracy gets involved it tends to turn into "why would we give away proprietary code?". GPL has its flaws, but it helps to fight short-sightedness.
> When you choose a license, you should choose correctly for what you want to have happen. Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing? Well then, you shouldn't use a BSD license.
Which license you should use? I thought licenses does not discriminate wether you use it for personal use or commercial use. Sorry, newb here.
I love Stallman because he takes the very very long view and has shown himself to be remarkably adaptable over time. The battles he's fighting today are the same as they were 30 years ago, and they're still relevant. He's an anchor to a world that would be very much unmoored without him.
I prefer permissive licenses like BSD/MIT over GPL for every project I work on/use, but I'm glad Stallman is around. He frames the issue, moors it as you said.
Weird analogy perhaps, but MLK was acceptable to the establishment partially because you had more extreme individuals like Malcolm X. RMS makes permissive licenses acceptable because he's suggesting something more radical.
I admire Richard Stallman and believe that his efforts are among the most important contributions to practical ethics in the last 50 years...yet [and we knew there had to be one] the issue I have with the GNU license is that it is a license. It's use relies on all the same implicit threat of state sanctioned violence and its infrastructure as its closed proprietary opposites. The GNU license is meaningless without modern intellectual property focused trade agreements to provide teeth when there is a violation.
The GNU license is inherently litigious. That's the nature of licensing. Alternative licenses are also de jure, but some are de facto non-litigious by virtue of permissiveness. The primary contract for a GNU license is legal and the social contract is secondary...I'm not giving back when I am coerced by the threat of legal sanction into the act. Gifts don't come with strings attached, and it is reasonable for someone to hold the ethical belief that true giving means placing creative works in the public domain.
Which is to say that GNU lies on a spectrum and reflects some noble ethical values and not others. Among those ethical values GNU does not reflect are many that deem an intellectual property infrastructure backed by state sanctioned violence on behalf of wealth [e.g. music downloader prosecutions] worse than actions which GNU's copyleft prohibits.
I'd argue rather it's copyright law that is "inherently litigious", and that mechanism wasn't selected by Stallman. It was selected by those who began entailing it to source code, in contrast to the earlier ecosystem that RMS came up in: where hardware was often considered a commercial product, but software was near-universally treated as simple technical information of a similar order to academic papers. Most early manufacturers shipped the source code with the product, and were delighted if customers wrote or modified code, as it increased the value of their actual commercial product: the hardware.
I understand the view that state sanctioned violence is bad. But right now, this is not our biggest problem. Corporate violence is.
Granted, states do give corporation power by enforcing laws that suits them. But they also keep them in check: there are anti-monopoly laws, people aren't allowed to enslave themselves by contract… Let's get rid of corporations before we get rid of the state.
This is why I have absolutely no problem with the GPL. The only meaningful way to infringe it is to use GPL code to make proprietary stuff. Presumably to make money —wait, no, to extract money. The worst potential offenders would be big corporations, who can do many bad things with proprietary (or secret) software. I mean, just look at Gmail: its purpose it for Google to read your e-mail so it can send you more effective ads. (I know no Google employee will actually read your email. It's all automated. Which makes things worse: if you can search for unicyclists to sell them juggling balls, you can search for dissenters to rat them out.)
In our ongoing fight against power-hungry corporations, the GPL is at worst a necessary evil. We need state sanctioned violence to prevent the likes of Apple, Microsoft, or Monsanto from enslaving us all. It's a double edged sword, but it's the only one we've got. (I'd like to avoid contemplating the more… direct approaches for now.)
Indeed, Richard Stallman is self-described "not an Anarchist".
So? Anarchism has lots of neat ideas and is right about a lot of philosophical things. It's a daunting challenge to convince anyone that it could practically work. On a large scale, it remains only theoretical discussion divorced from reality.
The Hobbesian model of freedom sanctions sovereign violence solely for the purpose of keeping the peace. There is no higher level sanction based on morality. Proprietary software licensing and copyleft licensing are not ajudged against some platonic ideal but only upon their keeping or destroying the peace. There's no deductive proof of inherent goodness, only moment by moment induction. TANSTAAFL.
TANSTAAFL is only true in the broadest sense about opportunity cost, as in I can only live once. Any stronger interpretation doesn't hold true.
Anyway, philosophy philosophy philosophy. It is interesting, may or may not be valid, does inform real life… but it's not the same as discussing the actual details of practical life. GPL lives in real-world social context, less abstract than all this other stuff.
The difference is most noticeable when a console or phone has open source software running which one can't modify, run or distribute because of DRM or patents.
The software might be of better quality because it uses a common shared base, but as a user I have a hard time valuing it above proprietary developed software.
I appreciate Stallman's views and agree with many of them but I just wish a slightly different word was chosen for the free in "free software". Now you have a situation where you need to correct an understandable misconception for the layperson almost everytime free software comes up.
Agree completely. I understand the deeper issues and concepts being discussed - because I'm the kind of person that happily takes time out of my weekend to re-read Stallman essays from 2007. However, as a SaaS startup trying to communicate with non-geek end users about our AGPL-licensed FLOSS product, we have found the misunderstandings caused by the term "free" insurmountable.
Our choices are to use "open source", which more or less gets it across to lay people completely unaware of the subtleties, use "free software" and then launch into some long-form explanation of why we also charge money (of course anyone can grab the code for free and run their own instance but most of our customers don't care about any of that), or say FLOSS or Libre and it's totally unintelligible to most people and they stop paying attention before we've gotten anywhere.
Unfortunately I don't think this problem will be constructively progressed until it evolves past the realm of geeks arguing about it amongst themselves, and actually is approached as a marketing issue. Perhaps the reason the debate is still festering is there hasn't been much alignment of incentives between the marketers and the geeks to work together on it, because most software companies don't try to mutually hold the values of Free Software and commercial profit. But we won't see Free Software and its underpinning values go mainstream until that happens, and I think it would be good for everyone if it did.
This is one of the reasons people in the Free Software community have been recently shifting away from wording like "free as in freedom", "Free and Open Source Software"/FOSS in favor of the use of the word "libre", "Free and Libre Open Source Software"/FLOSS
Introducing more arbitrary jargon isn't going to make the distinction any more clear to a layperson, but if you do choose a neologism "libre" is just plain awkward.
I disagree, I think it's better to have a term that requires explanation than a term people will misinterpret. There's an existing connotation of free as $0 that you have to combat, rather than a simple new word/term to define.
I'm not sure calling it a "neologism" is accurate. It's a borrowed word that has a clearer meaning than anything in English. Such a thing is hardly unprecedented in English.
This may be because I'm from quebec, but this is perfectly fine for me, its a word that is much more precise, since if the word does not have a proper translation, its a better idea to use the external, but uniquevocal, word.
A point that doesn't often get brought up in this discussion is that $0 software was virtually nonexistent at the time of the founding of the free software movement. In the internet's infancy, when software was still delivered on physical media, it made little sense to give software away for free because the shipping and material costs would drive the cost to the user significantly above $0.
Not that there wasn't ever software given away for free. There was source code published in magazines for the user to type in and compile for themselves, and there were friendly neighbors who would give you a program that they wrote for free. Even in the earliest years of the internet, people were sending their programs for free over the network.
But in a way, free-as-in-speech software predates free-as-in-beer software.
Actually, software was free at one point. Given without extra cost with the hardware. The concept of piracy wasn't an issue when the number of computers that could run the software ran in the two or three digits (maybe even four digits worth of computers). Also, without software already existing, those multi-million dollar computers wouldn't be worth the price.
This started changing when computers became plentiful enough to sell to a mass market. Bill Gates certainly saw the profit in selling only software (I'm not saying he was the first to do so, but I do suspect he was among the first to do so).
Use a common word with positive meaning in your movement to cause confusion and they try to own the word.
It also easier to make your opponent looks bad.
Saying a software isn't "free" makes other people feel like the software is bad when, in fact, it's only not their movement's definition of free.
Saying a software isn't "free" makes other people feel like the software is bad
Really? I've never seen that, except when the "other people" understand that to mean it doesn't fit the FSF's definition. People who don't know about the FSF's definition would just think it's paid software, not "bad", in my experience.
What software are you thinking that is considered "free" (and not in the sense of cost) by some people but doesn't fit the FSF's definition?
Should have been the "Software Freedom Foundation"
Software Freedom is a great term, but just works in some grammatical contexts. You can otherwise say "free/libre" or "free/libre/open" or "freedom-respecting"…
My issue with free software is the ideology. I tend to have mixed feelings about movements that claim to absolutely know what's good for humanity, no matter how noble the cause. I believe that if given the power to reach their goals we'd notice that a fraction of that same humanity will still end up suffering some consequences. Unless you can acknowledge that I cannot be a firm supporter.
In the context of software, I'm more comfortable with open source because it has shown that it is aware of the "it depends" nature of the field today, and is capable to adapt to get to 60% of the goals _right now_ by reaching some compromises, rather than going nowhere because of principles.
Some open source licenses can indeed be too restrictive, but as Stallman says himself Fortunately, few programs use such licenses. However, depending on your point of view free software as an ideology can also be too restrictive.
Change is gradual and happens over time, but you need to give a chance to different parties to warm up to unfamiliar ideas. Open source accomplishes this. Free software as an ideology does too, albeit at a much slower pace.
I think it's Max Planck who observed that (I'm paraphrasing) the world doesn't change because old smart people tend to warm up to new ideas, it does because as they die out, growing generations are familiarized with these same new ideas from the start. As I see more startups (and new executives from old companies) embracing open source, I have to concur.
I understand Stallman's advocacy here and am even glad that it has perdured the way it has. It is a reminder of an ideal world towards which I feel open source actually strives to get. I'm still personally convinced that open source will be able to more successfully reach these goals with its flexibility than free software would with its rigidness.
I think a lot of this depends on what you place the most value in. While agreeing that the things RMS/GNU/FSF value are worthwhile and important, I place a higher value on "quality" and wide adaptation.
You understate things a bit. In the view of rms every aspect of a software project is a sacrifice on the altar of the GPL, if necessary.
It makes sense to have that policy when your goal is eradication of copyright, which is a goal quite a few people do share with the FSF. The trouble is, that's a destructive goal, and software is a creative enterprise, so things are fundamentally at odds and weird results happen, such as the refusal to allow a modular structure in GCC to prevent undesirable uses. A strange definition of freedom indeed!
The FSF's goal in essence is copyleft. Copyleft requires copyright law in order to work. As such, the FSF certainly does not intend to eradicate copyright, very much the opposite is true.
I'd go even further than that. For RMS he'd rather a problem not be solved using computers at all, if solving the problem with computers would require or even just enable non-free software.
The most recent example of this was the debate over refactoring tools in emacs that used an AST generated by gcc. RMS was against this, even though all the code involved was free, because it would mean exposing the AST generated by gcc to external processes, some of which might be non-free. So he'd rather people not have refactoring tools at all, than enable the possibility of a non-free IDE existing that uses the AST from gcc.
I think the cause would be better served if RMS would stop calling it "free" software and stop with the speech/beer analogy. As hilarious as the wordplay may be, most people simply don't get it.
The other irony is that GPL is not even free (as in speech) either, it imposes rather strict conditions.
I doubt that he is going for wordplay. Rather, he is trying to convey that it's not the price he is talking about when he says "free", but "freedom". And it's a simple example that makes the distinction and sticks. Maybe he should've called it "Freedom Software"?
Regarding "it imposes rather strict conditions": Yes, it imposes the condition that the user of the software retain their freedoms with respect to the software.
Software freedom is a double-edged sword: to have it, you have to restrict other people's freedom to take it away from you.
I actually do release some code under GPL, but it's when I want those restrictions in order to prevent certain types of commercial usage (and of course when my code uses or is based on GPL code). But I certainly don't consider it to be free in any way except free as in beer.
The GPL is a user-friendly license, not a developer-friendly license. It restricts your ability to restrict the user from doing what they want with the software.
Recall that the GPL started because RMS was a user of a particular type of printer and the printer driver was bad. He was a user of the software yet he couldn't have it fixed (well, he could if the company that wrote the driver did the fix).
I feel like you get the explanation reversed - everyone gets it, but it's just not that funny. Jokes that aren't funny are off-putting, not attractive.
I should have added *sarcasm regarding the funny part.
I have to disagree though, most users have no clue what that means other than it costs them nothing. And many developers simply ignore and violate the terms because they don't understand the restrictions.
it's not even supposed to be a funny joke. It's just an idea, "think free as in speech, not as in bear" is a plain thing to say just explaining which definition of the word is meant. It's not a joke or clever.
I continue to have a radically different opinion on what free means from Stallman. And that's fine! I've warmed up slightly to his viewpoint over time. Not enough to touch GPL software with a 10 foot pole. But slightly warmer none the less. I'm even glad he's out there vocalizing his view. That's generally a good thing. In the meantime I, and seemingly most of the community, will continue to use and push MIT style licenses.
Besides the fact that there is a lot of GPL-licensed software out there, what makes all this software so abhorrent to you that you wouldn't even come near to it?
I can't help but think that the spirit of free software, namely control over your computing/computer, is more relevant today than it ever has been. Just that the problem doesn't really seem to be in any particular computer program... It's a shame that even the FSF has no solution for web services that make mass surveillance possible.
Or Free Software misses the point of Open Source -- Open Source isn't just Free Software done wrong, it's done by people with different motivations and values than Stallman.
Once again, I find myself not agreeing with Stollman, but having an utmost level of respect for his level of arguments and rhetoric. I wish that people whose opinion I actually share could support these opinions in such an intelligent manner.
I sometimes think that RMS is to a certain extent the victim of the "the first task of a successful revolution is to kill all the leaders of the revolution" effect. Raymond and others sort of hijacked what was essentially a political philosophy and dressed it up for commercial palatability. (Full disclosure: I am NOT an ESR fan, which tends to colour my view of the events, despite not really sharing RMS's deep concerns---or, at least not his energy for them.)
Reading Stallman these days always gives me such mixed feelings. I appreciate the fuck out of all the work he's done for the software community, and admire his courage and willingness to stand out. Overall, I think his agenda to keep the power of computing available to everybody is extremely important. Now more than ever, with computers everywhere and internet of things seemingly just over the horizon.
But these terminological squabbles seem to me like the worst kind of bikeshedding. Open source may have began as a way to depoliticize free software, but the battle has ended and "open source" has won. People who are not advanced computer users have never heard of "Free Software," the FSF, GNU, or Richard Stallman. On the other hand, "open source" software has some name recognition among folks like, say, my mother. Young developers (such as myself), have discovered Free Software through an original interest in "open source."
With that in mind, I think it would make sense to just use the terminology people are comfortable with, and continue making the same distinction by promoting "ethical open source" or "permissive open source" or something like that. If the worry really is that the language around open source is everywhere scrubbed of the original free software ethos (I'm not too sure about that), a sensible move would be counter that by staking out a corner of "open source" and using it to promote ethical software. Chastising people for the way they speak just sows hostility among potential friends.
Stallman always talks about the importance of language, and Orwell's shadow is clearly visible over these rants. But "open source" isn't euphamistic doublespeak - it's not inherently more difficult to think about ethical software when you call it open source instead of free. From an outside perspective, the only difference is that "free software" has a confusing double meaning that "open source" doesn't. Free software (or whatever) already is fighting a battle for relevance. Why choose an uphill battle?
FOOTNOTE: The fact that Stallman's pet terminology is always linked to his personal organizations also damages his credibility. It makes it easy to dismiss him as sour grapes. I personally think he deserves recognition, but then again, there's no shortage of software named after GNU...
After the rhetorical dust settles, the fact remains that GPL-licensed software gives me less freedom than the same software licensed under an MIT/BSD style license. The latter allows me to create and distribute a closed-source, proprietary version; the former prohibits that.
There is a reason the MIT/BSD style licenses are typically referred to as "more permissive" &/or "less restrictive".
When I download a piece of code under the BSD license, I am the user. I am free to do whatever I please with that code, including to modify it, and release the modifications under a different license (ie executable only, heavy DRM, whatever).
Anyone is still free to use the original release under the original license. They can modify it, improve it, and perhaps release those changes again under the BSD license. No one has lost any freedoms at all under these scenarios.
What RMS and cohorts really want is not freedom the way it is usually understood. As he explains clearly, he wants a world without reliance on any proprietary, "non-free" (by his definition) software. By extension, the free software crowd is basically against the concept of intellectual property in its entirety.
What the GPL does is create a scenario where users are restricted from ever creating modified versions of the software licensed under terms of their choosing. The viral nature of the license forces users to continue enforcing those restrictions on all descendent versions of the software. The goal, quite clearly, is to foster a world of software that is fundamentally impossible to "sell" commercially in any shape or form. The new restrictions on patents and services in the AGPL3 make this agenda strikingly clear.
In the world I inhabit, permissive licensing frankly provides a way for a multiplicity of parties to communally build things of potential use to all members of the community. However, it does not restrict those members from branching off the communal tree for profit or any other reason. The collective work stands as a sort of "commons" that all farmers can allow their cattle to graze on. However it also allows for each farmer to maintain private grazing lands in addition to the commons.
Yes, in such a scenario some farmers could game the system by over-grazing -- in the analogy, that would mean taking lots of code and never giving back. Naively it would seem the GPL approach is better for disallowing this selfish behavior. But in the real world, the price for such draconian policing is the inability of anyone to create a reasonable business case for developing software -- no one can ever profit from the work they contributed. Richard Stallman may be fine with that scenario (I understand he was born wealthy), but it doesn't work for anyone who has to sling code for a living.
I think both stances have merit. Anyways, here's a plug for a meta-project; an open source definition of open source; https://github.com/nickdesaulniers/What-Open-Source-Means-To... kind of surprised no one has split hairs over free vs open source, yet.
There's a powerful part of the "free software" ideology that's not explained well at all here - the GPL helps to force non-free software out of the market. Unlike, say MIT which can help non-free software get a leg up over free software. This part is kind of aggressive and can be seen as negative, which I imagine is why the FSF doesn't directly address it much.
Eitherway, it will be difficult for some lonely, hard working programmer to release some code and attract contributors or make money out of it.
This debate is just about politics of business and project management regarding the law, nothing more really.
I don't like this debate, because its political nature does not have so much importance nor relevance. If you don't make money thanks to a project, you still need some time to work on it, and if it doesn't bring you money, how can conciliate this project and a paying job ? Unless your company understands open source and agrees to attract contributors, but what if you can't find any ?
There are not so many programmers like Linus Torvalds out there who can really make it like he did. He is the best example open source has, but I think citing linux over and over to praise the open source model is really dishonest.
Writing decent quality, open source software is really hard in term of management and business. There is not a lot of money to make in open source, or else it's pretty difficult to find a way to monetize it. You must be talented, find a network, and still find a source of income.
It's pretty much like research. If you have time and food, go for it, but nothing will build a project better and faster than investors full of cash and NDAs.
Nobody cares about open source or free software. Everyone just want to work in the industry, have a career, some colleagues, and not get screwed by lawyers. Open source will drive away lawyers, but it might also drive away cash. Not everybody can just code at home, without any income or on welfare, and just hope to become like carmack or torvalds.
It's true that computer software is spoiled by money, but it's not specific to software.
> Nobody cares about open source or free software. Everyone just want to work in the industry, have a career, some colleagues, and not get screwed by lawyers. Open source will drive away lawyers, but it might also drive away cash. Not everybody can just code at home, without any income or on welfare, and just hope to become like carmack or torvalds.
This paragraph is utterly incorrect in a way I find almost senseless. It's almost like trolls from the 90s wrote it for you. I mean that in a technical sense, I'm not trying to disparage you. It's just a point of view I haven't seen espoused in over a decade.
It's not totally wrong though is it. For the most part selling shrink-wrapped software is dead (compared to the 90s), because end users expect native software to be free (in both senses, although the beer sense is probably the more important). The only real exception is B2B software and games. It's why the vast majority of developers younger than about 30 are either working on internal corporate software or on SaaS web apps.
Nobody will graduate from university with a CS degree in 2015 thinking that they will sell software directly to people. Those graduates will dream of creating or working for a web service supported by ads or subscriptions. It won't be any more 'free', in fact it will probably be much worse than the shrink-wrapped proprietary software of the 90s (your data controlled by a 3rd party server, tracking for ads, no ability to stick with old versions, software stops working when the server goes down etc). But despite that it feels more morally acceptable to people to work on SaaS, and I think the way freedom is framed by the GPL is a big part of that. People who work at Facebook or AirBnB or Twitter or Google don't view themselves as evil merchants of proprietary software. They see themselves as socially aware employees of modern companies who 'get it' and support open source and free software - look how much open source code facebook and google gift to the world!
The marketing push towards open source was a mind blowing runaway success. It killed the most profitable industry ever seen in human history and replaced it with an even more profitable subscription service where a non trivial amount of the work is done for free by volunteers. This hasn't impacted developer employment because the overall industry has grown due to the huge number of SaaS companies springing up every day. It remains to be seen if that's sustainable. (There's enough profitable B2B SaaS subscriptions based companies to mean it probably is, overall, but the ad supported consumer sector is a bit scary, at least from an outside perspective).
You should try to think about the software industry and how code gets written and then used.
The quantity of low quality code that gets deleted is just enormous.
The world runs on money. If your code doesn't get sold, it's being sold in other ways, which are not accounted, but the results are the same.
I'm not against open source, but I'm just saying that software patents are ruining the software industry, and open source doesn't solve that problem. It fights it, but it doesn't solve it.
The thriving open source community that has been in existence for the last two decades, run and supported by (mostly) otherwise employed engineers, and used in countless business support areas worldwide, is the most amazingly obvious evidence against it. It is so large an elephant in that paragraph's room that I'm not sure how anyone could miss it.
I was making the point that open source is not a competitive way to do business, it's essentially giving away to other programmers of other companies, and it's fine if everyone is making money, but it's not always the case.
Investors will want to own something like patents or source code. I'm not saying it's not impossible, I'm just saying it's only viable in a minority of cases, because capitalism and business management works that way, even if I don't like it for other reasons (patent trolls).
What bothers me the most, is that open source or free software is not a proper way to employ people and build businesses. Writing software requires time and efforts. You're giving the example of employed engineers, but what about the rest ? Engineers are a minority of programmers, they're employed, what about the unemployed who want to make something? Just contribute some patches and hope for an interview ? Sitting in front of a computer for hours won't land you food if you're not paid for it.
You talk about community, but honestly I don't really cares about the community. I care about technological progress, competitiveness, and people able to have a career in the industry. A community can be pretty exclusive.
We don't hear much about them, but most software is actually custom software. Only a tiny fraction of software enjoys wide distribution. Operating systems and Web browsers for instance are a minuscule niche, in terms of development effort. They just have a disproportionate impact.
Writing decent quality Free Software is easy: write custom software. Just give them the source code, and assign copyright to them. Or, give them a GPL (or BSD) licensed copy. Depending on the specifics, the software may not be free for you. But it will be free for its sole user, which is what matters.
I'm sure this has been discussed many times, but instead of saying "free software, that means free as in freedom, not free as in free beer", why not just call it "freedom software"?
In Swedish copyright, we have a copy tax which grants me the right to make private copies. If DRM is about rights, we should then see all rights associated with copyright to be managed by it.
But in practice DRM only restricts access to copyrighted works, including overriding rights which the state has granted me. If it managed rights, it does so faulty. If it manage restrictions, it does so correctly. The name then either reflect programmers that create faulty systems, or it is a incorrect name made in order to market something as better than it is.
In Germany you also have the right to copy copyrighted works for private use, say, to give a copy to your parents, your brother or your best friend. You are even allowed to study and remove DRM if it stops you to do so. That is perfectly legal.
Not every country has those rules and that's okay, but it's outragous when other countries bully yours to adopt their copyright laws. Besides that they also spy on you.
Even when that name is more representative of what it actually accomplishes?
"Rights" is a misnomer. There are no "rights" being managed, it's all about restrictions. You don't add DRM to something to make it more open, you add DRM to make it more restricted.
The original name is some impressive marketing doublethink on the part of whoever coined the name, IMO.
I agree with you that the new name is more representative, and I am a fan of using the new name, and I disagree with aaronbrethorst's comment.
But you're just flat wrong that there are no rights being managed. The right that is being managed is the only right of copyright: the right of the "owner" of some "property" to restrict the copying done by other parties. (the scare-quotes are there because I dispute the idea that "IP" is actually property)
"Rights" always make things more restricted than their absence; they restrict what people can do. Any right you might consider does not in fact guarantee that the entitled party actually gets the thing they have a right to; it only makes it illegal for other people (or governments or non-natural persons) to violate those rights. Right to freedom of movement doesn't give you the ability to cross oceans nor walk through walls, it only makes it illegal for others to put walls deliberately in your path. Etc.
It's not childish and silly at all. DRM is Digital Restrictions Management. That's what it is. It isn't an institution or a program code or anything, it's literally just language summarized. It's not like USA, it's more like LOL and AFK. Adapting it to a more accurate meaning is perfectly fine.
but here's the absurdity of free software. you got someone spending thousands of hours writing it and releases it. then you got hordes of freeloaders who bitch and moan about missing features and bugs for something they didn't pay for.
So lot of developers try different ways like cyber-begging (donations), licensing, selling support which tends to only work for people who have reached critical mass where for majority of projects and software nobody bats an eye. and in closed free software (bundling malware, ads, annoying features). The latest is crowdfunding but some esoteric video compression library for some specific distro nobody is going to take out their wallet for.
people who never pay for shit are the ones that are the most abusive. it's fucking appalling and my own negative experience of open sourcing and of other developers have made it clear that software or code is never to be released for free unless your motive is to monetize it later.
It's easy to dismiss the freedom of tinkering as a religion. If it wasn't for that most entrepreneurs on HN wouldn't be able to start their own business at a fraction of original costs.
You berate free software as a religion while it is clearly not. Also, you say that it stands against commercialisation, while it does not, either.
It only goes against excercising power over others to extort money, or literarily take their freedom away. In a way I think free licenses like the AGPLv3 do what the government should be doing. But today government is too easily influenced by companies, so it often doesn't act in the best interest of its people.
we require contributors to the GNU project to (...) assign the copyright to us.
Nope: "When the developers of a program make it a GNU package, they can decide either to give the copyright to the FSF so it can enforce the GPL for the package, or else to keep the copyright as well as the responsibility for enforcing the GPL."
IMO, Free Software misses the point. it's open source things like MIT and BSD that actually allows entrepreneurs on HN to start businesses at a fraction of the cost of before. GPL helps not even a little bit. Open source is awesome, and amazingly useful to the community. "Free" software that I can't sell, is of almost no use to me or any other entrepreneur.
Some people might be independently wealthy, the rest of us have to actually charge for our software so we can try to attain that goal. "Free" software doesn't benefit nearly as many people as "open source" software.
The GPL, and the Free Software Foundation, isn't there for the entrepeneurs. It's not there for businesses. It doesn't exclude them, but they are part of a bigger whole. That whole being humankind. And to ensure the software freedom for all humandkind, the FSF tries to persuade programmers to use the GPL.
That sounds horribly pompous, but IMHO that's the bones of it.
GPL doesn't preclude people from making money. It only stops those particular business models that require proprietary restrictions put on software recipients. All other ways of making money are perfectly welcome under GPL.
Given that restricting people is itself negative socially and that it is common for people and institutions to abuse the power they have when they control proprietary software that others use, blocking the proprietary stuff is indeed better than letting it happen in many cases.
In some cases, the derivative could be feasibly free or non-free and the GPL makes it free, i.e. the derivative was going to happen either way, but the developer wasn't necessarily going to release the results freely, so GPL adds net freedom and value to the community.
Actually GPL is more often than not the "we give you the source but we keep the copyright so if you want to use this in commercial purposes you need to re-license with us" - and it also doesn't work really well in the "open sourcing" in that case because people often build "enterprise version only" features on top. Look at Qt or Mono for example. I'd say GPL fails at "free software".
Also GPL leads to a lot of shitty situations - for example - I'm developing a muscle simulation library for my product and my content pipeline is based on Blender. Under Blender GPL license, since I'm not redistributing Blender or any code from it in my product, I don't need to opensource my code.
But if I want to integrate my tool in to Blender and give it away for free (to give back to community since my product isn't about animation) I would have to release it under GPL which I can't do. So in the end I can't give something back because of GPL. I could maybe do stuff like distribute a binary that talks to Blender via IPC but that's just a waste of my time and a suboptimal design solution because of a non-technical license reason, I'm not going to do that.
Also Blender is actually a decent core tool, if they allowed companies to develop commercial plugins on top of it via LGPL or something it would (IMO) make the Blender adoption much faster.
IMO GPL only makes sense if you plan on making a profit from the code you're releasing by re-licencing for commercial use, otherwise it's just a PITA.
>I would have to release it under GPL which I can't do.
You don't have to release it under GPL, just a GPL compatible license, like MIT, BSD etc, what you are talking about is that you won't release the source code at all.
>Also Blender is actually a decent core tool, if they allowed companies to develop commercial plugins on top of it via LGPL or something it would (IMO) make the Blender adoption much faster.
At the cost of becoming more like an open source 'core' for proprietary commercial plugins... I'm convinced Blender thrives mainly due to being free and fully open source, if you want somewhere to sell your proprierary plugins then just target one of the proprietary 3d solutions.
>IMO GPL only makes sense if you plan on making a profit from the code you're releasing by re-licencing for commercial use,
I think there are typically two major reasons for choosing GPL, one is of course to bestow end users with certain rights, which incidentally also favours the original developers since they are given those rights should someone modify and distribute modifications of their code, and secondly there is the one you mention where you can develop a fully free open project but also allow a special proprietary license for monetary compensation, this is quite rare AFAIK (but a smart way of letting the original developers get a piece of the pie), and I can only think of x264/x265 right now which does it.
> Actually GPL is more often than not the "we give you the source but we keep the copyright so if you want to use this in commercial purposes you need to re-license with us"
That requires citations. I suspect that this is actually the tiny minority of GPL software.
Actually that's true, I should have said most GPL software where I actually care about the license is GPL because of their business model - ie. I don't care about kernel or linux userland being GPL because I don't plan on building any commercial extensions to those - even if I make some changes (which I doubt I ever will but still) I don't mind pushing them upstream no matter what's their license. But most programmer facing stuff that's actually intended for commercial use is GPL as sort of a "trial mode" - you see exactly what you get and then if you want to actually use it you need to re-licence.
You can build commercial anything with GPL. GPL isn't anti-commerce. So, you don't need anyone's permission to do commercial things with GPL software.
If a company says, "here's this under GPL, but if you want a commercial license, pay us specially" they are being deceptive. You don't need a special commercial license. GPL allows any commercial activities, period.
You don't need to relicense in order to use the software commercially or to do any other use. The GPL respects freedom 0: freedom to use the software as you wish in whatever way you wish.
When you ask Apple to distribute and sell a program in their store, they require several things from you as a developer.
1: They require you to agree and follow apple's app store policy for developers. The policy include a long list of actions which you can't do as a developer, including using software licensed under GPL.
2: Apple will add during distribution their own app store copyright license to govern the use of the program. Apple requires that the developer provide legal permission for this, and will refuse to distribute if there is license incompatibility or other problems regarding copyright. If a developer sub-license other peoples copyrighted work like code, images, video or content in general, it is the developer that must shoulder any and all responsibility. If the license require that you can not add additional restrictions (See Sublicensing field in https://en.wikipedia.org/wiki/Comparison_of_free_and_open-so...) then the developer is required to seek additional permission since then the license is not compatible with Apple's license.
In general, distributing other peoples work is tricky if you want to add a new license on top. Make sure you got permission, and if uncertain, ask the author explicitly. Judges seems to like when people explicitly seeks permission rather than relying on an interpretation of a license text.
The GPL does not prevent you in any way from distributing an iOS application and charging money for it (provided that you make the source code available for that part of the app that is a derivative of the GPL'd work), it is just that in practice Apple will censor applications that contain GPL'd code from their App Store.
That is entirely Apple's decision to make; they reportedly also censor apps that display nudity etc. and I would not be convinced by an argument that nobody can make money with pictures of nude people.
I never said nobody couldn't make money off GPL, I said a lot of the times GPL/AGPL will mean in practice you cant use them comercially and the author expects this and offers you a custom license - which both fails the FS ideology and is the only rational use case for the license IMNSHO.
Well, the GPL allows the publication of iOS apps. Apple is the one who doesn't allow GPL to be included in the app store.
You might as well see a restaurant that refuses to serve people who wear headscarves or something and then say that headscarves restrict your dining options. It's completely backward attribution of the problem.
You can use GPL alongside any other license at all, including proprietary. You have zero obligations under GPL for whatever you want to do with software privately. The only obligations relate to keeping the terms for others when you distribute the software to them.
You are misinformed, the GPL does not prevent you from selling your software. The GPL only requires that whoever you sell it to can do with it whatever they want, more or less. That might limit some business models, but neither does it make GPL software useless for entrepreneurs nor does it prevent you from making money by selling software based on it.
Actually it does. I'm primarily and iOS developer, and the GPL does prevent me from selling my software.
Even if it weren't for Apple, the clones are bad enough without just having to give my code away to anyone who wants to use and sell the exact same app competing with me.
FWIW, I would have no problem with something that forces open sourcing improvements to the open sourced software. What I don't like is not being able to use it as a tiny piece to a larger project without making the whole project GPL. That's the part that makes it not useful in many many cases.
You have it backwards, what is preventing you from selling your software is Apple, not the GPL. Also, you might want to think about what the fact that Apple's software on your customers' devices can prevent you from selling GPLed software to your customers has to do with the freedoms that the FSF is advocating for.
And yeah, as I wrote, the GPL limits some business models, but that's a long way from "software that I can't sell". Locking in your customers is not an option, and that is essentially the whole point of Free Software, rather than missing the point, while being free of cost is not even a goal of RMS/the FSF.
As I'm thinking about this more, I think it almost makes my point even more. The only thing about Linux that is useful for an entrepreneur is that it is "free as in beer". How many startups are looking at the source code for Linux, ever?
Certainly thankful for cheaper servers, but that could be accomplished with MIT or BSD, or even closed source.
How many startups are looking at the source code for Linux, ever?
Many or most. They benefit for being able recompile the kernel or compile in support for a device or service. Or to be able to make use of tools provided by others who've done just that.
Which is to say, pretty much every startup I've worked at over the past 15 years.
Rather boggled we're even still fielding this level of ignorance and/or FUD.
And yet, in a competitive marketplace for servers, the BSDs and closed source operating systems have not succeeded to nearly the same degree as Linux, despite predating Linux by many years.
Why do you think that is?
(I'm not trying to be a jerk and ask rhetorical questions; I'm actually pretty jazzed that you're thinking about this critically.)
I think it beats windows because it's free... It beats the others because it is the best free option. I don't know WHY it is the best version honestly. I don't see why gpl Linux would lead to a better OS than bsd, other than Linus is good at making an OS?
Because apple don't have to contribute OSx stuff back to the BSDs (nor did Microsoft when they used a BSD networking stack in windows 95) but e.g. google do have to contribute android kernel stuff back.
You've still totally missed the point. Free software is not about helping you make money. It is about user freedom and improving the lot of the whole of humanity. (NB Free software does not mind if you make money - it is just not there to help you do so.)
yeah… except that all sorts of developers and users get to adapt and run the GNU/Linux OS and related software and do all sorts of valuable work. It's tools that they use not only at low cost, they also adapt them. The ability to set up your OS how you like is a direct result of the freedom the community has to build things and adapt them as we wish. It isn't just about the Linux kernel.
i've used linux plenty during my life, and yet i see very few people using it personally. i find Mac and Windows to be better in almost every way, and I doubt I ever use Linux again.
i will give you servers though, they are certainly useful, and obviously key to many businesses. I'm not sure them being "free" is any better than it being "open source" though. It wouldn't change the equation at all, except that we might have a better version of linux that someone could also sell....
Free software creates a competitive free market in providing support and development services for the software, whereas proprietary software relies on government granted monopolies to exclude competition.
If you are unable to make money with free software, that says more about your lack of business skills than it does about any perceived "anti-business" attitude on the behalf of the authors of free software.
Here's John Gilmore, co-founder of Cygnus, a company that made money with free software (in particular, the GNU toolchain) that was sold for $1 billion:
"Years ago I thought about how to make a living in a post-scarcity economy, then debugged my ideas in real life. In 1989 I cofounded a company that wrote free software, gave the software away for free copying under the
GNU General Public License, and sold live human support for it, to the small fraction of users who wanted support. What others called piracy, we called distribution! We also quipped that we made free software affordable. Every big company we cold-called to sell support to WAS ALREADY USING OUR SOFTWARE. Many of them depended deeply on it and were happy to hire us to make it do exactly what they wanted it
to. We saved Sony a year in developing the PlayStation, for example."
What about dual licensed software like GPL + commercial? QT gets used by a lot of free software but the developers still make money by offering a commercial license.
How does that help me as an entrepreneur? The GPL provides me nothing, and the commercial is normal commercial I can buy. How does this change anything I said?
Licenses like the GPL exist for a reason. And that reason is an attempt to maximize the amount of software that is free.
Licenses like the MIT and BSD license exist for a different reason. And that reason is to give people who want to share what they did on generous terms a way to do so. And historically this was done in the belief that enlightened users would see it as being in their interest to contribute back.
The result was that people who used generous licenses got frustrated that others would come along, use their software, criticize the original author for "not protecting freedom", then create a modified version that the original author was not free to use as they wish!
Historically the free software movement was very clearly described with long essays by Stallman. With the open source marketing campaign, there were essays that people who liked more generous licenses could get behind. And indeed lots of people began producing free software with no encounter with the ideas that started the free software movement. The link above was Stallman's response to this.
If you understand the conflict, then you can form your own opinion. Here is mine.
When you choose a license, you should choose correctly for what you want to have happen. Would it outrage you for someone else to take your code, put a pretty GUI on top, sell it, and make millions while you make nothing? Well then, you shouldn't use a BSD license. By contrast you shouldn't use the GPL if your response would be, "Bully for them, I had fun and they made the world better."
Conversely if someone else used an open source license, DO NOT assume that their motivations are yours. It is their code with their choice of license chosen for their reasons. Respect that.