I don't quite understand this. The GPL gives the end user the rights to the source, to modify the source and to redistribute the software (modified or otherwise), as long as they make the source available. It doesn't say it has to be available through the exact same mechanism that you received the software in the first place, nor does it say that you have to release your changed software through the same mechanism. IANAL, so I definitely could be wrong, but as long as your GPL software links to the code, eg on Github or somewhere, and provides all of the source including your modifications there, any other restrictions the App Store enforces should be irrelevant to the GPL, right? (Unless the app store says you can't link to external source code, or something, of course)
The main difference between GPLv2 and v3 is the prevention of “TiVoization”. The background is that TiVo I believe was using the Linux kernel in their devices, and despite the fact that they were contributing their changes back to the community, they used code signing, or some other technical measure, to prevent end-users from running a custom version of the Linux kernel. So in reaction to this, GPLv3 was released that explicitly prohibits this behavior — that is, there must not be any technical measure preventing the user from using a modified version of the GPL’d software.
On iOS, Apple enforced code signing on all apps, so a user cannot download an app’s source, modify it, and use it on their device. Code signing prevents that, therefore would be a violation of GPL.
> a user cannot download an app’s source, modify it, and use it on their device
But I can do this for open source apps? More specifically (disclaimer: I am not a lawyer, and I don't know if this has been tested in court), I personally don't see the GPL requiring that I be able to modify the exact, signed binary that I was shipped if I can create an equivalent one myself.
To use the modified software on your device you have to be a "App Developer" (or whatever Apple calls it), and in the process to becoming one accept the TOS imposed by Apple. So you are only as free to run the modified source as Apple wants you too be.
You have to refresh it every week or something though, right? At least last time I tried it (two years ago maybe?), the self signed apps needed to be re-signed after a short period of time. Fine for development and testing, not so great for actual real use.
Ok, so let's assume I was able to build the source and sign it without needing a Mac. Am I then able to run my newly signed program on my iPhone freely? Do I need to get it into the app store? Are there limitations to installing it directly to my phone?
Just trying to figure out where the incompatibility will the GPL is coming from.
So it's less about the common good and more about spiting companies (who are just never going to use this v3 code now so nothing was accomplished except wasting dev time on a global scale)
The GPL itself isn't about spiting companies or not, or even getting a particular piece of software more widely used by companies, it's about protecting the user freedoms whenever that software is used by anyone. v3 was developed because companies found an edge-case around one particular freedom with "Tivoization". The AGPL was developed because everyone found out about the edge-case of SaaS. The LGPL versions are there for when you want to compromise on the "infection" bit but not on the user freedoms of your bit.
No one forces people to use v3, and notably the linux kernel will be v2 forever. Market segments have settled against certain licenses, but others don't care. I'm glad developers have choices.
The choice to use a particular variant of the GPL may be an effort to spite companies. Personally I'm looking forward to the next iteration of MS's stewardship of GitHub in the hopes that they add a "buy a license" button so devs can make sure freedoms are protected in the general case but also make money by giving alternate licenses to companies that were never going to contribute anything back anyway but may benefit the common good in some other way.
For what it's worth I'm not entirely sure the grandparent's account on code signing is the issue with GPL on iOS, but I'm not a mobile developer so I'm relying on memory of reading other accounts. My prior belief was that it was simply that the end-to-end process of putting a release build of your app on the app store involves integrating Apple-copyrighted code which they don't want to become infected by the GPL and so they don't allow distributing apps under the GPL. Even though side-loading isn't as easy as Android you can still do it with a developer build, so it can't just be some issue of cloning a GPL repo that's 99.9% shared by an app store app and building and using your version locally...
It depends on what you think is "the common good".
Advocates for GPLv3 say that the common good includes ensuring that everyone has the ability to obtain and modify the source code to everything they run.
However, others say this actually infringes upon the common good, because it artificially prevents technology from developing and being used, by placing too much importance on the role of technology (and the Perfect Software ™) in the quest for human happiness.
Prisoner's dilemma imo. The second group only wins out here because other options exists. If everyone was forced to share all software ala GPLv3 with literally no other alternatives then we would see even more and better software everywhere (maybe).
You have good points and I guess you are not missing anything but Check the VLC case with the App store term of services, they pulled the app from the Store. It is really hard to deal with Apple. your app could be rejected and not accepted because it uses the GPL on it. Apple folks are scared of GPL.
Apple saying "you can't have GPL on the app store" is different from "you can't have GPL on app store because there are app store license things that conflict with GPL license things". Apple can restrict their store however they want, but I was wondering if the GPL itself is incompatible with the app store license (which is what the comment I replied to sounded like it was saying).
What am I missing?