Software Package Data Exchange

Software Package Data Exchange（SPDX）は、Linux Foundationの傘下のプロジェクトである。SPDXプロジェクトは、組織がソフトウェアライセンスやBills of material（BOM、部品表、ソフトウェア構成表ともいう）に関するメタデータのオープンスタンダードを策定し、関連するフォーマットなどを円滑に利用するためのSPDX のオンラインツールなども整備している。 
この仕様・規格の現在のバージョンは2.2で、2022年8月に承認された。またこのSPDXフォーマットの仕様はISO/IEC 5962:2021として 2021年に国際標準化された。 
SPDXは、ソフトウェアがライセンスを曖昧さなく判別できるようにSPDX-Identifierを定義している。また、ライセンスをタイプ別に分類しようとはしておらず、たとえば、BSDライセンスと同様の用語を使用したライセンスを「BSD-like」として説明したりはしない。 
なお、Bills of material のフォーマットには、CycloneDXなど SPDX以外のフォーマットも存在する。 
SPDX フォーマット.
SPDX v2.2 では次のフォーマットがある。これらのフォーマットは SPDX のオンラインツールで検証でき、また互いのフォーマットに変換できる。
また、SPDX フォーマットは項目が多すぎるとの観点から、軽量フォーマットとして SPDXフォーマットのサブセットとして SPDX Lite がある。
SPDX-Identifier.
各ライセンスは、「Mozilla Public License 2.0」などの完全な名前と、それに対する「MPL-2.0」などの短い識別子(SPDX-Identifier)で識別される。デュアルライセンスやマルチライセンスは、演算子codice_1とcodice_2、およびグループ化codice_3とcodice_4を組み合わせて表現することができる。 
たとえば、codice_5は、codice_6（Apache License）またはcodice_7（MITライセンス）から選択できることを意味する。一方、codice_8は、両方のライセンスが適用されることを意味する。 
ライセンスのGNUファミリ（たとえば、GNU General Public License 2.0）には、組み込みのライセンスの新しいバージョンを選択することもできる。これは、SPDXでの表現codice_9が「厳密にGPLバージョン2.0」を意味するのか、「GPLバージョン2.0またはそれ以降のバージョン」を意味するのかが明確でない場合があったためである。そのため、SPDXライセンスリストのバージョン3.0以降、ライセンスのGNUファミリには新しい名前が付けられている。codice_10は「正確にバージョン2.0のみ」を意味し、codice_11は「GPLバージョン2.0以降のバージョン」を意味する。 
2020年に、欧州委員会は、50を超えるライセンスの選択と比較を可能にする、Joinup Licensing Assistant発行し、SPDX識別子と全文にアクセスできるようにしている。 
SPDX-Identifier は SPDX のライセンスリストとして公開されている。
廃止されたSPDX-Identifier.
SPDX License Identifier には 廃止(deprecated) になったものもある。例えば、「+」演算子があり、これをライセンスに適用すると、同じライセンスの将来のバージョンも適用されることを意味していた。GPL-1.0+ のような SPDX License Identifier は v2.0rc で廃止になっている。
SPDX-Identifier の使用.
SPDX-Identifier はライセンスのIDとしてSPDXプロジェクト以外でも使用されている。