Live data from Hacker News

Android now forces apps to include proprietary code for push notifications

reddit.com

151–160 of 284 posts

Re: Android now forces apps to include proprietary code for push notifications

#151
post #79
post #39

This has been coming for a while. We attempted to create a push-based notification system based on MQTT. It worked well, then the notifications started getting lost. Turns out, the receiver service was getting killed in the background. We found out the best way to get reliable notification was through Google's own GCM (which has now moved to Firebase Cloud Messaging. We learned its incredibly difficult, if not imposs…

This has been true for awhile once they forced apps to use API26 or higher (if you want to be listed in the Play store, and really, there is no other place if you want decent exposure.) I had a similar experience switching from "real background" to using FCM. I understand the battery saving motivation, but the problem is that the performance of the google service is terrible. The response time of my simple notificati…

>The response time of my simple notification system was nearly instantaneous, but OK google, I'll play your game. I put together something that used FCM and it can take 15 or 20 MINUTES to get even a "high priority" message from FCM.

Letting your phone actually sleep is the battery saving feature. Also, you get throttled for high volume so check that as well.

If you think your messages are so important to have a constant socket open then make a foreground service. You're abusing a system that is really not suited to your needs.

Re: Android now forces apps to include proprietary code for push notifications

#152
post #142

Earlier quoted context omitted.

I don't think you're focusing on the entire picture. Some people here like iOS for the reasons you described. However I'm willing to bet, unless you can show me otherwise, that it's a vocal minority. I don't know of anyone personally who is happy that Apple disallows GPL code. Comparing Apple's digital Fort Knox with Google's unsupervised free-for-all is a false dichotomy. There exists a happy medium, where power use…

Please forgive me for being unnecessarily obtuse this early on a Monday morning. Where does Apple say that GPL code isn’t allowed on the App Store? I ask entirely out of my selfish need to avoid unpleasant surprises later on.

Someone should probably tell VLC if GPL is disallowed, since they have been shipping across tvOS and iOS for years.

Re: Android now forces apps to include proprietary code for push notifications

#153
post #75

Earlier quoted context omitted.

The GPL requires that all code with the software under the license to also comply with the GPL, which includes libraries. Therefore, it's simply not possible (legally) to use non-GPL compatible libraries with GPL software. A lot of open-source licenses are compatible, such as the MIT or BSD license, but proprietary licenses are not obviously.

Talk to a lawyer to be sure, but this would fall under the system library exception to the GPLv3 (though maybe not v2)

[deleted]

Re: Android now forces apps to include proprietary code for push notifications

#154

Earlier quoted context omitted.

I don't get it. The Telegram GitHub says: "Since one can't use Google's push messaging in a FOSS app", but I can't work out why? Lots of FOSS apps on GitHub, mine included, use Firebase. It had never occurred to me it might be an issue.

If you use a gpl library, what you make with it must be distributed under the gpl. You cannot distribute firebase blobs under the gpl. Ergo, you have used a gpl library to make something not gpl. Which is illegal.

How does Signal work around this, since it uses FCM and it is GPL licensed?

Re: Android now forces apps to include proprietary code for push notifications

#155
post #142

Earlier quoted context omitted.

Please forgive me for being unnecessarily obtuse this early on a Monday morning. Where does Apple say that GPL code isn’t allowed on the App Store? I ask entirely out of my selfish need to avoid unpleasant surprises later on.

It's what I've heard rehashed around HN, but afaik the actual policy is more or less as described here: https://forums.developer.apple.com/thread/18922 Essentially it works like it should anywhere else: If you don't publish source code and someone complains, you're out. In an ideal world Google Play would hold itself to the same standards. However, the App Store does impart restrictions which are incompatible with GP…

They haven't been removing GPL code actively, they decided not to take the risk of using GPL version 3 software, so they've let the respective versions of bash, rsync etc. linger at their last released GPL version 2 releases.

E.g. Git is on GPL version 2 still (and probably forever), and Apple continues to update that in a relatively timely fashion.

Re: Android now forces apps to include proprietary code for push notifications

#156
post #123

Earlier quoted context omitted.

If you use a gpl library, what you make with it must be distributed under the gpl. You cannot distribute firebase blobs under the gpl. Ergo, you have used a gpl library to make something not gpl. Which is illegal.

A GPL app can absolutely link to proprietary software and still be covered under the GPL. From the GPLv3 itself. > The “System Libraries” of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a…

But Firebase is not a "kernel", "window system", it is just third-party proprietary library (not essential part of Android as I understand).

Re: Android now forces apps to include proprietary code for push notifications

#157
post #75

Earlier quoted context omitted.

The GPL requires that all code with the software under the license to also comply with the GPL, which includes libraries. Therefore, it's simply not possible (legally) to use non-GPL compatible libraries with GPL software. A lot of open-source licenses are compatible, such as the MIT or BSD license, but proprietary licenses are not obviously.

Could an argument be made that this falls into the system library exception?

[deleted]

Re: Android now forces apps to include proprietary code for push notifications

#158

Earlier quoted context omitted.

So, if I understand correctly, the GPL prevents you from using a non-free library in your code? (Asking honestly: I have tried to find this elsewhere but the FSF page on the GPL is rather ... convoluted). If that is so, then this is obviously a killer and quite seemingly arbitrary requirement. Your MS example is quite good.

Your code is no longer completely FOSS when you do that. It depends on a binary blob that you can't see into.

You absolutely can do this - this is how the Nvidia shim driver works after all.

What you can't do is write code which depends on GPL, then distribute it with those GPL components and insist the resulting package is not GPL.

In fact, it's not so much 'dependent than derivative. GPL is a copyright license, and copyright restrictions can only only flow to derivative works.

Re: Android now forces apps to include proprietary code for push notifications

#159
post #11
post #2

You can still write free software that uses it and produces a not-entirely-free artifact when compiled, though, right? (Is there a distribution restriction on the artifact, or is it impermissible to link it with GPL apps, or something?) I'm curious if the free software apps are compelled not to link it to preserve the free software status of their code, or just voluntarily refusing on principle (which is laudable, to…

Ubuntu gets around any possible GPL violations by offering to download and install proprietary drivers (ex., Nvidia) and codecs during installation process. Could something similar work for Android apps?

The mechanism used by Ubuntu for such drivers is completely unrelated to GPL violations. It's just there so the non-free software doesn't get installed by default. If there would be any violation without it, there would still be a violation with it.

Re: Android now forces apps to include proprietary code for push notifications

#160

Earlier quoted context omitted.

Your code is no longer completely FOSS when you do that. It depends on a binary blob that you can't see into.

Dependencies are different than source code. You can write FOSS that runs on Windows, which is a dependency and not FOSS.

As long as it doesn't require linking to a proprietary Windows library to interface with the NT api. That would violate at least the GPL 2. Though you could do it yourself, and release your own code as GPL (and the combined work as proprietary), no one else could distribute the full work under the GPL because of the incompatibility.
Post reply on HN