BSD许可证的问题
Richard Stallman 著两个主要的自由软件许可证类别是 copyleft 和 非-copyleft。Copyleft 许可证,比如GNU GPL,坚持修改后的版本也必须是自由软件。非-copyleft 许可证则不坚持这一点。我们推荐 copyleft,因为它保护所有用户的自由,但是非-copylefted 的软件也可以是自由软件,而且也是对自由软件社区有用处的。
有很多关于简单非-copyleft自由软件许可证的变形,比如Expat许可证、FreeBSD许可证、X10许可证、X11许可证和两种BSD(Berkeley Software Distribution)许可证。它们中的大多数除了措辞之外都是等价的,但是1991年之前的BSD许可证有一个特别的问题:“令人反感的BSD广告条款”。它的要求是每个提到该软件的广告都必须包含一个特定的语句:
3. 所有提及该软件功能或者使用该软件的广告材料必须展示以下致谢:本产品包含由加州大学伯克利分校及其贡献者开发的软件。
最初,令人反感的BSD广告条款只是在伯克利软件发行版中使用。因为在广告中包含一句话并不是十分困难,所以此条款并没有引起特别的问题。
如果其他使用BSD类许可证的开发者逐字拷贝了BSD广告条款—包含了指向加州大学的句子—,那么他们也没有使问题变大。
但是,可能正如你所预见,有些开发者不是逐字拷贝该条款。他们做了改动,把“加州大学”换成了他们自己机构的名称。结果就是有了太多的许可证,需要使用太多的句子。
当人们把许多这样的程序都放到操作系统中时,问题就严重了。想象一下,如果一个软件系统需要75个不同的句子,每个都要指明不同的作者。要做这个广告,你大概会需要一整页广告版。
这看起来是一个荒谬的推论,但是它实实在在地发生了。在1997版的NetBSD中,我数到了75个这样的句子。(幸运的是,NetBSD决定不再添加这些句子,而且能去掉就去掉。)
为了对付这个问题,我在“业余时间”和使用了BSD类许可证的开发者交谈,询问他们是否愿意删除这个广告条款。大概在1996年,我和FreeBSD的开发者讨论了这个问题,并且他们决定从所有代码中删除该广告条款。在犹他大学,Flick的开发者在1998年5月删除了该条款。
加州大学校长Hal Varian开启了此条款,并在行政上引领此条款。在1999年6月,经过2年的讨论,加州大学从BSD许可证中删除了该条款。
因此,现在的新BSD许可证没有这个广告条款。不幸的是,这并没有根除广告条款的残余:在许多非BSD的软件包许可证里还有类似的条款。BSD许可证的更改并不能影响其他模仿老的BSD许可证的软件包;只有软件包的开发者才能改变这个。
但是如果他们曾经是跟随伯克利之风,那么伯克利的政策改变也许会是说服他们改变的理由。这值得一问。
如果你喜欢的软件包还在使用带广告条款的BSD许可证时,请你让该软件包的维护人员看看这个网页,并请他们考虑做出改变。
如果你要使用非-copyleft的许可证发布你的自由软件,请不要使用广告条款。因此,不要复制已有软件包里的BSD许可证—那可能还是老版本的许可证—请使用其他两个宽容性许可证之一,比如Expat或FreeBSD。
你还可以帮助提高大家对这个问题的认知度,通过不使用“BSD类”这样的词汇,包括不说“BSD许可证”这个词,因为这意味着只有一个BSD许可证。你要明白,当人们说到诸如“BSD类许可证”等非-copyleft的自由软件许可证时,一些新来的、想使用非-copyleft许可证自由软件开发者可能会自然地认为BSD是获取这样的许可证的地方。她或许就会复制带有广告条款的许可证,不是故意,只是碰巧。
如果你想引用一个具体的非-copyleft许可证,而你也没有特别的倾向,请选择一个没有特殊问题的例子。比如,如果你举“X11-类的许可证”为例,那么你就会鼓励人们复制这个来自X11的许可证,它没有广告条款,如果你随机说了BSD许可证中的一个,那么很可能就有风险。
你也可以举我们推荐的非-copyleft许可证为例:Apache 2.0许可证,它带有一个不允许使用专利背信弃义的条款。
当你想说一个具体的BSD许可证时,请一定要说明:“原始的BSD许可证”或者“修改版的BSD许可证”。
后来,还出现了BSD许可证的第三个版本,它只带原始BSD许可证四个条款中的前两条。我们称之为“FreeBSD许可证”。它是一个宽松的、非copyleft的自由许可证,和GNU GPL兼容,非常像修改版的BSD许可证。
参看“如何为你的作品选择许可证”来了解选择许可证的一般建议。