軟體包資料交換規範

軟體包資料交換規範(Software Package Data Exchange)簡稱SPDX,是軟體材料表(SBOM)的开源标准[2] 。SPDX可以說明軟體元件、軟體授權、版權、安全參考資料以及其他有關軟體的元資料[3],其原始的設計目的是要提昇授權條款的相容性[4],之後也增加了額外的使用例,像是供應鏈的透明度以及安全性[5]。SPDX是由Linux基金會主持,由社群驅動的SPDX計劃所撰寫。

状态已發佈
首次出版2011年8月 (2011-08)
最新版本2.3
2022年11月 (2022-11)
预览版本3.0 RC[1]
2023年5月16日 (2023-05-16)
组织Linux基金會
委员会SPDX Project
领域軟體材料表
许可证CC-BY-3.0
缩写SPDX
网站spdx.dev

SPDX標準目前已到2.3版[6]

結構

SPDX標準定義了軟體材料表的文件,其中包括了有關軟體的SPDX元資料。此文件可以用JSON、YAML、RDF/XML、tag-value及試算表的形式表示。每一份SPDX文件會敘述一個或多個元件,可能是軟體包、特定的檔案,或是檔案的某一部份。每一個元件都有唯一的識別碼,因此各元件可以互相參照[7]

歷史

SPDX規格的第1版是在2011年8月發佈的,原始的設計目的是要簡化軟體授權相容確認[4],不過後續的版本加入了可以用在其他用途的功能,例如可以包括已知軟體漏洞的參考資訊[8]。近期的SPDX已符合美國國家電信暨資訊管理局(NTIA)提出的「軟體材料表中的基本元素」[9]

SPDX 2.2.1於2020年10月提交到國際標準化組織,在2021年8月發行,成為ISO/IEC 5962:2021 Information technology — SPDX® Specification V2.2.1[10][11]

授權條款語法

授權條款的識別方式為其完整名稱(例如Mozilla Public License 2.0")以及較短的名稱(例如MPL-2.0)。 授權條款可以用運算子ANDOR組合,也可以加上分組(, )

例如(Apache-2.0 OR MIT)表示可以選擇Apache-2.0Apache许可证)或MITMIT許可證)。而(Apache-2.0 AND MIT)表示這二個都要符合。

也可使用"+"運算子,配合授權條款使用,表示也可以使用該授權條款較新的版本。例如Apache-1.1+表示Apache-1.1Apache-2.0、或是更新的版本都可以適用。

SPDX在軟體授權條款的地方,準確的敘述其授權條款。SPDX不打算將授權條款分類,例如將類似BSD许可证的授權條款分類成"BSD-like"[12]

歐洲聯盟委員會在2020年發行了Joinup Licensing Assistant[13],可以在超過50種的授權條款之間比較及選擇,可以使用其SPDX識別符以及完整名稱。

已不使用的授權條款識別符

GNU家族的授權條款(例如GNU GPLv2)有選項可以延伸到更新的版本。但對於SPDX表示法,就無法確定GPL-2.0是指「只有GPL 2.0版」還是「GPL 2.0版或更新版本」[14]。因此,自從SPDX 3.0版的授權條款列表開始,GNU家族的授權條款有新的名稱[15]GPL-2.0-only表示「只有GPL 2.0版」,而GPL-2.0-or-later表示「GPL 2.0版或更新版本」。

使用

授權

SPDX授權條款識別符可以加在原始碼檔案的最前面,用短的字串準確的說明使用的授權條款。SPDX-License-Identifier語法由Das U-Boot在2013年提出,在2017年成為SPDX 2.1版中的一部份。歐洲自由軟體基金會提出了REUSE,是可以檢查註解,快速的取出授權條款資訊的工具[16]

SPDX授權條款識別符也用在許多的软件包管理系统中,例如Npm[17]、Python[18]及Rust cargo[19]Fedora LinuxRPM程式包元資料使用SPDX授權條款識別符,取代較早期使用的Callaway系統[20]。Debian用的則是另一個略有不同的授權條款規格[21]

相關條目

  • 授權擴散

參考資料

  1. . Software Package Data Exchange (SPDX). 16 May 2023.
  2. Stewart, Kate. . Linux Foundation. May 25, 2021 [2021-08-13].
  3. (PDF). National Telecommunications and Information Administration: 9. October 25, 2019 [2021-08-13].
  4. Bridgwater, Adrian. . Computer Weekly. August 19, 2011 [2021-08-13].
  5. Rushgrove, Gareth. . June 16, 2021 [2021-08-14].
  6. . spdx.dev. [2022-11-22].
  7. . spdx.github.io.
  8. . Linux Foundation. October 4, 2016 [2021-12-01].
  9. (PDF). National Telecommunications and Information Administration. [2021-12-01].
  10. . iso.org. [2021-12-01].
  11. Bernard, Allen. . TechRepublic. September 9, 2021 [2021-12-01].
  12. Odence, Phil. . Dr Dobb's. 2010-06-23 [2012-08-31].
  13. . [31 March 2020].
  14. Richard Stallman. . GNU. [2018-05-24].
  15. Jilayne Lovejoy. . spdx.dev. 5 January 2018 [2021-09-02]. (原始内容存档于2018-01-05).
  16. . www.linuxfoundation.org (英语).
  17. . docs.npmjs.com (英语).
  18. . peps.python.org.
  19. . doc.rust-lang.org.
  20. . Fedora Legal Documentation. [30 July 2023].
  21. . www.debian.org.

外部連結

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.