自由/开源软件能和私有软件联合使用吗?

将自由/开源软件和私有软件联合使用是可能的,具体取决于“联合使用”的方式和软件的授权。在所有的自由/开源软件授权中,GNU GPL 许可是最需要注意的。它这样定义“联合使用”:

“集成两个程序是指将它们放在同一张光盘或同一个硬盘中。我们将这个说法(……)用于不同的程序,而不是单个程序的不同组件。这种情况下,如果一个程序使用 GPL 授权,它对其他的程序没有影响。而合并两个模块是指将其连接在一起形成一个较大的程序,如果其中任何一个部件采用 GPL 授权,则整个合并后的程序也必须按照 GPL 发布。如果你不能或不愿那样做,就不能将它们合并[92]。”

就是说,如果在自由/开源操作系统环境下使用一个私有应用程序,这个私有程序并不受自由/开源软件系统的授权制约。比如运行在 GNU/Linux 系统下的甲骨文数据库就是如此。

而使用 Gnome 应用程序框架写一个 GUI 应用程序是另一类例子。Gnome 应用程序框架通过向开发者提供统一的功能,使他们不必从头开始,从而加快了 GUI 程序的开发。Gnome 是在 GPL 授权下发布的。因为完成后的应用程序(经过编译后)将含有 Gnome 应用程序框架的代码,整个程序就必须按照 GPL 发布。

其他授权一般远没有这样严格。使用 BSD 类授权写一个与上例相同的应用程序只需要在源代码中保留最初授权人的著作权信息。下表显示了发布与 GPL 和 BSD 类授权的软件联合使用的程序时的不同。

GPL 授权 BSD 类授权
必须发布原始代码
必须发布用户创建的源代码
用户创建的源代码必须按 GPL 发布

Combining FOSS with proprietary software is possible, depending on the manner of “combination” and on the specific license of the software. Of all the common FOSS licenses, the GNU GPL license is the one that requires the most care. It defines “combination” as follows:

Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term (…) where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program. Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL—if you can't, or won't, do that, you may not combine them.iv

In this case, if one uses a proprietary application in a FOSS operating system environment, the proprietary application is unaffected by the licensing of the FOSS system. An example of this is running an Oracle database on a GNU/Linux operating system.

An example of combining programs would be writing a GUI application using the Gnome application framework. The Gnome application framework speeds up the development of any GUI program by supplying functionality developers who would otherwise have to write from scratch. Gnome is licensed under the GPL. Because the completed application program (after a compiler has been through it) would contain source code from the Gnome application framework, the entire application would have to be licensed under the GPL.

Other licenses are usually far less strict. Writing the same application above using a BSD-style license would only require keeping the attributions to the original licensor within the source code. The matrix below highlights the differences when distributing software combined with GPL or BSD-style licensed software:

GPL Licensed BSD License
Must distribute original source code Yes No
Must distribute user-created source code Yes No
User-created source code must be GPL’ed Yes No


回复

此内容将保密,不会被其他人看见。
  • 允许的 HTML 标签: <a> <em><img> <strong> <cite> <code> <small> <table> <th> <tr> <td> <ul> <ol> <li> <dl> <dt> <dd> <hr>
  • 行和段被自动切分。
  • 网页地址和电子邮件地址将会被自动转换为链接。
  • Images can be added to this post.

更多格式化选项信息