SPDX (de l'anglais : Software Package Data Exchange) est un format de fichier utilisé pour documenter des informations sur les licences de logiciels. C'est aussi le nom du groupe de travail qui le rédige, composé de plus de vingt organisations différentes, sous les auspices de la Fondation Linux.
SPDX tente de standardiser la façon dont les entreprises publient leurs métadonnées sur les licences des logiciels et de leurs composants. Elle a pour but de faciliter la mise en conformité des organisations vis-à-vis de leurs obligations concernant les logiciels qu'ils utilisent, modifient et diffusent.
SPDX décrit les conditions exactes dans lesquelles un logiciel ou une partie d'un logiciel peuvent être utilisés et diffusés.
La version 2.2 est publiée en [1]. Parallèlement, la liste d'identifiants de licences est en version 3.14, publiée le [2].
En août 2021, SPDX est devenu une norme ISO : ISO/CEI 5962:2021.
La version actuelle de la spécification est la 2.3 publiée en août 2022.
Chaque licence est identifiée par un nom complet, par exemple « Mozilla Public License 2.0 » et un identifiant court, ici « MPL-2.0 ». Les licences peuvent être combinées entre elles par les opérateurs AND (et) et OR (ou).
Par exemple, (LGPL-2.1 OR MIT) signifie que l'on a le choix entre la licence LGPL-2.1 (GNU Lesser General Public License v2.1 only) ou la licence MIT (MIT License).
Au contraire, (LGPL-2.1 AND MIT) signifie que les deux licences s'appliquent.
Il existe également un opérateur « + » qui, appliqué à une licence, signifie que les versions ultérieures de la licence s'appliquent. Par exemple, Apache-1.1+
signifie que Apache-1.1
et Apache-2.0
peuvent s'appliquer (ainsi que de futures versions le cas échéant).
À partir de la version 2.0, les identifiants tels que GPL-2.0
ou GPL-2.0+
sont obsolètes.
Il faut utiliser à la place GPL-2.0-only
ou GPL-2.0-or-later
[3].