19

I'm planning on open-sourcing an application soon, and I've settled on either GPLv3 or the Mozilla Public License 2.0, as this application has a massive community surrounding it, and I still want other people to have to disclose source code for modified versions.

The application is a standalone executable, but I can see other people porting this to other platforms (such as the App Store) in the near future, as there's pretty big demand for this.

However, the GPL conflicts with the App Store's Terms of Service, so I'm in a bit of a pickle. I can't find anything (even a case where anything has happened) on whether the MPL is disallowed on the App Store.

In addition, does it matter whether or not I'm the author of this application? It seems that Apple flat-out refuse to take GPL'd apps.

  • 1
    Ooohh, fancy. What app is this? – ArtOfCode Sep 3 '15 at 14:24
  • For the app that you're willing to distribute, was it entirely written by you? – Zizouz212 Sep 3 '15 at 14:25
  • The app was written by myself and other people that I've paid, and is technically copyright of a limited company (of which I'm the only employee/director) – Amelia Sep 3 '15 at 14:29
  • Have you considered a more developer friendly license like the MIT or Microsoft Public License? – RubberDuck Sep 5 '15 at 21:17
  • @RubberDuck yes, but I'd prefer modified copies to include the source, as it's a game client. – Amelia Sep 6 '15 at 6:27
17

TL;DR: The legal incompatibilities between the GPL and the App store TOS don't apply to the MPL, but there is no saying whether Apple will allow your MPL licensed app.

First off, what Apple allows and doesn't allow in their app store is entirely up to Apple. As far as I know, they reserve the right to refuse any app for any reason whatsoever. Therefore, it is impossible for us to guarantee that an app will not be rejected from the app store for it's license, whatever the license is.

As far as the GPL goes, you can't legally distribute GPL licensed apps through the app store, because the terms of service of the app store, and the GPL are incompatible. There are restrictions in the TOS of the app store on what you may and may not do with an app you receive from the app store. The GPL disallows any such restrictions in paragraph 3 of section 10:

You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. [...]

Therefore, it's impossible to simultaneously comply with the app store TOS and with the GPL.

The MPL doesn't have such a clause, implying that additional restrictions may be placed on an MPL licensed work. Assuming that the app store rejects GPL licenses based on the above rationale, that rationale wouldn't go for MPL licensed apps, and there would be no problem in distributing an MPL licensed work to the app store.

I, along with everybody else, have not read the TOS of the app store in its entirety. There may be other restrictions or reasons why legally distributing MPL licensed software through the app store impossible, but it seems unlikely.

Therefore, I consider it likely that Apple will allow an MPL licensed app in their app store. There is really only one way to find out if they do: try it out.

  • 3
    A large part of it involves the viral nature of the GPL: the GPL places restrictions on what you do with your entire program, whereas the MPL places restrictions only on what you do with the MPL code itself. – Mason Wheeler Sep 3 '15 at 14:56
  • 4
    @MasonWheeler no, not at all. This part hinges on the fact that the GPL disallows placing additional conditions, not that the combined work must be licensed under that GPL as well. They're separate issues. – Martijn Sep 3 '15 at 15:07
  • @Martjin: The thing is, the "further restrictions" that the App Store imposes are on the completed program, not on the code, so suddenly they're not such separate issues afterall. – Mason Wheeler Sep 3 '15 at 15:09
  • @MasonWheeler it doesn't help that I don't exactly know what the offending terms are, but I could imagine terms that disallow decompiling the program. That would trigger regardless of the GPL applying to the combined work – Martijn Sep 3 '15 at 15:13
  • 2
    @Martijn: The problem Apple had with GPL was that GPL considers any modification or linking to the program or source code (note: both program AND source) to be derivative works and thus requires people to supply the source code for the modification. The App Store modifies the compiled program for distribution. GPL requires Apple to provide the source code that is injected in the modification. Apple refused to do this. Thus the App Store violates GPL and Apple decided to ban GPL to avoid legal issues (such as the one they faced with VLC). – slebetman Sep 4 '15 at 3:17
6

If the copyright of the application is entirely yours, then you do have the option to use the GPL, somewhat contrary to the answer by Martijn. This is more intended as a substitute solution, but Martijn's answer clearly explains why the software may be rejected between the licenses.

