What's the problem with redhat not wanting to share their code with others?
I see a lot of people angry about redhat's decisions of not wanting to redistribute source code to others but I think that should be completely within their rights. The way I see it is like I am a developer of let's say a music player. I make my source code public because I want people to see what they're downloading and may be get advice what I can change to make it better. I charge $10 for my app. And then someone else downloads my code, compiles it and redistributes it in his name with few changes. Then why would people want to use my app when they get same app for free? I think then, it's completely within my right to make it closed source in that case as that's what I make money from. Sure, my app is based on a free and open source framework but then there's also such a thing as consent
They consented their framework to be used for development. I don't consent my app to be redistributed. Why is it an issue?
I've been having ongoing discussions about this topic because I had a similar opinion to begin with. The problem is the way a lot of that source code they're trying not to share is licensed.
A lot of the code causing problems is not RedHat's to choose not to distribute. It is Free and Open Source Software licensed under the GPL, a copyleft license that explicitly grants the rights to copy, redistribute, modify as you see fit... as long as the resulting code is also licensed under the GPL. Reason being, this promotes a benefit for EVERYONE, vs. a benefit for a corporate bank account.
While RedHat is not explicitly stopping people from distributing GPL licensed code found within their products, they are saying "well you can, but if you do we're going to stop providing our service to you." They're strongarming people into not exercising rights explicitly granted to them based on the way code RHEL is using is licensed.
This course of action is not technically against the GPL, but... I'm sure you can see how it's a very shitty thing to do.
Imagine you went to a donut shop and they had a buy 1 get 1 free offer, so you go buy a donut and get a free donut that you want to share with your friend. But the person at the counter stops you from giving the donut to your friend, saying "Woah, we gave YOU that donut. You can't just give it away. If you give your friend that donut either you'll have to pay for it or they will, or you'll be banned from the store and you can never buy another donut from us again." That's a shitty oversimplified analogy of what's happening here, but I think it gets the point across.
my only suggestion would be that the donut is the binary and the recipe is the source code (which is GPL'd and must come with the donut).
the person getting the donut is free to eat the donut and distribute the recipe (long live the GPL!), but the baker says, if you distribute the recipe, I wont sell you any more donuts (as is their right) and therefore you will not get updated recipes either.
totally garbage move by redhat, but arguably allowed by the GPL. this eventuality is one of many reasons why I chose the debian_waytm decades ago when I seriously started with FLOSS.
Agreed, that's a better way to put it. I thought about using the recipe as part of the analogy, but couldn't figure out the right way to word it. Thanks for that!
I wouldn’t be surprised if this results in a new version of the GPL (much like TiVo inspired in the past) that makes the redistribution rights even more explicit. I think the “allowed” is only in the vaguest of terms and likely more of an oversight based on the software distribution model being used at the time and some crafty lawyers at Red Hat. It absolutely violates the spirit of the GPL that anybody who receives the binary can also get the code to use and modify however they want as long as they also share changes with people who they distribute to.
The issue is that it's not about RedHat not wanting to redistribute "their source code". The various Linux distros are the result of a huge number of voluntary contributions from tens of thousands of people (many of which happened before RedHat was even a thing). The only reason all of those people agreed to contribute is because it was licensed in such a way that no one could later come in and take all that work for themselves. That is a huge advantage and the code that underlies RedHat's business simply wouldn't exist without it.
The disadvantage (from an individual seller making money perspective) is that you can't charge for the code itself based on any IP rights in that code and have to make money from accessory services (warranties, support, educational resources, enhanced security, customization and installation, SaaS or IaaS). RedHat not only encouraged the community to contribute, it put itself out as a champion of the free (as in freedom, not beer) software movement. Now it's trying to sneakily hinder those same freedoms. Aside from any business model arguments, that's why people are pissed.
It isn’t their right, because they are using software that explicitly requires that you provide code to those who you distribute to, and that those people in turn must be free to use and modify the code as they see fit as long as they also share it with whoever they give it to. A vast majority of the code is not owned by Red Hat, and even the code they do have is most often released under this same license.
This is a basic feature of the copyleft license. This is why Microsoft called the GPL cancer in the past.
What you describe as what you would do is perfectly valid for software released under such a license. If you wanted to do that, you would not use the GPL and you would not use code covered by the GPL in your product.
and that those people in turn must be free to use and modify the code as they see fit as long as they also share it with whoever they give it to.
And this is where it falls apart for redhat. They're allowing their clients to download and use the source, but then threatening them that if the source RPMs make it out into the wild then they are at liberty to cancel their agreements terminating their access to RHEL altogether.
It may be allowed by the GPL, if so I am fairly sure that is an unanticipated bug and not a feature. It is a shockingly short sighted attack on free software, specifically freedom 2 and somewhat freedom 3.
My personal take is that this is not a about code, or licensing, and certainly not about money made from direct sales.
The code is open source and free software. Red Hat used to be proud, that all their code is free software. Even if they change this mindset, 99.99% is already available as free software for anyone who cares about it.
Red Hat provides some value on top of what's available elsewhere, but they don't have a monopoly on this added value either. You can get a full-fledge linux distribution from Ubuntu for free, you can also buy professional services from plenty other vendors.
What's the problem? People, in particular people you can code, trust Linux or Red Hat because the code is public. I don't want to compile from source; I don't want to review this huge pile of code. However, since the code is widely available, widely used, and transparently built from a common code base, chances are that someelse has looked at the source code. It's much harder to hide a backdoor, intentional or not, if the source and build process is public.
Maybe you can compare this to elections in a democracy. Everything is public. Anyone who cares can watch the whole thing. This generates trust in the system.
Red Hat or IBM is changing the system, creating doubt. Realistically the code in RHEL will not differ much from what's publically known, but there's a wall of fog now. And those who know is discouraged to disclose the delta.
Also, culturally, Red Hat is signalling they want to talk to 'corporate' buyers, not their 'actual' users. Sure, RH and the clients have always been corporates, but friendly.
Red Hat was one of the first distros and the first big player in open source. Now, open source is everywhere, but Red Hat is dead.
A number of people have already helpfully suggested learning more about the GPL, but as a prerequisite, definitely read up on the Dunning-Kruger effect.
Your use of the word framework makes me think you are confused.
If you use an open source IDE to do your development, you're not obligated to release your project, your novel invention, under the same license.
If you take someone else's work, and modify or redistribute it, you are bound by the license of that project. You dont get to just do whatever you want with someone else's work just because they released the code publicly.
Many Linux components, including the kernel, are under the GPL license. That license requires that derivative works be licensed GPL and source code be made available.
Large portions of Redhat Linux are GPL licensed. They are required to provide source code for those portions.
If Redhat were to develop something that was not derived of a GPL project, they could license it however they want.
Let's say that your app is built upon open source software that was not coded by you, but by other people. Like: 10% of the code of your app was coded by you, 90% by other people (let's call them generically "third parties"). And that those third parties released their code as open source, under the following condition: "you can only use our code in your software if your software is also open source".
And let's also say that you've been living mostly not from selling your app, but from support. But that is never enough, isn't it? You decide to charge for the app, and to get rid of the competition.
What would you do?
What about not using the third party code? Nope - simply not feasible. Your app is built upon it.
Keep living from support. Nope - you're too greedy for that.
Outright violate the open source license required by the third party devs. Nope - you'll get heavily fined.
Find some loophole so you can "technically" comply with the license of the third party devs, but only in letter, not in spirit.
Red Hat picked #4. Or potentially #3 because "we'll stop doing businesses with you if you do what the license explicitly allows you to do" might be potentially also considered a violation of the letter of the license, not just the spirit.