Software Package Data Exchange

ソフトウェアライセンスやSBOMに関するメタデータのオープンスタンダードの策定と、関連するフォーマットなどの整備を行っているLinux Foundationの傘下のプロジェクト

Software Package Data Exchange(SPDX[2]は、Linux Foundationの傘下のプロジェクトである[3]。SPDXプロジェクトは、組織がソフトウェアライセンスやBills of material(BOM、部品表、ソフトウェア構成表ともいう)に関するメタデータのオープンスタンダードを策定し[4]、関連するフォーマットなどを円滑に利用するためのSPDX のオンラインツールなども整備している。

「SPDX 2023」 のロゴマーク。
ステータス Published
初版 2011年8月 (12年前) (2011-08)
最新版 2.3
2022年11月 (1年前) (2022-11)
プレビュー版 3.0 RC[1]
2023年5月16日 (11か月前) (2023-05-16)
組織 Linux Foundation
委員会 SPDX Project
ドメイン Software bill of materials
ライセンス CC-BY-3.0
略称 SPDX
ウェブサイト spdx.dev

この仕様・規格[5]の現在のバージョンは2.2で、2022年8月に承認された[6]。またこのSPDXフォーマットの仕様はISO/IEC 5962:2021として 2021年に国際標準化された[7]

SPDXは、ソフトウェアがライセンスを曖昧さなく判別できるようにSPDX-Identifierを定義している[8]。また、ライセンスをタイプ別に分類しようとはしておらず、たとえば、BSDライセンスと同様の用語を使用したライセンスを「BSD-like」として説明したりはしない[2]

なお、Bills of material のフォーマットには、CycloneDX[9]など SPDX以外のフォーマットも存在する。

SPDX フォーマット 編集

SPDX v2.2 では次のフォーマットがある。これらのフォーマットは SPDX のオンラインツールで検証でき、また互いのフォーマットに変換できる。

  • Tag
  • RDF/XML
  • Spreadsheet(XLX/XLSX)
  • JSON
  • XML
  • YAML

また、SPDX フォーマットは項目が多すぎるとの観点から、軽量フォーマットとして SPDXフォーマットのサブセットとして SPDX Lite[10] [11]がある。

SPDX-Identifier 編集

各ライセンスは、「Mozilla Public License 2.0」などの完全な名前と、それに対する「MPL-2.0」などの短い識別子(SPDX-Identifier)で識別される。デュアルライセンスやマルチライセンスは、演算子ANDOR、およびグループ化()を組み合わせて表現することができる。

たとえば、(Apache-2.0 OR MIT)は、Apache-2.0Apache License)またはMITMITライセンス)から選択できることを意味する。一方、(Apache-2.0 AND MIT)は、両方のライセンスが適用されることを意味する。

ライセンスのGNUファミリ(たとえば、GNU General Public License 2.0)には、組み込みのライセンスの新しいバージョンを選択することもできる。これは、SPDXでの表現GPL-2.0が「厳密にGPLバージョン2.0」を意味するのか、「GPLバージョン2.0またはそれ以降のバージョン」を意味するのかが明確でない場合があったためである[12]。そのため、SPDXライセンスリストのバージョン3.0以降、ライセンスのGNUファミリには新しい名前が付けられている[13]GPL-2.0-onlyは「正確にバージョン2.0のみ」を意味し、GPL-2.0-or-laterは「GPLバージョン2.0以降のバージョン」を意味する。

2020年に、欧州委員会は、50を超えるライセンスの選択と比較を可能にする、Joinup Licensing Assistant発行し[14]、SPDX識別子と全文にアクセスできるようにしている。

SPDX-Identifier は SPDX のライセンスリストとして公開[15]されている。

廃止されたSPDX-Identifier 編集

SPDX License Identifier には 廃止(deprecated) になったものもある。例えば、「+」演算子があり、これをライセンスに適用すると、同じライセンスの将来のバージョンも適用されることを意味していた。GPL-1.0+ のような SPDX License Identifier は v2.0rc で廃止[15]になっている。

SPDX-Identifier の使用 編集

