From a community standpoint, what's the general consensus on allowing GPLv3 code into the App Store? I'm looking to build an app that would rely heavily on GPLv3 code as a rendering engine; I've read conflicting reports about its validity in the App Store. I'm aware that there will almost always be some competition or disagreement, but I'd like to hear directly from some open source developers if possible. Would this result in any legal trouble, or just some annoyed individual developers?
Also, what about the LGPL?
__________________
If I have helped you, please consider donating. I use PayPal. It would mean a lot to me!
Tyrian game is based on OpenTyrian project which is GPL
There are also plenty of GPL based apps in appstore, It seems they are doing fine. Why would GPL license be against Apple's rules?
__________________ Game Pack - All-in-1 Game Pack Shinro - A combination of Minesweeper and Sudoku Nibbles - Remake of a classic snake game Hooptie Browser - Humorous web filter
The GPL is not compatible with the App Store. Under the terms of the GPL the receiver of the application is entitled to the source code AND exactly the same rights you have. In order to install the app on a device, or sell it in the App Store you need to have a developer license. This is not possible for someone who buys your app without them also purchasing a license from Apple and you have therefore breached the GPL. This will apply to all versions, not just version 3.
The LGPL differs in that you only need to provide the source for the LGPLed code you use, along with any modifications you have made to it. As such LGPL is compatible I think.
...exactly the same rights you have. In order to install the app on a device, or sell it in the App Store you need to have a developer license.
It's not worded like that. Nowhere it says that devs who modified GPLd code should be able to use other companies' distribution channels for free. Apple distribute GPLd GCC bundled with xcode, do they violate GPL because we can't distribute our modified GCC also from Apple web-site?
Users can download the source code from developer's web-site, modify the software, jailbreak their iphones, install, and use the modified version without any limitation. I still don't see violation.
__________________ Game Pack - All-in-1 Game Pack Shinro - A combination of Minesweeper and Sudoku Nibbles - Remake of a classic snake game Hooptie Browser - Humorous web filter
The GPL requires you to release your source code; I assume you know that already.
GPLv3 has specific language in place to prevent "tivoization," or using code signing to prevent users from running modified versions of your code. That's pretty much to the letter what Apple does, so I'd say that selling your app on the app store with no way for users to run a modified version is a violation of the GPLv3.
To comply you'd have to include "Installation Information" that allows your users to recompile and run the app, and you have no way to do that because Apple controls the signing process.
EDIT: Dre, I hadn't considered jailbreaking, but I don't think that helps unless you're only distributing on Cydia. Even if jailbreaking meets the "Installation Information" requirement, what if Apple releases OS 4.3 and there's no jailbreak yet? You're out of compliance and should pull your app from the store until a new jailbreak is available. Seems dangerous to depend on the jailbreak community for your GPL compliance.
... Even if jailbreaking meets the "Installation Information" requirement, what if Apple releases OS 4.3 and there's no jailbreak yet? ....
I agree with that. And still this will potentially violate only GPLv3, GPLv2 doesn't have "anti-tivoization" clause.
Moreover. iOS itself comes with GPLd binaries like libgcc, libstdc++. They are GPLv2 though. Following the very same logic then Apple are not complaint?
Apple release all their modification sources of libgcc, but they don't let end-users to run modified versions on their own hardware.
So it's either Apple break GPLv2 or GPL (at least v2) is compatible with the appstore.
__________________ Game Pack - All-in-1 Game Pack Shinro - A combination of Minesweeper and Sudoku Nibbles - Remake of a classic snake game Hooptie Browser - Humorous web filter
It's not worded like that. Nowhere it says that devs who modified GPLd code should be able to use other companies' distribution channels for free. Apple distribute GPLd GCC bundled with xcode, do they violate GPL because we can't distribute our modified GCC also from Apple web-site?
Users can download the source code from developer's web-site, modify the software, jailbreak their iphones, install, and use the modified version without any limitation. I still don't see violation.
I'm afraid it is very much worded like that. Strictly speaking you also need to provide the source code to all the GPL libraries that you use in a GPL app as well but that is generally overlooked as they are openly available. It has nothing to do with being able to use other companies distribution systems, I only mentioned that due to the same license being required to install on a device. Needing to jailbreak a device is an additional step that relies on security flaws in iOS that may be closed at somepoint so there is a limitation. It is not only the source you need to provide but strictly speaking the entire build chain in order to be able to reproduce the binary.
From GPL version 2: (highlighting added by me)
Quote:
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
I'm afraid it is very much worded like that. Strictly speaking you also need to provide the source code to all the GPL libraries that you use in a GPL app as well but that is generally overlooked as they are openly available. It has nothing to do with being able to use other companies distribution systems, I only mentioned that due to the same license being required to install on a device. Needing to jailbreak a device is an additional step that relies on security flaws in iOS that may be closed at somepoint so there is a limitation. It is not only the source you need to provide but strictly speaking the entire build chain in order to be able to reproduce the binary.
From GPL version 2: (highlighting added by me)
A complete Xcode project with all source files seems a perfectly valid compliance to the paragraph above IMO.
A Mac or Windows GPLv2 developer wouldn't possibly be responsible for supplying the community with valid Mac or Windows licenses, just as one wouldn't be responsible for supplying valid iOS program signatures to release such software as GPLv2.
What scripts used to control compilation have to do with anything we discussed about?
What about libgcc and libstdc++ coming in binary form with iPhones and available as source codes from Apple? Why FSF never complained about it?
__________________ Game Pack - All-in-1 Game Pack Shinro - A combination of Minesweeper and Sudoku Nibbles - Remake of a classic snake game Hooptie Browser - Humorous web filter
Has Apple released any information about this? I seem to be sensing that Apple doesn't care; what would the community do in this case?
Also, is the GPL a "copyright" on the code itself, or more of a "patent" protecting the general idea? As in, if I use a GPL-covered algorithm, but completely re-write the code, using only the logic, is that okay?
__________________
If I have helped you, please consider donating. I use PayPal. It would mean a lot to me!
...
Also, is the GPL a "copyright" on the code itself, or more of a "patent" protecting the general idea? As in, if I use a GPL-covered algorithm, but completely re-write the code, using only the logic, is that okay?
GPL is copyright.
You have to be very careful with "completely rewriting" thing. Technically even if you are LOOKING at somebody else's code while writing yours you might be infringing. So if you take somebody else's code and start rewriting it, you might still infringe somebody's copyright. You either use somebody's code or you don't use it completely, you can't "half-use" it.
IMHO GPL is fine, since there are plenty of GPLd apps and Apple themselves use GPLd code. Another example is GCC coming with xcode.
__________________ Game Pack - All-in-1 Game Pack Shinro - A combination of Minesweeper and Sudoku Nibbles - Remake of a classic snake game Hooptie Browser - Humorous web filter