许可证的方面

尽管有许多不同的自由软件许可证,但在许多重要的方面所说的是同一件事:任何人可以修改代码,也就是任何人可以再次分发其原始和修改的形式,而版权所有者和作者不做任何保障(考虑到人们会在不知情的情况下运行修改的版本,免责非常重要)。不同许可证的区别经常出现在这些问题上:

私有许可证的兼容性

有一些自由许可证允许覆盖的代码用于私有软件。这不会影响私有程序的许可证条款:它还是私有软件,它仅仅是包含了一些非私有的源。Apache许可证、X Consortium许可证、BSD样式的许可证以及MIT样式的许可证都是私有兼容的许可证。

与其他自由许可证的兼容性

大多数自由许可证与其他兼容,意味着某个许可证下的代码可以与其他的代码合并,使用任意一种许可证分发也不会违反另外一种许可证的条款。主要的例外是GNU GPL,它要求使用GPL化的代码则必须按照GPL分发,并不得增加任何GPL所要求的更多限制。GPL只与某些自由许可证兼容。本章后面的the section called “GPL和许可证兼容性”将会详细讨论这些细节。

荣誉的强制性

一些自由许可证强制对于所覆盖代码的任意使用,必须伴随一个已指明了放置和显示方式的提示,给予代码的作者或版权拥有者荣誉。这些许可证仍然是私有兼容的:他们并不要求衍生的作品是自由的,仅仅要求给予自由代码一份荣誉。

商标保护

强制荣誉的一个变种。商标保护许可证指明在未经预先书面许可前,原始软件的名称(或者其版权所有者,或他们的机构等等)不能被用于衍生的作品中。尽管荣誉强制坚持使用特定的名字,而商标保护保证其不被使用,但他们只是相同目的不同表达方式:原始代码的名声必须保存和传递,但不要因为关联而玷污。

"艺术完整性"保护

有一些许可证(例如著名的Perl编程语言实现所使用的艺术许可证,以及Donald Knuth的TeX许可证)要求分发时必须明确区分代码的原始版本和所有的修改。他们与其他自由许可证在实质上允许同样的自由,但是提出了特定要求,可以轻松的确认原始代码的完整。除了制作这些许可证的特定程序,并没有太多这类许可证的使用,所以将不会在本章讨论;它们的出现仅出于完全性的考虑。

大多数这类强制不是互斥的,某些许可证会包含多个。他们之间相同的线索是在接受者那里设置要求,交换接受者使用和/或发布代码的权利。例如,一些项目希望他们的名称和名声能够随着代码传播,并且也值得放置额外的荣誉或商标条款;取决于其难度,这种负担会导致某些用户选择较少要求的包。