最近,David Humphrey 在 Twitter 上提出了一个看似简单的问题。
MIT 许可证是什么时候创建的?我找不到任何给出年份的来源。
— David Humphrey (@humphd) 2019年4月1日
我说“看似简单”,是因为 MIT 许可证是开源软件使用的最流行的许可证之一。 MIT 许可证、Apache 许可证和 BSD 许可证是主要的宽松许可证,这个术语与像 GPL 这样的互惠许可证形成对比,后者要求在重新分发软件时提供源代码。
鉴于其受欢迎程度,你可能会认为该许可证的起源会有详细的记录。我发现各种线索表明日期在 1980 年代后期,但没有确定的结论。然而,Keith Packard 和 Jim Gettys 加入了 讨论串,提供了关于许可证创建的第一手资料。除了提供许可证的早期示例外,他们的帮助还让我更好地理解了许可证如何随着时间的推移而演变。
日期? 最佳的单一答案可能是 1987 年。 但完整的故事更加复杂,甚至有点神秘。
这个故事始于麻省理工学院 (MIT) 的 Athena 项目。“Athena 项目是 MIT、数字设备公司 (DEC) 和 IBM 的一个联合项目,旨在为教育用途创建一个校园范围内的分布式计算环境,”维基百科 如此描述。该项目于 1983 年启动,孕育了重要的软件,最终被广泛使用,包括 X Window System 和 Kerberos。
具体来说,X Window System 提供了“在显示设备上绘制和移动窗口以及与鼠标和键盘交互”的基本框架,维基百科 如此描述。 X 的第 1 版于 1984 年 6 月发布。该软件在 1987 年达到了第 11 版(因此所有后续版本都称为“X11”)。小版本使用 X10R4 或 X11R7.7 等命名法。
X 最初采用专有许可证,但根据 Packard 的说法,我们现在称之为开源许可证的 被添加到 1985 年的 X 版本 6 中。(我说“现在称之为”,是因为“开源”这个术语直到 1998 年才由 Christine Peterson 创造。)根据 Gettys 的说法,“在许可证下分发 X 变得非常麻烦,所以我主张我们应该直接放弃它。” 然而,事实证明,仅仅将其放入公共领域并不是一个选择。“IBM 不会接触公共领域代码(任何没有特定许可证的代码)。我们去找了 MIT 的律师来撰写文本,明确允许将其用于任何目的。我认为 Jerry Saltzer 可能与他们一起撰写了文本。我记得我批准了这个结果,”Gettys 补充道。
关于早期许可证语言何时稳定存在一些模糊之处;正如 Gettys 所写,“我们在措辞上不是很一致。” 但是,Packard 指出在 1985 年添加到 X 版本 6 的许可证似乎一直持续到 X 版本 11,Release 5。许可证语言的稍后版本似乎是在 1994 年的 X 版本 11,Release 6 中引入的。
因此,有充分的理由认为 MIT 许可证(当时也称为 X Consortium 或 X11 许可证)在 1987 年随着 X11 的发布而结晶,这是使用的最佳日期。你可以说它是在 1985 年创建的,并在接下来的几年中进行了可能的调整。在那些日子里,许可证经常逐步发展。例如,Gettys 观察到,虽然 GPLv1 许可证于 1989 年正式发布,但 Richard Stallman 的 Emacs 之前是在类似于 GPL 的许可证下分发的。
但故事并没有就此结束。 如果你查看用于 X11 的许可证和开放源代码促进会 (OSI) 上批准的 MIT 许可证,它们并不相同。 精神相似,但使用的词语有很大不同。
“现代”MIT 许可证与 1998 年左右开始用于 Expat XML 解析器库的许可证相同。使用此文本的 MIT 许可证是 1999 年 OSI 批准的第一批许可证的一部分。 奇怪的是,尽管 OSI 将其描述为“MIT 许可证(有时称为‘X Consortium 许可证’)”,但它实际上与 X Consortium 许可证并不相同。
这种转变是如何以及为何发生的——甚至是否是偶然发生的——仍然未知。 但很明显,到 1999 年,OSI 记录的 MIT 许可证的批准版本使用的语言与 X Consortium 许可证不同。 这就是为什么包括自由软件基金会在内的一些人更喜欢完全避免使用“MIT 许可证”术语的原因,因为它可能指的是几个相关的但不同的许可证。
(MIT 许可证在这种不一致性方面并不是唯一的。 例如,有一个 3-Clause BSD 许可证和一个较早的 4-Clause BSD 许可证,即使没有明确的版本控制。)
所以,你明白了。 选择你的日期。 1985 年的前身。 1987 年的 X Consortium 或 X11 许可证变体。 或 1998 年或 1999 年的 Expat 许可证。
感谢 此 Twitter 帖子的参与者,使本文成为可能。
6 条评论