Nomenclature du logiciel
Un document SBOM (Software Bill of Materials) est une déclaration des fichiers installés, des droits d'auteur, des licences, des versions, des dépôts de sources et d'autres informations pertinentes concernant une installation de Qt. Les documents SBOM facilitent la gestion de la chaîne d'approvisionnement en partageant les informations sur les composants avec les utilisateurs de Qt et les autres parties intéressées. Les documents SBOM de Qt sont particulièrement utiles pour la conformité des licences et la gestion des vulnérabilités de sécurité.
À partir de Qt 6.8, le système de compilation de Qt peut générer des documents SBOM adaptés à différentes plateformes et configurations de compilation. Le site Qt Online Installer place les documents SBOM dans un répertoire sbom situé dans le répertoire d'installation de la version respective de Qt. Par exemple, pour l'installation de Qt 6.11.0 Android arm64-v8a, les documents SBOM se trouvent à l'adresse :
<INSTALL_DIR>/6.11.0/android_arm64_v8a/sbom/
Pour générer vous-même les documents SBOM à partir des sources Qt, définissez -sbom comme option de configuration.
Par exemple, lors de l'étape de configuration :
./configure -sbom
La génération des documents SBOM fait alors partie de l'installation normale de Qt :
ninja install cmake --install .
Ce processus de construction crée des documents SBOM au format JSON et tag:value comme spécifié par le format SPDX.
A partir de Qt 6.11, le processus de compilation crée optionnellement les documents SBOM CycloneDX.
Voir Construction des sources de Qt et Options de configuration de Qt pour plus d'informations sur la procédure de construction de Qt.
Pour les développeurs et mainteneurs de Qt, le Wiki SBOM contient des informations spécifiques pour la création de documents SBOM.
Modules Qt conformes à REUSE
Lesmodules Qt sont conformes à REUSE à partir de Qt 6.9. En particulier, la documentation et la vérification des licences font partie du processus de développement de Qt. Divers outils vérifient les dépôts Qt pour les licences dans les fichiers ou en externe dans les fichiers REUSE.toml.
L'outil de réutilisation vérifie la conformité à REUSE et génère des SBOM source. Un outil interne vérifie que les fichiers SBOM source générés sont conformes à la spécification de la licence Qt.
Pour plus d'informations sur la documentation des licences dans les sources de Qt, visitez le site suivant :
Format SPDX
Les documents du SBOM sont au format SPDX 2.3. Un document commence par des informations sur le module Qt. Les paquets SPDX suivent en tant qu'entrées séparées.
Pour une installation de Qt, un paquet SPDX peut être un :
- un module Qt
- un plugin Qt - par exemple, des plugins de plateforme
- un outil Qt - par exemple, moc
- une application Qt - par exemple, Qt Widgets Designer
- un composant tiers - voir Code tiers utilisé dans Qt
- Dépendance de la bibliothèque du système - Options de configuration de Qt
Un paquet SPDX contient généralement au moins les éléments suivants :
- le nom du paquet, la version, le nom du fournisseur et les informations de construction
- Attribution de la licence Qt - un produit Qt peut être sous différentes licences commerciales ou open source. Par exemple, un paquet peut énumérer plusieurs licences conclues :
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
La licence Qt contient plus d'informations sur les options de licence.
- Avis de copyright - les documents du SBOM incluent les droits d'auteur des sources de Qt et les droits d'auteur de sources ou d'auteurs tiers.
- CPE (Common Platform Enumeration) - schéma de dénomination pour l'identification des paquets. Pour Qt, le format CPE du SBOM est typiquement :
cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>:<sw_edition>:<target_sw>:<target_hw>:<other>
Un exemple d'identifiant pour un paquetage d'autorisationQt Network est :
cpe:2.3:a:qt:qtnetworkauth:6.11.0:*:*:*:*:*:*:*
Pour plus d'informations, voir la page de spécification des CPE.
- PURL (Package URL) - une alternative au CPE, PURL est un schéma d'identification qui utilise le format suivant :
scheme:type/namespace/name@version?qualifiers#subpath
Un exemple de PURL pour un paquet est le suivant :
pkg:generic/TheQtCompany/qtnetworkauth@6.11.0
- Les relations entre les paquets, telles que les dépendances.
Par exemple, le site
DEPENDS_ONpour lister une relation de dépendance. Voir la clause 11 du SPDX 2.3 pour une liste des types de relations valides.
Paquets SPDX tiers
Un paquet SPDX pour un composant tiers contient généralement au moins les éléments suivants
- le nom, la version et la description
- Page d'accueil et lieu de téléchargement
- Utilisation dans Qt
- Informations sur la licence et les droits d'auteur
- si le composant est critique pour la sécurité - le code peut traiter du code non fiable.
Exemple de SPDX SBOM
Voici un exemple de document SPDX SBOM pour le module d'autorisationQt Network . Le nom du fichier SBOM est qtnetworkauth-6.9.0.spdx et se trouve dans le répertoire sbom de l'installation. Notez que le document SBOM contient plusieurs autres paquets qui ne sont pas listés dans l'exemple suivant.
SPDXVersion: SPDX-2.3 DataLicense: CC0-1.0 SPDXID: SPDXRef-DOCUMENT DocumentName: qtnetworkauth-6.9.0 DocumentNamespace: https://qt.io/spdxdocs/qtnetworkauth-6.9.0 Creator: Organization: TheQtCompany Creator: Tool: Qt Build System CreatorComment: <text>This SPDX document was created from CMake 3.27.7, using the qt build system from https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/QtPublicSbomHelpers.cmake</text> Created: 2024-09-19T11:07:23Z ExternalDocumentRef: DocumentRef-qtbase https://qt.io/spdxdocs/qtbase-6.9.0 SHA1: 3dbc51259a07d458524a976da2e9607a76fab7e7 PackageName: NetworkAuth SPDXID: SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth PackageDownloadLocation: git://code.qt.io/qt/qtnetworkauth.git PackageVersion: 6.9.0 PackageSupplier: Organization: TheQtCompany PackageLicenseConcluded: LicenseRef-Qt-Commercial OR GPL-3.0-only PackageLicenseDeclared: LicenseRef-Qt-Commercial OR GPL-3.0-only ExternalRef: PACKAGE-MANAGER purl pkg:github/qt/qtnetworkauth?library_name=NetworkAuth#src/oauth ExternalRef: PACKAGE-MANAGER purl pkg:generic/TheQtCompany/qtnetworkauth-NetworkAuth?vcs_url=https://code.qt.io/qt/qtnetworkauth.git&library_name=NetworkAuth#src/oauth FilesAnalyzed: true PackageCopyrightText: <text>Copyright (C) 2024 The Qt Company Ltd.</text> PrimaryPackagePurpose: LIBRARY ExternalRef: SECURITY cpe23Type cpe:2.3:a:qt:qtnetworkauth:6.9.0:*:*:*:*:*:*:* ExternalRef: SECURITY cpe23Type cpe:2.3:a:qt:qt:6.9.0:*:*:*:*:*:*:* Relationship: SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth DEPENDS_ON DocumentRef-qtbase:SPDXRef-Package-qtbase-qt-module-Core Relationship: SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth DEPENDS_ON DocumentRef-qtbase:SPDXRef-Package-qtbase-qt-module-PlatformModuleInternal Relationship: SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth DEPENDS_ON DocumentRef-qtbase:SPDXRef-Package-qtbase-qt-module-Gui Relationship: SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth DEPENDS_ON DocumentRef-qtbase:SPDXRef-Package-qtbase-qt-module-Network Relationship: SPDXRef-Package-qtnetworkauth CONTAINS SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth
Format CycloneDX
À partir de Qt 6.11, le processus de construction crée optionnellement des documents SBOM au format CycloneDX v1.6.
Pour exiger la génération de documents CycloneDX, configurez Qt avec :
./configure -sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-required
La génération de documents CycloneDX nécessite les dépendances suivantes :
- Python version 3.9 ou plus récente
- Paquets Python :
- cyclonedx-python-lib[json-validation]
- tomli
Vous pouvez utiliser l'outil Python pip pour installer les paquets nécessaires :
pip install 'cyclonedx-python-lib[json-validation]' tomli
Les documents CycloneDX fournissent des informations similaires à celles des documents SPDX, y compris les composants, les licences, les dépendances et les métadonnées de sécurité.
Par rapport à SPDX, les informations de CycloneDX contiennent moins de détails dans certains domaines tels que les licences et les types de relations.
Les documents SBOM CycloneDX installés ont des noms de fichiers au format suivant : <module>-<version>.cdx.json.
Exemple de SBOM CycloneDX
Voici un exemple de document SBOM CycloneDX pour le module d'autorisationQt Network . Le nom du fichier SBOM est qtnetworkauth-6.11.0.cdx.json et se trouve dans le répertoire sbom de l'installation. Notez que le document SBOM contient plusieurs autres composants qui ne sont pas listés dans l'exemple suivant.
{
"components": [
{
"bom-ref": "SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth",
"copyright": "Copyright (C) The Qt Company Ltd. and other contributors.",
"cpe": "cpe:2.3:a:qt:qt:6.11.0:*:*:*:*:*:*:*",
"licenses": [
{
"license": {
"acknowledgement": "concluded",
"id": "GPL-3.0-only"
}
}
],
"name": "NetworkAuth",
"properties": [
{
"name": "qt:sbom:entity_type",
"value": "QT_MODULE"
},
{
"name": "qt:sbom:is_qt_entity_type",
"value": "true"
},
{
"name": "spdx:external-reference:package-manager:purl",
"value": "pkg:github/qt/qtnetworkauth?library_name=NetworkAuth#src/oauth"
},
{
"name": "spdx:external-reference:security:cpe23",
"value": "cpe:2.3:a:qt:qtnetworkauth:6.11.0:*:*:*:*:*:*:*"
}
],
"purl": "pkg:generic/TheQtCompany/qtnetworkauth-NetworkAuth?library_name=NetworkAuth&vcs_url=https://code.qt.io/qt/qtnetworkauth.git#src/oauth",
"supplier": {
"name": "TheQtCompany",
"url": [
"https://qt.io"
]
},
"type": "library",
"version": "6.11.0"
}
],
"dependencies": [
{
"dependsOn": [
"SPDXRef-Package-qtbase-qt-module-Core",
"SPDXRef-Package-qtbase-qt-module-Gui",
"SPDXRef-Package-qtbase-qt-module-Network",
"SPDXRef-Package-qtbase-qt-module-PlatformModuleInternal"
],
"ref": "SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth"
}
],
"serialNumber": "urn:uuid:ce0d41b5-0fe8-5383-bf31-ff353a05b8be",
"version": 1,
"$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
"bomFormat": "CycloneDX",
"specVersion": "1.6"
}Yocto construit avec meta-qt6
Boot to Qt Yocto utilise la couche meta-qt6 pour construire tous les modules Qt et les documents SBOM générés sont disponibles sous forme de fichiers SPDX lors de l'installation de Boot to Qt par le biais de Qt Online Installer. Le chemin d'installation dépend de la version de Qt et du matériel cible.
Par exemple, pour le Raspberry Pi, les documents SBOM .spdx se trouvent à l'adresse :
<INSTALL_DIR>/6.11.0/Boot2Qt/raspberrypi-armv8/toolchain/sysroots/cortexa53-poky-linux/usr/lib/sbom/
Pour plus d'informations, visitez les pages suivantes :
Sujets connexes
- SPDX 2.3
- Qt Wiki - SBOM - générer des documents SBOM à partir de sources Qt
- Code tiers utilisé dans Qt
© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.