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 在红帽公司担任 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.