3

I'd like my (currently) closed-source iOS app to use some GPLv2 licensed code. The code I want to use is simply a converter from one file format to another — nothing too complex or proprietary. Given the restrictions imposed by the GPL, I understand that I cannot integrate the GPL-licensed code directly into my app. However, would I be in the clear if I modify the GPL'd code to run as a separate process from inside my app (perhaps via XPC) and then publicly release those modifications? (This previous answer implies that I can. This answer urges caution, but I can easily imagine somebody using this converter outside of my closed-source app.)

Additionally, would I be allowed to distribute a complied binary of this code along with my app? Users wouldn't be able to switch out this binary while running my app because of signing restrictions, but I'm not sure how this changes given

a) the more lax approach of the GPLv2 to Tivoization, and

b) the fact that Apple now allows anyone to create a free developer account and compile apps for their iDevices, thus permitting a form of side-loading.

Archagon
  • 1,187
  • 1
  • 7
  • 15
  • *Would your application function normally **without the GPLv2 licensed code?*** – Robert Harvey Apr 19 '16 at 23:52
  • The application currently functions without the GPLv2 licensed code. The GPLv2 code would only serve to shrink the binary size since I would be able to compress some assets. – Archagon Apr 19 '16 at 23:54
  • 1
    As an aside, the FSF believe that no GPL programs can be distributed via the App Store due to Apple's T&Cs. Search for GNU Go. – Philip Kendall Apr 20 '16 at 06:20

3 Answers3

3

Would your application function normally without the GPLv2 licensed code? If it can't, then you can't do it. You have to open your source.

The FSF interprets your application falling on its head as "The GPLv2 code is an integral part of your application, and therefore your program and the GPLv2 code are collectively considered a 'derived work.'"

If your application communicates with the GPLv2 code at "arm's length," and the GPLv2 code doesn't comprise primary functionality of your app (but merely an enhancement focused solely on the GPLv2 program's capabilities), then I think you're OK. The FSF considers that two separate programs.

Robert Harvey
  • 198,589
  • 55
  • 464
  • 673
  • 1
    Also to add, if the OP needs to modify the GPL software to make it work for his application, it pretty much precludes communication at "arms length" – whatsisname Apr 20 '16 at 03:25
  • 1
    IMHO, the problem here lies in the vagueness of the term "arm's length". – Doc Brown Apr 20 '16 at 06:09
  • 1
    @DocBrown: Read [this excerpt from the GPL FAQ](http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.en.html#GPLInProprietarySystem). – Robert Harvey Apr 20 '16 at 06:19
  • 1
    I guess the "arms length" clause needs to be tested in court. eg. I have a program that encodes video using GPLed ffdshow codecs. That does make it part of the program (as it wouldn't encode without the codec), but I could replace the GPL codec with a non-GPL one and it'd still work. So is my program GPL because it uses a GPL binary even though it could use a non-GPL one? – gbjbaanb Apr 20 '16 at 07:41
  • 1
    @gbjbaanb: these programs do not violate the GPL if they are not distributed with the ffdshow codecs. I have seen such programs providing a mechanism to download the codecs from their vendor's web site, and effectively let the user himself install them on his workstation afterwards. Since GPL only restricts distribution, this avoids the question of what is "arm's length". – Doc Brown Apr 20 '16 at 09:37
2

The iOS App store guidelines and OS security sandbox do not allow spawning a separate process from an app, and in fact iOS reported to hunt and kill any attempts by an app to try to start additional processes. So even if using a separate process was a legal exception, it can't be done within a single iOS App store app.

hotpaw2
  • 7,938
  • 4
  • 21
  • 47
1

I'd say you should either use GPL'd code, or not use GPL'd code, but don't try to play tricks.

For one thing, if the owner of the GPL'd code finds out and complains to Apple believing that your code infringes their copyright, Apple will remove your app from the app store, and you can fight it out with the copyright holder.

gnasher729
  • 42,090
  • 4
  • 59
  • 119