Hacker News new | ask | show | jobs
by sordina 1381 days ago
Is there a technical reason why this couldn't be put on the app store? I've seen reference to Apple not allowing certain OSS code but never seen that confirmed so I'm curious!
5 comments

The problem is that this is not something Apple wants to have on the App Store. They reject apps they deem arbitrarily unsuitable all the time.
What makes you believe Apple would reject this app? (provided it used properly licensed assets)
What makes you believe Apple would reject THIS app?
Because it's not original license owner. They would have to provide licenses for everything used plus Apple may reject it just based on "not matching app guidelines". Apple banned even console emulators even tho technically there's nothing legally wrong with emulator on it's own, same for torrent downloaders, Kodi etc. If Apple have any doubts about legality of app they'll just ban it
>They would have to provide licenses for everything used

I said "provided it used properly licensed assets". Apple has accepted compiled open source projects before, even from people other than the authors e.g. OpenTTD[0].

>Apple may reject it just based on "not matching app guidelines".

We all know Apple might reject an app for any reason it wishes. This is a poor answer to support a claim that it wouldn't want this specific app.

>Apple banned even console emulators even tho technically there's nothing legally wrong with emulator

Emulators where you add game images yourself were always forbidden.

"2.5.2 Apps […] may not download, install, or execute code which introduces or changes features or functionality of the app"[1]

>torrent downloaders, Kodi

This is an entirely different topic than Quake.

[0] - https://apps.apple.com/us/app/openttd/id1585549844

[1] - https://developer.apple.com/app-store/review/guidelines/#sof...

Untrue. As long as it meets the technical requirements (ie, not using private APIs, doesn't excessively drain battery etc), and the licensing issues aren't a problem (some OSS licenses are an issue, as well as using the Quake assets may be an issue), there is no reason why Apple wouldn't approve a game for the Apple Watch on the App Store.
Apple is more than willing to reject apps that follow all the guidelines.
Can you show an example? I’ve been an iOS developer for 10 years, and I’ve only ever seen/been rejected for things that fall foul of the guidelines, never arbitrarily.
Apple is unable to interpret their guidelines consistently. We ran into this with iSH a while back: https://ish.app/blog/app-store-removal
And yet, you aren't rejected, and are in the store. While their interpretation of their guidelines can be ropey, as is anything handled by a human, my point still stands. Quake 1 would be allowed on the App Store.
They reject apps for being too simple so meeting technical requirements is clearly not enough.
Yes, they publish their guidelines which states as such… but how is Quake 1 too simple? Downvote all you want, but within the context of Quake 1 being approved on the Apple Watch, “too simple” isn’t relevant.
The point is that they can reject you for subjective reasons even if you fully comply technically.
I've never heard, or seen that before. Everything I've ever seen rejected by Apple (either personally from my own apps, clients, or from press reports) has always been a guideline issue.

So, "Subjective reasons" such as? Example?

Here is an example of a 3D game running on the Apple Watch, that was approved by Apple, on the App Store, which looks rather "Quake like". Mindkeeper: The lurking fear (Apple Watch)[https://apps.apple.com/us/app/mindkeeper-the-lurking-fear/id...]

Don't they reject apps that are "out of scope" for the device they run on? The Watch isn't made to run 3D games, even if that is possible. It's a "bad experience", even if it is a cool technical demo.
No, they don't. There are 3D games running on the Apple Watch, available in the App Store.

Mindkeeper: The lurking fear (Apple Watch)[https://apps.apple.com/us/app/mindkeeper-the-lurking-fear/id...]

In this case, the assets are licensed under a non-permissive license, so even if the code was a non-issue, that's the problem.
It's probably legal for the 'shareware episode' assets (same for the Doom shareware version), although I guess it's better to let a lawyer dissect the license just to be sure:

https://www.quakeworld.nu/wiki/Quake_Shareware_License

This seems like a good use of AI. Get some random good enough textures to bundle. Give me a lake of pixelated radioactive acid.
Or just use a free as in freedom Quake data, such as Blasphemer.
Assets could be possibly downloaded from 3rd party site on user consent.
An app that doesn't work until you use it to pirate something? Yeah that wouldn't fly in App review.
I understand the intricacies of it in terms of the App Store, but I don’t think grabbing Quake’s shareware assets qualifies as pirating.
Yeah but 'user consent' don't make using assets legal.
I did not even think about putting it there, and reason is not Apple (although maybe there would be a problem too), but simply the fact that Quake assets are still copyrighted, as opposed to the code. So I would have to replace the whole game asset package with something with friendly license...which would not be ... the original Quake.
Thanks for responding! So if there was a quality OSS level pack that could be bundled then that would overcome the only obstacle?
Good question. In theory - yes. The code is GPLv2 based, redistributing binaries (originals from Id) with my own changes while I also release the source code is compatible with the GPLv2 license, so I think license-wise, it could work. The question is what would Apple say in the app submission review...
Yes, it would be interesting to see Apple's response. Now I remember what made me ask this line of questions in the first place.

In the release notes for J901 iOS I saw the following:

"it is legally impossible to release a J IDE for iOS as an open source project due to restrictions imposed on app developers by both Apple Inc and the Open Source community".

https://code.jsoftware.com/wiki/User:Ian_Clark/iOS/Review_No...

Although there was no justification for this comment, but maybe it's just true due to enforcement.

> 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.

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.

Apple has purposely neutered the WatchOS API in all aspects for the sacred cow of battery life. They will never open up the hardware to what it can truly do. So we’re stuck with nothing but stupid fitness apps.