我已经编写了一些我希望根据GPL,BSD或Apache许可证发布的应用程序,但它们依赖于专有的第三方库。
我的问题是:
如果我必须调用此第三方API,但我不将第三方库作为项目的一部分分发,我还可以声称该程序是开源的吗?
此外,即使他们的IP未被分发,是否有可能在这种情况下显示第三方API“在行动中”的法律问题?
答案 0 :(得分:1)
该程序是免费和开源的,但程序和库的组合不是,并且程序本身可能无法正常运行。这取决于库实际上做了什么,以及它对程序功能的重要性。
如果它是作为操作系统一部分的库,或者通常安装在用户系统上的库,那么用户就已经拥有了它,并且您将为他们提供一个FOSS程序,就像任何运行的FOSS应用程序一样仅适用于Windows(如Miranda),或适用于较大专有程序的FOSS插件。
另一种情况是,当您具有与系统上的专有应用程序接口的可选功能时,例如FOSS通信程序,其具有访问第三方应用程序的通讯簿的功能,包括Outlook等专有应用程序。在这种情况下,主要功能根本不需要库。
但是,如果您正在创建一个独立程序,其主要功能取决于专有库(例如,整个功能在专有库中,并且只有GUI是FOSS),那么您的应用程序将是FOSS理论上但不是在实践中,因为库是您的应用程序中不可删除的组成部分。
请注意,如果您使用任何第三方GPL代码或库,则可能违反了GPL,除非专有库是操作系统的一部分。因此,请勿同时使用第三方GPL代码和第三方专有代码。 (当然,如果您没有分发第三方库,或者您只使用自己的代码,那么它可能是合法的,但您构建的软件组合在工作表单中是非法的。)< / p>
答案 1 :(得分:1)
问题本身有点混乱,部分原因是因为你正在混淆术语。
首先,GPL正好出局。直接的GPL要求分发软件的任何人也分发链接到其中的所有内容的所有来源。您的用户无法做到这一点,因此他们无法分发。 您仍然可以分发您的代码,因为您拥有代码的版权,但没有其他人能够这样做。
因此,您无法真正声明自己的计划是Free Software。
BSD和Apache可能更宽容。我没有使用它们,所以我不熟悉它们。无论您是否可以在那里分发,可能与该专有库(您没有提及任何内容)的许可有关。专有许可证很容易导致你违反Open Source Definition。它所要做的只是以某种方式限制再分配,或者歧视certian类型的用途。
基于此以及我所看到的评论,我不得不说不,这可能不符合自由软件或OpenSource的条件。但是,这并不能阻止它对那些拥有第三方图书馆许可证的人有用,所以我不认为任何这些口头技术都会阻止你。应该明确的是,重新分发仅在源代码形式中是合法的。对于要重新分发的可执行文件,您必须使用许可许可(而不是GPL ),并且必须根据该第三方库的许可证进行分发。重新分发它被编译成的二进制文件(可能没有反汇编等)。这一点也应该明确。
答案 2 :(得分:0)
至于GPL,您可以在GPL常见问题解答中回答您的问题: Can I write free software that uses non-free libraries?
简而言之:您可以使用GPL,但您需要提供其他权限才能使用非免费库。
详细信息请参阅 What legal issues come up if I use GPL-incompatible libraries with GPL software?
如果您希望您的程序链接到未涵盖的库 系统库异常,您需要提供权限才能执行此操作。 以下是您可以使用的两个示例许可证通知;一 对于GPLv3,另一对于GPLv2。在任何一种情况下,你应该把 您要授予此权限的每个文件中的此文本。
只有该计划的版权所有者才能合法地发布他们的版权 这些条款下的软件。如果你自己编写了整个程序, 然后假设您的雇主或学校没有声称版权, 您是版权所有者 - 因此您可以授权例外。
对于copycenter许可证(BSD等),它们不禁止与非免费库链接,因此您可以按原样使用它们,无需特别添加。
当然,软件包的一般自由度将受到需要随软件一起分发的库的许可所限制。所以我想再次引用gnu.org:
所以请考虑一下:你能找到一种方法来完成工作 使用这个库?你能为这个图书馆免费替换吗?
如果程序已经使用非免费库编写,也许 改变决定为时已晚。你也可以释放 程序,但不是不释放它。但请提一下 在README中,对非免费库的需求是一个缺点, 并建议更改程序的任务,以便它做同样的事情 没有非免费图书馆的工作。请建议任何人 我认为首先要对该计划进行大量的进一步工作 从依赖非自由图书馆。