GPLv2 code as a separate process in a closed-source iOS app?

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.


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.


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.

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.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *