I'm still bummed out that for years, GPL was the "standard" go-to open source license. So many projects became useless for any commercial projects whatsoever.
GPL advocates say it's so that your code isn't exploited by corporations.
But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.
Those two things do not have to be synonyms. I'd much rather allow the second if it means tolerating the first.
(Edit: Seeing the downvotes, I'd be genuinely interested in counter-arguments or thoughts on this)
(Edit 2: Just because it keeps coming up, let me make absolutely clear that I do NOT in any way think GPL might never be a valid choice, nor that anyone, myself included, should feel "entitled" to "free as in *.*" code.)
The GNU Foundation--and the GPL--put one thing at its most important focus: that "users"--the people who are actually using the software and entrusting it with their data or their lives--have guaranteed freedoms. People--such as myself--who use the GPL believe that these freedoms are extremely important: that "users" should be able to get access to the source code for programs and be able to modify them (...and before anyone whines "but users don't know how to modify programs", users know how to hire people to modify programs... most people also don't know how to do woodworking or autowork and yet people routinely get their cabinets done or their cars tricked out: a healthy aftermarket for software exists, and in fact if you look at stuff like jailbreaks for phones, advertising "we jailbreak your phone here" was a good way for such stores to make money).
If you believe that users should have such freedom, then letting someone who isn't a "user"--and I think this is where people get so stuck on forums like this, as most of the people here are developers and they want everything to be maximally biased in their favor--be able to modify your software and then not grant the freedoms we GPL-folk care about to actual "users" is unacceptable: it simply isn't why we are writing open source software, as the open source part is supposed to be able to benefit "users". So it frankly shouldn't be at all confusing why the GPL has the properties it does: if you think my open source code is so beneficial to your project that you want to use it in your project, you are more than welcome to do so!!! Only... you have to be willing to respect the freedom / rights of "users" that is codified in the license.
You kind of gave up the game by pointing out that GPL-folk distinguish between developers and users. It’s the key flaw in the GPL approach and all you need do is scroll a little bit to find a developer being told to fuck off for merely questioning the source disclosure requirement of GPL. Why do the authors of software command less respect than users thereof from those ostensibly working to elevate software?
Developers are users too. They use code. The GPL community’s insistence on segmenting those two groups and valuing the needs of one over the other for the last thirty years has led to way more angry threads than the world has ever needed. A community built upon unassailable rights granted to one class whilst mandating behaviors in another is somewhat incongruent at its base because it doesn’t track with unconscious notions of fairness and equality that most people carry. It also explains why developers are usually the one chirping about it, because they’re the second class in this picture. How that remains elusive after all the bloodsport and drama over this license is something I’m not sure I’ll ever understand.
I say that understanding the entire rationale, by the way. I absolutely get why both sides say what they say and I’m not disputing what you’re fighting for. Negotiation at gunpoint is what it is (again, scroll), and despite fighting what is otherwise a good fight worth believing in, expecting those at gunpoint to go along with no complaints is a bit naive in itself and a shocking lack of communal social understanding among the free software community. “Why won’t they work with us? We are telling them exactly what to do” is a self-evident position.
So instead we do this thread on HN and Slashdot and whatever every few weeks and get it out of our systems, then go back to status quo of not understanding each other nor why either side is much interested in engaging the other. It’s honestly puzzling that people still try.
The whole point of the GPL is that the reverse is true as well. If I - the user of the software - wants to become a developer of this software I can only do so if I have access to the source code.
That is not "mandating behaviour", if you are the original developer of a piece of software, you are free to take it closed source any time you wish.
If you benefitted from having the code of your software available to you, why would you want the right to prevent someone else to benefit in the same way ?
I am genuinely curious why that makes you feel so attacked.
You have not understood my point at all. If you think I feel attacked in response to a comment laboriously explaining why two sides have been locked in pointless battle for decades, you’ve taken a point of view from me that simply doesn’t exist. The conclusion you’re drawing, particularly that I have any interest in denying someone rights or that my criticism of GPL implies a wish to harm others’ freedoms, is interesting in itself and speaks to what I’m saying (and some I’m not).
I prefer offering more rights to all my users, including those GPL advocates tend to perceive as exploitative, which is why I use more permissive licenses than GPL in my software. I don’t lose sleep over Boeing patching a random library I wrote and not sharing the patch. It’s genuinely that simple. We have different priorities and shit we care about, and I can have mine without excluding yours or entering a confrontation where someone feels “attacked” over IP law (of all the things).
And no, what you’re saying isn’t the whole point of the GPL. I’ll give you a point but there are plenty of other rationales behind it, many spoken in this thread.
I apologize for misunderstanding you. I read you writing of commanding less respect as a developer and being "the second class in this picture" as feeling attacked.
If I am honest, I did not understand your point, then. Your start-off was that the GPL segments between users and developers and disagreeing with that.
What I tried to offer as a counterpoint, is that the GPL does not actually segment between the two, it just mandates that this non-segmentation be conferred at every new iteration of distribution.
What you call "permissive" then is only permissive in the short term, because it precisely introduces this segmentation between users and developers in the long term. If you look at this as a tree structure, it's permissive only to your immediate children, because you are granting them the right to take away this precise freedom from your grandchildren,
thus introducing the separation between users and developers.
Or in GNU speak: you are allowing your user/developes to take away their users's freedom 1 and 3, so since there are four freedoms, I will claim that this is at least half the point of the GPL.
Right, understood. You can’t have your beliefs without excluding mine. Totally understand where you’re coming from. I refer you back to the pointless battle to understand why this is the last time we will speak. I gave you room to do your thing, pointed out people could have different priorities, and you still spent half your comment telling me how my behavior is wrong.
What are you expecting? My gosh, you’re right, the freedoms I’m depriving of my users not subscribing to your orthodoxy? Show me the light? Not happening, sorry. The free software community has had decades to win me over and every time it ends in this. You’re not the first. Won’t be the last.
If your community spent more time listening rather than wagging fingers and tutting at the choices of others you’d get somewhere among the (most) people who don’t respond well to that. This thread is a pretty good microcosm of that because you’ve heard precisely none of what I’ve said; if you had, you’d have known the shaming sermon with a lot of “you” thrown in probably wasn’t the way to go.
Perhaps the GPL itself is incompatible with not explaining someone else’s business to them because that’s its whole trick to achieve the outcome desired. This thread kind of helped me realize that. You don’t even know you’re doing it because unconsciously you’ve accepted that telling others what they can and cannot do is a workable approach as it’s codified into the whole methodology of your movement.
> you’d have known the shaming sermon with a lot of “you” thrown in
Hmm, I am not trying to shame you into anything. I was using "you" in the generic sense. Like this here https://en.wikipedia.org/wiki/Generic_you I can understand, though, how you might have misunderstood me here. Even though I am just a stranger . That was not the clearest of way to speak, even though I have spoken it for a long time, English is not my first language. Then again, it is usually best to try and assume good intent.
I do have a feeling (possibly incorrectly) that your (vsw02´s) usage of "you" is directed at me (yosamino) directly, though. And since you have clearly deduced that I do not even know what I am doing, and I am clearly too stupid to understand the point that you are making, while you already know all of mine, I would like to agree: it's best this ends here.
>> I don’t lose sleep over Boeing patching a random library I wrote and not sharing the patch
> What you call "permissive" then is only permissive in the short term, because it precisely introduces this segmentation between users and developers in the long term. If you look at this as a tree structure, it's permissive only to your immediate children, because you are granting them the right to take away this precise freedom from your grandchildren, thus introducing the separation between users and developers.
It sounds like vsw02 understands your argument, and has already showed that they don't consider the scenario you describe to bothersome. One might say vsw02 predicted your argument, but I'd say you didn't fully consider vsw02's argument.
Your example sounds like the paradox of tolerance, but there is a critical difference: consequences. If you are tolerant of intolerance, then the repercussion is that intolerance continues, and even increases, which can also increase physical violence, and various human rights violations. If you give code freely to those who will not provide the modifications to that code freely, there won't be an increase in violence, or what most people would consider human rights violations.
Could we have a bit more FOSS code if all OSS was libre? Maybe. Carmack disagrees though in TFA, stating "I'm pretty sure there would have been more total users of the code, likely making the amount shared in the open still greater." Explaining libre isn't helping, you need to provide an argument that vsw02 hasn't already shown to be irrelevant to them, and ideally, one that also addresses Carmack's argument (saying "that's just speculation" is true, but it seems Carmack's speculation is speculation that a lot of us subjectively already agree with)
Of course I predicted it. It’s like talking to Jehovah’s Witnesses at the door. The idea that you fully understand their entire belief structure, have done your homework on it out of respect (seriously, I have), and ultimately reject it anyway is puzzling to adherents of most belief systems, so they tend to revert to explaining it a different way out of a suspicion that you don’t get it. I’ve probably heard over a hundred different metaphors for why I should care about what my users do with my software at this point and it’s still a level of arrogance I’m not willing to introduce to my engineering.
> they tend to revert to explaining it a different way out of a suspicion that you don’t get it.
I think that's because, in my experience (outside of HN), many people really don't get it. They say something like "this proprietary software did something nasty again" without knowing that the GPL exists or that it's effectively impossible for GPL'ed software to do nasty things. Hence, it is always worth explaining the GPL and its values to them.
It's not always easy to see when someone already understands the values and just disagrees with them.
You misunderstand what the GPL requires, then. The GPL does not require this. The GPL only requires that the source code be shared with those to whom the software has been distributed.
Which in your example would be the airlines, not the upstream.
This might be better understood as a social concept rather than a legal one. Suppose you have a social group, and the way people are admitted into it is by invitations.
The GPL is someone who will invite anyone who asks, as long as they themselves will also commit to inviting anyone who asks. That is, anyone who is invited by the GPL person cannot discriminate about who else they admit to the group.
The BSD is someone who will invite anyone who asks, and they can be as cliquey as they like. They can discriminate on any basis, or form in-groups among themselves where other people are not permitted.
Does the first or the second social group seem better to you? This might be a good predictor of whether the GPL or BSD model is more intuitive.
I'm curious-- why don't GPL advocates ever flip the argument back on the proprietary devs? E.g.,
You are a developer of proprietary software. Your aim is to provide the same freedoms in practice that users enjoy in GPL'd software. What do you do?
There is a sensible and real answer here-- custom software development. If a user is paying a dev/dev-team to build that user some custom software, then barring fraud they have full control over what the software does. Plus, custom software and custom software development probably make up a huge chunk of the dev economy.
But notice that this is nearly never what GPL opponents are talking about. (In fact there is surely overlap between GPL'd software and custom software dev.) Instead they talk about consumer applications, games, etc.-- software which does not give its users the same freedoms as GPL'd software. In this class of software, there must then be an implicit premise: either the freedoms that end-users enjoy in both GPL'd software and custom software do not matter, or some other novel argument that downplays both the practical and ethical benefits of those freedoms.
And here's the thing-- whatever the implicit argument is, it runs counter to the spirit of both GPL'd software and custom software dev.
GPL advocates ought to use this argument to split the opposition between custom software development (regardless of license) on the one hand, and whatever the word is for proprietary software that aims to lock users into a system they can't control on the other.
Btw, the fact that I can't think of the word for the second category is a red flag that GPL advocates do a shit job with their propaganda. :)
Proprietary software means software controlled by another party. Custom software includes all rights usually.
Most custom software clients want full ownership. Not a copyleft license. So most custom software developers look at licensing the same as most proprietary software developers. They want other developers to use permissive licenses because it makes their job easier.
That's the standard interpretation of the Four Freedoms. Unfortunately, I think it ignores that most users can't code. The Four Freedoms, practically, protect developers and the freedom to hack. These are good things to protect, but it's not the same as protecting the interests of users.
It can be argued that GPL'd code (in contrast to a license such as BSD) is less a net positive for users because the constraints the GPL places on how code may be used (requiring any user to expose modifications made to the GPL'd code along with a subset of the code connected to the modified code) means that some developers may not choose to use that code in their application. This results in fewer applications, which means fewer ways for users to solve their problems.
For Carmack in particular, I think that's the argument he's making. Carmack's goal isn't to guarantee developers maximum freedom to hack; his goal is to get his code in as many places as possible (because he prides himself on being the smartest guy in the room, and the more people use his code the more proof there is of that assertion). Maximal code adoption is not served by a GPL license; the GPL license sacrifices a bit of that opportunity to protect the developers' freedom to hack.
> and then not grant the freedoms we GPL-folk care about to actual "users" is unacceptable: it simply isn't why we are writing open source software, as the open source part is supposed to be able to benefit "users".
Why is it unacceptable? Why are people writing open source software then? "Benefiting users" can be done in various ways.
In my view, the GPL only manages to protest and protect software against the problems of intellectual property, copyright and capitalism. It's only about politics.
I agree with the sentiment, but that's really all it does, it doesn't solve legal problems. I'm curious to see which software licensed under BSD or similar suffered problems where the GPL would have protected them against.
Because, very often, we ARE users of our own software, so, we don't want the licensee of the code to forbid the licensor of the code his right to modify his own code on his own device.
> But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.
My take on this is that those two things are almost equivalent. There are very few cases where I wouldn't consider someone using my open source code for financial gain without contributing back to not be exploitation.
If you're making something for personal use or even for some business cases, I see no valid reason you couldn't adhere to the GPL. If, however, you insist that what you make should be your own property and you just want to take what I made as your own and give nothing back to me or the project, then you should pay for dual-licensing or pay your own engineers to develop an alternative.
Open source developers are volunteers - many of us would gladly volunteer at a homelrss shelter, give blood, etc., but I can't imagine you'd find many people willing to volunteer for a company. For reasons why that is, ask anyone who's been in an unpaid internship.
Licenses are about choices. I do not want 7 year old girls to be sued. I don't want people to go to jail for helping others to take part in culture and enjoy art.
I want children (or everyone?) to have access to all of culture, knowledge and art regardless of their parents wealth. I want that researcher has access to research papers and software technology in order to enable the improvement of the human race, especially on the medical side.
I want life-critical and life-saving technology to be transparent and verifiable. I want technology that can be repaired and not arbitrary prevented from being repaired. I want that people have the ability to remove malicious code from devices that they own.
I do not want 20 years long government enforced monopolies on vague concepts. I do not want multiple lifetimes worth of government enforced monopolies on concrete art, culture and life-improving technologies.
People who want to use code for good with commercial interests could sign an agreement that follow those above wishes, including additional corner cases or obvious bad behavior which I might have forgotten. Alternative I can use a license that get me as close as I can using preexisting understanding of those licenses.
You can use GPL code commercially. You just have to publish source on anything it touches. It that makes your business model nonviable, the amount of good you were doing is... questionable.
I disagree with "have to publish source on anything it touches" . Electronic Arts used WebKit in multiple games and they only had to share changes they did to it, not the source codes for all their games.
As a side effect they had to publish their incomplete implementation of STL that was adopted by multiple other studios as it was so much faster and less memory fragmenting than alternatives.
WebKit is LGPL though, not GPL, and it was built as a specially maintained dynamic library specifically to avoid having to publish the source code for the whole game.
Many games are designed towards the younger part of the population.
But I am not sold on the idea that only children have a right to culture, art and knowledge regardless of social economic status. There is plenty of good arguments in favor of giving everyone equal access regardless of the ability to pay. The issue tend to come to how society should then go around incentivize and enable those who produce such culture, art and knowledge.
The struggle for economic justice and the equality of persons is not universally admired, so we have to start somewhere. Not suing children for accessing culture, art and knowledge is such start, and it would be great if the law recognized that.
Why does the GPL license make it "useless for any commercial projects whatsoever"? Many commercial projects use GPL software.
The only thing you have to do is provide sources under the same license if you release binaries. If you're not even willing to do that I understand some people rather have you not use their software.
"Not even"? This is a huge requirement for most cases.
A small GPL library for, say, some statistics calculation, would mean an entire product's source code would need to be released if it used the library.
Exactly as intended, by most people choosing GPL. For a small libraries like that there is probably the option of negotiating a different license for your use.
If the larger software is so much more expansive than the little GPL covered work and so valuable, then the commercial interest presumably has the resources to either write their own or license a commercial variant.
I find a lot of complaints about the GPL come down to "why can't I do what I want to do with your stuff?" and the obvious answer, started before the question is even asked, is "because that is what we don't want". It isn't one extreme getting in the way and being a bad guy, it is the two ends of the spectrum being incompatible by default. This can be dealt with amicably by either negotiation or moving on and leaving the other "side" to do their thing without you. IMO trying to frame it, as some very much do with comments about viral licensing and such, as good-vs-bad, is either naive, entitled, or bad in itself, or some mix of the three.
"there is probably the option of negotiating a different license for your use."
I feel most people don't understand that their projects are unbillable and "negotiating" is not an option.
If you project is avaliable through AWS/GCP console I could "pay" at my discresion.
If there was a clear price and billing details, I can email my boss and get it authorised
If something needs to be negotiated, we have to get senior stakeholders involved - those people don't move for less than 100k, you will never get paid.
This is a great point, and something that definitely needs to change. However, as you say, the solution to "you don't have an easy way for me to pay you" isn't best solved by "so make your stuff free".
I'd guess that most simply don't care as this is really just an issue for the company, not the author.
If the project is licensed with MIT/BSD it still isn't really likely that the company will contribute/donate/whatever.
So I'd argue that companies not wanting to negotiate doesn't really change anything for >90% of OS projects, they would not gain anything with a more permissive license either.
Companies certainly are to blame, but most OSS projects need support and I want to support them, but they make it impossible.
Why do you want to negotiate? Large corps are burocracies. I can only get mine to donate to a registered charity, is your project one? To pay a bill is easier.
There are few people that have authority to negotiate and their time is expensive. If they spend two hours to "negotiate", they are charging a pile of money the company could have paid you instead.
> There are few people that have authority to negotiate and their time is expensive. If they spend two hours to "negotiate", they are charging a pile of money the company could have paid you instead.
Right, but making my code MIT won't get me paid either.
I will just spend more of my free time offering free support to some large enterprise that can't even figure out how to make a 1h negotiation happen without wasting boatloads of money.
Sorry, that might have been a bad choice of words on my part (not a native speaker). I agree that this process would be simple and easy in an ideal world but we can't reasonably expect every developer to think about price structures for their small OSS projects. So this will most likely involve at least some sort of talking between both parties.
Ultimately the company plans to make mony off of the OSS project, surely those two hours won't make the whole business case invalid.
> I feel most people don't understand that their projects are unbillable and "negotiating" is not an option.
That is a valid point in some cases.
But counterwise I feel that many people on the other side of this need to accept that in many cases the creator(s) of the GPL covered code simply don't want it used that way and that is their prerogative, and they don't agree with the assessment that either they, the project, or the world at large, would be better off some other way. In those cases billable or not is a moot point, as is negotiation for that matter and you will be rebuffed (hopefully politely, there is no need to be dickish about it).
If it is so small then just write your own alternative. Otherwise it sounds like the small library is actually quite valuable and perhaps such a license is justifiable.
You could alternatively go to the owner of the copyright for the software and pay for a license to use it in proprietary software. This is commonly done (see Qt).
Id engines —as well as many other projects— were dual licensed, GPL or Proprietary. If you wanted to make a game with one, it either had to be GPL too, or you paid for a traditional licence.
This got Id paid and let modders and the open source gaming community go wild. What's the downside?
Carmack's argument about perception, but his view is really about having had more people use his software.
I think he's wrong. Brave thing for any SWE to claim but Id wouldn't have open sourced a second engine if the first was freely taken by a dozen companies and sold in competition with for game sales, giving no source improvements back.
And no, GPL advocates say it protects users of downstream projects. Software freedom is a huge topic, but the user is the focus.
The arrangement Id had protected them too. Carmack's take is just odd.
> Id wouldn't have open sourced a second engine if the first was freely taken by a dozen companies and sold in competition with for game sales, giving no source improvements back.
I don't agree with this statement, because they used to open source their engines a generation behind their current one.
They released the Doom source when Quake was state of the art, so I doubt having another company release a Doom clone in the era of Quake would've put them at a significant disadvantage.
But it is a moot point anyway. That hypothetical other company could've taken the GPL engine and created a game that competed with their games. All that would've been required of them is to make their modified source code available (assuming they even modified the source - their new game might as well have been the stock QUAKE.EXE with a proprietary .PAK and it would've been totally acceptable).
But in order to compete against them that game would've actually had to be good: It would have to have good graphics assets created from scratch along with good gameplay. Not to mention strong marketing given the strength of the Id brand.
What I'm saying is that I don't think the GPL protected Id from their competition from using their open-sourced code against them.
Interesting points but it's hard to say for certain without knowing what the individual license terms are. Games continue to sell long after release, and many were released close to the open sourcing dates. Would Id have lost out on long-tail income if the devs could have switched to (eg) MIT terms?
And with a MIT IdTech2 engine, would any of their IdTech3 customers layered on their own improvements to the older engine? It's not like an engine is an drop-in solution. You still have to work it, and IdTech3 is after all just Id's improvements. Somebody could have taken the earlier engineering and run with it, just as open source efforts did, but into their own closed-source product.
WRT competition, I don't disagree on the point about the game's not being solely about the engine, but the era of gaming we're talking about did very much rely on novel technology. I think changes like those done by Infinity Ward may have changed the engine marketplace pretty disruptively in the early 2000s' flood of WW2 games, if they'd had to release them. GPL protected Id's take (CoD has an extremely long tail), as well as letting IW keep all their changes theirs.
So what you're saying is that IW had a commercial license for IdTech3 and made several proprietary changes to it and Id kept getting royalties.
I'm not privy to the details of Id's licensing contracts, but I imagine that they priced their licenses in such a way that licensing was more attractive than creating your own engine.
If IdTech2 was available under a BSD/MIT license then IW could've just taken that, improved it, kept their changes to themselves and not pay Id any royalties.
I see your point, but I'm still inclined to think that it wouldn't have made much of a difference to Id's engine licensing business at the time.
In our hypothetical situation where IdTech2 was available under MIT/BSD then IW would either be stuck with inferior graphics or would've had to spend significant resources to get it up to the standard of IdTech3 (which also comes with the business risk of whether you'll be able to pull it off and how long it would take). They would also have to rely on themselves to get support, rather than Id.
I think executives would in the end just see licensing IdTech3 as the cheaper and less risky option.
I think this is what Carmack's tweet is about: At the time his business partners thought that the GPL license would protect their business and insisted upon it, but now with the benefit of hindsight he recons that the code would've had a greater impact if it was made available under a more permissive license.
I know a lot of game developers that have never messed with Id tech because of the license, so what Carmack is saying makes sense. Yes I’ve read the Id tech code that’s been released but I’ve never thought for one second to use the code because of the license.
What you're both saying is there is licensing ignorance. People read "open source" ignore the small print, get in trouble. GPL isn't special there, EULAs and enterprise software licenses are horrible, but I can understand the broader point that GPL makes you think, and thinking hurts.
The point I maintain is, in Id's position at the time, a MIT/BSD license would have just cost them their engine business. Their code would have been everywhere, but they'd lose the business case for future open sourcing. The net amount of usage would be way down on what we have today.
I’ve been in software a long time and I’ve had to navigate the gpl and it derivatives the entire time. I primarily work in games and I’ve run into a lot of issues with gpl along my career. For most of my career lawyers dictate what is and isn’t acceptable for software licenses and gpl is always the biggest issue. Which gpl license? Is there a single license holder? I feel the gpl was enacted with good intentions, but I feel the wrong people enacted it. Too radical in many ways, too restrictive, and so aggressively enforced that it at least makes using gpl libraries a hard decision.
I think that open source projects, that aren’t gpl, have proved that you can build software and still money from it. Godot, React, Chromium, and Node to name a few. Active development is worth much more than the actual code and encouraging your users to contribute back without the cost of giving away their product has allowed these and similar projects to grow.
I think ID would have had a similar experience had they gone with a different license.
There is an example of 2 projects that started around the same time, one of which used the GPL and one of which used the BSD license. Almost 30 years after the projects started, the one one using the GPL is vibrate and healthy, while the other project using the BSD license has trouble getting companies to contribute their changes back and barely has enough developers participating in the community to survive.
This is the tale of Linux vs FreeBSD. Companies like Juniper that made heavy use of FreeBSD as the basis for JunOS have an atrocious history of failing to contribute their changes back to the community, and Juniper isn't the only one engaging in this behaviour. Sure there are other reasons that Linux took off and FreeBSD didn't, but license is a major factor in how their respective communities behave.
Yes, there are times when copying BSD licensed code is easier if you don't want to publish your source, but it isn't too difficult to adapt business processes to this constraint for the vast majority of applications. Look at what happened in the wireless router market. Early in the 2000s many products made use of the various vendors' Linux based SDKs and weren't compliant at publishing their source. Today OpenWRT is vibrant and most vendors offer GPL archive downloads on their websites. Personally, I don't think this would have happened if Linux wasn't GPLed and there wasn't the pressure the GPL afforded on vendors to open up their code.
I understand and respect John Carmack's position, and the GPL isn't for everyone, but people need to understand that license can result in significant differences in the viability of a community built around a software project on the longer term scales of 10-20 years.
Many companies using FreeBSD, including Juniper, NetApp, Netflix, Netgate (pfSense), iXsystems (TrueNAS), Dell (Isilon) contribute significant code to FreeBSD. It's very expensive to maintain long-lived changes from upstream, so there's a large incentive not to do so. Code that's "not contributed back" is largely code that isn't suitable for upstream anyhow - because it is incomplete, limited in scope, etc.
Looking at "Sponsored by" tags on the last 6 months of commits to FreeBSD I see the following:
The FreeBSD Foundation
Netflix
Rubicon Communications, LLC ("Netgate")
Chelsio Communications
NetApp, Inc.
Mellanox Technologies // NVIDIA Networking
Innovate UK
Klara, Inc.
Diablotin Systems
Dell EMC Isilon
iXsystems, Inc.
Citrix Systems R&D
Axcient
Netflix, Inc.
DARPA
Alstom Group
Eldorado Research Institute (eldorado.org.br)
Ampere Computing
Marvell
Stormshield
Amazon, Inc.
(and a long list of entries with one or two commits each)
There's a backlog of work that contributors would like to get into FreeBSD; a limiting factor is availability of mentor and reviewer time to guide contributors through the process and iterating on bringing the code into a committable state.
Linux isn't purely GPL; it's GPL with an exception carved out for system calls.
I think that's an important distribution, because the userspace equivalent would be GPL with an exception carved out for dynamic linking (i.e. the LGPL).
>Seeing the downvotes, I'd be genuinely interested in counter-arguments or thoughts on this
They are probably downvoting because time and time again people explain that the _purpose_ of GPL isn't to stop commercial use (commercial use is fine), it's to stop developers from depriving users of the same rights to the source code that you, the developer had.
I'm not even a GPL guy, just a guy that can take 10 minutes to read a license and an FAQ. I've also used GPL in commercial software, it's very simple to comply with the license.
You will see my opinions are mostly commercial, however it was GPL and its religious movement (against the man, 70's style) that gave us Linux and GCC.
Most likely Windows and UNIX clones would have kept taking their pieces out of BSD, after the 386BSD lawsuit was settled without any other alternatives to reach out for.
You can see this from how much Playstation OS gets upstreamed into FreeBSD.
Compared to how much PlayStation OS gets upstreamed into Linux? If you don’t want to upstream, you won’t; if you want, you will. GPL doesn’t force anyone to give back, it merely prevents one from using your project if they don’t.
Playstation OS is based on FreeBSD, there is nothing to upstream into Linux.
If you want to talk GNU/Linux, then we can switch to Android and ChromeOS, which have indeed done several contributions, in fact many of those left out weren't accepted.
So, as you can see, there's nothing to gain from GPL in this scenario: the choice is between Sony not upstreaming their changes because they don't want to (BSD), or not upstreaming their changes because they couldn't use your code in the first place (GPL).
With Android, Google wanted to give their changes back, so they were able to use GPL-ed code. They would give the changes back without GPL too. You can see that with non-GPL-ed projects they contribute to.
Nope, you are missing the whole picture in order to frame your argumentation.
Several Google contributions were taken, just not 100%.
One notable contribution was cleaning up the kernel from all VLAs, the fortifications of several modules, some cleaning outcomes from clang compilation support.
You're stopping your reasoning at the numbers: some contributions from Google, none from Sony. (At this step you're also ignoring contributions to FreeBSD from companies that do contribute back, but whatever.) The big picture would be understanding why GPL wouldn't affect that situation.
I feel like this isn't really framing the issue fairly. The issue isn't that Sony couldn't use GPL code, there is no law preventing them from doing so, they just choose not to (for a variety of reasons, I'd imagine). Just as the could contribute to FreeBSD but choose not to.
And OS developers have the choice to prevent Sony (or some other company) from essentially using free labor to make money without any obligation on their side.
Of course, but they can't just copy&paste their favorite files from the linux kernel sources and call it FancyOs without releasing the sources to that.
I think you got my point, I don't really see the benefit in arguing semantics.
It’s not about semantics - it’s about demonstrating that Sony using someone’s sources doesn’t hurt that someone, and trying force them to give away their changes with license doesn’t work.
They didn’t necessarily choose FreeBSD because of licensing. Perhaps if FreeBSD has more restrictive licensing they would have still chosen it and had to upstream changes.
>GPL advocates say it's so that your code isn't exploited by corporations.
I am not sure which GPL advocates you have spoken to, but I like the GPL, because it puts me center as a user. I can use and copy a programm as I see fit. And if I come to a point where I think something has gone wrong with it or something is missing, then I can modify it myself, or pay someone to help me do that, and I can distribute these modifications.
This ensures my freedom as a user. Maybe the software got abandoned, maybe someone added telemetry, maybe xyz, it's helpful in many cases.
More restrictive licenses, let's say the MIT one, do not prevent me from making making my contributions closed source. This ensures the freedom of the developer to prevent users gaining access to the code. Thus it restricts the rights of the user, that they would have under the GPL.
If a commercial project feels it's within their right to prevent me from accessing the code that is running on my machine, that is their decision, but that is at odds with the freedoms that are granted by the GPL.
Given all that, I would like to disagree with your conclusion
> But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.
Chosing the GPL means it's more important to me that my users, not my code, is not exploited "by corporations".
The GPL then does not prevent "good people with commercial interests" from using my code - but given that "good" is a relative term: from my point of view preventing someone from having meaningfull access to the code that is running on their machine is not good - it is bad.
What if that "bad" is insignificant compared to the good produced by that code as part of proprietary software? That scenario is impossible with GPL. Effectively, you're just restricting the business models of your users. It has worked for some projects (Linux above all) but if you're talking about a small project that likely stays small, I don't know if it usually makes much sense.
Also, your convoluted explanation of why permissive licenses should be called "restrictive" is hilarious.
I agree with your point on the usage of the word "bad", this is what the term "relative" that I used implied, as well as the explaination of which specific aspect I think it applies to.
I am not sure why you are trying to make fun of me:
Permissive licenses ensure that the first generation of users/developers benefit from the code in question being free, and then allow restrictions. Licenses along the lines of the GPL make sure software stays free even after generations of copies. The restriction in the GPL that sets it apart from, let's say, the BSD license, is that it doesn't allow further restrictions.
So the tree of descendants of an originally "permissively" licensed code contains potentially more restrictions, that the tree of descendants of originally GPL licensed code.
Quite possible that this makes the GPL the less successfull of the bunch.
That shares a similarity to the paradox of tolerance: To ensure a society stays tolerant, it has to be intolerant against it's intolerant subgroups. You can argue that a society should be so free that is does not do this, but that just diminishes tolerance in the long run, so of the two paradigms, paradoxically, the more tolerant society is the one with a specific intolerant rule against intolerant minorities.
This is, as you rightly noted, not how modern business models function.
No need to re-explain, I understood you well enough. Not trying to make fun of you either, it's just funny you end up calling restrictive something which is widely known as "permissive". Of course, it's called permissive because it contains maximal rights with little requirements for someone you would probably call the "first" user.
> So the tree of descendants of an originally "permissively" licensed code contains potentially more restrictions, that the tree of descendants of originally GPL licensed code.
I think the number of users should count as well. A proprietary application distributed to millions results, in a way, in more "freedom" of use (albeit of a thinner scope) compared to a GPL'd application rarely used or distributed.
> This is, as you rightly noted, not how modern business models function.
Some do, some don't. See e.g. Carlo Daffara on open source business models.
GPL makes "them" (especially small one-off libraries) useless because even the smallest part can not be used without therefore needing to "contribute back" the ENTIRE app.
(edited to clarify I don't mean ALL projects become useless through GPL)
If you read between the lines, this is the very reason why Id released the source code as GPL instead of BSD: They didn't want their competitors to take their engine, make proprietary improvements, and deprive Id of revenue using their own work.
Yes, especially if the code not being GPL means the bad actor can create a product which then makes your code useless, or worse, evil (via a monopoly, bundled telemetry, or otherwise)
Without GPL Oracle could make closed source improvements which RedHat could not use, giving Oracle an edge over RedHat. If RedHat then went under because of that we were stuck with a closed source Linux.
The Audacity drama is solved by GPL, you can compile your own version without telemetry. Forks will pop up and the Audacity developers will backtrack and remove the offending parts of the code.
>Ah, so it's really about making it harder for other players to improve their product?
No, it's about keeping those improvements open source.
>As for Audacity - the exact same thing would have happened with any other Open Source license; GPL doesn't make it any easier.
Yes, it does make it a lot easier since the Muse Group (assuming they don't own all copyright of Audacity, if they do the license doesn't indeed really matter) has to release all improvements as GPL and the fork can simply cherry-pick them. With a MIT/BSD style license they could just make it proprietary and then we would be stuck having to choose between an outdated Audacity and a non-free Audacity.
They can’t make it proprietary, because the developers would then go with the open fork. In this case GPL protects you from a scenario which cannot happen for other reasons.
But the improvements they make wouldn't be open source so the open source version would lack those features, which means we would be stuck having to choose between an outdated Audacity and a non-free Audacity.
Muse Group bought Audacity and are developing it now, their developers will use whatever license their employer tells them to use. They are the main developers of Audacity now. Any fork will have to compete with their work.
No, it’s just about getting compensation back for your work. If Oracle benefits from RedHat’s initial work then it is only fair that RedHat benefits from any improvements that Oracle later makes.
Assuming that Audacity does not have a CLA the GPL license will prevent muse from forking Audacity into a closed source project and continuing their development there instead. Instead they are required to keep any modifications open source, allowing users to remove aspects like the telemetry.
Erm, Oracle is literally selling repackaged RHEL; they don't need to contribute anything back to Red Hat. They would if they wanted to replace stuff with their own closed-source forks, but that would be completely unpractical for reasons not related to licensing (see how Oracle's closed source ZFS become irrelevant compared to the Open Source ZFS).
As for Audacity: its owners couldn't do that without closing their fork, which would mean splitting off with the developer community and becoming irrelevant.
The "it's more important that your code is not exploited by corporations" crowd doesn't actually find GPL suitable anymore either, it still allows too much exploitation.
This position increasingly wants technically not-open-source licenses that reserve the right to profit from the code for... actually, a certain corporation, the one of the "original developers". It's not really about "by corporations", but "big corporations" vs "plucky entrepeneurs who deserve to get rich from their innovation".
Whereas before, for open source enthusiasts, it was about "those who get rich from code" (whether big corporations or 'plucky entrepeneurs') vs some kind of 'commons' or 'public good'. (The new ideological position believes they are still open source enthusiasts somehow, but that their non-open-rights-reserved licenses are somehow 'more truly' open source than... actual open source licenses including the GPL. The term 'open source' still has too much credit for them to say they are opposed to it, even when they are).
There is definitely an ideological shift going on. I am curious if anyone has written/researched more about it.
Blender, Krita, Wordpress, Drupal, Nextcloud and many other projects are commercial and (A)GPL. As long as you share the sources of your modifications, you are free to use their code.
Here's where I think the misunderstanding is, and maybe I should have made this point in my original comment: I do think there can absolutely be cases where a dual license of GPL / commercial can make a ton of sense. I think those cases tend to be for projects like Linux, Blender, etc.
But what I'm saying I personally think is a bummer is that for years, most open source projects - down to even small but useful libraries - were put under GPL simply because it was "the thing to do".
Like Carmack says, in my mind that is a net negative, since these libraries then were not able to be used by projects which were under other licenses, due to their copy-left viral nature.
We don't know how many projects would never have been written at all without GPL as a license option. Making it difficult to determine whether it's a net negative or not.
I think one of the reasons for why the GPL as once more popular than other licenses has to do with the fact that it was created for the GNU operating system, basically a collection of simple command line utilities. No one would think of using these in other ways than to run them on the command line (or in a batch file), which is explicitly excluded from the “derivative work” concept of the GPL.
Things got complicated once people put libraries under the GPL, which is when all the legal uncertainties cropped up about what constitutes derivative work.
there is value to keeping something public in itself, like with parks and roads. If anything i d say that todays feudal state of tech proves that gpl was right
it s hard to deny that the most-used OSS software, is GPL
It's easy to deny, as long as we include libraries in the definition of "software". ZLib is bundled with macOS, iOS, basically every Linux distribution, every game console and even every Windows 10 installation [1] [2]. Same for extremely common libraries like libpng, Curl, SQLite, Boost and OpenSSL.
> But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.
I'd say that for a lot of people using the GPL that is exactly correct, but they distinguish between the people using the code and the commercial interest that they work for much more than your wording suggests. That good person will eventually move on, potentially leaving just the commercial interest.
Of course there are more extreme views (that good people and commercial interests do not mix) so it isn't that simple for all.
And there is the obvious twist of the point that by avoiding the use code covered by GPL, someone is tacitly stating that the potential for commercial exploitation is an option that they (directly or via following their employers' wishes) expressly want to keep available.
This is why some projects dual license, but that can have its own problems for projects with many maintainers or forks - sharing back becomes a relicensing issue of it's own (it is less of an issue for a protect maintained by small team, or a team of one).
It is not only a matter of "that your code isn't exploited by corporations". It also a guarantee that any improvement to that code will be available to everyone.
If I make my code non-GPL specifically so other people can use it for profit, I effectively donated to a for-profit company. Why the hell would I do that?
Why do people feel entitled to GPL-licensed work? If you are producing code for a commercial purpose then you have the resources to pay for the code to be written.
Just because GPL code is in the open does not mean it’s wasted if companies can’t use it for their own profit.
Awful comparison. GPL is more like a group of people that meet regularly to share cake recipes with the agreement that if anyone has new ideas for those recipes they should share them with whoever they bake cakes for instead of keeping them secret.
And then along comes CakeCompany LTD, complaining that they just want to be part of the group to learn recipes for free without sharing any ideas back, because it would be bad for business, and calling the group a bunch of idiot zealots that are wasting cake recipes by not letting CakeCompany LTD add some nicotine to one of the group's recipes without letting their customers know what their modified recipe is.
Nobody knew back in the day that this strange idea called "open source licensed software" would become a big deal. And when it did become a big deal, there still wasn't enough practical examples to inform us which license to choose. At the time, corporations were not "taking advantage" of open source licenses, and we had no idea they would later on. So corporations weren't really a factor for us. It was more about source code freedom / user freedom.
GPL advocates say it's so that your code isn't exploited by corporations.
But I'd say that choosing GPL means it's more important to you that your code "is not exploited by corporations" than that it can be used for good by people with commercial interests.
Those two things do not have to be synonyms. I'd much rather allow the second if it means tolerating the first.
(Edit: Seeing the downvotes, I'd be genuinely interested in counter-arguments or thoughts on this)
(Edit 2: Just because it keeps coming up, let me make absolutely clear that I do NOT in any way think GPL might never be a valid choice, nor that anyone, myself included, should feel "entitled" to "free as in *.*" code.)