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.
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!
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.
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)
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).
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."
And that's why I would NEVER contribute code to any of your projects. You want people to work for you for free, then when you're ready just close the code and run with it? Yeah, right, try again.
The GPL is a "you can't screw me, I can't screw you" license. The BSD is a "whatever" license, much like the MIT or a CC0/Public Domain. If I don't care about the code, if it took me no effort to create, I may consider the BSD... or just the CC0, whatever. Otherwise, you're either looking at a real contract or the GPL, and you better don't try to screw me either way.
Oh, and you can re-license YOUR code under any license you wish. If you published it once under the GPL, it only affects whoever may get it from that publication; you can still re-publish it in the future under any other license you wish, since it's YOUR code, to do as you please.
If they accepted changes from someone else, that someone else has copyright on those changes and the license can't be changed without them agreeing to it (or possibly their changes being removed from the codebase; I am not an IP lawyer and you should consult one if you want to be sure on this score).
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.
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?
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.
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.
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.
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.
However, you can "upgrade" LGPL code to GPL, see LGPLv3 "2. Conveying Modified Versions".
There is a FLOSS license that has an implicit upgrade to new version clause: the Mozilla Public License, see "6.2. Effect of New Versions" in MPLv1.1.
It looks like the "or later clause" is a built in option, but not a built in default, of the GPLv2. With that I mean that the meaning of that phrase is explained in the 9th clause.
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.
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.
> 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.
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).
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...
Or the zillion of extensions being made by companies on top of LLVM.
> "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
MS did embrace and extend standards, but that is a very different thing from code.
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
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.
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
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.
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.
Some people code to enjoy themselves.
Let's not forget that this profession is also a hobby for many.
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 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.
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.
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.
(Comment under this same submission.)
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 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.
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.
>> 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.
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?
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
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].
People can create derivative work from BSD licensed software and have any license they want to added with it. Theo has argued that some peoples bug fixing patches did not qualify for copyright, and he is perfectly free to think so. I doubt however that he would ever put money where his mouth is and test it in court. When silence can qualify for copyright, it is a hard argument to make.
> Permission is hereby granted... to deal in the Software without restriction, including without limitation the rights to... sublicense
Because you have the right to "sublicense", you can take MIT code and license it under another license (GPL) even though you are not the copyright holder.
The BSD license is less clear on this point (in fact this is one of the important differences) and whether the BSD's grant includes the right of sublicense is more debatable, but in my view the answer is "probably".
I am not a lawyer; I am not your lawyer; this is not legal advice.
The 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.
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
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.
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.
{
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.
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.)
"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".
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.
The licenses are functionally equivalent in every other way.
IANAL, IANYL, this is not legal advice.
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.
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.
Because in many jurisdictions, this is not a thing that can be done. It is not in the author's power. If you want people in those jurisdictions to be able to use your software, you need to provide some sort of license even if you consider the work to be public domain.
Even in jurisdictions when it is possible to do this, it's understandable that hobbyists would still want the protections of the "Don't use my name" and "Don't sue me" parts of 3-clause BSD at the least.
As for GPL, people choose that because they have different priorities than you. For an obvious and topical example, see Richard Stallman. He believes that nonfree software is actively harmful, and therefore takes measures to avoid accidentally supporting its development. You may not agree with this viewpoint, but he is clearly sincere in holding it, and it is his right.
That claim works both ways. If I write a GPL library that you want to use, you could accuse me of wanting to control the library and not letting you use it however you want, but I could just as easily accuse you of wanting to control your resultant application by not wanting to release it under the GPL. If you GPLed your application, there's no licencing headaches.
Are you kidding? How is he forcing you in any way to use his code ?
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.
Ad hominems followed by a strawman. Classy.
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.
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'.
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>".
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.
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.
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 why Creative Commons has a "public domain declaration", which includes an all-permissive license for if that isn't possible.
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.)
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.
Among many other reasons, because "public domain" doesn't include a disclaimer of warranty.
Public domain dedication: http://www.hwaci.com/cgi-bin/license-step1
Paid License: http://www.hwaci.com/sw/sqlite/sample_license.html
Does this mean I can legally violate the license outside N.C.?
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
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?
---
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.
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.
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."
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.
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.
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).
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.
Like with GPL you only have to provide source code on demand.
Also you can always link original project and provide patch applied.
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.
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.
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.
Is that a reasonable line of thinking?
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 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.
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.
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).
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+.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 ?
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...
(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.
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.
* https://www.youtube.com/watch?v=-zRN7XLCRhc&feature=youtu.be...
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...
But otherwise, yes: GPL, LGPL, BSD/MIT are the principle cases.
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.
ALv2 == Apache License, v2.
Common Development and Distribution License (CDDL), version 1.0 (#CDDL)
This is a free software license.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.
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.
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 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
Do you actually use MIT, or something similarly permissive but without permission to redistribute in source form? Because offering a true MIT license to paying customers means they could then redistribute that version to everyone. (Of course, doing so might mean they don't get any future versions from you under that license, but still...)
For example with libogg he was primarily concerned that the world would get locked into proprietary video code that was patent encumbered. (An issue which has happened a number of times. For example at various points free software had trouble with patents on things like the compression algorithm used by the gif format, and the RSA algorithm used in encryption. Both are thankfully long expired now. But video encodings in particular have a ton of patent issues.)
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.
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.)
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.
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...
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.
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.
GPL stands for "General Public License", just fyi.
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?
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, 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.
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?
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.
Further, at that point you know you're going against the wishes of the original developer and are acting with bad faith.
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.
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.
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.
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).
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/
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.
Which license you should use? I thought licenses does not discriminate wether you use it for personal use or commercial use. Sorry, newb here.
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.