This post is in most respects excellent, but it suffers from a fundamental problem. It starts from the assumption that the goal of free software is to be as widely used as possible, and that anything that prevents this is therefore Bad. But widest possible use was never the goal of the Free Software Foundation. They have always been about freedom first and software second, and Stallman has many times stated that he'd rather a program be used less if it results in more freedom, than vice versa.
So the goal of the various restrictions imposed by the GPL (in either of the main versions) is to increase freedom. We can usefully have a debate about how well they achieve that goal, and whether the increase in freedom is worth what has to be spent in order to achieve it. But if we do that, let's do it from a position of first having understood why the GPL says the things it does.
I saw this summed up an admirably concise way some years ago, but stupidly forgot to note whose soundbite this is: "Saying that the GPL is less free because it forbids proprietary derivatives is like saying the USA is less free because it forbids slavery". Yes, of course it's hyperbole to hold up freedom of software alongside the freedom of people; but this quote shows by example that more freedom doesn't always get achieved by less regulation but by more.
> They have always been about freedom first and software second, and Stallman has many times stated that he'd rather a program be used less if it results in more freedom, than vice versa.
I think I disagree with your interpretation, but I think my disagreement hinges on a semantic disagreement about the word "freedom." To me, the GPL is a legal limitation on freedom. It prohibits certain use cases, like distributing that software without its source code. To me, a piece of software is "more free" if its source code is available, but people are still able to do literally anything they want with the source code, including distributing binaries without providing access to the source code. I think the point of the GPL is to utilize the copyright system to ensure access to source code for everyone, not to simply increase freedom.
The slavery quip doesn't really make sense, because in that analogy the source code is the slave. So unless we're talking about increasing freedom for source code (which is a strange notion, since most source code is not conscious) rather than increasing freedom for people, my disagreement still applies. The reason forbidding slavery is not generally considered a decrease in freedom is that both slave owners and slaves are people.
>I think the point of the GPL is to utilize the copyright system to ensure access to source code for everyone, not to simply increase freedom.
According to many, including the FSF, GNU, Stallman and myself, increasing access to the source code for everyone is increasing freedom. In fact, it's freedom number 1. "The freedom to study how the program works, and change it to make it do what you wish."
> The slavery quip doesn't really make sense, because in that analogy the source code is the slave.
No, it's about freedom for people in both cases. The lack of source code would be analogous to the chains of slavery. Not equivalent, mind you, but analogous. A software user is less free when he or she cannot inspect or modify the software that runs on their machine.
> According to many, including the FSF, GNU, Stallman and myself, increasing access to the source code for everyone is increasing freedom.
Once released freely, the source code never stops being free, so I don't really know what they're talking about in terms of "freedom". MIT licensed code is almost infinitely free, it will never stop being free, and nobody can take it away from you.
It seems to me that they're interested in forcing other people's source code to be free.
It's not just the code itself, but also derivatives thereof. Eg, no one would argue that iOS is free in any sense of the word.
There are many, many reasons for wanting the ability to inspect, modify and compile code yourself. The GPL secures those rights in perpetuity, while other licenses are more lax towards those particular rights. So, for example, you'd be losing that freedom by using BSD-derived iOS.
Basically the GPL is designed to protect users of the software, not developers of the software.
Those rights are already secured in pepetuity. Your code, once released as opensource, is always opensource.
If users don't want to use code that contains proprietary modifications to your code, nobody is forcing them to -- your opensource code hasn't disappeared.
As the copyright holder of a piece of code, I can use the GPL to ensure my users won't ever have to wonder about the provenance of my bit of code, no matter where it ends up. When developers adopt the GPL, it should be a conscious decision to protect those rights for future users.
The goal isn't for code to be open source Just Because. Take a moment to consider the motivations behind the FSF's definition of free software, as linked above by drcube. RMS has been talking about this for 30 years.
You clearly misunderstand his goals and those of GNU/FSF -- that is evident from every single one of your posts on this article, despite all these people trying to explain it to you. Not going to continue here; have a good evening.
I'd argue quite the opposite, I think I understand them quite clearly, and I think the facts speak for themselves in terms of how much grief the GPL and GPL incompatibilities have caused our industry.
But the rights in question are those of the end user, and these rights include that of recieving the source code of the actual binary containing GPL licenced code, which will include any (possible) modifications of said GPL code.
This is in my opinion the main attraction GPL has for developers, as they as 'end users' are given the right to any source code modifications done to their original code.
Users already have that right with liberally licensed open source code. If they don't want to use proprietary extensions for which they can't acquire the source, that's fine; nobody is forcing them to.
Which is what GPL guarantees, binaries which is guaranteed to provide source code.
Which is why developers who wants to guarantee this right to end users for the code they release, choose to licence their code under GPL.
Only copyleft style licences guarantees this right to end users, so if you are a developer who wants your users to have this right secured (which has a practical benefit for developers as they as end users of modifications to their original code, are guaranteed the source code of those moddifications), you will use copyleft style licencing.
If you guarantee that your binary has source, it has source. Guaranteed.
If users only want binaries that guarantee they have source, they can insist on only downloading/acquiring binaries from people that guarantee they provide source.
If you as a developer want to ensure that users of your code or modifications thereof will have access to that source code (end user which often includes the original developer himself) permissive licences does NOT _guarantee_ that.
Only way to guarantee that is to make it a condition for using the code in question, which is exactly what GPL does.
Do we really need to continue this dance of yours?
When some corporation sells you some proprietary software, the consumer has the FREEDOM to choose if he wants to fork over his cash in exchange for it.
When the proprietary developer encounters some piece of GPL software, he's being forced to comply with it, even if it's still his own decision whether or not to incorporate the code in his project.
Ah, language.
(TL;DR: nobody is forcing anyone to accept the GPL. The GPL offers you a deal - passing forward the four freedoms is just the price of using the library.)
The GPL 'freedom' is not that of freedom from licence conditions, it's about the freedom(s) given to the end user(s) through to these licence conditions.
Personally I've always thought that it would be better if they just used the term 'rights' which is what the GPL conditions actually grant the end user, I can't say I find the wording 'dishonest' though, just a poor choice.
The license grants rights and imposes limitations. One of those limitations prevents users from mixing code freely.
Users already had the right to not use proprietary products; what the GPL has actually done is to take away their right to use your code with a proprietary product.
As such, you've granted users fewer rights as compared to liberal open source licenses, not more.
Users -- those who are actually interacting with a running version of the software -- lose nothing with the GPL. On the contrary, their rights to the code are secured.
Developers -- those who modify and redistribute the software, in binary form or otherwise -- do indeed have restrictions designed to protect the rights of users.
So yes, the GPL does impose restrictions in specific cases to secure rights in the general case.
> Users -- those who are actually interacting with a running version of the software -- lose nothing with the GPL. On the contrary, their rights to the code are secured.
They've been denied the 'right' to use proprietary extensions to the software. Those extensions may provide more benefit to the user than the open source software alone: see also, Mac OS X.
That's no less real a 'right' than the 'right' to have access to the source code, which is something they've never lost because open-source always remains open-source, and they remain free to only use open-source software.
> So yes, the GPL does impose restrictions in specific cases to secure rights in the general case.
Those rights are already secured, because nobody forces users to use proprietary software. If they only want to use software where code is available, they have every right to do so.
You are, once again, either misunderstanding or willfully misrepresenting everything that's being said. Users aren't being denied anything, because proprietary software doesn't exist under the GPL. Developers and distributors do lose the chance to keep their code closed. The GPL protects users, not developers.
You seem to think downstream developers have an entitlement to release proprietary software, even if it goes against the wishes of the original authors. News flash: devs aren't forced to use GPL'd software, either. If you want to keep your software proprietary, you're free to use something under another license, or write something under your own copyright.
Really, it's not even about being "open source" per se; the motivations of the GPL go much deeper than simply making the code available. But you obviously don't agree with those, from the other thread.
Plugins are where it gets weird. Technically there should not be proprietary plugins at all with the GPL, but it might depend on the interface or manner of linking (eg, would a HTTP-based "plugin" API be considered a derivative work?). For some cases, licensing the original software under LGPL may be sufficient to support proprietary plugins.
Ultimately it's a judgement call by the original author and what use-cases or freedoms he/she wishes to support. Hopefully they've thought that far ahead, though. It's not an easy question for the majority of the population that doesn't quite lean as far as RMS does.
The users can already choose to not use proprietary software, so what is it protecting them against? Themselves?
> You seem to think downstream developers have an entitlement to release proprietary software, even if it goes against the wishes of the original authors ...
No, I just believe that the GPL is intellectually dishonest. It's about controlling other people's means of production, with the end-goal of creating a communist ecosystem in which it's essentially impossible to not participate due to inherent market entry costs.
The users can already choose to not use proprietary software, so what is it protecting them against? Themselves?
It's simplistic reasoning to ignore the social effects. For example, non-copyleft free software is extremely vulnerable to the EEE strategy, since any proprietary vendor can take the code and re-release it with extra or changed features under a proprietary license, which might almost extinguish the original software for lack of interest, forcing the user to have to choose between the Free version or the "upgrade", which is actually compatible with everyone else's.
No, I just believe that the GPL is intellectually dishonest. It's about controlling other people's means of production, with the end-goal of creating a communist ecosystem in which it's essentially impossible to not participate due to inherent market entry costs.
What happened to the person choosing to not use the software? Suddenly when it's the poor proprietary developer, he's being controlled by the bad copyright holders?
And how is the GPL intellectually dishonest? Replacing proprietary software by giving free software developers an advantage is an explicit goal of the GNU project. How is it dishonest?
In any case, you're fighting the wrong windmill. It's not the GPL that gives anyone such power, it's copyright. It's that government-granted monopoly that allows control over other people's means of production. The solution to your problem is simple: fight for its elimination.
> And how is the GPL intellectually dishonest? Replacing proprietary software by giving free software developers an advantage is an explicit goal of the GNU project. How is it dishonest?
The usual explanation is "four freedoms" and giving users freedom.
Leveraging network effects to create a communist shared ownership of the means of production is the honest explanation of the GPL, and that has nothing to do with 'freedom', and everything to do with network-enforced Marxist ideals.
> * It's that government-granted monopoly that allows control over other people's means of production. The solution to your problem is simple: fight for its elimination.*
I have no problem with copyright, and I don't want to forcibly eliminate the GPL. I'd be happy for it to die an honest death after careful and rational consideration by the industry.
The usual explanation is "four freedoms" and giving users freedom.
No, that's what all Free Software does. The GPL is an hack to extend them as widely as possible, by giving Free Software an advantage over proprietary code.
Leveraging network effects to create a communist shared ownership of the means of production is the honest explanation of the GPL, and that has nothing to do with 'freedom', and everything to do with network-enforced Marxist ideals.
There's no ownership here, only State granted monopolies. Property is an institution for allocating scarce resources; copyright is a government granted privilege designed to "promote Progress". The GPL is a way of defusing the crony system that takes away people's control of their own property - their machines. You're seeing Marxism where it doesn't exist.
On a related note, it's interesting to think that the USSR eliminated private property, yet they established and kept copyright - with fairly extensive terms, in fact.
I have no problem with copyright
"It is difficult to get a man to understand something, when his salary depends upon his not understanding it!" ;)
(By the way, I'm honestly sorry you're being downvoted. I find the attitudes of these cowards who downvoted based on disagreement rather disgusting.)
I downvoted him this time. Not only because I disagree, but also because espousing misinformation of that sort is genuinely damaging -- it's downright wrong, and calling something communistic carries a lot of negative connotations (whether justified or not).
But the worst part is, that argument sounds plausible at first glance. The marginal cost of data distribution is near-zero, and we've hit information post-scarcity. Reconciling that with traditional economic models is awkward. RMS/GNU already carry enough baggage, and without understanding their motivations, it's very easy to attach incorrect labels to them and their goals. You've been very eloquent in describing those, so thanks.
Well, then I think you should've replied and wrote that when downvoting.
Personally, I don't think downvoting is the appropriate response. Particularly, I don't think it would have the desired effect, since someone who might be affected by the supposed misinformation is unable to understand the reason behind the downvote, so they might make the same assumption that I did.
"[A]ll men may be restrained from invading another's rights and from doing harm to
one another, and [this] law of nature... which wills the peace and preservation
of all mankind... is... put into every man's hands, whereby everyone has a right to
punish the transgressors of that law to such a degree as may hinder its violation"
-- John Locke, Second Treatise of Government
The GPL does not limit freedom, it only limits power. Distributing a binary to a user while denying them the source code, while not strictly a malicious act, is an attack on the user's freedom because it puts the user at a position where the author hold power over him/her. The author allows himself/herself to freely study and modify the program in its preferred format (the source code), but he/she has intentionally made it impossible for the user to do this. Copyleft is about authors willingly removing the powers granted to them by copyright and "redistributing" them so that all users are granted freedom.
It's worth noting that the GPL does not say you have to give out source code all the time, you just have to give it out when people ask for it, and you have to make the offer to give it out clear. So the actual issue that you believe is "a limitation on freedom" is the lack of the ability to say no when someone asks for the source code, despite that they have already been distributed a binary. However, there are no practical reasons to do this that don't involve intentionally keeping secrets from people, or intentionally making studying and modification of the program difficult.
Substituting "power" for "freedom" doesn't really change anything. You can certainly argue that a software distributor exerts power on a user when they don't provide source code, but you can just as easily argue that a software distributor exerts power on a user when they provide the source code but don't allow derivative works to be distributed without source code.
The slavery analogy is interesting because it's something that we all agree is unequivocally wrong. People sometimes can't wrap their heads around the GPL because not everyone agrees that e.g. not providing source code is unequivocally wrong, but that's the stance the GPL takes.
Imagine a world where slavery isn't prohibited by law, and that isn't going to change, but we still want to discourage it as much as possible. So someone comes up with the idea for a "license" to grant to current slaves: You can have your freedom, with the one restriction that you can't work with anyone who owns slaves unless they free them all and attach the same restriction. The idea being to create a large population of former slaves who have been freed with that condition, so that you create an economic environment in which owning slaves is discouraged, because anyone who continues to own slaves can no longer do business with an economically important population of former slaves.
Obviously you get the objection that you're restricting the freedom of the former slaves. The freed slaves would be individually better off if they could work with whoever they wanted, especially if there is a nontrivial population of slave owners who continue to refuse to accept that condition and might otherwise do business with them, but then you lose all the incentive for the existing slave owners to free their slaves which on the whole would result in a net reduction in freedom.
No, that doesn't follow. Giving certain users the ability to distribute derivative works to other users but yet say no when one of them asks for the source code presents the same misappropriation of power as if the author of the original work was doing it. The point of copyleft and the GPL is that no groups or individuals should be able to exert power over anybody else using the software in question.
Consider this example which is based on actual events.
Consider Project A which is based on code released by company X under GPLv2 only. We're grateful for the release of this code and start to develop a project based around it.
Then organisation Y releases Library B, something which would help us immensely with our project. However it's released under the GPLv3 and one of two scenarios occurs, they want to change the license but have distributed copyright ownership and cannot contact the original authors so the license cannot be changed, or they don't want to be seen eroding 'freedom', so they refuse.
Who is right in this situation? Why should two projects who have the goal of progressing FOSS be doomed to non-collaboration?
There is no right or wrong, GPLv2 and GPLv3 are different licences.
In order to make it possible to use GPLv(n) code together with GPLv(x) code, developers often use the 'or later' clause when they licence under GPL.
However if they only want the code to be used under the conditions of GPLv(n) then they will omit that clause, as Linus Torvalds did with Linux for instance.
The example you portray has nothing to do specifically with GPL, it would be just as true in any other licence incompability scenario. And if the original authors don't want to change the licencing then that's their right, end of story really.
Again GPLv2 and GPLv3 are _separate_ licences, and incompatible with eachother _unless_ there is a clause which allows the code to be released under a later GPL version.
Those projects aren't doomed to non-collaboration because that is a non-issue. Worst case scenario you'll have to modify one of those projects so they can invoke the other one as an external program. Free software license incompatibility is blown way out of proportion.
This is a real life example of a scenario currently playing out between LibreCAD (GPLv2 only) and LibreDWG (GPLv3) because the former was based on the source code released from a company who has no intention of changing it and the latter is the FSF, who see anything but the latest and greatest GPL version for their own projects as undermining free software.
So you have a situation where you have a program and a library that would really benefit each other, yet are unable to combine that code and distribute it.
Yes and there are workarounds for it. If they aren't willing to do a workaround and neither of them are willing to compromise on their position (LibreCAD should probably switch to GPLv3, btw), then it's both of their faults.
>the FSF, who see anything but the latest and greatest GPL version as undermining free software
This is false. The FSF has no problem with people using licenses that aren't the GPLv3. It's suggested that you use the GPLv3, but any license that meets the criteria for being free software is an acceptable free software license.
LibreCAD can't switch because their project depends on a large amount of GPLv2 only code.
The FSF won't change its position because LibreDWG is a FSF project.
Catch 22, who's right?
You can blame the copyright system for that for making it not possible to negotiate license changes in the event the original copyright holder is not contactable for whatever reason. But again, there are workarounds and it makes no sense for them not to consider them, so this whole thing is a non-issue anyway. If they want to save DWG files, is there any reason they cannot invoke LibreDWG from a separate command line program using an intermediate format?
It's not the copyright system's fault in this regard.
The originator of the LibreCAD code has no interest in hiring another legal team to go through the process of re-licensing an already open source project, and the FSF sees anything less than *GPLv3 in its own projects undermining the end user's freedom.
The copyright system is to blame because without it there would be no need for them to even think about hiring a lawyer because these complex licensing issues wouldn't even exist. I would advise against looking to blame someone, as the system is not known for working in the first place.
But if you really want to blame someone, you can blame both of them. They're both wrong, because there are workarounds.
So your solution is to abolish the current copyright system?
How would you fix it?
What would you do different to the current one?
And this topic is well documented and there currently is only one viable workaround, the FSF licensing LibreDWG under a GPLv2 compatible license. They have blatantly refused however, as explained here.
http://libregraphicsworld.org/blog/entry/libredwg-controvers...
That page basically says exactly what I did: There is a work around, they could create an alternate plugin interface specifically for this purpose. However they don't want to because it's "ugly." So after reading that I would say the blame falls completely on the LibreCAD developers. Something perceived as being "ugly" is not a valid reason for the FSF to compromise its political goals. The FSF re-licensing software they own the copyrights to is not an option. They're a political organization and they drafted the GPLv3 for urgent political reasons, for them not to use it would be hypocrisy.
As for replacing the copyright system, let's save that discussion for a different thread where it is more relevant.
If you had looked further into the subject, you would know that the LibreCAD developers attitude of 'it's ugly' includes 'it breaks a lot of stuff'.
They can't justify the workload of adding a module that would otherwise not exist because of licensing issues.
And the FSF is supposed to be a champion of, well, free software, and I find it highly hypocritical of them to leave a project out to dry like this, especially if LibreDWG was released a few years before and released under the GPLv2.
I read the article you linked and nowhere does it say that things will break. I know it's convenient for you to attack the FSF but the real problem is that RibbonSoft is a proprietary company that is more interested in dual licensing and refuses to accept the GPLv3.
Yes, I agree, it is ridiculous. That's what happens when you have to deal with software licensing. The whole point of licenses is to be incompatible, if all licenses were compatible then we would only have one license.
I didn't come up with this system, if you must blame something, blame copyright. If you think it's bad this way, it's even worse when the two licenses in question are proprietary; often times in that situation you won't even have the option of a rewrite or a workaround. The nature of copyright is that not even free software licenses can give you the legal ability to do everything you could possibly think of doing, but they give you enough to ensure that every user is granted the four freedoms as long as the copyright holds. The FSF's position is that it would be more meaningful for the community to convince RibbonSoft to re-license as GPLv3 than it would be to have the short term gain of having DWG support available sooner.
I should lay out the options for you, so you can understand them.
LibreCAD is GPLv2 only, it has code from Ribbonsoft and also from independent contributors.
In order for them to transition to GPLv3, the following must occur:
- Ribbonsoft has to clear the code release with their legal department again to see if any contracts prevented parts of the code being released with such a license, then to approach the contractors who contributed to the program and get their input, then they have to go through and see if any patent licenses they have for their code would prevent such a transition. This equates to a lot of money that Ribbonsoft may not want to dish out again.
- Any contributors to LibreCAD who used GPLv2 only licenses or didn't assign copyright to the team would have to be contacted and their permission would have to be obtained for a change.
- Any other GPLv2 only code would have to be stripped out in order to obtain compatibility with GPLv3
On the other hand, the FSF holds all the copyrights to the LibreDWG codebase. It would cost them nothing to change the license to GPLv2, nor would it waste any time with reimplementation of code already out there.
The answer is so simple that I'm finding it difficult to believe that you still can't see it.
>The answer is so simple that I'm finding it difficult to believe that you still can't see it.
That the FSF should compromise its entire purpose so Ribbonsoft can save money and avoid duplicating code? I don't think anybody donates to the FSF in order that Ribbonsoft can maintain their business model.
It's not its entire purpose, the GPLv2 is still a valid GNU license, it's still copyleft and this sort of behaviour from them isn't helping the community at all, nor is it helping free software. It's pragmatic and idiotic.
A lax permissive license could potentially lead to a whole host of other problems including licensing problems. These licenses are not free from incompatibilities either, see the infamous BSD advertising clause for an example of that. And a permissive license certainly would not guarantee the project stay "unencumbered" either. The most adequate solution to this would be to either work on persuading RibbonSoft to relicense under GPLv3, or to just do a workaround. Attacking the GPL serves no purpose, even if you disputed the choice of license it would make more sense to criticize RibbonSoft than it would to criticize the FSF just for writing the GPL.
The BSD advertising clause has been dead for years, and it was primarily incompatible with ... the GPL.
The GPL is incompatible with licenses that impose more restrictions than it does, even if those restrictions are fairly limited, like the advertising clause.
I can't say I've ever heard of license incompatibility stupidity outside of the GPL. Lots of GPL problems, though: OpenSSL, dtrace, ZFS. Apple actually dropped GCC and invested in producing the liberally licensed clang BECAUSE of the GPLv3.
It's a bit strange that you blame then GPL when it is just as much the authors of the incompatible licenses' fault, especially when in some cases it's completely their fault because the authors of those licenses deliberately wrote them with the intent of being incompatible with the GPL. Additionally I find it strange that you fault the values of the GPLv3 for Apple ditching gcc, rather than faulting Apple for being an abusive proprietary company that has problems with the values that the GPLv3 imposes. As if the FSF should be working to please Apple?
Your choice of not wanting to accept the GPL doesn't limit your freedom, you had the choice to accept it and you declined. The fact that the software is copyrighted in the first place is the only thing that could be potentially limiting your freedom, and the GPL cannot do anything about that.
Users of proprietary software have the choice and can decline, too. Since users dont need it to protect their freedom, why is the GPL necessary if not to restrict freedom?
Because what it actually protects is rights, rights of the end user.
You of course know this, but you instead choose to endlessly harp on the meaning of the word 'freedom'.
Licencing your code under GPL grants the recipient of any binary in which your code is included a specific set of rights.
These rights include the right to the source code should the recipient want it.
This particular right makes GPL very interesting for many developers as they can release code, and then as recipients of modifications of that code, get access to those modifications in source code form and thus gain improvements to their original code.
If those users don't want to use code that isn't released liberally, they don't have to. So what are you actually securing for them? It's not freedom, they already have the freedom to not use proprietary software.
What you secure is the end user right to the source code of the _actual_ binary they recieve, which gives them the further rights to _examine_ and _modify_ said code and generate and _run_ a binary with their own modifications.
You know, those end user rights which GPL was created to preserve.
You don't need the GPL for that; just provide the source code for your software. If users actually care about having the code, they can use your binary for which code exists.
If they don't care, they can use proprietary software, or proprietary extensions that make your software better.
Either way, the user has full control over their choice of software, and nobody's actions can make your original open source code disappear.
The GPL is really about enforcing your ideals onto other people's code if it happens to be reliant on yours. That's a legit quid pro quo for a license, but it has jackall to do with freedom or user rights.
>The GPL is really about enforcing your ideals onto other people's code if it happens to be reliant on yours.
Oh please, enough with the bs, your code won't just 'happen' to be relient on GPL licenced code. It's just as much of a choice as that of end users choosing not to use proprietary code which you keep repeating.
And of course it has to do with user rights, that is what GPL preserves.
The right to the source code of a binary containing GPL licenced code, the right to modify and build binaries from that said source code.
It legally binds anyone who uses GPL licenced code to grant those _rights_ to their end users.
Being able to examine the code for the ACTUAL binary you recieve, rather than some original source code which may very well have gone through numerous changes before being compiled into the ACTUAL binary you recieve are very different things.
And I've already described how from a developer standpoint this is of importance as they are likely interested in recieving enhancements to their code in 'source code form' if they choose to licence under GPL, but it's also of importance in other aspects aswell since you as an end user may want to examine the source code to make sure it doesn't do something you don't want, or change it's behaviour to do something _you_ do want.
Your entire argument depends on the fiction that users can't make their own choices, or that somehow your code can be made non-OSS once released.
Neither is true, and this hokey 'user rights' notion is just a thinly veiled justification for a paternalistic communist view of open source collaboration, in which you want to control not only your own code, but the code that other people write, too.
It wouldn't be so insidious if it was presented honestly, as a set of limitations on freedom for your own benefit as the author of the GPL software, rather than in terms of the moral high ground of granting freedoms.
No my entire argument depends on the FACT that GPL preserves end user rights which end users are not entitled to with permissive code and are not given with proprietary code. All your attempts to evade this point shows that you have no interest in any honest conversation.
This is not about end user choice, this is about end user rights. With GPL licenced code end users have the _right_ to the source code which created the _actual_ binary they recieve. They don't have to demand the source code, but it is their right, they don't have to examine, modify, run a resulting binary of their own, but it is their right.
These rights are NOT preserved with permissive licencing, and they are NOT granted by proprietary code.
You try to muddy the waters by saying that 'users' don't have to use proprietary code unless they want to, but again developers doesn't have to use GPL licenced code so that doesn't have anything to do with this at all.
Whenever you want to use someone else's code you are subject to their conditions, you sure see nothing wrong with setting conditions for using proprietary code (users can always say no), so by what logic do you think developers should not be allowed to set GPL conditions for their code?
Your communist rant makes you sound like some crazy right-wing extremist, you want to have the right to use other people's code in your proprietary projects, but the notion of other developers instead wanting access to code used in conjunction with theirs in return somehow strikes you as some oppressive communist scheme??? Seriously???
You seem to think open source developers somehow owe you code to use in a proprietary fashion, and if they don't provide it under such conditions they are 'communists who wants to control other people's code'. I can't quite understand people like you.
That's because you've pretty substantially misinterpreted what I said.
I don't think "developers somehow owe you code to use in a proprietary fashion" -- developers are free to place any licensing restrictions they want on their work.
What I do think is that the GPL is paternalistic, communistic, and intellectually dishonest.
Here's why:
- Once open sourced, your code stays open sourced forever. There's no way to "un-opensource" code, and users can make use of it, forever.
- If users want the source code to the tools they use, they are absolutely free to only use binaries from people that provide the source code. If they don't want the code, they don't have to.
Ergo, users already have the "rights" and/or "freedoms" you're pretending to gift to them. QED.
What the GPL actually does is create a quid-pro-quo communist common ownership of the means of production (code) between developers. This has nothing to do with "rights" of end-users, and everything to do with restricting the rights of developers should they choose to participate in the GPL ecosystem.
There's nothing wrong with that system (other than it being unworkable and viral and restrictive, but there's no law against being obtuse), but it is intellectually dishonest to claim some sort of moral or ethical high ground.
The GPL is a simple mechanism to restrict what other people do with the code they write in exchange for using your code, not about "four freedoms" or "user rights". The parallel's to Marxist Philosophy ought to be pretty obvious in the aptly titled "Why Software Should Not Have Owners" essay from RMS: http://www.gnu.org/philosophy/why-free.html
>Neither is true, and this hokey 'user rights' notion is just a thinly veiled justification for a paternalistic communist view of open source collaboration, in which you want to control not only your own code, but the code that other people write, too.
No, this makes no sense. The only people who want to "control code" are proprietary companies. Copyleft and the GPL is a rejection of this, the main goal of it is to ensure that all users have equal control over the software. I don't know know how you draw the conclusion that the GPL only benefits the author, as the author loses most if not all of the (unjust) powers granted by copyright by publishing under the GPL.
> The only people who want to "control code" are proprietary companies. Copyleft and the GPL is a rejection of this ...
So copyleft/GPL licensing isn't an attempt to 'control' code? Despite the fact that this is exactly what they do?
> ... the main goal of it is to ensure that all users have equal control over the software.
The users already have the choice to use open-source software vs. proprietary software. If they want to have "equal control" over the software, all they have to do is make the choice to only use open-source software.
> I don't know know how you draw the conclusion that the GPL only benefits the author, as the author loses most if not all of the (unjust) powers granted by copyright by publishing under the GPL.
The author enters into a quid-pro-quo arrangement by which they get access to other people's code under terms equal to their own, and they're free to relicense their own code for whatever commercial use they want. It's an attempt to create a communistic shared ownership of code.
Copyright is what allows people to "control code." Copyleft is necessary to in essence "reverse the effects" of copyright. So yes it does technically leverage the control copyright provides, but this is necessary as everything is copyrighted by default. The author being able to re-license code he owns the copyrights to is an unfortunate side effect of copyright, but there is little that copyleft can do about that, it could happen regardless of the license chosen. A possible solution would be to transfer copyright to a group or person you know will never license anything under a proprietary license, such as the FSF.
Please refrain from using non-sequiturs like "communistic" to describe things. Copyleft does not deny anyone the ability to exercise any freedom including selling the software. The idea of copyright, and the idea that software should have "owners" are non-capitalistic ideas to begin with, so if anything the proprietary software companies are practicing authoritarianism.
It's hardly a non-sequitor; the parallels with Marxist thought on common ownership of the means of production are rather undeniable.
Like communism did to economies, the GPL has done our industry immeasurable harm by attempting to enforce sharing, creating closed ecosystems where the cost of market entry was so high that other's had no choice but to participate -- such as was the case with GCC, until the GPLv3 gave Apple sufficient cause to make a massive investment in breaking the GPL's shackles on the compiler/runtime tools software market.
>the GPL has done our industry immeasurable harm by attempting to enforce sharing, creating closed ecosystems
Your 'logic' is ridicoulus, GPL is no more 'enforcing' sharing than proprietary software is 'enforcing' non-sharing.
And proprietary code is the epitome of a 'closed ecosystem' as it by definition doesn't share it's source code. Meanwhile GPL code is freely shared amongst compatible licenced code.
Overall your entire line of thought is clearly that developers should not be allowed to share open source unless they allow it to be used in proprietary code, because if they don't they cause 'immeasurable harm' to the software industry.
If anything it's your kind of person who has done 'immeasurable harm' to the software industry, leeches looking for a quick buck, who thinks it's unfair if they have to compete against open source if they can't take that open source and modify and sell it. Which in the end is all that your arguments boils down to, you want the right to use someone else's code without having to return the favour, if you can't then you cry foul.
Whenever I come across someone like you I'm really glad the GPL exists as an alternative.
> Your 'logic' is ridicoulus, GPL is no more 'enforcing' sharing than proprietary software is 'enforcing' non-sharing.
You call my logic ridiculous, and then you reiterate my entire point. The GPL is enforcing sharing in the same way proprietary software is enforcing non-sharing.
Whereas the MIT and BSD licenses provide just as many freedoms as the GPL, without enforcing anything. They are, defacto, more free, both for end users and end developers. End users are free to only use open-source products, if they so desire, and developers are free to use liberally licensed open source however they wish to, too.
> Overall your entire line of thought is clearly that developers should not be allowed to share open source unless they allow it to be used in proprietary code, because if they don't they cause 'immeasurable harm' to the software industry.
This is a strawman argument that has no basis in what I actually said.
I think people should be allowed to use the GPL, just like I think people should be allowed to advocate communism. I also think that we should do our best to demonstrate the fallaciousness of their arguments, because they have the capacity to cause significant harm to our industry.
> Whenever I come across someone like you I'm really glad the GPL exists as an alternative.
And whenever I come across someone like you, it is made apparent that the GPL is more of a religion and an a political statement, rather than a reasoned decision made from an understanding of the economic and human realities of industry and our society.
>You call my logic ridiculous, and then you reiterate my entire point.
No, the 'point' you've been trying to push during this entire conversation is that proprietary software gives the end user the 'freedom' to choose not to use it, but somehow you claim that developers don't have that same 'freedom' when it comes to not using GPL licenced code, which of course is a big lie.
>Whereas the MIT and BSD licenses provide just as many freedoms as the GPL, without enforcing anything.
Stop trying to muddy the water with the meaning of the word 'freedom', we've already established that GPL is about rights, these rights are not provided by permissive licences at all. Again, GPL licenced code assures that the source code will be made available to end users, permissive licences assures nothing of the sort.
>because they have the capacity to cause significant harm to our industry.
How can they cause 'significant harm' to our industry? Furthermore how has GPL caused the 'industry immeasurable harm' which you claim it has?
>And whenever I come across someone like you, it is made apparent that the GPL is more of a religion and an a political statement
Yes the good old communist/religious/political card which always gets thrown by GPL haters when their arguments fall to pieces.
And you're not even close, I've spent my entire professional career writing software which know in the vast majority of cases has ended up being proprietary. I have no problem whatsoever with charging for software, and unlike Stallman I see nothing unethical about proprietary software.
My viewpoint is that of a developers right to set any conditions they want for THEIR code, which includes permissive, proprietary or copyleft. If I as a developer want to release my code under a licence which makes sure that any recipients of programs using MY code will also have the source code to those programs available, then that is my right (under the legal system we have now).
It doesn't matter if my motivation is that of wanting the source code of any enhancements made to my code (most likely motivation from a developer perspective), or if my motivation is political/philosophical (FSF), I still have just as much right as any other developer to set the conditions for using my code.
And neither of these motivations are in any way inferior to your motivation of wanting to make money.
> No, the 'point' you've been trying to push during this entire conversation is that proprietary software gives the end user the 'freedom' to choose not to use it, but somehow you claim that developers don't have that same 'freedom' when it comes to not using GPL licenced code, which of course is a big lie.
No, that's not what I've said at all.
> Stop trying to muddy the water with the meaning of the word 'freedom', we've already established that GPL is about rights, these rights are not provided by permissive licences at all. Again, GPL licenced code assures that the source code will be made available to end users, permissive licences assures nothing of the sort.
The permissive licenses DO provide those rights, if the users choose not to use proprietary software. If they want to use software for which the code isn't provided, they can do that too. Either way, you've given them nothing they didn't already have.
> How can they cause 'significant harm' to our industry? Furthermore how has GPL caused the 'industry immeasurable harm' which you claim it has?
The network effects of GCC/GDB being 1) very expensive to reproduce, and 2) easier to contribute to then replace, and 3) GPL'd, held back the advancement of everything from developer tools (IDEs, static analyzers, debuggers, disassemblers) to JIT implementations for 20+ years.
> Yes the good old communist/religious/political card which always gets thrown by GPL haters when their arguments fall to pieces.
If this essay was any more Marxist, it would be carrying a red flag and speaking Russian.
> And neither of these motivations are in any way inferior to your motivation of wanting to make money.
They're inferior because they're promoted based on intellectual dishonesty and false premises:
- Claiming that you're "granting freedoms", despite the fact that people already have them.
- Employing economic network effects by which the intention -- and end result, should the GPL succeed -- would make it not economically feasible for people to make a choice as to whether they wish to engage in your communal ownership of the means of production.
Fortunately, enough people have seen the logical holes in the GPL's premise that that the attempt to assume control over individuals' use of software, through economic clout of network effects, has not succeeded, despite setbacks such as GCC.
>Either way, you've given them nothing they didn't already have.
Of course you do, if you licence your code under GPL you ensure that all end users of programs using your code will be given the source code to those programs aswell.
>The network effects of GCC/GDB being 1) very expensive to reproduce, and 2) easier to contribute to then replace, and 3) GPL'd, held back the advancement...
More nonsense from you, nothing prevented anyone from forking GCC and 'advancing' it, in fact that's exactly what happened, and later that fork became the main project.
This is the exact opposite had GCC/GDB been proprietary, no one could fork it.
And GCC certainly hasn't prevented any proprietary competition either, instead it's existance has made sure that the proprietary competition have had to give better value to consumers as there has been a free alternative, which has certainly helped advance compiler development in general.
>If this essay was any more Marxist, it would be carrying a red flag and speaking Russian.
GPL is a software licence, not a political manifesto. Are you saying GPL became the most widely used licence in the world because all developers who chose to licence their original code as GPL did so because they were politically motivated? Hardly, I'd say the vast majority chose GPL because of it's tit for tat mechanism which ensured them access to modifications of their code.
The largest and most successful cooperatively developed software project in the world: Linux, had GPL chosen as it's licence by it's creator for exactly this purpose, not for political reasons.
And as it's a licence GPL has no impact at all unless a developer _chooses_ to licence their code as such and another developer _chooses_ to use it.
>Claiming that you're "granting freedoms", despite the fact that people already have them.
I've already said that I don't agree with the word 'freedoms', again it is 'rights' which is what they should have been called as it is rights which is passed along to the end user. And no, these rights are not something end users are entitled to with permissive licences, they don't have the right to get the source code with binaries which uses permissively licenced code. You can stop this bs now.
>Employing economic network effects by which the intention -- and end result, should the GPL succeed...
GPL is already a success, it's a viable licence choice, used in a ton of software.
Permissive licences are also successes, it doesn't matter if GPL is used more, permissive licences fill a need and are therefore widely used aswell.
Also these licence types (copyleft, permissive) are typically used for different type of software, copyleft is usually the choice for full solutions/applications, while permissive licences are typically used for component/framework code. As such reflecting how they satisfy different needs amongst developers.
And there will always be a place for proprietary software aswell as long as they produce value for users which makes it worth the 'cost' (typically monetary). And if you can't compete with something someone gives away for free, then you really should be doing something else.
The 'industry' doesn't owe your proprietary projects open source code or protection from competition of free alternatives.
Only as far as your 'freedom' consists of violating any of the rights which GPL bestows upon end users.
GPL exists to preserve rights for end users, and since one of those rights is that of recieving the source code it is incompatible with proprietary projects. As such you can say that GPL is open source code for open source.
You violate the rights which the GPL licence grants them, which is the rights to the source code of the actual binary they recieve, so that they can examine, modify and run their own versions of the actual binary.
In practice this works out well for developers who release their code under the GPL and want to enjoy any enhancements made to their code in return.
They will as 'end users' of any distributed modifications have the right to the source code of those modifications.
This way those modifications/enhancements aren't locked away from the original developer in a proprietary project.
If users don't want to run binaries for which source isn't available, they are under no obligation to do so, and can simg choose to use binaries for which source is provided; no so-called ethical "right" to source code access is violated, as the source once released remains open source.
And developers who wants to create proprietary projects are under no obligation to use GPL licenced code. What is your point?
GPL licenced code comes with conditions, such as that of granting the end users certain rights, including the right to the source code of the actual binary they recieve.
Proprietary code by definition will not grant the end user access to the source code from which the binary they recieve was made, and it typically comes with the condition of monetary compensation for it's use.
In both these cases the 'end user' can choose not to use what is offered.
>Users can already choose to not use proprietary software
And developers can already CHOOSE not to use GPL licenced code, this part of your argument has no point whatsoever.
The GPL licence exist to grant the right of end users to examine, modify and compile/run the source code of the binaries they recieve.
The user does NOT 'already have these rights' with proprietary software.
When a developer licences their code under GPL it means that all recipients of the code in both it's original state or modified will have the above rights.
And again since developers will be 'end users' themselves once they recieve a binary containing modifications to their code, it creates an effective tit for tat mechanism where they will recieve the source code of any modifications.
There is no 'right' taken away from 'developers', they have no 'right' to use code other than under the conditions set upon it by it's owner, this holds true for all licences.
> Nonsense, by that logic your proprietary software is taking away users 'right' to use your proprietary software in an open source context.
Indeed, it is. The difference is that we're not intellectually dishonest about it, and don't try to dress up the mutual exchange of value (user's money for our code) in some sort of ridiculous redefinition of "freedom", and we certainly don't claim to be "more free" than liberally licensed open-source software.
>and don't try to dress up the mutual exchange of value (user's money for our code) in some sort of ridiculous redefinition of "freedom"
Bullshit, this is what you've been trying to do during this entire discussion. You claim over and over again that the the user has the 'freedom' not to use proprietary software.
But when that same 'freedom' is directed at developers who has the same 'freedom' not to use GPL licenced code, then suddenly you say their 'rights' are being taken away.
According to you proprietary developers are somehow robbed of a 'right' when they can't use GPL licenced code, which is nonsense as the only right they have to use ANY code is by the conditions set by the code owner, be it conditions of a licence or conditions of monetary compensation.
Your hypocrisy shines through your entire line of poorly constructed arguments.
You dislike GPL because you as a proprietary developer can't use that code, which for some reason you think you have a 'right' to.
> You dislike GPL because you as a proprietary developer can't use that code, which for some reason you think you have a 'right' to.
You're being obtuse; I've never said what you claim. What I've said, repeatedly, is that the the GPL grants fewer freedoms than liberal licenses such as the MIT license or the BSD license; it doesn't "protect" or "grant" any "freedoms" that the MIT and BSD licenses don't already provide themselves.
What the GPL does do is restrict usage to enforce a quid-pro-quo relationship on its users, with the political goal of leveraging network effects to push a Marxist ideology of dismantling private ownership in favor of shared ownership of the means of production.
If the goal was 'freedom', then it would be enough to provide users with free access to your code; nobody can deny them that free access once it's provided. The goal isn't freedom, however, and painting it as such is both intellectually shallow and dishonest.
The goal of the GPL is to protect the freedom of users of software. The freedom it restricts is not generally relevant to those just trying to use the software, only to those who want to pass on changes in ways that restrict the freedom of their users.
"To me, a piece of software is "more free" if its source code is available, but people are still able to do literally anything they want with the source code, including distributing binaries without providing access to the source code."
Yes, because AIX is more free, because Solaris is more free, because Irix and HP-UX and a small plethora of other operating systems are more free.
That whole "more free" idea? It's not theory. It's history. It didn't work.
That "legal limitation on freedom" came about for a specific reason: because software released under things like the BSD license that were "more free" were taken, modified, and made proprietary. All of those operating systems essentially started as BSD Unix; the last time I saw any of the AIX source code, it had BSD copyright notices all over it. (Including on parts that clearly weren't BSD, like the journaled file system. Weird.)
That works fine, if you are a member of Berkeley's CSRG and thus the best programmer in the world. Those people touching your can't improve it; the best they can do is tarnish your brilliance. I am not the best programmer in the world, so I'm not terribly impressed with your interpretation.
> The slavery quip doesn't really make sense, because in that analogy the source code is the slave.
Wrong. Your users who don't have the same power to make changes as you do are the slaves in the analogy, not the source code.
I sum it up thusly: BSD is about freedom for the developers; GPL is about freedom for the users. I work professionally as a software developer, but I use far more software than I develop.
This is why I try to license my personal stuff gpl or agpl still. At the end of the day, I don't want people using it or modifying it that don't release the source, even if it is less used as a result.
The article brings up two camps - gpl vs mit / bsd, and while I use the gpl now on the precedent that the copyright situation is so bad it needs some counter-pressure wherever I can place it, I hope in the long term the outcome is the abolition of copyright entirely. But I put stuff under GPL now because the ultra-restrictive copyrights on proprietary software and their license terms harm creativity so much using the system to force freedom is better than ignoring the problem entirely. To me, at least.
The goal of the GPL is user freedom, in an age when the copyright holder / developer (not always the same person) holds all the cards.
I just started a project that allows teachers, educators, and interested parties to create, maintain, and fork education standards. Basically, bring long-standing software development concepts to education.
After a brief discussion on irc yesterday I went with the AGPL. I want to encourage collaboration, but I don't want some ed tech startup with vc funding to use this code. I did put a note in the readme that if anyone has a good reason to want an MIT license, I'd be open to reconsidering the license. But I can't see a good reason at this point.
> I don't want some ed tech startup with vc funding to use this code.
Startups would still be free to use it as long as they abide by the license.
With the AGPLv1, they have to publish their changes. Also, if the project offers a facility for end-users to obtain the source code, it can't be removed, so you can ensure the source remains available, whether modified or not.
AGPLv3 projects must offer the source no matter what.
The real counterweight is to release your code into the public domain, opting out of the copyright industry's game altogether. See http://unlicense.org/
You're not opting out of the copyright industry's game; you can't, it's the law. All you're doing is keeping on rolling the dice, while refusing to take title deed cards for yourself and keeping paying rent.
>People that license software under the BSD or MIT license probably would not mind that much if copyrights would be abolished or greatly restricted. Richard Stallman's world on the other hand would would fall apart.
I'm pretty sure that Stallman would love a post-copyright world, unless it led to a world of rented locked down single-purpose appliances run on gifted code - an outcome that MIT/BSD would be totally fine with.
AGPL and GPLv3 was a line in the sand to separate OSI types from people who feel that it is a problem that people are legally and physically alienated from their own tools.
IMO, releasing the source code that operates people's property is equivalent to putting a list of ingredients on a packaged food product.
> IMO, releasing the source code that operates people's property is equivalent to putting a list of ingredients on a packaged food product.
pessimizer, I really like your metaphor, and I expect that using it is an easy way to introduce the subject to non-techies/non-law-geeks. Thank you!
As I reflected on your metaphor, my first thought was that releasing source code is actually more closely similar to releasing the ingredients as well as the recipe for the packaged food. But my thinking is probably not always correct: An author can release their source code that operates on my property (the ingredients), but they have no obligation to release the process to build/compile said source code (the recipe). (Hopefully I'm correct, I'm certainly open to constructive criticism).
That said, I truly appreciate it when developers offer easy-to-follow build instructions. However, for me at least, releasing the source almost always meets my needs for sufficient disclosure.
I see copyleft as a kind of parody on copyright. The name itself is a play on words. Its goal, respecting freedom, is an admirable one. Copyright's goal on the other hand is not very admirable. Copyright exists to enforce an artificial monopoly on ideas, the primary incentive of which is to protect the financial interests of creators. The impetus behind copyright is not all bad--after all, the laborer is worthy of his wages. But it has the nasty side effect of making creators over-protective of their work. If creators were fairly compensated for the value they provide they might not feel such a need for copyright protection. That's why I hope things like gittip and Kickstarter become more and more mainstream.
Copylefting a project says to the world that we value freedom more than compensation. It's the right message but depends on the wrong "logic" of copyright. Ideally, we would all reward companies that value freedom above profits, thus ensuring that freedom is profitable. But for now, copyleft exists as a strong-arm tactic against the over-protection of information. In the sense that copyleft utilizes copyright law to enforce freedom, it's hard to say whether GPL or other open source licenses have a greater respect for freedom.
>...unless it led to a world of rented locked down single-purpose appliances run on gifted code...
There would have to be some other enforcement mechanism to prevent this for Stallman to be happy. He may not think that's possible, but I'm sure he would be happy to be proved wrong.
I think that a post-copyright regime could easily require code exposure for computers that are sold to consumers - that's far less radical than a post-copyright world would have already been in order to abolish the stuff.
The GPL doesn't force you to tell people how to build your appliance, it forces you to tell them what's in it. That's not comparable to having to share the manufacturing process of a good, but is comparable to having to share what's in it.
That takes the view that the software is just an ingredient, instead of a crucial part of the "secret sauce" that makes the product special. In many cases, the software is the interesting part, not the hardware.
I'm not saying that software is just an ingredient, I'm saying that software is an ingredient. I don't know what it means to be just an ingredient. Rice isn't just an ingredient, nor water - unless I'm misunderstanding you.
In a post-copyright world, how can you force someone to release their modifications to your code? You couldn't argue that they were violating the terms of your copyright, because there is no copyright (in such a hypothetical world)! The GPL depends on copyright law to provide its teeth.
No, but I'm having a hard time envisioning a regulatory body akin to the FDA for all software. And even ingredient lists contain terms like "natural flavors" which hide some arguably important aspects of the composition.
>I'm having a hard time envisioning a regulatory body akin to the FDA for all software.
I do too, because I think copyright will be extended until forever - but the power given to the FDA was hard to imagine before Lash-Lure. Maybe it'll take a badly coded toy or self-driving car to kill or maim a lot of people to create a Source Code Distribution Administration.
>ingredient lists contain terms like "natural flavors" which hide some arguably important aspects of the composition.
Copyright law isn't the only kind of law possible that would require people to release source code. The fact that it is even used to do that is a weird recursive act begun by an eccentric genius and a fortunate historical accident. That's my point.
> I'm pretty sure that Stallman would love a post-copyright world, unless it led to a world of rented locked down single-purpose appliances run on gifted code - an outcome that MIT/BSD would be totally fine with.
He would not. Abolishing copyright does not imply that people are required to release their sourcecode.
One license I think gets overlooked is the Mozilla Public License (MPL). I think it's particularly good for libraries and I've published some of my simple javascript code under it.
The interesting part about it is that it says modifications must be published, but that they are file based and not project or linker based. This omits many of the "onerous" (from the library user's perspective) restrictions of the LGPL, while still keeping the spirit of "this is free software, please give your enhancements to others to make the world better" which is sort of the whole point of GNU.
Note, though, that older versions of the MPL (before version 2.0) are incompatible with the GPL, so you end up with things like MPL/GPL dual-licensing. MPL 2.0 is OK in that regard, though I still prefer LGPL or GPL.
In many cases you can with LGPL, and you can with GPL if you explicitly add a licensing exception.
Also, regarding "use ... proprietary modules ... to better your program or library": depends on your definition of "better", but if that's one of your goals, then I agree that you don't want the GPL.
> Also, MPL allows static linking, the LGPL doesn't unless you explicitly state it.
The LGPL allows static linking, as long as you provide the means to relink with a modified version.
> For the record, would 'GPL + Linking exception' be incompatible with the GPL and LGPL?
Only in one direction. You can take code under the GPL plus a linking exception and merge it into a GPLed project, but the result will not have the exception, so you can't add proprietary code to the result.
If you want to misunderstand licensing, this article is here to help.
To pick out just one of the many errors of fact and interpretation: linux has historically been GPL v2 only; this decision was not made after the release of GPL v3.
It's great that his "generation sees copyrights [as] a concept that should be much more restricted and have a smaller lifetime": I'm glad that he's so surrounded by the FOSS that makes this possible. But this possibility came about because of the work of free software advocates and developers. Reveling in your ignorance and disinterest really isn't going helping.
And if you think that it's a problem that Apple and the FSF (among others!) are clashing on issues like restricted bootloaders, tivoization, etc. -- well, I don't really know what to say. There's a reason that Apple and advocates like the FSF are on different sides here. I know which side I'm on: do you?
There's a reason that Apple and advocates like the FSF are on different sides here. I know which side I'm on: do you?
In the US the Democrats and Republicans clash on many issues. There are reasons for this as well, which have mostly to do with self-interest. Does this mean that I have to choose one of them, even if my interests align with neither? Might there be a better choice beyond those two?
This is a wonderful article, and a great summary of the current open-source software licensing issues, but I feel uneasy about the apparent conclusion. After dozens of paragraphs about the intricacies and uncertainties of licensing, it seems to suggest that if instead of asking people to choose from a drop-down list of licenses, things would be greatly improved if they were given a 10 minute overview before being forced to choose.
Any overview, even if vetted by vast teams of international copyright lawyers, can only brush the surface of the issues. At best, you could end up with a list of reasons to eliminate certain licenses based on your personal goals, with the wordings chosen by the ideologies of the lawyers involved. Would this be any better than GitHub deciding internally which license(s) they want to promote, and putting these at the top of the list?
I think we should start to seriously consider simplifying our software licensing environment
This I can agree with. Having seen the amount of time wasted by open-source projects on licensing issues, copyright worries, and patent fears (and the resulting reinvention of the wheel) I think simplification is the way to go. Personally, I don't think this simplification can be achieved by piling more layers of abstraction on top of copyright and contracts.
Most books and papers seem to get along alright without licenses. I'd love to see "fair use" defined more broadly, but I don't think that adding additional licensing would be an improvement. Most electronic parts can be used as building blocks for whatever project you want without worrying whether one part will "contaminate" the others or "infect" the project. Music is licensed more frequently, but I don't think amateur musicians would benefit if they had to agree to terms of service before attending a concert.
Please tell me again why we want every project on GitHub to choose and stick to a license? And who is this "we", and what do "we" stand to gain?
Yes, the conclusion feels like a letdown. With the title of his post ("post copyright") you might think he'd have something to say about releasing code into the public domain, yet there's no mention at all of this. How is licensing your code under the copyright monopoly supposed to be "post copyright"?
The introduction at http://unlicense.org seems spot on for the topic of the blog post:
Why use the Unlicense? Because you have more important things to do
than enriching lawyers or imposing petty restrictions on users of your
code. How often have you passed up on utilizing and contributing to a
great software library just because its open source license was not
compatible with your own preferred flavor of open source? How many
precious hours of your life have you spent deliberating how to license
your software or worrying about licensing compatibility with other
software? You will never get those hours back, but here's your chance
to start cutting your losses. Life's too short, let's get back to
coding.
> you might think he'd have something to say about releasing code into the public domain
Author of the post here. I'm Austrian - the whole concept of public domain does not even exist in my legislation. I cannot legally waive copyright currently. The closest to putting code into the public domain is probably something like the WTFPL but I am perfectly fine with my stuff having a few more restrictions through the MIT/BSD to avoid license confusion.
> How is licensing your code under the copyright monopoly supposed to be "post copyright"?
It is not. However there is a certain trend ongoing that people wish the whole copyright system would be reformed and that would have more impact on Copyleft licenses than MIT/BSD.
Aside from all of that I don't want to make license decisions for other people. :-)
Yes, the morass of software licensing sucks. But unfortunately another side effect of that is that not choosing a license or making uninformed decisions about licensing creates situations that end up with users becoming extremely susceptible to copyright trolling. It is true though that the solution is obviously to ease up on some of the powers granted by copyrights.
situations that end up with users becoming extremely susceptible to copyright trolling
I worry the trolling is largely extra-legal, and that the actual terms of the license matter little. Currently, anyone can create an account on GitHub and without proof-of-positive-ID can apply any license to any code they choose to upload. Whether they have the right to issue this license is unknown to the user other than by direct due diligence.
Consider: I take a small function out of a piece of proprietary or GPL code, and without permission put it into a library which I publish on GitHub. You use it in your successful commercial venture. Is your legal exposure different depending on whether I chose "BSD" from the drop-down or left it unlicensed? Is my liability different? What about GitHub's?
> Currently, anyone can create an account on GitHub and without proof-of-positive-ID can apply any license to any code they choose to upload. Whether they have the right to issue this license is unknown to the user other than by direct due diligence.
Sometimes I wonder if much of the corporate fear of open source is that it would slow development and restrict code reuse, since rather than just swiping the code and releasing the driver, once it's out in the open they'd also have to have endless discussion of what is and is not a derived work.
What if it will become illegal to sell consumer devices without signature checks for all software running on it.
I find it pretty weird that he's complaining that any country foolish enough to enact such a draconian law would also criminalize all gplv3 software. I personally think the gplv3 would be wonderful in this case since it would create a high cost for enacting such an evil law.
Most people are ignoring licenses, because most developers think they have won.
There is a generation of developers for whom software freedom is in the bones.
Why bother putting a license on code, or releasing code under compatible licenses -its all free and open.
This attitude may seem naive - but i see it as wondrous - any attempts to put the genie back in the box will not be met by court cases led by Lessig, but simple mass global disobedience - software is free when everyone simply thinks it is free.
I don't know the original study in detail, but given my time on github I see a ton of 'projects' which are just small scraps of test code, heck even dot files.
I can certainly see why people don't bother putting a licence on these types of 'projects'.
However on all projects I've come across which are actually something substantial there has been a licence declared, so I'm wondering if this 'lack of licencing' is a 'real' problem or if it's just the result of github becoming a convenient dumping ground/backup for tons of small snippets/settings etc which used to just sit on people's harddrives.
One thing I would add to this is that nobody really knows what licenses like the GPL actually do. Jacob Kaplan-Moss published a fantastic piece called "20 questions about the GPL"[0] , and my attempts to clarify a few of them with the FSF and SFLC have so far revealed that not even two developer advocate organizations can agree on even fundamentally basic concepts about the most popular license, so isn't that a problem?
The reason that I contribute to the "projects on GitHub with no license" problem is that I cannot find a license that unambiguously does what I want, after spending many, many weekends on the problem. I could write one, or get my lawyer to, but license proliferation is grounds for expulsion from the cool kids club. Since I have no good options, I take no action.
Fundamentally, I believe we need a new license steward that isn't afraid to update regularly to address 1990s questions like dynamic linking and optional dependencies, and 2010s questions like app stores. Something like Creative Commons for code, where you have some options to choose from.
The post ignores, why there are so many different FOSS licenses, the thing is people have interests and sometimes these interests are not compatible. So there is a place for MIT licenses, namely if you want as much adoption as possible, and there is a place for copy left licenses, if you want to protect the associated rights of copyleft. This is probably most visible in the “anti-tivoization” section, which concludes
The license restrictions of the AppStore, Google's Play Store
and similar distribution systems and the GPLv3 are just not
compatible.
The reason for this is Apple, Google and others have their interests, namely controlling a platform and enforcing whichever restrictions are mandated by their interests.[1] On the other hand, the GPL[v3] tries to protect the freedom to tinker for the owner of the device, the ability not only to see the source code, but also to modify and run it. So the absence of GPLv3 licensed software on iOS is actually proof, that the license is working as intended.
[1] Some examples of these interests are: Enforcement of DRM, trying to create a 'more secure' environment, having a consistent UX, etc.
"What if it will become illegal to sell consumer devices without signature checks for all software running on it."
Well that would be a tragedy. As if computing isn't moving towards closed systems fast enough. I really hope general-purpose computing devices will not become something only found in museums. Few movements in humanity's history were as revolutionary.
Sun liked the whole concept of not being compatible with GPL...
This old chestnut again? I'm assuming this is based on Danese Cooper's comments. Well, Danese was wrong:
She is speaking this way because she lost an argument
inside Sun, not because her view is representative of the
views of Sun or its staff in the way she claims. She,
along with many actual engineers, was an advocate of
using GPL or OpenSolaris but the need to release rather
than wait for one of {GPL v3, Mozilla license revision,
encumbrance removal} meant that this was not possible. I
am still furious with her for the statement she made at
DebConf, which was spiteful and an obstacle to a united
FOSS movement.
I agree about the ISC, that's why OpenBSD, the most free OS (as in you can do whatever you want with a larger percentage of it than any other OS), prefers using the ISC over the BSD license now.
The FSF's site[1] points out what looks like a serious problem with this license:
> This license does have an unfortunate wording choice: it provides recipients with "Permission to use, copy, modify, and/or distribute this software…" This is roughly the same language from the license of Pine that the University of Washington later claimed prohibited people from distributing modified versions of the software.
To me, it sounds like "modify and/or distribute" means it should be okay to both modify and then distribute the modified version. But I'm not a lawyer, and if the same language has been used to argue you can't distribute modified versions, that's pretty scary. Enough reason to prefer the slightly longer MIT license.
I was under the impression that that website is outdated. The ISC used to just say "and distribute", which is similar to older versions of the Pine license, and had problems. However, the new language is more similar to the MIT license ("and/or ..."), but the FSF does not have an issue with the MIT license.
The FSF quotes the new version with "and/or" in the blurb claiming problems with wording, but that may just be an editing mistake; maybe someone went through and corrected the quotation without realizing it resolved the concern.
Either way, though, the OpenBSD folks didn't change "and" to "and/or" in their template, which ranks high for a search for "ISC license". Someone could easily copy the older, problematic version. Given the MIT license works fine, why take even a small risk?
> To me, it sounds like "modify and/or distribute" means it should be okay to both modify and then distribute the modified version.
In fact, and/or is exactly the way to specify that options can either be used together or separately. The FSF's claimed problem, you'll note, isn't that this language was ever held to restrict distributing modified versions, only that similar language was once argued by a party with a financial interest in the outcome to have that effect.
Which is a pretty flimsy basis to assert a problem. I'm sure you can find passages in the GPL that are "roughly the same" language to something that someone, somewhere, argued in a court case meant something that would be frightening if it was what the similar language in the GPL passage was actually treated as meaning under the law, but the fact that someone once argued that a similar piece of the language means something doesn't mean that the language that they argued about (and even less, the actual license language that it is "roughly the same as") has ever been or would ever be given that effect in court.
Ultimately I care more about avoiding the increased risk of the ISC license than about saving a few lines. It would be silly if trying to make my license statement a few insignificant lines shorter prevented someone from using my open-source code.
My point was that the argument that there is increased risk is based on a flimsy premise which could equally well be applied to just about anything; there's very few pieces of commonly used legal language where someone, somewhere hasn't at one time or another argued that something phrased in "roughly the same" manner means something that you'd want to avoid.
An interesting thing, to me, about the GPL is that it's possible for companies to use it as an anti-competitive weapon against each other. A company who owns or has been assigned the copyright to an entire codebase is able to hold the exclusive right to profit from hidden modifications of it. Oracle is in this position right now with mysql, for example. GNU itself, were it so inclined (though it obviously isn't), would be as well.
This becomes even more significant when talking about the AGPL and its limitations on using it as a service. 10gen is the only company that could run a proprietary uber-version of MongoDB, and that right persists effectively forever.
When it comes to more open licenses like BSD no one holds this as an exclusive right.
Arguably that problem is worse with permissively licensed software. In that case you don't just have the original copyright holder peddling a proprietary uber-version, you have every company and his dog doing it and every version is expensive and/or incompatible with each other.
I don't see how it can be considered worse. I could see even, but not worse. Does it matter if it's one or ten organizations that are taking advantage of the ability to make proprietary software out of open source code? At least with ten there might actually be competition.
But realistically, it's not like permissive licenses are a new thing and this apocalypse doesn't seem to be a very common occurrence in practice.
I think if the FSF could get away with a clause akin to "once licensed under the GPL, this software can not be licensed under any other license for distribution, and it's license can not be changed by the copyright holder".
But that wouldn't fly. Ever. At the end of the day, the copyright holder still gets to change their license whenever they want, and the license itself can't deny that, because it would never hold up in court.
It wouldn't fly, because to the copyright holder, the license simply doesn't apply. At all. You only need a license if you're restricted by copyright law from doing what you're doing, but copyright law doesn't restrict the holder themselves.
Great article. My favorite example of these Talmudic complexities is opensim (opensimulator.org), an MIT-licensed Second Life-compatible server that has a twisted, Black Widow-like relationship with Linden's GPL-licensed client code. Before 2011, there was a nutty "6 month cool-off period" before any SL client contributor could contribute to Opensim: http://justincc.org/blog/2011/06/30/announcing-the-overte-fo...
Are you aware that disclaimers of liability are not considered valid contract terms in most scenarios and legal jurisdictions in western countries where software is likely to be used?
Do you believe that you can disclaim liability for negligence such as carelessness or a failure to thoroughly test? How about for intentional malicious acts? Courts in the US and commonwealth nations at least don't allow such disclaimers. What about other sorts of liability? Do you know the differences between direct, consequential, special, incidental and indirect damages?
The reality is that in enough jurisdictions to matter, authors can be held legally liable for bad code they create no matter whether they have a liability clause as a condition of licensing or not. Forming an LLC or corporation won't shield them either if someone wants to sue. The only protection in these cases is maintaining E&O insurance.
If I use GPL, BSD, or any other licensed code that disclaims liability, and the code is flawed because the author was negligent, I can sue the author for damages and I can win. The disclaimer does absolutely nothing.
What purpose then is there in cluttering up licenses with useless clauses?
I use the WTFPL too since it is the most free license and easiest license to understand. It also deals with the non-issue - but common complaint - that "public domain" does not exist in some backwoods third world jurisdictions.
I also use the zlib license which is very similar to WTFPL. It has restrictions against misrepresentation of origin, which in practice only affects plagiarists, so isn't a substantial limitation. An advantage of the zlib license over the WTFPL is that it can be used in "professional corporate" environments where suits have a hissy fit if they see the letters "WTF" in a license, saying that any use of that term is in some way immoral, while conveniently ignoring the fact that they personally are secretly cheating on their spouse, engaging in insider trading, embezzling, looking at donkey porn, and drowning kittens in their spare time at their palatial estate.
These two licenses are the ones that preserve actual freedom, unlike certain others that propaganda artists often apply the word "freedom" to, using a definition that exists only in their own imagination and is not consistent with the commonly accepted understanding of the word. These licenses are also comprehensible and far less ambiguous than certain other licenses as well. The zlib and WTFPL licenses are good and useful licenses that are worth consideration by any developers looking to license their code in a way that maintains as much freedom as possible.
I opted for MPL, because it is the most liberal licence that I could find, which is still "copyleft". The spectrum between MPL and GPL (covering LGPL etc) is complex.
So the goal of the various restrictions imposed by the GPL (in either of the main versions) is to increase freedom. We can usefully have a debate about how well they achieve that goal, and whether the increase in freedom is worth what has to be spent in order to achieve it. But if we do that, let's do it from a position of first having understood why the GPL says the things it does.
I saw this summed up an admirably concise way some years ago, but stupidly forgot to note whose soundbite this is: "Saying that the GPL is less free because it forbids proprietary derivatives is like saying the USA is less free because it forbids slavery". Yes, of course it's hyperbole to hold up freedom of software alongside the freedom of people; but this quote shows by example that more freedom doesn't always get achieved by less regulation but by more.