Hacker News new | past | comments | ask | show | jobs | submit login
Why Open Source Misses the Point of Free Software (gnu.org)
298 points by codelizard42 on June 13, 2015 | hide | past | web | favorite | 312 comments



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

https://wiki.mozilla.org/MPL_Upgrade

"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."


Huh. I was pretty sure Gerv spent a while hunting down contributors, but maybe I'm misremembering something. Clearly I must be!


> 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 it's GPL'd, what prevents the author/project owner simply changing the license though?


Nothing, if they have copyright on all the code.

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.


Ok but I would like to know if Mac os taking FreeBSD code did benefit to Free BSD. Edit: tried to add more but some js breaks everything on my phone


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.


I learned something today.

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.

http://www.libpng.org/pub/png/src/libpng-LICENSE.txt


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 did exactly this in Windows 2000 with the BSD-licenced Kerberos. Embraced and Extended.


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


MS extended the protocol, not the implementation.

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].

1. http://www.heise.de/newsticker/meldung/Microsoft-und-Open-So... 2. http://slashdot.org/story/00/05/02/158204/kerberos-pacs-and-... 3. http://features.slashdot.org/story/00/05/18/2015251/our-atto...


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.


If Apple hadn't made Swift open source now at WWDC, that would be a fine example.

Or the zillion of extensions being made by companies on top of LLVM.


A very contrived example.


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.

https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish


And what permissively licensed software did Microsoft apply this policy to, exactly? Or is it just an unfounded fear?


Read the link. It has a moderately-sized list of examples from Microsoft. https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish...


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.


Kerberos. back in 2000.


> 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


Is that true? You could not have a clause that allows people to see source but pay to run it?

I know Chef now has a new revenue model where version 12 is free but if you want various modules enabled like a webui you need to pay.


redhat?


Red Hat makes most of their money providing services around their distro, rather than from selling the distro itself. (Source: Friends at RH).


Ardour?


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.

Edit: Grammar


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


The scope of motivation that drives you to code is extremely narrow.

Some people code to enjoy themselves.

Let's not forget that this profession is also a hobby for many.


Here, have an upvote.

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.


I'm curious, why don't you place your works into the public domain?


See here: https://news.ycombinator.com/item?id=9711812

(Comment under this same submission.)


The GPL is a great way for companies (socipathic, soulless, etc.) to work together.

The BSD is a great way for those same companies to get your $100... and ask for another $500.

But if you can make your stuff work with no abstract legal entities getting involved, then sure, BSD or CC0 are the best.


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.


I've always found that a bit rude. Sure it's legal, but c'mon , it's not very nice.


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.

For an example of this situation, see the link in btilly's post: https://news.ycombinator.com/item?id=9711716


Sorry, I downvoted on accident when I meant to upvote! stupid phone :)


>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].

[1] http://marc.info/?l=openbsd-misc&m=118963284332223

[2] https://news.ycombinator.com/item?id=9646289


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.


The MIT license reads as follows.

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

[0] https://marc.info/?l=linux-wireless&m=118831729905625&w=2


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.

https://marc.info/?l=linux-wireless&m=118841220505946&w=2


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.


Okay, so in my BSD code I have:

  {
    char name[NAME_LEN];
The people who maintain a GPL'ed fork notice the problem and make it:

  {
    char name[NAME_LEN+1];
So now, I can't do that in my BSD code because it's copyright infringement? (Unless I make the thing GPL?)

Given the insanity of copyright laws, I probably can't.


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.


This is a trivial change, and does not meet the threshold of creativity required for copyright protection, so the question is moot.


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.

IANAL, IANYL, this is not legal advice.


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.


> It's just another means of jealous control.

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.


>Please stop trying to shove your license down my throat with a plunger.

Are you kidding? How is he forcing you in any way to use his code ?


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


someone's pretending that OpenBSD not only doesn't exist, but doesn't define most of those security protocols.


> Please stop trying to shove your license down my throat with a plunger.

Ad hominems followed by a strawman. Classy.


> 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'.


Giving credit as a matter of courtesy is often good behavior. However, neither the modern three-clause BSD license nor MIT require it.


> Giving credit as a matter of courtesy is often good behavior. However, neither the modern three-clause BSD license nor MIT require it.

Read the very first clause of the 3-clause BSD license, and the first condition of the MIT License.

You'll find that they both require you to retain the "above copyright notice" which usually includes a line such as "Copyright (c) <year> <name>".


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.


Then read the second term:

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.


That's actually not correct, you can willingly and deliberately forfeit your copyright.


Not in all legal jurisdictions around the world.

That's why Creative Commons has a "public domain declaration", which includes an all-permissive license for if that isn't possible.


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.

http://www.kylheku.com/cgit/txr/tree/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:

http://cr.yp.to/publicdomain.html

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.


Not in many countries, you can't. That's why CC0 exists.


Ah, but is waiving of all the rights that you have under the copyright umbrella the same thing as "public domain"?


> I really don't get why people don't just declare their work public domain.

Among many other reasons, because "public domain" doesn't include a disclaimer of warranty.


SQLite is in tbe public domain and it can be licensed for a one-time fee of $1000

Public domain dedication: http://www.hwaci.com/cgi-bin/license-step1

Paid License: http://www.hwaci.com/sw/sqlite/sample_license.html


> Governing Law. This Agreement shall be construed and enforced in accordance with the laws of the state of North Carolina.

Does this mean I can legally violate the license outside N.C.?


> accordance with

No, that means that the law of North Carolina apply, not whatever jurisdiction you might find convenient.

See, for example, http://www.contractstandards.com/clauses/governing-law


Two questions:

1) Why would offer a license if it's public domain? Unless the license was to offer support which I don't see it on that page.

2) Where did you get the $1000 from - it's also not on that page?


