原文:www.dwheeler.com/essays/floss-license-slide.html

自由/开源软件(FLOSS)的协议有很多种,但只有为数不多的几种被广泛使用。这些协议有些是兼容的,也就是说,这部分软件可以被组合成一个更大的项目。下图说明了那些协议是兼容的:

 

开源协议的兼容性_兼容

在这个图中,蓝色方框中的是不同的 FLOSS 的协议名字。从方框 A 到方框 B 的箭头表示,你可以将这两种协议的软件组合起来。组合的结果会影响到 B 的协议,因为可能会附加 A 的条款。想要知道程序是不是可以被组合起来,只要从它们各自的协议开始,顺着箭头方向看能不能找到一条路径。例如,遵循 Apache 2.0 协议的程序和遵循 GPLv2以上版本的协议都可以到达 GPLV3 or GPLv3+ 这,所以它们可以在 GPLv3 or GPLv3+ 协议下组合使用。这张图被仔细的设计,可以据此判断两个协议是否兼容。更多的信息你应该去阅读协议文本,但这已经能够快速地给出一个答案。

图的最左侧是“放任型”协议,这意味着允许软件成为私有的,也就是说,允许非开源程序使用。左上方的是“公共域”,准确的说,这并不是一种协议,但是它十分类似一种协议。你可以对公共域的程序做任何事情,但这种软件很少见。这种程序必须明确说明在公共域下创建,或者是由一名美国政府官员以官方身份创建。下一个被称为 MIT 或者叫"X11"协议。这种协议很宽容,你可以做任何事情,除了控告作者。MIT 协议下的软件可以和第三类协议,伯克利软件分发协议(BSD-new)很好的兼容。后者仅仅比前者多出,除非经过授权,够则禁止利用作者的名字批准或者推广产品。通常而言,你需要具有相关授权才能使用,因此这条条款也是值得商榷的。最后,我们到达了 Apache 2.0 协议。

最右侧是“强保护型”协议,也被称为 strong copyleft,即不允许软件成为私有的。这包含了最广泛使用的 FLOSS 协议,the GNU General Public License (GPL)。GPL 有第2版和第3版两个版本,而+ 意味着 X 版本或者更高。单纯的 GPLv2 不能同 network-protective Affero GPLv3 兼容,但是 GPLv2+ 可以。

中间部分是“弱保护型”协议,也就是 weak copyleft,是一种介于宽松和强保护之间的协议。这部分协议应用的程序(通常是一些软件库)不允许成为私有软件,但是允许成为私有软件的一部分。这张图显示出你编写这部分弱保护程序的规则,然而如果你仅仅是将它们作为库使用,则还会有其他可能性。The GNU Lesser General Public License (LGPL) 是最为广泛使用的弱保护协议,拥有 2.1 版(LGPLv2.1)和第3版(LGPLv3)。注意,LGPLv2.1 允许你在高于 GPLv2 的任何版本的 GPL 协议下重新授权。另外一种协议是 Mozilla Public License 1.1 (MPL 1.1)。但是 MPL 和被广泛使用的 GPL 协议有着很明显的不兼容。你不能在 GPL 授权的程序使用 MPL 协议授权的内容。