SPDX-Identifier はライセンスのIDとしてSPDXプロジェクト以外でも使用されている。

  • オープンソースのライセンススキャナの Fossologyには、 SPDX-License-Identifier向けのプラグイン[16]がある。
  • Cyclone DX ではライセンスのIDとして採用されている[17]
  • オープンソースライセンスの要約を表示する tldrlegal ではライセンス名と同時にSPDX-License-Identifierも表示されている。[18]
  • Rust (プログラミング言語) では パッケージ(クレート)を管理する Cargo.toml ファイルでそのクレートのライセンスに SPDX License Identifierを使用[19]する。

関連項目 編集

参考文献 編集

  1. ^ SPDX Announces 3.0 Release Candidate with New Use Cases”. SPDX Announces 3.0 Release Candidate with New Use Cases. 2024年1月8日閲覧。
  2. ^ a b Odence (2010年6月23日). “The Software Package Data Exchange (SPDX) Format”. Dr Dobb's. 2012年8月31日閲覧。
  3. ^ Stewart, Kate; Odence, Phil; Rockett, Esteban. “Software Package Data Exchange (SPDX™) Specification”. International Free and Open Source Software Law Review 2 (2). doi:10.5033/ifosslr.v2i2.45. http://www.ifosslr.org/ifosslr/article/view/45. 
  4. ^ Vaughan-Nichols (2010年8月10日). “Linux Foundation launches major open-source license compliance program”. Computerworld. 2012年8月31日閲覧。
  5. ^ Specifications” (英語). Software Package Data Exchange (SPDX). 2022年5月8日閲覧。
  6. ^ SPDX specification 2.2”. 2022年5月8日閲覧。
  7. ^ 14:00-17:00. “ISO/IEC 5962:2021” (英語). ISO. 2022年5月8日閲覧。
  8. ^ SPDX License List | Software Package Data Exchange (SPDX)”. spdx.org. 2022年5月8日閲覧。
  9. ^ OWASP CycloneDX Software Bill of Materials (SBOM) Standard”. cyclonedx.org. 2022年5月8日閲覧。
  10. ^ https://spdx.github.io/spdx-spec/SPDX-Lite/
  11. ^ https://www.linuxfoundation.jp/blog/2021/06/spdx-its-already-in-use-for-global-software-bill-of-materials-sbom-and-supply-chain-security/ 最近の注目すべきコントリビューションの例としては、日立、富士通、東芝などの企業が、SPDX2.2仕様リリースにおいて「SPDX Lite」のような任意追加プロファイルによって標準を拡張し、さらにプロプラエタリとオープンソースの自動化ソリューションでSPDX SBOMをサポートしたことが挙げられます。
  12. ^ Richard Stallman. “For Clarity's Sake, Please Don't Say "Licensed under GNU GPL 2"!”. www.gnu.org. 2018年5月24日閲覧。
  13. ^ Jilayne Lovejoy. “License List 3.0 Released!”. spdx.org. 2018年5月24日閲覧。
  14. ^ Joinup Licensing Assistant”. 2020年3月31日閲覧。
  15. ^ a b SPDX License List”. 2022年8月18日閲覧。
  16. ^ FOSSology-SPDX/fossology-spdx, FOSSology-SPDX, (2021-11-14), https://github.com/FOSSology-SPDX/fossology-spdx 2022年5月8日閲覧。 
  17. ^ CycloneDX Use Cases”. cyclonedx.org. 2022年5月8日閲覧。
  18. ^ https://tldrlegal.com/license/apache-license-2.0-(apache-2.0) Apache License v2.0には Apache-2.0と併記されている。
  19. ^ https://doc.rust-jp.rs/book-ja/ch14-02-publishing-to-crates-io.html#%E6%96%B0%E3%81%97%E3%81%84%E3%82%AF%E3%83%AC%E3%83%BC%E3%83%88%E3%81%AB%E3%83%A1%E3%82%BF%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E8%BF%BD%E5%8A%A0%E3%81%99%E3%82%8B The Rust Programming Language 日本語版 新しいクレートにメタデータを追加する

外部リンク 編集