2

我想在不是的 iPhone 应用程序中使用 GPL 组件。它是一个独立且独立的组件,因此在任何其他平台上,我会将其编译为程序并在需要时使用一些参数生成它。

但是如果我想在 Appstore 上发布我的应用程序,我必须遵守 iPhone SDK 的这一部分:

3.3.2 应用程序本身不得以任何方式安装或启动其他可执行代码,包括但不限于通过使用插件架构、调用其他框架、其他API或其他方式。除了由 Apple 的文档化 API 和内置解释器解释和运行的代码外,不得在应用程序中下载或使用任何解释代码。

据我了解,苹果似乎禁止我做我想做的事。

是否有任何技术和/或法律解决方案可以在 iPhone 应用程序中嵌入(独立)GPL 组件,而无需使用 GPL 许可证许可整个应用程序。

注意:这个问题不是关于 GPL 许可是否与其他地方已经提出的 AppStore 规则兼容。我想是的。

4

3 回答 3

4

您应该要求该组件的作者在不同的条件下将其许可给您,也许是为了换取真钱。

当作者为该组件选择 GPL 时,他可能正是为了让您在应用程序中也使用 GPL。

于 2009-08-22T07:42:24.200 回答
3

您不能生成单独的进程或加载插件,这意味着在您的应用程序中包含某些内容的唯一方法是静态链接它,在 GPL 代码的情况下,您需要 GPL 生成的派生工作。这就是 GPL 的意图,无论好坏。

作为旁白:

在任何其他平台上,我会将其编译为程序,并在需要时使用一些参数生成它。

根据作者的意图,实际上可能违反 GPL。通常,使用自定义接口显式包装一些 GPL 的组件以使其脱离二进制文件仍然会导致单个“派生工作”。当然,据我所知,这实际上并没有在法庭上进行过测试,而且 GPLv2 中衍生作品的概念在法律上有些模糊。

于 2009-08-22T13:39:18.487 回答
0

在 iPhone 上,您不能混合使用封闭源代码和 GPL 代码,因为所有应用程序都是自包含的。除了与您的应用程序外,您不能以任何其他方式使用包含的 GPL 可执行文件。

由于您已经计划使用一些进程间通信来使用 GPL 模块而不使用链接,因此您可以将 GPL 部分放在服务器上并通过 Internet 访问它。我知道这是很多开销并且不能很好地扩展,但这是我能想到的唯一解决方案。

于 2009-08-22T09:24:40.670 回答