SPDX 消除软件许可方面的困惑

软件软件包数据交换 (SPDX) 使理解不同软件许可授予的权利和责任变得更容易。
426 位读者喜欢这篇文章。
8 ways to contribute to open source when you have no time

Opensource.com

每年的这个时候,我们的思绪都会转向版权。或者说,可能更多地转向版权。毕竟,开源是基于版权法运作的。您可能已经知道,版权法赋予作品作者复制(以及其他事项)其作品的专有权利。这些权利在作品以有形媒介固定下来(书写下来、保存到磁盘等)后立即生效。因此,开源许可证授予的权利依赖于版权法。

但是具体授予了哪些权利?这取决于开发者选择哪个许可证。大多数项目使用几种标准许可证之一,但它们并不总是被清晰地传达。例如,一个项目可能以“GNU 通用公共许可证 (GPL)”发布。但是哪个版本?接收者是否可以选择更高版本(如果他们愿意)?

软件软件包数据交换 (SPDX) 是 Linux 基金会的一个项目,旨在通过定义信息报告标准来帮助减少软件的歧义性。许可证就是其中一项信息。SPDX 提供了一种格式,用于列出适用于软件包的特定许可证变体和版本。拥有超过 300 个许可证,您很可能找到您使用的那个。许可证列表包含人性化的名称、短名称以及指向完整许可证文本的链接。SPDX 还提供了指南,用于将许可证文件的文本与许可证的官方文本进行匹配。

SPDX 工作组最近发布了许可证列表的 3.0 版本。这个主要修订版包括对 GPL 版本的明确标识符、改进的匹配指南以及列表的新主格式。新格式取代了电子表格和文本文件,转而使用 XML 风格的模板。这允许更丰富地表达许可证中的字段。

拥有一个明确的许可证沟通机制对于开发者来说可能看起来不是很重要,但对于下游开发者来说却很重要。对于可能需要向其客户提供包含组件软件包的物料清单的商业开发者来说尤其如此。或者,法律部门可能想知道正在使用哪些开源许可证,以便他们可以帮助确保合规性。

无论出于何种原因,借助 SPDX 标准和工具(例如 SPDX 工作组自己的社区支持 或 商业工具),开发者都有一种以清晰易懂的方式沟通软件许可证的方法。

标签
User profile image.
Ben Cotton 接受过气象学家的培训,但天气是一个很棒的爱好。Ben 在 Red Hat 担任 Fedora 项目经理。他是《开源项目项目管理》一书的作者。在 Twitter (@FunnelFiasco) 或 FunnelFiasco.com 上找到他。

2 条评论

谢谢你的文章。

我认为如果文章能展示如何在一些流行的语言和/或项目风格中应用 SPDX 到源代码的示例,如果合适的话,那就太棒了。

是否有工具可以查看项目是否真的符合某些 SPDX 许可证?或者确保每个文件都有 SPDX 标头?

SPDX 如何与经典的许可证标头一起工作,例如,标头说“这是在 XYZ 许可证下发布的,您可以做啦啦啦”——SPDX 仍然需要这样做吗?

谢谢
Heiko

感谢您的评论,Heiko。SPDX 网站上有关于如何在文件头或作为单独的信息文件中使用它的信息:https://spdx.org/using-spdx

有一些工具可以搜索软件的许可证问题,我相信它们可以用来审计 SPDX 信息的正确性。SPDX 在 https://spdx.org/tools 上提供了商业和社区工具列表

回复 作者 pilhuhn

知识共享许可协议本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.