我想在iPhone应用程序中使用GPL组件,而不是。它是一个独立的独立组件,所以在任何其他平台上,我都会将它编译为一个程序,并在需要时用一些参数生成它。
但如果我想在Appstore上发布我的应用程序,我必须遵守iPhone SDK的这一部分:
3.3.2应用程序本身可能无法安装或启动其他可执行文件 任何方式的代码,包括没有 通过使用a的限制 插件架构,调用其他 框架,其他API或其他。 不能下载解释代码 或用于应用程序,除了 由...解释和运行的代码 Apple的Documented API和内置 解释器(多个)。
根据我的理解,似乎Apple禁止我做我想做的事。
是否有任何技术和/或法律解决方案可以在iPhone应用程序中嵌入(独立)GPL组件,而无需使用GPL许可证授权整个应用程序。
注意:此问题不是关于GPL许可证是否与AppStore规则兼容asked elsewhere。我认为是。
答案 0 :(得分:4)
你应该要求该组件的作者在不同条件下向你授权,也许是为了换取真钱。
当作者选择GPL作为该组件时,他可能已经准确地使您在您的应用程序中使用GPL。
答案 1 :(得分:3)
您不能生成单独的进程或加载插件,这意味着在您的应用程序中包含某些内容的唯一方法是静态链接它,在GPL代码的情况下,需要您将GPL生成的派生作品。这是GPL的意图,无论好坏。
暂且不说:
实际上,根据作者的意图,在任何其他平台上,我会把它编译成一个程序,然后用一些参数生成它 我需要它。
可能是违反GPL的行为。通常,明确地将一些GPL组件与自定义接口包装起来以使其不受二进制影响仍会导致单个“派生工作”。当然,根据我的知识,这实际上并没有在法庭上进行过测试,而且GPLv2中派生作品的概念在法律上有些含糊不清。
答案 2 :(得分:0)
在iPhone上,您无法混合封闭源代码和GPL代码,因为所有应用程序都是自包含的。除了应用程序之外,您不能以任何其他方式使用包含的GPL可执行文件。
由于您已经计划使用某些进程间通信来使用GPL模块而不进行链接,因此您可以将GPL部分放在服务器上并通过Internet访问它。我知道这是一个很大的开销,并且不能很好地扩展,但它是我能想到的唯一解决方案。