Hacker News new | ask | show | jobs
by codeslinger 5307 days ago
IANAL, but: It would appear to me that the author doesn't understand the GPL very well. If my code is BSD licensed and yours is GPL, I can submit pieces of my code to your project but if I take pieces of your code into my project, my project is now subject to the virality properties of the GPL and itself becomes essentially licensed under GPL. This is where the author seems confused: if I subsume GPL code into a BSD-licensed project, my project becomes licensed under GPL. Given that I chose the BSD license for my project I'm assuming it would now be obvious to the OP why this might be onerous.
2 comments

Zed starts with two tweets that make exactly that point. He understands perfectly. You misunderstand _his_ point:

He's releasing Lamson under GPL, so the Django folks can't use it. But if he was releasing Lamson under a proprietary license, they couldn't even look at it. The GPL leaves them better off. But while BSD projects generally don't complain about proprietary forks, some of them whine bitterly about the GPL (which, again, leaves them better off).

Choosing the BSD license for your code is, in effect, choosing to allow others to rerelease under more restrictive terms. If you made that choice, I'm not sure it makes a whole lot of sense to complain when people do that.

Proprietary forks are always able to submit pieces of their code back to the originating BSD project. That's fine -- proprietary developers never claimed to be anything other than what they are, and if they eventually submit something back, that's nice.

GPL developers claim to be open, but then take the originating code and place it under onerous "open" terms. This triggers the classic "hypocrite" response: they claim to be open, but they're actually attaching a viral license to my work. Any improvements they make can NEVER be sent back to us without all the contributors agreeing to license under the BSD license.

In real terms, the GPL fork is a dead-end one for a BSD licensed project. The commercial fork is, actually, not -- the company is quite able to push back changes at any time.

No contributions will ever result from the GPL fork, and given that the BSD license provides a superset of the freedoms of the GPL license, it's clear that the GPLers are only licensing under the GPL to enforce their own politics on the BSD licensed code.

The GPL is fundamentally a protection against companies distributing private modified forks. It wasn't created to give BSD code creators a bad day - basically what you're describing is collateral damage. I think most reasonable non-zealot OSS developers totally understand where you're coming from.

An interesting twist would be a BSD style license that states that if the code is incorporated into a GPL style licensed project, patches to your specific code subset must also be BSD licensed. Kind of like incorporating a LGPL library into a commercial product.

> An interesting twist would be a BSD style license that states that if the code is incorporated into a GPL style licensed project, patches to your specific code subset must also be BSD licensed.

I've used mixed licenses to achieve this in the past. The individual source files remain BSD licensed. The whole work, in aggregate, is GPL licensed.

It only works if the dependencies are one-way, though, and you keep the BSD code fairly isolated.

You misunderstand GPL.

GPL is not about openness to everybody. GPL is not about maximizing contributions.

GPL is all about end-users' freedom, even over developers' freedom where those two collide (i.e. developer can't have freedom to take freedom away from users).

GPL is about preventing software becoming non-free and deliberately not helping those which want to have ability to control what users can and cannot do, like add DRM, unremovable crapware, etc.

GPL is deliberately open only to those who prioritize end-users' (not developers'!) freedom over everything else.

There seems to be some implication that because I disagree with the GPL's aims and find them incompatible with my own, I must not understand it.

I understand the GPL. However, compared to the alternatives, I don't believe the GPL/FSF are optimally beneficial to my interests, the interests of consumers, or the interests of corporations.

> Proprietary forks are always able to submit pieces of their code back to the originating BSD project

So are the authors of the GPL project.

> Any improvements they make can NEVER be sent back to us without all the contributors agreeing to license under the BSD license.

You have a very poor understanding of the GPL and copyright law. I'm afraid you've been infected by the "viral" meme.

BSD-licensed code that is incorporated into a larger GPL project is still under the BSD license, even though the larger assemblage may be viewed as being under the GPL. Any improvements made to your code may be licensed under the BSD by the people making the improvements if they so choose.

There may come a point where the code has changed so substantially that GPL'd and BSD'd portions are inseparable, but at that point, what good is their code to you, anyway?

Oh, I'm sorry, did you just want to take all their work and use it under whatever terms you like? Odd, then, that you don't want to give them the same freedom...

> There may come a point where the code has changed so substantially that GPL'd and BSD'd portions are inseparable, but at that point, what good is their code to you, anyway?

If the code they add is under the GPL, and the aggregate is the GPL, then the only new code retrievable from that project that is GPL code.

> Oh, I'm sorry, did you just want to take all their work and use it under whatever terms you like? Odd, then, that you don't want to give them the same freedom...

It seems like GPL advocates are so focused on the legal enforcement of ideals that there's a systemic failure to recognize the underlying nuanced social contracts.

Re-licensing forked BSD code under the GPL to make it "more open" is simply spiteful -- and is the linchpin of the BSD developers' objections.

The GPL fork will continue to integrate improvements to the BSD code base, and possibly siphon off open-source interest in the project to their fork, but the GPL licensed code will never move in the reverse.

> If the code they add is under the GPL, and the aggregate is the GPL, then the only new code retrievable from that project that is GPL code.

Which is as it should be. You gave them the right to use your code as part of a larger, differently-licensed work. You claim it is because you want people to have freedom. But now you want to beat up on them for exercising that freedom.

> It seems like GPL advocates are so focused on the legal enforcement of ideals that there's a systemic failure to recognize the underlying nuanced social contracts.

Claiming unwritten social contracts should guide behavior is asking to be disappointed. Not everyone will have the same view of what those contracts are. I certainly don't share your views on the subject. What, objectively, makes you right and me wrong?

> Re-licensing forked BSD code under the GPL to make it "more open" is simply spiteful

Please provide some examples of GPL projects claiming that they have made BSD code "more open".

> Claiming unwritten social contracts should guide behavior is asking to be disappointed. Not everyone will have the same view of what those contracts are. I certainly don't share your views on the subject. What, objectively, makes you right and me wrong?

This nuance is why the BSD license relies on social contracts. Attempting to codify the OSS social contract as license would result in something rather like the GPL, and is at the core of why we disagree.

If there is no open-source version of some piece of software, the BSD folks are better off than they would be if there was only a GPL version. In the absence of a GPL version, the newly-created liberally licensed version of the software is likely to get more contributors and users. In the presence of a GPL version, the BSD version has substantially lower chances of success given the same effort from the maintainers. If I am only willing to use liberally licensed components in my project, GPL software is actually worse than proprietary software.
>> This is where the author seems confused: if I subsume GPL code into a BSD-licensed project, my project becomes licensed under GPL. Given that I chose the BSD license for my project I'm assuming it would now be obvious to the OP why this might be onerous.

I think his intention was for BSD licensors to accept that as an inherent "danger" of their chosen licence. Like he pointed out, you wouldn't be able to use proprietary code from Google or Apple simply because it incorporates your BSD licensed code, so why should it be a problem when the aggressor - in a manner of speaking - is using a copyleft license?