As you release something, you still maintain complete ownership of the copyright. The license that one uses on their application is simply a way of saying "Here, you can go ahead and use this, but here are the rules.". You're not giving your application away, you still maintain total ownership, which may be a misunderstanding here.

Since you still own the copyright, you are free to do as you wish. Mostly rising from a quick discussion in chat, it looks like you still have the option of releasing your software under the GPL. This is how I would recommend so:

  1. Make separate releases

    One way that you can release your app to the app store is to make two different releases: one that holds the GPL license, and the other that is completely copyrighted.

  2. Submit the copyrighted release

    The copyrighted release is not subject to the terms under the GPL, and you have full authority over it.

This method is known as dual-licensing: using multiple licenses to successfully achieve multiple uses. According to this answer, MySQL uses this same way, using the GPL as well as a proprietary license.

Dual-licensing this way will still allow others to use the program under the GPL license. In fact, you can make available the GPL release to others and they are allowed to use the software subject to the terms of the GPL.

  • It's more that I still want to allow other users to release an app version of my program – Amelia Sep 3 '15 at 15:26
  • 1
    @Amelia you (read: your lawyer) might be able to write an exception for that to the GPL, allowing people to license their work to Apple under different terms, but that does run afoul of the non-discrimination clauses in the GPL, and I'm not sure if that could actually hold. It's tricky – Martijn Sep 3 '15 at 15:28
  • @Amelia I've edited my post. If you're hoping for that, you can place as many licenses as you would like, you can place the GPL, the MPL, and your full copyright. – Zizouz212 Sep 3 '15 at 15:29
5

Having skimmed the apple store TOS I found an interesting passage (emph mine):

a. Scope of License: This license granted to you for the Licensed Application by Licensor is limited to a nontransferable license to use the Licensed Application on any Apple-branded products running iOS (including but not limited to iPad, iPhone, and iPod touch) (“iOS Devices”) or Mac OS X (“Mac Computers”), as applicable (collectively, “Apple Device(s)”) that you own or control and as permitted by the usage rules set forth in the Mac App Store, App Store and iBooks Store Terms and Conditions (the “Usage Rules”). This license does not allow you to use the Licensed Application on any Apple Device that you do not own or control, and except as provided in the Usage Rules, you may not distribute or make the Licensed Application available over a network where it could be used by multiple devices at the same time. You may not rent, lease, lend, sell, transfer redistribute, or sublicense the Licensed Application and, if you sell your Mac Computer or iOS Device to a third party, you must remove the Licensed Application from the Mac Computer or iOS Device before doing so. You may not copy (except as expressly permitted by this license and the Usage Rules), decompile, reverse-engineer, disassemble, attempt to derive the source code of, modify, or create derivative works of the Licensed Application, any updates, or any part thereof (except as and only to the extent that any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by the licensing terms governing use of any open-sourced components included with the Licensed Application). Any attempt to do so is a violation of the rights of the Licensor and its licensors. If you breach this restriction, you may be subject to prosecution and damages.

This automatically means that buying an app from the store will not transfer the open source license of the app. This is incompatible with a copyleft license like GPL because those require that each conveyance of the application also conveys the copyleft license.

What you can do is dual licensing the project to allow distribution on a online retailer (read: apple store) that enforces such an additional restriction provided that they also provide a version outside that online retailer under this dual license (or just GPL).

Talk to a lawyer about the specifics of how that second license should look.

1

As far as I'm aware, it is.

The primary reason why Apple don't allow GPL'd apps into their store is the fact that no additional restrictions may be applied. As stated in both other answers so far, this includes both Apple's TOS, and the fact that the TOS effectively disallows conveying the license along with the program.

With GPL, the license effectively applies to the entire program - most things you do with it are governed by the license. With the MPL, your codebase is licensed, but nothing further: redistribution is permitted (including under other terms), and that's what Apple needs to legally publish your app in their store.

If what you want to do is allow other people to release your app to the app store, the best solution may be to say on your website (or primary distribution mechanism) that you'll let people do that but because of legal issues, they should contact you to sort the details out. When they contact you, you can license your app to them under any other app store-compatible license you choose, and they can distribute.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.