Re: 1, the following is a quote from the aforementioned licence pag (http://www.hwaci.com/cgi-bin/license-step1)

---

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.


Both are answered in the first link.


Doh! I only read the license.


That's a really nice solution, I like that!


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

It's that simple.


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?


> The idea that if I change 1 line of code I now have to setup a public repository is just crazy to me.

Like with GPL you only have to provide source code on demand.

Also you can always link original project and provide patch applied.


To be fair, Google has contributed a ton of code back to the community.

They have also made Linux relevant on the "desktop" (if you consider Android / Chromebooks desktop substitutes).

Net net, I would say their use of open source has been a benefit to the community.


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.


I believe the MS-PL does this, which is closer to BSD-like.


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.

Is that a reasonable line of thinking?


Yes, and in fact rms himself has made that decision in the past.


That's the LGPL, right?


No, rms actually support moving from the LGPL to BSD, to achieve the maximum possible reach of the software: http://lists.xiph.org/pipermail/icecast-dev/2001-February/00...


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.

What ?


> 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

Not true at all.

* https://www.reddit.com/r/IAmA/comments/31ny87/i_am_the_cto_o...

* https://www.youtube.com/watch?v=-zRN7XLCRhc&feature=youtu.be...


Wasn't CDDL designed to be incompatible with GPL? That is not something you can blame GPL for.


I don't think that was the case.

(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.


I think it is the case that CDDL was deliberately intended to be incompatible, mostly because Danese Cooper, author of CDDL, said so herself.



We have some Sun people saying that was the reason, and some of them saying that it wasn't. That sounds like an ambiguous draw to me.


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.

That said, I need to reread GPL3 in detail...


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.


I'd prefer if people forget about BSD/MIT and use ALv2 instead, for the patent clauses.

With the following preferred licenses you'd get explicit patent clauses, in ascending order of copyleft-ness:

ALv2 MPLv2 LGPLv3 GPLv3 AGPLv3

Perhaps the Eclipse Public License would also be an alternative at the same level as MPLv2 but I'm not familiar with it.


Fair point.

ALv2 == Apache License, v2.


Don't forget the AGPL.


GPL is just a subset of AGPL, isn't it?


I don't understand what your point has to do with memory. Care to elaborate?


CDDL is not a free software licence. it was explicitly created to be GPL-incompatible, in order to preserve Sun's control over their IP.


https://www.gnu.org/licenses/license-list.html

  Common Development and Distribution License (CDDL), version 1.0 (#CDDL)

    This is a free software license.


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.

(My motivation was this blog post http://www.thoughtcrime.org/blog/saudi-surveillance/ by moxie)

However, for everything else, I'm inclined to use GPLv3 / AGPL and offer commercial licensing under MIT for companies (h/t 'patio11) instead.

Just my $0.02


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


rms himself has advocated for permissible licenses to encourage wider freedom (e.g. in the case of libogg).


He always does so for strategic reasons.

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.


Stallman does?

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.

http://www.gnu.org/licenses/why-assign.en.html


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.


Yes, but the disclaimer is not the copyright assignment, they're different legal acts.


True, they are different forms. However they are both part of the process of making sure that the FSF actually owns that copyright.


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.

https://wiki.osmfoundation.org/wiki/License/Contributor_Term...


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


>For instance, the Gnu Public License

GPL stands for "General Public License", just fyi.


>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!

How many cases has that happened?


Does that work well out in practice though?

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.


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


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


And, IANAL, but I remember reading the the GPL doesn't cover SAAS either because you're not distributing a program.


That's why they introduced the Affero GLP https://en.wikipedia.org/wiki/Affero_General_Public_License

Which basically means, you can't use the code at all commercially; stay very far away from the code. It's not very well defined how to be compliant.


AGPL says no such thing. AGPL software running on the backend must be made available upon request to users who are served content by it.


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


If that goes to court you are likely to be spanked hard for circumvention.

Further, at that point you know you're going against the wishes of the original developer and are acting with bad faith.


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.


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

The Open Source Initiative has a good index of licenses: http://opensource.org/licenses/


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

Carry on, you magnificent bastard.


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.

Overton Window maybe?


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


Note that Stallman himself is quite comfortable with his notions about mandatory sharing being enforced through state violence:

"Richard is against abolishing copyrights because, to his view, without copyright, enforcing copyleft would be impossible."

http://rudd-o.com/monopolies-of-the-mind/thoughts-after-my-d...


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 GPL is not primarily about charity or giving.

It's a pragmatic approach to keeping software free as in freedom, given the current political and economical realities.


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


IMHO, it's cheap practice in any movement.

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"…


Given how long ago this was written, the title should probably include the original publication date (2007).


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.

This is the definiton of Open Source, a really short read http://opensource.org/docs/osd

To me it's good enough.

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.


This is one thing I think many people don't realise. For RMS, code quality is not the #1 goal.


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!

Edit: typo


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.


>> The other irony is that GPL is not even free (as in speech) either, it imposes rather strict conditions.

The only "strict condition" is that it enforces the golden rule. That's really all its designed for.


Maybe golden shackles would be appropriate?!

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.


s/bear/beer


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?

In general, I think rants need stated reasons.


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.


Seeing this article again in previous discussions https://hn.algolia.com/?query=why%20open%20source%20misses&s...

I suspect HN is refreshing its user base every 1 year or so.


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".


you donT get that its not yor freedom it protects, its the software users. A frequent misunderstanding.


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.


You don't get that he is not the softwares users.


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.

Edit: quoting against edits


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.


How is it incorrect exactly?


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.


That's not the point I was making.

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.


Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: