this post was submitted on 31 Dec 2023
169 points (90.4% liked)
Open Source
31028 readers
606 users here now
All about open source! Feel free to ask questions, and share news, and interesting stuff!
Useful Links
- Open Source Initiative
- Free Software Foundation
- Electronic Frontier Foundation
- Software Freedom Conservancy
- It's FOSS
- Android FOSS Apps Megathread
Rules
- Posts must be relevant to the open source ideology
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon from opensource.org, but we are not affiliated with them.
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I wasn't too psyched about reading this article, but I was surprised at how sensible it is -- among a bunch of pretty good points he makes, this is one of them:
From the end user's point of view, there is absolutely no open-source-ness to your Android phone. (BSD which iOS is based on was always designed to make this a possibility, but the GPL was not.) They're using all this software which was supposed to be authored under this theory of GPL, but except for the thinnest thinnest veneer of theoretical source availability, it's proprietary software at this point.
RMS actually talked about this. He laid out this vision of this bright future where you'd always have access to the source code for all the software on your computer and the rights to take a look at it or build on it or modify it, and some reporter said, well yes but what about all these other urgent problems that are ruining the world with private industry trying to make money at all costs and destroy it all. And RMS said, more or less: Yes. It bothers me a lot. But I don't really know about that, and I know software, and I felt like in this one specific area I could write a bunch of software and solve this one problem in this one area where I felt like I could make a difference. If other people could get to to work on these other more urgent problems that'd be great, because they also bother me a lot.
Can you elaborate on this? I would have said exactly the opposite. That the GPL's copyleft scheme and requirement of providing source code was very intentionally meant to be a way to prevent big corporations from taking advantage of users via software. I'll admit that vision hasn't born the fruit (that I'd've said) it was intended to. But wasn't the intention there?
Meanwhile, BSD doesn't have any provisions intended to keep some big company from distributing compiled binaries sans source code with lots of antifeatures added.
The terms of the GPL specifically require that you be able to specifically demand all source code of any GPL'd code on your smartphone (or smart TV or toaster or garage door opener or whatever) so that you can build at least the GPL parts of the firmware for your own devices. If the courts would just back that up, you would be able to recompile all the GPL'd parts of your smartphone's firmware and run that on your phone. That was the intention of the GPL. And the terms of the GPL have been used to bear fruit in that direction. OpenWRT wouldn't exist if Free Software advocates didn't threaten legal action if... who was it... Broadcom?... didn't comply with the GPL and release its source code.
There is still Tivoization to contend with. (Locked bootloaders, basically.) Some (like Bradley Kuhn) think the GPL's terms are sufficient to prevent that from being a problem already.
I think we're saying the same thing; maybe I worded it confusingly. BSD is supposed to allow proprietary-ization, and GPL is supposed to prevent it. Apple is within both the letter and spirit of the BSD license with what they're doing with iOS. Google is technically within the letter of the GPL with how they distribute Android, just as Redhat is technically within it in how they distribute RHEL, and honestly maybe both cases are fine, but it's far from the intent. The spirit of the GPL is that people who would receive an Android phone would know that the relevant parts of their phone's software are open source and have a realistic ability to modify them, which I'd argue is true for pretty much 0% of even tech-savvy users today.
Firmware? You mean kernel, right? (in addition to whatever low-level userland tools are GPLd, which I'm sure is a bunch.)
I don't think Google really did anything wrong here. The letter of the law is being upheld pretty well in what they're doing. I think the issue is the cell phone manufacturers making it de facto impossible to modify your cell phone. I don't think the GPL actually makes any requirement for modifying the software in-place being a requirement (nor should it IMO), and providing the source code is done carefully in accordance with the license. It's very different from the "fuck you I take your stuff, sue me hippie" stance that Broadcom took. Broadcom very clearly broke the law.
In my opinion, the issue is that a cell phone is such a free-software-hostile environment that arguably GPL software shouldn't "be allowed to" come into contact with it in any capacity if the spirit of the GPL were being upheld. IDK how you can write something like that into a license though. And I think that's what Perens is saying -- that we need a new model that comes closer to the spirit in terms of what the actual result is.
(Edit: Actually, maybe making it a realistic possibility to drop in a recompiled replacement should be a part of the GPL. I remember people were talking about this decades ago with signed bootloaders and things, so that a recompiled kernel wouldn't boot on particular machines unless you broke the DMCA by doing something to your hardware. I said I wouldn't like any attempt in the license to forbid that, but on reflection, it sounds like maybe a pretty good way to better uphold the spirit of the GPL with particular legal language.)
Ok, yeah. I think I misinterpreted the bit of your post that I quoted.
About Google, it's not necessarily Google who manufactured your phone. It is if you have a Pixel, but it might be Samsung or LG or ZTE phone or whatever. And it's not necessarily them who sold you your phone. It might be T-Mobile or Mint Mobile or AT&T. Whoever conveyed GPL'd code in object form (as the GPL puts it "embodied in, a physical product") has the responsibility of ensuring you can get from them the source of all GPL'd code on your device. Including all derivative works and modifications.
Derivative works includes kernel modules. Which includes device drivers for, say, 5G modems and fingerprint readers. And those are the kinds of things (aside maybe from tivoization) that are the biggest hurtles for making a fully free firmware for a given device.
So, yes, I mean the kernel and derivative works of the kernel like drivers. And of course anything else on the device that is GPL'd.
Plus, the GPL also includes what is necessary to compile and install GPL'd code as part of the source code. Some of the implications are pretty cool. See this article by Bradley Kuhn of the Software Freedom Conservancy for more info.
I think if companies did comply with all this, FOSS could benefit ordinary users who don't even know what FOSS is a lot more than it does now.
How are phones free-software-hostile? I know IOS is, but Android not really. There's a list of open source Android distributions. Although not very good, they are viable.
It does feel out of place how that isn't in the GPL.
Yeah, I get that. This is why I'm not fully in agreement with Perens that this is an urgent problem.
Because the whole idea of the GPL was to usher in a future that was like the environment RMS grew up in, where you always had the source code to all your stuff and you could examine or modify or build on it. Linux machines are in actual practice that way, which is super cool. Android phones are basically not, from the viewpoint of almost any mortal human. I think the argument is that the efforts that the manufacturers make to close off modifications to the phones, and then put software on them that's sometimes hostile to the best interests of the phone owner, means they shouldn't be able to use all this GPL-licensed software for free in order to build the phones they're selling.
I worked at a company that had an open source policy. They wanted to use as much open source as possible but didn’t want to contribute back in any way. I explained to them that’s the antithesis of open source. If they find a bug, they should be willing to try to fix it or at least help fix it. Now all the code they wrote internally was closed source.
I’m fine with closed source projects but don’t use open source and just leech from it. Eventually people will stop or bugs will never get fixed. Everyone needs to chip in either money or time.
Depending on the nature of the changes, it might be more advantageous to tell them that it's easier (i.e. cheaper) to contribute changes upstream, rather than maintaining them separately forever. Also, the good will and reputation boost involved can be significant.
Don't say it if it isn't true or anything, but in a lot of cases it's true.
They didn’t ever touch the open source code. They’d just open a bug or feature enhancement. Why it annoyed me so much. I believe open source is best when everyone contributes something. Either time, money, or something of value.
Note that Apple's OSs have very little to do with BSDs unless you deem coreutils the only criteria for an OS' quality.
Yeah, 100%. At this point the resources invested in MacOS / iOS have probably exceeded even the decades of work they were able to leverage by starting with FreeBSD / NeXT / Mach / whatever else.
(Edit: Actually, not 100% true. Macs are still very BSD-like under the hood; I actually really like development on Macs because I can basically treat them as BSD systems with unusual package management and a fancy GUI. For that reason they're far preferable for me over Windows or pre-OSX Macs. But yes, your point is well taken that iOS development at this point has far eclipsed anything they started out from in terms of LOC and time spent.)