Hacker News new | ask | show | jobs
by cromka 1380 days ago
> I've seen reference to Apple not allowing certain OSS code b

It's not that Apple doesn't allow anything here, they just impose their own T&C which breaches some, but not all, OSS licenses. And the workaround for the former is usually to have the contributors accept a small affidavit, which effectively puts their software in compliance with App Store.

1 comments

Apple allows you to ship custom EULA language that supersedes the part of the App Store EULA that would ordinarily conflict with GPLv2. For example, this is what iSH uses to legally ship an entire x86 Linux userland inside of an app.
> Apple allows you to ship custom EULA language that supersedes the part of the App Store EULA that would ordinarily conflict with GPLv2

Is there any write-up on that that explains how exactly they did that?

> For example, this is what iSH uses to legally ship an entire x86 Linux userland inside of an app.

An entire userland?! AFIR it only shipped the gnu toolkit, the rest is downloaded from the repositories?

There is still one issue that I don't see how to resolve, even if you can supersede parts of the App Store EULA.

If you copy and distribute the GPLv2 code or a work based on it in object or executable form, you have to do one of:

a) Accompany it with the complete machine-readable source code; or

b) Accompany it with a written offer valid for at least three years to give any third party a complete machine-readable copy of the source code, for a charge of no more than your cost of physically distributing the source; or

c) Accompany it with the information you received to distribute such code, but only if your distribution is noncommercial and you received it in object or executable code.

See GPLv2 section 3.

A developer uploads a copy of their app to the App Store. Apple then makes copies and distributes it when people buy it (for free or for money) on the App Store.

Since Apple is copying and distributing that GPLv2 code, Apple should have an obligation under GPLv2 section 3 to distribute the source. They would not be able to punt this obligation back on the developer via option c because their distribution is not noncommercial.

This is a crucial difference between app stores (and other digital goods stores) and stores selling physical products that contain GPL code.

Best Buy for example does not run into this problem when they sell you a TV that contains a Linux kernel because although they are in fact distributing a copy of a Linux kernel to you they did not make that copy. They received that copy from the TV manufacturer or a distributor and are just passing it along.

Copyright law in most places contains an exception, often called the "first sale doctrine", which states that once the copyright owner releases a particular copy, those who legally obtain that copy can give it away or sell it or rent it without requiring permission of the copyright owner. That covers Best Buy's case.

Unless there is some way to argue that when I but an app on the Apple App Store it is the developer who uploaded the app that is making the copy I get, I'm having trouble thinking of a way to avoid Apple having to handle GPLv2 source distribution if they let third party GPLv2 code on the store.

First party GPLv2 code would be OK, because then the developer owns the copyright and so can grant Apple the rights to distribute it in binary form without source code. (It has been a long time since I've read Apple's developer agreement, but I think it requires the developer to give Apple such rights).

I would consider GPLv2 satisfied if someone put a link to their source in their App Store description or the app itself, even if that written offer was coming from a different party from the one distributing the source. Both parties are acting in concert with one another to make the same release, and I get what I want regardless. The only practical difference is "who do I sue if someone breaches the three-years requirement".

Judges are allowed to argue that the "equity of the license" prevails over the text in these sorts of cases. If, say, the database lawnmower company decided to sue over App Store distribution of GPL software, the judge is allowed to say "well, the developer is already complying with the offer, they're using Apple's platform to do it, and that gives you what you wanted when you put the software under GPL, which was to have modified source code remain public".

However, you could also sidestep the whole "is a link to a Git repository 'good enough'" question by bundling a source ZIP in the app itself and letting people export it to Files or whatever. That would unambiguously satisfy GPL.