源代码使用许可协议_源代码是许可证

源代码使用许可协议

您可以通过查看源代码来找到开源软件的许可证信息。 可以针对该许可证信息生成不同的视图或报告,以解决不同的需求。

尽管开放源代码软件不需要直接在源代码中提供许可证信息,但这样做的实际好处在很早就变得显而易见。 由于开放源代码许可证促进了软件的移动,随代码一起传播的许可证信息通过使拥有权限的人易于获得权限的声明(即使他们间接接收了代码)也简化了管理。

许可条款是什么?

将许可证信息嵌入到源树中的价值未得到充分认识。 让我们暂停一下,反思一下这种常规做法[在此处插入沉默片刻]有多么有用。

许可条款是什么? 对于许多开源软件,有一个简单的答案:单个许可证文本包含整个软件主体的所有许可证信息。 但是开源的力量在于它可以促进其他开发人员在该起点上进行构建,并且该过程可以使许可证信息复杂化。

开源软件可以扩展,重新设计用途,并与其他软件组合。 与机械设备不同,在机械设备上,不同群体的协作更具挑战性,而复杂软件从许多工作中受益是切实可行的。 开源许可证提供了促进该开发动态的权限。 具有复杂历史记录的软件也可能具有复杂的许可证信息。

考虑以下示例:某人编写了一个新程序,在每个源文件中包括一个版权声明,并声明该软件已根据Apache许可版本2.0进行了许可,并在源树的根目录中包含以下文本的副本: Apache许可证。 后来,添加了具有不同版权声明的文件和BSD 2条款许可的副本。 然后,添加一个新的子目录,该文件中的文件具有Apache许可声明,但带有标识不同版权拥有者的版权声明。 然后,将MIT许可证的副本添加到新的子目录中,该子目录包含版权声明与MIT许可证文件中相同的文件,但没有任何其他许可证指示。

此示例表明,嵌入在源树中的许可证信息可能非常复杂且详细。 根目录和/或各个子目录中可能会有许可证文本。 某些源文件可能具有许可声明; 其他人可能不会。 可能会有版权声明,标识各种版权持有者。 在不丢失信息的情况下,可能无法将看起来合法的位与代码分开。 因此,源代码就是许可证。

从源代码树的上下文中可以看出,以上示例中许可证信息的解释非常简单。 但是,以简单明确的独立声明捕获许可证信息将是一个挑战。 捕获源代码中存在的所有许可证信息的许可证声明会比源代码短,但是会很尴尬-谁想要如此详细的独立声明? 大多数用户可能更喜欢摘要,尽管摘要不完整,但可以捕获与自己的特定兴趣和敏感性相匹配的元素。

许可证信息汇总:视图

响应“许可条款是什么?” 带有完整源代码树的副本可能不那么有用,因为它又大又稀。 大多数人都想要摘要。 但是存在一个挑战:当许可证信息复杂时,人们需要不同的摘要,因为他们对重要内容有不同的看法。

对于某些人来说,对以下问题回答“是”可能就足够了:软件1)是否已获得一个或多个开源许可证的许可,以及2)组装和许可的软件的分发和使用与所有这些许可证一致? 其他人可能想要所有许可证的列表,或者他们可能想要查看哪个软件组件对应于哪个许可证。 还有一些人可能想要一个逐组件的列表,该列表可以标识所有Copyleft许可证(也许要深入研究Copyleft遵从性)。 有些人可能对查看所有版权声明和相关的软件组件列表感兴趣。

一个摘要可能不会解决所有人的利益。 简单地使摘要更详细可能会使它的效用降低到某种程度,而对其他人仍然不足。 因此,需要在源代码中表达的许可信息的不同“视图”。 认为这里的术语“ 视图 ”类似于引用数据库时使用的术语。 另外,您可能认为视图为“报告”。

将(a)源代码视为许可证,并且(b)可以从中提取多个不同的视图,这是有利的。

您可能会尝试创建“所有操作”摘要,从中可以创建其他更简短的摘要。 但是许可证信息的中间表示形式至少具有三个缺点:

  • 时间:该主摘要的维护者可能不会按您的时间表进行更新。
  • 版本:主摘要可能基于与您使用的软件不同的版本。
  • 质量:您的视图继承了母版的错误和判断特征。

因此,直接从您使用的源树的版本生成按需的首选视图很有价值。

工具可以生成视图。 按需视图的生成取决于工具。 许可证信息表示方式的清楚(或混乱)有助于(或阻止)该工具的有效性。 我们不需要许可证信息的机器专用编码,但是我们应该利用人们可以理解和机器提取的多种方式来表示信息。

杰夫·考夫曼(Jeff Kaufman)在他的文章《 一种经济有效的开源软件许可证合规模型》中指出了一个相关的观点:由于源代码包含许可证信息,因此分发源代码可以是满足某些许可证要求的有效方法。

最佳做法是将所有许可证信息嵌入到源树中。 如果您发现许可证信息未在源树中表示,请考虑通过提交错误报告来建议您将信息添加到源树中,从而改进项目。

源代码是许可证。 根据该完整记录,可以生成许可证信息的视图。 工具可以将许可证信息提取到各种报告中,以满足特定的需求或敏感性。

我们需要做的工作才能获得这一愿景的全部好处。 您对工具和许可证信息表示的状态有什么看法?

翻译自: https://opensource.com/article/17/12/source-code-license

源代码使用许可协议

你可能感兴趣的:(java,python,linux,编程语言,大数据)