6 ms·
The problem is that GPL3 has more restrictions than just "publish the code". That's why projects such as FreeBSD, OpenBSD, etc. also won't include GPL3 code, as
by Carpetsmoker 8y ago
The problem is that GPL3 has more restrictions than just "publish the code". That's why projects such as FreeBSD, OpenBSD, etc. also won't include GPL3 code, as including GPL3 code would restrict what you can and can't do with the entire system.
I assume that Apple's reasoning is similar.
- ajross 8y agoCan you name them? It's not exactly snark. My experience is that almost everyone with strong GPLv3 opinions turns out not to actually object to the terms themselves when discussed in isolation. To head off: it's not the patent grant. Apache 2 has a very similar patent grant and everyone is fine with it.
- deleted 8y ago[deleted]
- Matt3o12_ 8y agoApple doesn’t support it because GPLv3 requires that you are actually able to run the modified source code (not just see, change and distribute). While they probably could do that on macOS, macos and iOS share the same kernel and many common source trees. So by providing macOS software with GPLv3 code, some of that code could potentially be shipped with iOS which would land them in hot water because you are not able to just execute code on iOS. Even with a developer license, you couldn’t just recompile the kernel (or even Library) and replace it with the default one. Edit: Here is more information about that: > Protecting Your Right to Tinker > Tivoization is a dangerous attempt to curtail users' freedom: the right to modify your software will become meaningless if none of your computers let you do it. GPLv3 stops tivoization by requiring the distributor to provide you with whatever information or data is necessary to install modified software on the device. This may be as simple as a set of instructions, or it may include special data such as cryptographic keys or information about how to bypass an integrity check in the hardware. It will depend on how the hardware was designed—but no matter what information you need, you must be able to get it. Source: https://www.gnu.org/licenses/quick-guide-gplv3.en.html https://www.gnu.org/licenses/quick-guide-gplv3.en.html That means if there was GPLv3 code in iOS, Apple would have to send you their private keys to sign any source code so you can run it on iOS.
- ajross 8y agoThe product in question is bash, though, which doesn't ship on iOS at all and which obviously could be (and should be) modifiable on OS X.
- LukeShu 8y agoSure. But iOS doesn't have Bash (I don't think, even if it does: Then just ship GPLv2 Bash on iOS, and modern Bash on macOS where users might actually care). The GPLv3 of Bash doesn't infect the shared kernel or libraries between iOS and macOS, it's just the `/bin/sh` program. It's easy enough to check if it's being included in iOS. "The reason we can't ship modern Bash on macOS is that we're concerned we might accidentally include Bash on iOS."? (and /bin/sh on macOS is already sufficiently user-modifiable to satisfy GPLv3)
- deleted 8y ago[deleted]
- Matt3o12_ 8y agoApple is pretty firm on no GPLv3 because accidentally shipping it on iOS can be pretty dangerous for them. Whether you agree with the decision to just not ship GPLv3 software (I don’t), I can understand apples concerns regarding GPLv3. Furthermore, it wouldn’t surprise me if iOS had bash support even for just debug builds and Apple either had to worry about testing, building and maintaining two version of bash and still risk getting them mixed up and accidentally shipping some parts of the bash source code. This much easier to just never use GPLV3
- ajross 8y ago> accidentally shipping it on iOS can be pretty dangerous I read the same argument about GPLv2 in like 1994. To date, there remains no case law I'm aware of where a copyright holder "lost" anything by "accidentally" shipping GPL software. How many decades does it take for us to put this myth to rest?
- 8y ago
- Carpetsmoker 8y agoEh, is it 2007 again? Hasn't this been discussed to death already? I have little interest to repeat it again; this discussion has been on-going for ten years already (longer if we count GPL vs. BSD discussions, which are roughly similar). Everyone should be familiar with the arguments by now; I trust you're already familiar with mine. I understand that you're well-intentioned, but I find the suggestion that I'm somehow not informed to be rather patronizing to be honest.
- ajross 8y agoSo... you don't really know what restrictions you're talking about, right? I mean, you brought up the subject: "There are restrictions!" "What restrictions?" "Everyone knows. It's patronizing to ask me. I won't say."
- Carpetsmoker 8y agoThe whole tivo-isation thing has been discussed extensively, as well as the problems with trying to prevent it with the license. I didn't include an entire summary of it, as it can be easily looked up on e.g. Wikipedia, as well as many other places.
- stock_toaster 8y ago> Apache 2 has a very similar patent grant and everyone is fine with it. OpenBSD apparently isn't fine with it, fwiw. > The original Apache license was similar to the Berkeley license, but source code published under version 2 of the Apache license is subject to additional restrictions and cannot be included into OpenBSD. > -- ref: https://www.openbsd.org/policy.html https://www.openbsd.org/policy.html
- int_19h 8y agoOn FreeBSD, as I recall, they don't want any GPL'd code in the base system, simply because the ideological goal is to have everything under BSDL. It's not that it affects other bits of the system though.
- Carpetsmoker 8y agoYeh, GPL2 is also considered less than ideal, and replacing GPl2 code has been a low-key long-term goal. GPL2 is still considered acceptable though, whereas GPL3 is outright barred.
- int_19h 8y agoIs there any GPL code remaining in the base at this point? I thought it was all gone once they replaced gcc with Clang.
- Carpetsmoker 8y agoI think gcc is still in base, right? They just added clang and set that as the default, AFAIK. I haven't kept up with FreeBSD much in the last few years, so not sure what the plans are to remove gcc. Also, a quick look at the source tree shows there are still some other parts as well. GNU binutils, GNU diff, dialog is GPL, etc. See: https://github.com/freebsd/freebsd/tree/master/contrib https://github.com/freebsd/freebsd/tree/master/contrib In the kernel, I think there are some drivers that are based on the Linux GPL code, for example: https://github.com/freebsd/freebsd/blob/1d6e4247415d264485ee94b59fdbc12e0c566fd0/sys/dev/mlx4/mlx4_core/mlx4_pd.c https://github.com/freebsd/freebsd/blob/1d6e4247415d264485ee... (just first hit from GitHub search for "gpl") So yeah, looks like there's still plenty of GPL code in FreeBSD that's not trivially replaceable. The same applies to OpenBSD, although in general the OpenBSD people tend to be a bit more proactive in replacing GPL code.