News for hackers. Stuff that matters.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by Wowfunhappy on Tuesday December 08, 2020 @12:44PM (#25348692)
You might be right as a practical matter, but I do think the FSF's tivoization concerns are well-founded, especially in light of what we've seen happen in the mobile industry. If the user isn't allowed to actually compile and run their own code, what good is it for that code to be open source?
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by dTal on Tuesday December 08, 2020 @01:50PM (#25349702)
It always seemed to me that problem with GPLv2 wasn't any shortcoming in the license, as such, but in certain legal opinions that labeled things "compliant" which were clearly against the spirit. TiVo-ization is a violation because GPL software and proprietary software are combined to form a single piece of software, distributed as a single binary firmware image; the fact that there's some notional internal interface between the GPL and non-GPL code within, if you manage to crack the firmware that is, should be legally irrelevant. But engineers are wont to be distracted by concerns such as "kernel space" and "user space", and "dynamically linked" vs "compiled in". Absolutely none of this matters, if I'm getting a big-ass opaque blob with a mixture of GPL and proprietary code in it. The same goes for the average Android handset, for that matter.

I think the battle was lost by not pushing the advantage hard enough.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by Wowfunhappy on Tuesday December 08, 2020 @02:00PM (#25349830)
I don't think I agree with that. I want to be able to run GPL programs on Windows, for example.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by JoshTriplett on Tuesday December 08, 2020 @04:19PM (#25351479)
GPLv2 and GPLv3 both have an exception for proprietary "system libraries", which is designed to allow you to ship GPLed software that runs on proprietary systems. (You still have to meet the terms of the GPL in other regards, but you can ignore the system libraries.)

GPLv2 was stricter in that regard, in that the entity shipping the system libraries couldn't be the one shipping the GPLed software; GPLv3 drops that and allows anyone to ship GPLv3ed software for a proprietary platform, as long as you still meet the other requirements of the GPLv3.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by wizzwizz4 on Tuesday December 08, 2020 @02:29PM (#25350146)
There's nothing stopping you. What would be stopping you is if Windows included DRM that stopped you running all GPL programs apart from Microsoft Official Builds™.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by Wowfunhappy on Tuesday December 08, 2020 @02:58PM (#25350528)
Well, I wasn't clear that it would still be allowed under the interpretation the GP was advocating for. Perhaps they need to flesh out their position.

I'm largely thinking about the current situation with ZFS on Linux. IMO, this benefits no one, and so I'd generally like to see less draconian interpretations of what code is allowed to link together—but more licenses which protect other user freedoms, like the ability to run your own code.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by bronson on Tuesday December 08, 2020 @02:59PM (#25350536)
This is why Apple is so scared of GPL3 on iPhones/iPads.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by dTal on Tuesday December 08, 2020 @04:57PM (#25351925)
That would be fine. The software is distributed to you separately, and so any "derived work" resulting from installing your GPL software on Windows is owned by you anyway.

What would arguably not be fine, under my interpretation, would be if Windows would not function without a GPL component, that's built-in to the OS and distributed on the install disks and updated through Windows Update. Even if it's a self-contained binary, and you can navigate to it in the filesystem.

The standard is - would a reasonable person view the combination of GPL and non-GPL code as a single piece of software?

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by Wowfunhappy on Tuesday December 08, 2020 @09:53PM (#25354768)
> would a reasonable person view the combination of GPL and non-GPL code as a single piece of software?

I think reasonable people would disagree with each other.

macOS used to come with iTunes preinstalled, but you could remove it by turning off SIP and running `sudo rm -rf /Applications/iTunes.app` in the Terminal. I always did so, because iTunes sucks, and the rest of the OS always continued to work fine.

Is iTunes a part of macOS, or is iTunes a separate piece of software? Would it matter if you could remove iTunes through Finder, or without turning off SIP? Would it matter if iTunes wasn't included with macOS, but was automatically downloaded and installed a day later? Would it matter if iTunes was created by a third party, or if macOS couldn't output any audio without it?

What about Google Play Services? DirectX? ZFS? I could certainly make a case for how I think each of these should be classified, but I don't think it's at all obvious.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by dTal on Wednesday December 09, 2020 @05:01AM (#25357016)
Yes, the boundaries are fuzzy; that's typical in law. The "reasonable person" language is not my invention, and it's assumed that somewhere along the line someone is going to have to fight in court over the particulars of ambiguous cases. The ambiguity is a strength - it forces compliance with the spirit of the wording, instead of risking litigation by trying to find a technical loophole.

Software engineers consistently underestimate the degree to which law is not like coding.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by int_19h on Tuesday December 08, 2020 @05:04PM (#25352013)
The more interesting case is when the software automatically downloads said binary.

The even more interesting case is when there is more than one option for that binary, all with the same interface (but possibly different features), and only some of them are GPL. This was famously the hypothetical presented by the author of CLisp (which had a dynamic dependency on GNU Readline) to Stallman.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by tytso on Tuesday December 08, 2020 @12:52PM (#25348839)
If you believe that "software will eat the world", then hardware doesn't matter. Sure, the customers who purchase a locked-down device might not be able to update their device. But the technology will still be out there, so that it can be built upon to improve the next generation of hardware --- perhaps hardware created by a competitor, or using open hardware. This is especially true for consumer-grade devices, which generally become obsolete and replaced within 2-3 years anyway.

And if this is something that a sufficiently large segment of the users actually care about, then they will vote with their feet, and purchase hardware where they can update their own code. Maybe this will even result in a software ecosystem where the company selling an open product will be able to take those improvements from the dedicated power users to improve future releases of their product. But this is something which is best enforced by market forces --- if it's really an important right that users find important, they will demand it.

This is essentially the debate when the FSF tried to convince the Linux kernel community to relicense to the Linux kernel to the GPLv3. We declined, essentially because we saw the downsides of the anti-Tivo-ization clauses had towards people choosing to use Linux versus some other OS. And we believed that growing the contributor base was in the long term, far more important than the more short-term anti-Tivoization concerns of the FSF. This is why the Linux kernel is GPLv2 and not GPLv3. We didn't give in to the siren call of the FSF position.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by AnthonyMouse on Tuesday December 08, 2020 @01:24PM (#25349324)
The way free software is supposed to work is that you buy a device, you want to improve it, so you do. And then you share your improvements with everybody else.

If you buy a TiVo and then can't modify it, you don't. So there is nothing to share with everybody else. The entire system is destroyed. It's an existential threat.

> And if this is something that a sufficiently large segment of the users actually care about, then they will vote with their feet, and purchase hardware where they can update their own code.

But that's the problem. Most of the users aren't (currently) developers, but if the dominant hardware isn't open to developers then there are fewer developers, and the users then can't receive their improvements.

It's not obvious that there are always enough developers to justify a production run of open hardware separate from the hardware everybody else uses, even though everyone benefits from its existence. So we need the dominant hardware to be open.

> Maybe this will even result in a software ecosystem where the company selling an open product will be able to take those improvements from the dedicated power users to improve future releases of their product.

Except that if this becomes popular and the software is open source but can be locked down, proprietary hardware vendors will ship the improvements on locked down hardware. Then anyone who doesn't make modifications themselves, or doesn't anticipate making them even though they might have, buys the locked down hardware and the open hardware has no competitive advantage in the market among non-developers. Even though its existence is a prerequisite to continued community software improvements that everybody wants.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by ohazi on Tuesday December 08, 2020 @04:55PM (#25351907)
This argument doesn't work when PCs are essentially the only widely available hardware platform that ended up with an open standard for modifying the software running on the device. Even here, the fact that we ended up with this model was an accident.

Every device or platform since the IBM PC, including phones, tablets, non-x86 PCs, thermostats, wristwatches, routers, appliances, cars, etc. -- all of them have switched to the device-only-accepts-firmware-signed-by-the-manufacturer model where you can't put your own software on the vast majority of devices without a significant amount of reverse engineering and hardware/firmware exploit hunting.

Software can't eat the world if nobody wants to make hardware that can run arbitrary software. Then it's only "this one particular company's software can eat your thermostat for the two years that they feel like providing device support, then it's trash."

I think that hardware (or at least boot architecture) does matter. For all of UEFI's flaws, the secure boot model is actually pretty good. A device can come with a preloaded manufacturer key, and can be configured by default to only run manufacturer signed firmware. But once a user buys the device, they have the option of adding an additional key, either from another third party (i.e. like the key that RedHat and Ubuntu use to sign their kernels), or keys that you or your organization generate and manage yourselves. You can also remove the preloaded key, because as the owner of the device, you should be able to do whatever you want with it. If the manufacturer needs their application to only work if the secure boot settings haven't been altered (i.e. in a car, with safety/liability concerns), they can do that.

I would be a lot happier if we had a model like this for literally any other non-PC platform. Right now everybody rolls their own crappy implementation of signature checking with hard-coded manufacturer keys. It's really pretty awful.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by tytso on Tuesday December 08, 2020 @05:14PM (#25352131)
That simply is not true. Chromebooks, many Android phones (all of the ones sold by Google) have a way of turning off the requirement for signed boot. The device is less secure if you disable signed boot; an evil maid who gains access to your device, or the FBI after they seize your device, will have a much easier time getting access to your data --- but if you want to build your own version of Chromium, or put your own Linux distro on a chromebook, or if you want to build your own version of Android from source, and put it on a Nexus or Pixel phone, you can do this easily.

(Well, the hard part is learning how to download all of the source code and learning how to use the Android build system, and then downloading a new system image onto the Android device; there is no technical restriction which prevents you from doing this.)

I developed the ext4 encryption specifically for Chrome and Android, and I was building my own Android images and putting it on putting it on a Nexus 9 device. This didn't require any kind of special privilege or encryption keys only available to Google employees. Neither did this:

https://thunk.org/android-xfstests

It's all open source, and you can certainly rebuild your kernel, make other changes to the firmware, and install it on your phone. No reverse engineering or hardware/firmware exploits necessary!

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by ohazi on Tuesday December 08, 2020 @05:18PM (#25352192)
You're right. For all of Google's other flaws, their hardware has been surprisingly good about this. The Chromebook write-protect screw is a good example of a thoughtful feature here.

However, Google's approach is so uncommon, that it's basically the exception that proves the rule. The vast majority of device manufacturers don't do anything like this, and if you were to pick a phone at random, you would probably expect to encounter some sort of issue flashing it. That's why we're still stuck with databases of "if you want to run a custom Android ROM on your phone / OpenWRT on your router / etc., pick from one of these known-good devices."

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by Wowfunhappy on Tuesday December 08, 2020 @05:52PM (#25352628)
There are a lot of other devices (that aren't x86 PCs) which let you boot OSs wholly from third parties. A couple that come to mind are Canon Cameras[1], and the Remarkable Tablet[2]. A lot of routers, too, don't put up any barriers the installation of alternate firmware (some do), and even Apple Silicon Macs can be made to boot unsigned OSs (and are getting a Linux port). Not to mention the Raspberry Pi and its ilk.

I say this almost preemptively, because I really don't think it should obscure your core point: open devices are increasingly the exception, not the norm.

1: https://chdk.fandom.com/wiki/CHDK 2: https://hackaday.com/2020/09/06/a-free-software-os-for-the-r...

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by jra_samba on Wednesday December 09, 2020 @12:59AM (#25355793)
Ted, you have to remember why Chromebooks have a way of turning off signed boot. It's actually to comply with GPLv3 requirements for the GPLv3 code used in ChromeOS.

Google takes licensing seriously (as both know you and I know :-).

No idea why we do the same for Android phones though. No GPLv3 in there :-).

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by kmeisthax on Wednesday December 09, 2020 @01:38AM (#25355966)
Google could have stripped GPLv3 code out of ChromeOS like they did with Android. The reason why they provide owner overrides is entirely a matter of corporate culture.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by jra_samba on Wednesday December 09, 2020 @01:09PM (#25361593)
Yes, this is true. Google corporate culture is one of the big reasons I work here. There are few places that take Open Source as seriously as Google does.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by selfhoster11 on Tuesday December 08, 2020 @01:12PM (#25349165)
Right to Read comes to mind.

Software might be eating the world, but IP industry and legislation are eating the hardware. There soon may be no user-controlled hardware, especially with the advent of the internet where "vulnerabilities" that let users run their own code can be patched, and Apple-like certificate checking can be deployed out.

GPLv3 might be seen as an effort to counter-act this situation.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by na85 on Tuesday December 08, 2020 @01:19PM (#25349273)
>hardware doesn't matter

>perhaps hardware created by a competitor, or using open hardware

I think as the Purism folks are demonstrating with the Librem phone, we live in a world where the barrier to entry to compete in hardware markets is enormous. The "hardware doesn't matter" argument only holds where the hardware to run software is sufficiently commoditized or where it's easy to develop open-source alternatives.

For phones and select other segments of the hardware sector this simply isn't the case: consider the yawning chasm that separates the Librem phone from the iPhone.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by kmeisthax on Wednesday December 09, 2020 @01:37AM (#25355960)
You have the market forces backwards. People don't avoid the lockouts, the lockouts shape people into a particular behavior. For example, look at Apple's ridiculous levels of anti-repair nonsense - it is designed specifically to make it harder for non-Apple technicians to properly repair a device. These lockouts have legal force thanks to... rather prevalent misreadings of DMCA 1201 that make large companies unwilling to design circumvention tools for these sorts of things.

Granted, all of these are legal problems that need to be remedied with judicious case law and acts of Congress. However, so is the concept of software copyrightability itself. (CONTU fucked up, software should have been sui generis.) The whole point of the GPL was to legally construct something like a public domain dedication that subsequent derivative works couldn't reverse. The idea was that software would always serve the user (or be modifiable to do so). If you look at the GPL in that light, TiVoization is a clear circumvention of licensing intent.

Given that the FSF came first, I'm not entirely sure I'm OK with calling anti-TiVo a "short-term" concern. It's more like protecting the users of the software and ensuring developers are able to collaborate under equitable terms are both long-term concerns that are occasionally in conflict with one another.

(FWIW, most of those lockouts wouldn't actually qualify for 1201 protection in isolation. However, they often are tied to systems that would. Nobody builds a separate repair lockout and DRM system - they build one system that prohibits both use cases. Even when the law agrees that you're allowed to break the part of the lock that keeps you from swapping parts on a tractor, it doesn't let you distribute the tools to do so if that lockout also enforces a copyright owner's licensing intent. So, for example, it's legal to jailbreak a phone to make Touch ID work, but that jailbreaking tool you used is still illegal because someone might use it to pirate iOS games.)

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by TaylorAlexander on Tuesday December 08, 2020 @06:57PM (#25353380)
Intellectual property is a state enforced monopoly that interferes with market forces. In a purely market driven world “locked down” phones would be harder to create/enforce.
Re:We Love GPLv3, but Are Switching License to Apache 2.0 by zerocrates on Tuesday December 08, 2020 @07:26PM (#25353641)
If you're eliminating intellectual property you're eliminating the GPL anyway.

You also probably create an even greater incentive for manufacturers to strictly lock down their devices, doubling down on technical solutions in the absence of legal ones.

Re:We Love GPLv3, but Are Switching License to Apache 2.0 by TaylorAlexander on Tuesday December 08, 2020 @09:45PM (#25354708)
My point is that this is not a "free market". It has substantial restrictions.