> First of all, open source for me is not a way to contribute to the free software movement, but to contribute to humanity. This means a lot of things, for instance I don't care about what people do with my code, nor if they'll release back their modifications. I simply want people to use my code in one way or the other.
As other people (buster) have mentioned, they feel that releasing GPL code is contributing to humanity too. Here's the difference as I see it:
You want to maximize the number of people who use your code, because that makes you feel good about yourself and your contribution.
Someone who releases GPL wants to try to maximize the good outcomes that result from their releasing that piece of code.
For example: the FreeBSD hackers get to know that their code was incorporated into OS X and used by many millions of people. That's pretty cool for them. But the contribution to humanity of their code is limited by that -- the OS X kernel's closed source, so no-one can benefit from learning how that works, and in the meantime the FreeBSD project itself is dwindling. Meanwhile, e.g. Android is based on Linux, and is available to everyone to study. Linux is growing hugely, and is an amazing example of humanity working together to achieve a public good. I can't really say the same about FreeBSD.
So, I think the question is -- is your aim somewhat selfish, in wanting to maximize the consequences that can be directly traced to you, or is it driven by wanting to maximize the consequences to the rest of your society of your actions?
If the latter, I think there's an entirely reasonable argument that says that the GPL is a better way to do it. There's no question that, as you argue, the GPL has less immediate freedom for each individual user than the BSD licenses. But why should we measure freedom for each individual, if what we care about is the final level of freedom for everyone in society?
To put it another way, I think the BSD license can result in "tragedy of the commons" scenarios where maximizing individual freedom has worse total consequences than would have resulted by applying regulation to maximize societal freedom instead.
> To put it another way, I think the BSD license can result in "tragedy of the commons" scenarios where maximizing individual freedom has worse total consequences than would have resulted by applying regulation to maximize societal freedom instead.
An ecosystem argument can be made as a rebuttal; GPL disincentivizes corporations and other large open source contributors from adopting a project, thus not allowing the code to perpetuate (through dependence) and be adopted by other businesses who have an interest in improving the software, and so on.
That is, the individual freedom ultimately results in more participation, not less, at the expense of more selfishness. BSD/MIT licenses dominate now, don't they? Does society ultimately benefit more from an open license than one with legal burdens attached, as noble as they are?
Thanks for the correction, I thought it'd been closed. (I suppose I could modify my argument to start talking about iOS, which is based on FreeBSD but closed, in comparison to Android.)
> Does society ultimately benefit more from an open license than one with legal burdens attached, as noble as they are?
Yeah, it's a purely practical question -- and is why I brought up contributions back to FreeBSD vs. Linux, since I think that's one example where the GPL comes out on top regarding participation to the codebase.
> I suppose I could modify my argument to start talking about iOS, which is based on FreeBSD but closed, in comparison to Android.
Sorry, iOS and OS X are the same operating system, so you really could not :-). iOS and OS X have slightly different but very similar closed source Cocoa layers.
I don't want to split hairs about what "the same operating system" means so I'll just point out that the xnu source code doesn't include any iOS code AFAIK.
"Sorry", but a lot of the code that is specific to iOS is in the kernel, and almost none of it is open source; claiming that the iOS kernel is open source is simply preposterous. The situation is even worse if you start looking at drivers, none of which are open source on that platform; but even the core kernel is missing major pieces on ARM.
Yup. Both use Foundation, but Cocoa (OS X) uses Application Kit and Cocoa Touch (iOS) uses UIKit. Foundation itself is based largely on OpenStep, of which there are several opensource variants you can check out.
"You want to maximize the number of people who use your code, because that makes you feel good about yourself and your contribution.
Someone who releases GPL wants to try to maximize the good outcomes that result from their releasing that piece of code."
There is a bit of strawmanning going on here. It's not Roark versus Toohey. Copyleft was conceived out of Stallman's personal desire to access source code for his own ends. Likewise one can reasonably believe as a practical that the benefits of widespread use of a piece of code outweigh those from its source code availability. The two positions approach utilitarianism from different philosophical positions. One places more emphasis on actions the other on rules.
Perhaps most of us might agree that the ideal would be widespread adoption, open source, and equitable compensation of the author. Fewer would agree that this ideal is the norm in our shared world. Copyleft carries a lot of overhead. Could effort spent on license compliance be better spent elsewhere?
Copyleft solves a set of problems. That set of problems were pressing in the computing community of thirty years ago - at least once one got away from Vic-20's and Apple II's. Copyleft made an important contribution in the form of GNU/Linux. But the question remains, is its incompatibility with the world of smartphones creating a drag on innovation?
You make it sound like FreeBSD's code got all closed off and hidden away when it got wrapped into OS X. FreeBSD's stuff is still available openly and can be studied. No, you cannot see how Apple interfaces with it, but that's the nature of proprietary.
Code licensed under BSD has the chance to affect more of the "world" because it'll end up in more systems because there's no requirement to keep those derivative systems open. Those interested in keeping their own work proprietary (but using the BSD-licensed code) can do so. If the code were GPL, it just sits there while Proprietary Corp. re-implements that library (perhaps in a poorer, less-secure manner). The GPL code did not contribute to humanity as much as the BSD code did.
> You make it sound like FreeBSD's code got all closed off and hidden away when it got wrapped into OS X. FreeBSD's stuff is still available openly and can be studied.
I think I was pretty precise in this criticism. Yes, FreeBSD's code is still there, but it hasn't been contributed back to by Apple, and (partly) as a result of that it's been growing less relevant over time; to the point where I would no longer describe FreeBSD as having a healthy community. In contrast, Linux is flourishing.
"at the last FreeBSD devsummit I attended, the people Apple sent were begging us to take more and the holdup was FreeBSD developers (myself included) not being sure that we really liked the solutions OS X had developed." http://news.ycombinator.com/item?id=3560947
"This keeps being brought up, the whole apple not contributing back to FreeBSD, but I would urge you to please look through FreeBSD's CVS history to find all of the places that Apple HAS indeed contributed back (I've made several comments with links to such sources on HN before)." http://news.ycombinator.com/item?id=2083877
and (partly) as a result of that it's been growing less relevant over time; to the point where I would no longer describe FreeBSD as having a healthy community.
I'll freely admit that I'm no expert on the BSD world, since I'm a Linux user myself. But I'd question whether or not there's any real research that demonstrates that the BSD community is less "healthy" (depending on how you define that) than the Linux community, because of the license. Heck, I'm not even 100% sure I believe that the BSD community is less healthy, but even if that were shown conclusively, how do we know it's the license and not some other factor(s)? I mean, the BSD community has had different challenges and issues, and a different culture, going back at least to the days of the AT&T (USL) lawsuit[1].
I think the BSD license can result in "tragedy of the commons" scenarios where maximizing individual freedom has worse total consequences than would have resulted by applying regulation to maximize societal freedom instead.
There is no tragedy of the commons in software b/c there is no scarcity. Why shouldn't everyone get as much as they can?
re: "FreeBSD is dwindling" and "Linux is growing hugely", it's an improper comparison. There are many distributions of Linux and only one FreeBSD. And regardless, FreeBSD exceeded their fundraising goal for this year:
“There is no tragedy of the commons in software b/c there is no scarcity„
Code is information, and information has zero marginal copy costs. Nevertheless, there is scarcity. Code needs maintenance, and maintenance costs man hours. So, by consuming man hours into dead end projects that will ultimately fail to be self sufficient, BSD licenses may trigger a tragedy of the Commons.
I don't think that is the case. Not all projects require corporate backing. I'm just pointing out the fallacy in your argument.
Ah, I was talking purely about the Linux and FreeBSD kernels, not distributions. I agree that FreeBSD exceeded its fundraising goal, but this isn't how I would want to measure its level of contribution.
our company recently expunged all LGPL code from our product. The cost of that license outstripped the usefulness. We wrote or got around the need for any of it; it wasn't too hard. Generally we were after a fraction of the IP, and there were alternatives.
LGPL is fine for non-commercial folks. For business I need a license to do as I please with the code, with no futzing around.
LGPL lets you do as you please with the code. If you need to modify the code, which in my experience isn't all that often, you simply provide the patch back to the committers. They're not required to take it, but that doesn't affect you. You simply had to provide it.
And since you took from the community, doesn't it make sense to contribute back when you have something to contribute?
LGPL requires us to ship the libraries in particular ways. Our product runs on mac, windows, android, pad and phone. It was impossible to conform.
An now, we don't take from the community, so no we don't feel the need to give back in that way.
And in my experience, much of open source does have to be modified. Usually to extract the IP needed without the cruft sticking to it - all the assumptions made by the authors about how it was going to be used.
IANAL, but I believe you're incorrect about shipping the libraries in particular ways. My understanding of the LGPL is you don't have to ship the libraries with your application, you just need to provide the relevant copyright notices - usually in your Help/About.
I worked with the legal department at my company to get a list of approved open source licenses for components included in our applications. The GPL was immediately ruled out. Because of the GPL they spent several weeks scrutinizing the LGPL. They approved it.
Obviously your mileage has varied with your lawyers. And if we want to keep our jobs we can't cross the lawyers, even if we believe them to be wrong. It'd be nice if our community had a common understanding of the LGPL. There seems to be a lot of confusion.
Nope. The LGPL basically requires you to make sure that the end user can replace the LGPLed code with a modified but ABI-compatible version (for instance, because there's some bug in the code). Think back to the libpng security vulnerability a few years ago, for example - because that was under a more permissive license than the LGPL, users of proprietary software that included the insecure version couldn't update to a fixed version by themselves and were reliant on the companies that supplied them the software.
That may be correct, but its an engineering description of a legal document. We're great at deconstructing things - lawyers are great about enforcing the letter. SO I'm not sure anything that boils down to "The LGPL basically requires..." can be trusted - certainly that argument has no weight with our lawyers.
Consider for a moment anything shipped on an iPad or iPhone. How does the user replace pieces of your application, exactly? Its not possible, by design (thank you Apple).
Speaking as an open source lawyer, the question of whether it's legal to use LGPL 2.0/2.1 software in an app store app is a very open one, exactly for the reason given above. You will find people taking opinions on both sides.
It certainly happens that people use LGPL 2.1 code in IOS apps, but that doesn't mean it's okay.
The answer is more clear for other licenses, including LGPL v3.
I wouldn't trust what you see app stores doing as "okay". Among other things, I do due diligence on mergers/acquisitions, and without a doubt, app store apps are one of the places I see the most license problems.
Our target is everywhere. So no, not possible on many platforms.
And the terms become more restrictive with every iteration. That general theme may be present but in the end you have to conform exactly to how the license is written. The verbiage about linkages etc becomes meaningless on some platform (those without a loader for instance). Where does that leave you, legally? I learn to never ask a lawyer techical engineering questions - like the old line about teaching a pig to sing.
Your last point is actually pretty wrong.
I've helped write linkers and loaders, and can sit around and have a combined technical and legal discussion about the impacts of linking in various ways all day if you like.
If you've learned never to ask a lawyer technical engineering questions, you need better lawyers.
Realistically, if your lawyers don't actually understand how your code operates or what it does, at a deep technical level, the advice they give is not going to be all that great or even right.
Strictly speaking, the requirement is that they be able to upgrade/modify the library. Static linking coupled with shipping only an executable is a violation. I believe that shipping source (or even un-linked object files?), such that users can rebuild the application with a statically linked updated version is allowed - no requirement that they be permitted to modify or redistribute the application proper.
LGPL is fine for 'commercial folks' aswell, as long as they are willing to make changes they've made to the 'LGPL licenced code' available in source form.
If you are not willing to do this then no, LGPL is not right for you.
As an example, Apple uses the LGPL licenced Webkit in their proprietary Safari browser.
WebKit is BSD licensed; WebCore, which WebKit uses, is under LGPL. Apple seems to actively put as much code as they can in WebKit as they can, so they can avoid open-sourcing their fork, and they have carefully isolated WebCore sufficiently that many of the more interesting changes they make to it (such as those that give them advantages on mobile) can be done by adding binary .o files (as allowed by LGPL) as opposed to new source.
Sure. But what about rewrites? What about code fractions extracted and used in other modules? What about makefiles to integrate the code, or package builder scripts? ALl that is part of our stuff, but taken from their project.
So we expunged all of it, wrote our own or got rid of the feature (found alternate encodings of files we were decoding; used different rendering agents etc).
Spending engineer hours (money) on packaging the libraries in the proscribed ways. As posted elsewhere in this thread, shipping separate libraries isn't always possible.
The effort was triggered by an investor requirement - that we not endanger our commercial viability with LGPL code of any kind. I.E. The lawyers told us to.
And sadly as I type this on a FreeBSD laptop, I am giving up the BSD kernel/userland as no longer providing enough benefits to outweigh the costs. I am moving to Linux and probably Mint.
And I am seriously considering that the license that enabled
Mac OSX is part of the cause - the BSD project would be flooded with people if Apple had released OSX back onto the cvs tree - everyone would have wanted to play with it. But it just dies. And I cannot afford the time to fix my laptop everytime some update conflicts. I fell I am quitting, and stupid but I also feel the license has let the life bleed out of a great eco-system.
A quite excellent comment. I would only add a bit more dry comment on the essence of copyright licenses.
A copyright license is about defining what one will accept that people may do with your code. As a lawyer once said in a speech, its about defining what consequences one can live with.
Do you accept that people might try to use a bait and switch method with your code? Ie, they go out and promote it, gives copies to everyone but when the usages is at the top, they goes out and say "BUSTED! Now pay for patents or stop using it!". If not, use Apache license.
If there is nothing anyone could do with your code that you would later object to, BSD is commonly the answer. However, if the NSA tomorrow made a virus with your code, you would have no legal barring to try to stop them. If a drone programmer used your code to be more effective judge, jury and executioners, you have no right to object. In contrast, if you used a copyleft license, the demand for source code would likely be enough to kill such usage given the secret nature of the military.
You make an excellent argument for dropping the GPL and adopting the Affero General Public License. After all, the GPL doesn't force commercial web apps to release their modified source.
Note: I typically use the Apache 2.0 license for my personal projects, but I don't have strong opinions on the matter.
I am not sure that copyleft (GPL and co) maximizes societal freedom.
We would have to weigh the "patches acquired by court" versus the "would have contributed but rejects viral code" cases. Since the latter cannot be reasonably measure, we are stuck in discussion based on beliefs.
Personally, I believe the GPL virality hurts more than it heals.
Interesting point of view and i can understand that he embraces the "total freedom" BSD license gives (aka "do whatever you want, i don't care"), but in contrast i can also understand the GPL and i would argue that GPL is more about "contributing to humanity" then BSD just because it forces someone to contribute back and thus enforce more "contributions" to humanity then a formerly BSD licensed closed down fork of something that once was freely available.
As a developer i enjoy BSD because i know i don't have to take care of license issues and just go ahead in contrast to "mhh, GPL, LGPL, version 2 or 3, MPL, Apache, what can and what can't i do?!".
All in all, from my point of view, GPL has a very good motive and approach when it comes to "contribute to humanity", even more so then BSD.
edit: Also about his thought "if something is useful people will contribute back in some way, because maintaining forks is not great.":
This just doesn't apply to software companies that have a closed down software approach. The in-house forks are just frequently rebased but never contributed back. In my life i have seen several in-house repositories including a lot of BSD licensed libraries that never were contributed back. It's sad but it's just the outcome of closed-down "Whatever we pay for in development work puts us ahead of competition, we don't want to help competition, we leave it closed source".
"it forces someone to contribute back and thus enforce more "contributions"". Not sure if trying to coerce someones behaviour is a "contribution". It is trying to change the world and peoples behaviour, which is a different kind of thing mixed in, a sort of moral contribution perhaps, a gift with strings attached not a straight gift.
I consider the GPL a declaration of user rights (the right to source code, for all users, in perpetuity). I like freedom. I would actually prefer the BSD license if my experiences hadn't convinced me of a different human nature. It's an unbalanced equation. I would happily go with the BSD license if everyone else did (or at least "mostly everyone" else did), for the same reason that I would support gun control if it applied to everyone, including police. I don't consider either practical for users/netizens. Thus, the GPL guarantees certain "rights." :)
Fair. As I said, I would rather it weren't necessary to codify the quid pro quo "rights and responsabilities." At the same time, I can't imagine not wanting the right (freedom) to view the code for software I use. (Hey, that's why I choose open over closed in the first place). The spirit of the GPL IMHO is just "pay it forward," or at least a "don't use it to peck me to death or blame be when you drop it on your foot." I agree, it puts a damper on gift-giving, but I just can't see another way. In the same way, I wish it weren't necessary to spell out human rights, but even for something as important as that, not everyone always plays nice. (I mean, people burned witches, to pick just one random morbid absurdity.) I wish the "NO WARRANTY" warnings weren't necessary either but, as the expression goes: "no good deed goes unpunished." :\
The term "viral license" is a really descriptive term ;)
My point is that i think that antirez has too much faith in humanity when it comes to business. A company selling software doesn't necessarily care about forks being inconvenient. A typical closed-source company only thinks in terms of money and thus potentially contributing to open-source also contributes to your competition.
I think more people are realising that "Open source was seen as more of a tool to manipulate the market and create favourable circumstances, rather than a goal in itself." http://www.computerweekly.com/opinion/Open-source-is-just-a-... - Hence Android in order to fight Apple etc. It can help destroy your competitions market rather than helping them.
What a good observation! Commoditize the complements by dropping a free competitive software that any entity can use and modify. And they've also restricted modifications from other companies with the trademark, so they have control over that as well. It's quite brilliant.
It is worse than that. You can't even integrate a GPLed server program with a closed source client program, only interacting via TCP, if they constitute a single "bundle". See the "SDR Touch" story here: http://lists.osmocom.org/pipermail/osmocom-sdr/2013-January/...
Antirez, how would you feel about a company that forks redis, renames it, removes all references to you and sells it successfully to some enterprises as next-gen super database, making a lot of money? Maybe even enhancing it, fixing bugs, or doing some other work in a closed-source manner (documentation, translation stuff.).
In your post you say that you appreciate when people make money out of your work but you also seem to have the faith that people contribute back because forks are inconvenient.
I'm fine with this of course, that's why Redis is BSD licensed. I don't expect users to just use a subset of the rights they have with this license. However as I said the real value is in the evolution of software. If a company can evolve a Redis fork very well, they are able to provide new releases that are stable with well designed features, they are probably also able to rewrite it from scratch (with bigger efforts), so I just provided a tool to enter into business ASAP.
I see. I think i'm just not as good a person as you, i would not like that. From my point of view the company could as well operate open-source and make money through additional services (e.g. Redhat) and that would bother me very much.
Personally I also think of it like this:
If someone can make money out of what I provide for free, they're providing some service. They either have better hosting, promoting, features, bugfixes, etc, etc, if you treat this service, however small, as added value, it is only reasonable they can get paid for it.
That's why i tried to make an example where that added service is not existing or very small. Making your money with "added services" or some real additional value is fine but then, you could just stay with GPL. I tried to build that example where someone exploits the "do whatever you want". Like rebranding everything, telling some customer "that's my product" and "please pay $$$$$$ for that awesome product".
Of course in that example the customer would still have some kind of contract and that sales person would still have to offer some kind of support/guarantee..
This implies that they are only being paid for their added value, when in real situations they are often getting all of the benefit as they are in control of the customer relationship at that point; if a system like redis allows you to build something really complex and profitable with only a few days of effort (whether it be another developer tool or a website for end users that allows you to comment on cat pictures), when it took antirez an immense amount of time to build redis itself, then the question is whether the value you got for your profitable business is really yours to have, or whether "by all rights" a good chunk of it should have gone to antirez (who then might use it to cause more open code to exist, such as working on redis).
In this case, honestly, antirez's opinion seems to have an internal contradiction. On the one hand, he is perfectly fine with someone taking the things he's done, forking them for their purposes, making something theoretically valuable out of it with minimal effort, and then sequestering all of the value. On the other hand, his article clearly states that what he feels is missing in the world of open source is that the people who make the systems that people rely on to build their empires don't get paid for it, and don't get any money in return to pay their time to maintain their software. As someone who made this same mistake on various occasions, this really seems like someone who has caused their own problem: giving something away for free under the least restrictive license possible, and then wondering why they are unable to hold on to any of the value from it.
To quote his article:
> In my opinion instead what the open source does not get back in a fair amount is money, not patches. The new startups movement, and the low costs of operations of many large IT companies, are based on the existence of so much open source code working well. Businesses should try to share a small fraction of the money they earn with the people that wrote the open source software that is a key factor for their success, and I think that a sane way to redistribute part of the money is by hiring those people to just write open source software (like VMware did with me), or to provide donations.
^ antirez: If you really believe this, why not encode it into your license? You could easily say "if you want to use this for a project larger than X or making more than Y, you have to be willing to hire me in a support capacity". Alternatively, why not use one of the existing "tried and trusted" open source business models, such as "redis is awesome, but it is under a restrictively-free license; if you wish to use it for a purely selfish and commercial purpose, you thereby must contact me to get a special re-licensing of this program for your purposes, the royalties from which can be used to pay costs associated with redis, hire people (including myself) to work on redis, and generally can compensate the community for the success that using our product will bring you". Yes: the (A)GPL is the common license used to cause that to happen.
Redis is a poor example because it is licensed under BSD which you can do exactly what you're describing. If you think there's something wrong with a corporation (likely a few hackers) selling open source software and making money off of it then, well, you simply don't belong in open source.
This is exactly how Redhat operates.
But there's obviously a difference between making money (re-branding) and then attempting to re-license (or break the existing one, assuming GPL, by not contributing back).
I think Red Hat is a prime example of a successful opensource company and if every company would operate like that we wouldn't need GPL. Clearly, that's a bad example. Red Hat does contribute to BSD licensed software as well, it's not at all what i described..
I think this is unrealistic considering technical debt involved in any codebase. There is an example of what you described, specifically a company that rebranded Blender, renamed it to 3DMagix. I guess the companies you're describing are mostly out to make a quick buck and they'll do it regardless of licensing.
How would you feel about someone taking pictures of you while you are using the restroom? clearly we should ban cameras from restrooms and remove all sorts of windows. In fact, we should demand all pictures taken with a camera to be submitted to a public archive, just to make sure no evil deeds are done.
... as people generally don't like pictures of them being taken of them while they are in the bathroom, we actually do have laws that state that it is illegal to do so; past that, your analogy doesn't hold: we don't require all software to be submitted to a central archive so as to enforce GPL.
That's where the LGPL comes in.
I know the difference between GPL and BSD, thanks :)
It may be ludicrous, but then again, isn't it ludicrous to base a closed source program on open source code, make money of the work of others and NOT contribute back?
True. I realize now that this phrase may offend contributors to GPL licensed projects, please let me clarify what I mean.
Working for companies it is a rare occasion that we would open source a project, consequently most of the time we cannot use GPL libraries. On the other hand Apache, BSD and similarly licensed libraries are the safe option.
So for me it would be ludicrous to prevent others from benefiting from my OS libraries.
This is a matter of opinion; like, on the other side of this, one could argue that people who expect to be able to use the works of others without providing anything in return are being inherently selfish, and that the system should be designed to limit the scope of their damage. In this case, if you'd like to get the functionality of that GPL library for your product, your quid quo pro is going to be the source code of the system you built that relies on it, and which apparently wouldn't exist if you didn't have access to that GPL library.
(Note: if your system could exist without that GPL library, as you could easily reimplement it yourself or use an alternative, then the idea from GPL is "ok, then you go ahead and do that, and we'll keep improving our library, at least knowing that you didn't benefit from it".)
In essence, by having put a library out under BSD, you are simply doing free work for others who are able to take what you did and contribute nothing back; in comparison, using GPL, the people who would have contributed back are not affected, and the people who don't have to look elsewhere: it is a restriction that provides a direct benefit.
I respect this point of view and somewhat agree with it, on the other hand I have received great benefit from Apache, BSD, etc. licensed software. So when I contribute to OSS I make sure to use similarly permissive licenses. Yes there will be others who profit from the OSS and don't contribute but I don't think that there's a way to prevent it.
I like ESR's opinion on reciprocal licensing like the GPL and that is the market punishes those companies that take the source closed. In-house forks are probably hacks that contain specific business logic or minor enhancements. ESR best explains it in this video:
http://www.youtube.com/watch?v=gEPg2M1qbEs
I've seen libraries in-house that are open source but have been abandoned years ago by their original community. Those libraries are pretty much lost to the general public but live a happy live as closed source libraries which are maintained and fixed.
If those libraries were abandoned by the community then the significance of taking the library closed by some company that needs to maintain its legacy codebase is probably minimal or irrelevant.
In a non capitalist world where everybody codes for fun GPL would sound great, but in the actual real world there are decent and acceptable use cases where it makes sense not to "contribute back", e.g. a business might not want their competitors to copy-paste the code of its core product.
The fast development Linux enjoys is the result of lots of 'capitalist' companies cooperating under the GPL so it's certainly not a case of one or the other.
Certain types of business, like that of using open source but not wanting to contribute 'the secret sauce' back is obviously not compatible with the GPL. But for that there are other licences.
For commercial use you want to use components that have been LGPL'd. Using LGPL'd components to build your application does not require your application to be either GPL'd or LGPL'd. See http://en.wikipedia.org/wiki/GNU_Lesser_General_Public_Licen... for information on LGPL.
The MPL is a good balance between "do what you want" and contributing back. I used to use it in all of my projects but I found that because people don't know it well, they are scared of using it so I've switched to MIT.
The MPL belongs to the "copyleft" category, whereas MIT is "permissive". So, you made quite a switch. Basically, copyleft licences require modifications to use the same licence, while permissive licences allow proprietary derivatives.
i would argue that GPL is more about "contributing to humanity" then BSD just because it forces someone to contribute back and thus enforce more "contributions" to humanity
In theory yes, but it's like telling people that they should attend Sunday prayer service. That's like, your opinion man.
In any case, once software is out there, it's out there. Maybe one fork or another makes some closed progress but it's only a matter of time before an open source equivalent comes along.
Has there ever been any closed-source software that's important to humanity but doesn't have an open source equivalent?
Linux has plenty of expensive professional software in fields like rendering for film and so on where it is a real platform. People who use Photoshop just like Macs so the Linux market is not very viable right now.
Hey Gimp isn't so bad. But either way, you're right. Is there anything close to an opensource equivalent of Logic? Absolutely not.
But great closed-source software doesn't preclude a great opensource equivalent. It may not be available right now but there's nothing stopping someone or some group from making it available in the near future.
I suspect there is some incoherent thinking about the BSD license. If you are a BSD advocate, consider this:
Someone takes a BSD project and bases a proprietary program on it. Is that person doing something wrong? Well, no, you say, because that's the whole point of the BSD license. It's also fine to keep rolling in new versions of the BSD project.
Now suppose someone takes a BSD project and relicenses it under the GPL, announces it on the internet, gets it into all the Linux distributions, and starts soliciting contributions of new GPL-only features while also rolling in new versions of the BSD project as they become available. Is that person doing something wrong?
I suspect that a calm, "No, that's also great. That's why we made it available under BSD." would not necessarily be the response.
This is how I think about BSD vs. GPL issue (of course, it's a contrived example and numbers are not accurate):
You have created X (say, redis). 5000 individuals and companies need it right away and want to use it momentarily.
If it's in public ___domain, all of them will use it, then make separate forks, and maintain them (individually, or in groups).
If it's a commercial product (say, $20.000), you might get 10-20 customers. They won't contribute back code, but will give you loads of money so you can hire more people. It's great business, but a couple of teenagers can't hack away with it because it's just too expensive.
If it's GPL, 500 companies (10%) will use it. Because if they use it, they have to re-licence their code as GPL also, which is unacceptable in many cases. They all contribute back their modifications though, which is great.
If it's BSD, everybody (5000 people) can and will use it (as it doesn't require you to contribute back your modifications, and you can have a private fork). So, we have 5000 companies using X. How many of them are contributing back? If it's more than 10%, then it's a win. If it's less, it's a loss (compared to GPL).
In other words, if you GPL you code, your pool of potential contributes has shrunken substantially.
---
So, the question is this: which is bigger? the percentage of companies that can use a GPL-licenced software, or the percentage of companies that are using BSD-licenced software and are contributing back their changes. I think in a lot of cases, the second one is bigger.
If it's in public ___domain, all of them will use it, then make separate forks, and maintain them (individually, or in groups).
SQLite is almost exactly analogous to what you described (database, public ___domain).
AFAIK, there is no widely-used SQLite fork.
IOW, the situation you describe with every company "maintaining their own fork" literally did not happen to the software that's the closest case study in real life to what you describe.
But also any GPL project can poach from a BSD project, but not the converse, so BSD contributions are (technically) a strict subset of GPL contributions.
I don't understand. Why would the developer who wants his code used "anyway you see fit" suddenly care how you re-licensed it? You have used it in a way you see fit. The original BSD license didn't evaporate. This situation looks no different to me than a company taking a BSD-licensed project and putting it inside their proprietary systems.
If his downstream users are savvy enough to know to use this "forked" project, they're savvy enough to search for the original author and discover that they can get the same code under a more permissive license.
Say you release code X under a BSD license. Someone incorporates a neat, but tricky to re-implement, feature and release the code under GPL. Everyone wants that new feature but, if they do, they either have to reimplement it without looking at the GPL source code, or they have to use the GPL license from now on (or, third choice, live without that feature). I used to release my code under a GPL license but found too many restrictions. The worst offenders were tutorials written where the code was GPL. Tutorials that aim to free you by giving you new knowledge should not tie your hands and force you to adopt a license if you want to use that knowledge.
Has something like that ever happened? I always hear this sort of argument against BSD— "But what if a company takes your project, strips it of all references to the original, and sells it as closed-source proprietary?!"— but I've never heard of it actually being successful. The same with your example. Has that happened before, or is this just a case of premature optimization?
The reason the GPL happened in the first place was because this happened to Stallman with the original version of Emacs he wrote with his friends. He started personally reimplementing every feature they added under a forcibly-free codebase to guarantee this would never happen to him again. (Additionally, this happened to me; I got totally shafted by assuming people would play fair with a BSD license, and the result was a closed-source commercial competitor with investment funding and a marketing department running rings around me. They really were reliant on my codebase, so temporarily closing source and moving to GPL undid some of the damage, but the consequences persist to today.)
Never heard about it happening to a BSD licensed project, but it has certainly happened to GPL licensed projects. Some years ago there was a company who rebranded a GPL'ed CD ripping program, removed all author credits and sold it without source. The authors eventually found out through disassembly.
There simply can't be a perfect licence, since the licence reflects the conditions the author/owner value, and well, people value different things, something licence profileration is a good indication of.
Beyond that, I think we can (imo) see that different types of licences are more popular in certain types of open source projects. GPL is very popular for 'full application'-style projects, more permissive licences like BSD/LGPL etc are in my experience more likely to be used in libraries, frameworks, component code in general.
Antirez wants to promote his personal choice, the BSD-licence, and that's perfectly fine, other programmers are vocal in their support for other licences aswell.
One thing struck me though (apart from the complaints concerning 'another' available licence which felt unecessary), which is that after his words of how he 'just wants to better the world with his code' his concern of 'what open source does not recieve enough of' boils down to money, not code contributions. And as such he suggests that companies should send part of their earnings the programmer's way, not an unreasonable request by any measure (although sadly perhaps unrealistic).
It's no surprise then however, that he does not favour GPL, in which the source code is paramount.
There's no right or wrong here of course, just different preferences, Antirez has little interest in source code contributions but feels that monetary contributions are lacking, the GPL on the other hand is all about 'the source code' and that it (and enhancements made to it) remains open.
I agree 100% with you, but one reason why lately I look at GPL with suspicious is that it's long and complex enough that I'm not sure every contributor to GPL fully realizes the implications. It's not just "if you modify you need to release the modified version" as I believed. The SDR Touch affair clearly shows it. Also the problem when linking to closed source code.
This idea that it's ok to make money using the GPL in one way (just using the software as it is, as a service, like when you run a copy of MySQL) and not into another way (by using a GPL library in your closed source app, just releasing back what you changed in the GPL code) is very odd IMHO, probably not in the spirit of code sharing.
Well yeah, the GPL states that it needs to be trivially easy for end-users to replace the GPL chunk with their own code. Because in the past (Tivo) GPL code was used against people. Two separate packages is the simplest way to do it. And I feel the 'no bundling' thing is a little over the top. As long as rtl_tcp was a separate file that you could easily replace, it seems it fit the letter of the license.
I know I'm[1] not going to convince you, but the GPL exists for a reason as does the BSD. BSD puts the rights of the programmer first and foremost. This is useful at times, but it also lets bad apples ruin a code base. GPL puts protecting the code first. (And to a lesser extent, the end-user.) In the end, it means that GPL code is basically immortal because no one person/group can control the code base.
Stopped reading at the "GPL folk are anti-commercial" straw man attack. This is not "a few thoughts", this is just another attempt at starting a flame war.
If you want a constructive discussion, you should consider listening to other people's arguments.
It is still legal to develop/install your own software on most devices.
You don't have to pay to some corporation for the privilege to be allowed to distribute your program to other users or even to start developing your program in most cases.
You may build whatever program you like without thinking whether it confirms to some corporation's rulebook/opaque acceptance process.
You can create a popular application without using API that is controlled by a corporation that will pull plug on you if your application becomes too popular/not aligned with its interests.
--
What license better enables the above?
Enjoy the freedom to choose whatever license you like. Don't bash GPL in the process.
I've given a lot of my time to open source projects for the same reasons without getting monetary compensation, however:
1. I don't think that companies will ever give back to a project if there is no "ask". To do this GitHub, etc. could provide an easier way to take gifts.
2. The odds of companies giving gifts would seem to be very low even if there was a big "give" button, because:
a. The person that would typically see the value in giving would have to provide a very good reason for the need for that gift to the administration of the company, whose interest is making money, not giving gifts to external entities. And it needs to look good on the books, too, so in my experience they would rather for the development time or just pay for a support license.
b. It isn't a gift if you are getting something for it. If it can be proven that you were funding something that was a product/service, you may need to pay VAT, etc. on it. The rules and laws surrounding this vary depending on country and province.
c. Could your gift be considered funding to a project you didn't intend to fund without documentation saying explicitly what the gift was to fund (and at that point, if you have that document, then it is no longer a gift- it is payment for a product or service). You don't want to give a gift for X project and then find out that it looks like you gave a gift to someone that also wrote a virus.
d. Instead of a gift, if you are taking payment for services to write software, then ownership comes into account. Is it work for hire or not? Who owns the copyright? You may need to have a contract and declare that you are an individual contractor and that the work is not work for hire. But again the rules may differ depending on ___location of the developer and of the business that wants to "give" to that developer.
I think crowdfunding could offer a solution to these problems.
I think there are some special requirements to make this work. First, the companies that want the work done need to commit to pay before it's done, so the developer knows how much they can expect to receive. Second, on the other hand, there needs to be an evaluation step, so the contributors don't have to pay if the work does not live up to their collective expectations. I don't think the Kickstarter-style model, where the developer receives all the money in advance unconditionally, can attract a lot of contributions from businesses.
And as you say, companies would need to know exactly what they're buying with this money. Fundamentally, they're buying influence: influence over what project the developer works on, influence over the details of the work, and influence over the evaluation process.
You say: "unfortunately it is not possible to pay bills with pull requests", that's one of the reasons I'm working on http://issuehunter.co, a project to get paid for OSS development. It's a crowdfunding platform based on GitHub issues, it should improve and accelerate open source software development process.
I'll shortly release a beta version and I'd really like to get some of that big percentage of developers that "do a lot of work in their free time for passion" as beta testers. Well, there's an alpha version at http://issuehunter.herokuapp.com where you can sign up but it's not fully functional at the moment.
I loved the text until he got to the GPL. Honestly, I really don't care what licence you're using in your project as long as the result is open source software. It is your work, so use any licence you want, I won't say if in my opinion it is the right choice or not, and please don't judge me if I choose a different one.
We're all in the same ship, don't we?
EDIT: I can't understand why this comment is being downvoted. I appreciate the feedback of the downvotes, but in this case I find it confusing. If you don't agree, it would be nice if you post a reply.
The BSD has a "non-endorsement clause" prohibiting the use of the name of the copyright holders in promotion.
The OSI approved version of the MIT license doesn't include an equivalent clause (that's the one I usually use in my projects), but some variations of the MIT license do (ie. the X11 license).
EDIT: OK, I misread your comment when you said "BSD two-clause". I think you're right, as it removed the "non-endorsement" clause.
The BSD 3-clause and 4-clause variants are a little bit more restrictive, though none of them have this "viral" character of copyleft licences like the GPL.
I would advise MIT, because it does not have this "how many clause" confusions.
Right. If you want "least restrictive", then use MIT.
Apache Licence (version 2.0) is also interesting. It is just as "least restrictive", but additionally includes a "patents grant". Unfortunately, it is not as short and simple as MIT.
Indeed it is not valid in most places, as things become public ___domain when copyright expires but you cannot give up your copyright. Carrying round eg a BSD license declaration is more useful for this reason.
I'm curious if there is anyone in a place that doesn't "recognize" an author's right to give their work to the public that's actually bought a license?
I don't understand where people are getting this meme that the GPL or FSF has anything to do with (not) charging for software. It's about protecting the people you distribute your software to, by affording them more equivalent rights you have as the author of the code or its derivative works.
> Distributing free software is an opportunity to raise funds for development. Don't waste it!
There exist legitimate practical problems to grouse over, like certain business models (shrink wrap) made significantly tougher to pursue, or license compatibility (did you know that the main reason GPL has its incompatibilities has little to do with copyleft, but rather section 6, which mandates one is free to use the software for any purpose with no added restrictions...that's why GPL2 is incompatible with GPL3 and Apache2, as both have restrictions with regard to patents...and JSON, which states that the software must be used for "good, and not evil", or OpenSSL, which has the infamous BSD advertising clause), but this idea that the FSF or Free Software movement has anything to do with making software available for zero cost is a misconception that just needs to curl up and die. It's about the non-servile interaction between author and consumer. The author has the right to distribute and modify. So does the consumer.
I honestly don't understand where people are getting this idea that software for zero cost is part of the FSF/GPL ideal from other than the fact that, regrettably, the preferred word of the FSF includes "Free".
The GPL is the best free software license to hamper indirect users' freedom to not license source code under such terms. GPL is also extremely ambiguous for many types of software, especially when it comes to dynamically typed languages. We just don't know what "linking" means under those environments.
Having that said, I too have been wondering about the same thing antirez talked about. I wondering how many OSS developers actually receive back monetary compensation for their time put into writing their software. I'm not even talking about compensation in direct relation to the value their software, which for all I know, if that were the case, Linus and Stallman should have been as rich as Steve Jobs.
There's definitely a mismatch between what people are paid for and what people most valuable for in our current industry. I wonder if there was another GPL version that's better suited for JS/Python/Ruby or whatever will actually start forcing the companies to hire more OSS developers.
I have released under BSD and GPL2 but I understand one thing - unless and until there is a significant and tested base of case law, in every jurisdiction I care about, these licenses are just contracts between happy parties. Angry parties define case law.
Having said that I strongly suspect that the GPL preamble will be the most common piece of text in code in 2100
> unless and until there is a significant and tested base of case law, in every jurisdiction I care about, these licenses are just contracts between happy parties. Angry parties define case law.
There is a significant and tested base of GPL case law. Large corporations regularly find themselves with no option other than coming into compliance.
The beauty of the GPL as a license, I think, is that there's no way to contest its validity -- if you're distributing GPL-derived code yet you don't think the GPL works, then you're distributing someone else's code without any valid copyright license, and you have lost.
I did think that there was minimal precedent-setting cases.
There is the "world first" of iptables in Munich, Germany, from 2004, but afaik most stuff is settled quickly - the GPL looks water tight and the PR shitstorm is not worth the effort. Only companies like D-Link and Cisco have even come close - so there is precendence in US and Germany for embedded GPL violations.
Not in the UK to my limited knowledge though.
It might be untestable however - everyone wants it to be as it is, almost no-one benefits enough from breaking it, at least not blatently. Which I think is the thrust of your second paragraph.?
This article reminded me of something I've always wondered about software licenses:
Suppose I write a book of "software licenses" with a short introduction, copyright page, etc. The rest of the book's content are the actual software licenses (GPL, BSD, MIT, Apache, the CC variants, etc.), one license per chapter.
At the end of the book, I include a final chapter with the source code for a small software program, without any license or copyright declaration. I then distribute the book on the Internet, for free.
What license is the source code at the end of the book under, if any, for the people the book is distributed to?
In particular, would any of the GPL licenses necessarily apply, due to their "virality"? And if not, why not?
I would expect that there would be no license granted to a the source code in a separate chapter and therefore copyright law would apply.
The GPL "virality" only applies to code that has been published under the GPL so if you had written the code it wouldn't apply.
Now another form of infectiousness would apply to the code, that of copyright itself. Anyone who copied the code would be infringing copyright as would anyone who copied them (although they might have a claim against anyone that told them they could copy it). Almost all proprietary licenses are at least as infectious as the GPL.
By default, I believe none would apply, it would be copyright to you, unrelated to the license text published in there. The licensing text itself is public ___domain for all the licenses you listed, so its licensing does not affect the other text. The code in the final chapter is under whatever license you distribute the book under.
The problem with open source is it's poorly documented making it difficult for a new person to join the effort. Someone should make an open source project to document all other open source projects.
I think this is in the right direction. What would be cool is if this could be tied in with the open source repository managers like SourceForge so that soon as I start a SourceForge project, I get tied in with OpenHatch.
In my opinion instead what the open source does not get back in a fair amount is money
I'm not really sure what the problem is. I don't know the numbers, but I expect there are thousands of full-time open-source developers. (I was one of them.) Meaning that anyone who has made a substantial contribution to an important project could probably find a decently-paying job to work full time on the project.
There have also been a number of very successful startups based on open-source efforts from the founders.
Something hit me as I read this - that the profusion of frameworks in languages - where there is no simple and easy way to combine output of one code in one framework into inputs of another (it's why Django plugins do not chain to tornado or pyramid plugins - a problem Rails does not have)
It really needs to be something along the http === unix pipe solution that way we can mostly ensure open source code written by one can be reused by another.
a lot of smart coders could provide an economical boost if they could be more free to write what they love and what a lot of people are probably already using to make money
I think the concept of redistribution is more interesting than which license. By what method could redistribution be achieved? Transparently accounted voluntary micropayments shared out though the reputation graph of a repo.
I mostly agree with antirez on this. When I was first starting on the Fogbeam Labs[1] projects, I thought a lot about what license to use. The "stock" model for "commercial open source" seems to be to use the GPL, with the business model rooted in the idea of "people pay if they want to use the code without conforming to the GPL". But somehow that never seemed quite right to me. We're doing enterprise software, and - by and large - I doubt most of the firms who would ever use our products would ever want to redistribute them, and would never wind up having an GPL issues to begin with.
And, like antirez, I just want our stuff to be used, even if the business side of things never takes off at all. I finally decided to go with the Apache License v2. The risk, obviously, is that it is now possible for a competitor to fork our stuff and compete with us, even if their product is closed source. On the "pro" side, however, is the "business friendly" perception of the ALv2 and the absence of the stigma which is (fairly or unfairly) associated with the GPL.
As far as the risk of competitors goes... I figure we should, to paraphrase Steve Blank, "be so lucky as to be successful enough that somebody would want to fork and compete using our stuff". And if somebody does a closed source fork, we'll be happy to compete with them anyway, since we believe that being closed / proprietary is a competitive disadvantage in 2013. Simply, we believe that the world is moving more and more towards a place where software is expected to be open source, and where being open source will be part of the "cost of doing business". Obviously this hasn't yet bubbled up to the point where the SAS's, or SAP's of the world are being forced to go open source, but I think that day is coming. Or, at least, the day is coming when there will be significant OSS competition for SAS, SAP, etc. I'd mention Oracle, but Oracle is already a big part of the OSS world, after acquiring Sun. Think about that for a minute... for better or worse, freaking Oracle is one of the biggest players in the "commercial OSS" space.
Many developers do a lot of work in their free time for passion, only a small percentage happens to be payed for their contribution to open source.
Of all the reason I wanted to start a company, and an "open source company" in particular, this is a huge one... I want very much to one day be able to hire programmers, lots of programmers, and pay them to work on open source projects. It's kind of the old saw about "if you can't find the job you want, create it". I never found the company I'd ideally love to work for, so I want to create that company, a company that's hacker friendly, largely engineering driven, and a place where people will be excited to hack on the stuff they're hacking on.
"But", you might protest, "who wants to work on enterprise software"? Well, that doesn't necessarily mean what you think it does. "Enterprise software" doesn't have to be boring. It's not all CRUD screens for updating customer records. We're talking about social software, machine learning, text analytics, search, knowledge management, semantic web, and related stuff here. If you would, for example, find hacking on Lucene or Mahout or Activiti or S4 or Kafka or Hadoop or something of that nature, then we're on the same page. Heck, or Redis as far as that goes. Redis certainly could be "enterprise software" in some contexts.
Edit: vis-a-vis some of the other discussions on the post, I just want to be clear about one thing: At Fogbeam our stance is that if/when we fork an existing OSS project, our modifications will always remain open and freely available to all, even if the license doesn't require it. Everything we are working with right now is code we've written ourselves, and it's all ALv2 anyway, and it's all on Github for the taking. That is the way we expect to always do things, even if we did, for example a "Fogbeam Distribution of Hadoop" or something like that. We also develop with an open bug tracker, publicly available mailing lists, etc. When we talk about being "an open source company" we're not just talking about the license(s). We're not interested in a Google/Android model where we build stuff in the dark and then throw it over the wall in piece-meal fashion and then ignore the community.
I bet that copyright and patent laws make life unfair for a programmer. If he is protected by a large patent portfolio, he can attempt to make a profit, otherwise he must beware.
As other people (buster) have mentioned, they feel that releasing GPL code is contributing to humanity too. Here's the difference as I see it:
You want to maximize the number of people who use your code, because that makes you feel good about yourself and your contribution.
Someone who releases GPL wants to try to maximize the good outcomes that result from their releasing that piece of code.
For example: the FreeBSD hackers get to know that their code was incorporated into OS X and used by many millions of people. That's pretty cool for them. But the contribution to humanity of their code is limited by that -- the OS X kernel's closed source, so no-one can benefit from learning how that works, and in the meantime the FreeBSD project itself is dwindling. Meanwhile, e.g. Android is based on Linux, and is available to everyone to study. Linux is growing hugely, and is an amazing example of humanity working together to achieve a public good. I can't really say the same about FreeBSD.
So, I think the question is -- is your aim somewhat selfish, in wanting to maximize the consequences that can be directly traced to you, or is it driven by wanting to maximize the consequences to the rest of your society of your actions?
If the latter, I think there's an entirely reasonable argument that says that the GPL is a better way to do it. There's no question that, as you argue, the GPL has less immediate freedom for each individual user than the BSD licenses. But why should we measure freedom for each individual, if what we care about is the final level of freedom for everyone in society?
To put it another way, I think the BSD license can result in "tragedy of the commons" scenarios where maximizing individual freedom has worse total consequences than would have resulted by applying regulation to maximize societal freedom instead.