Liste des composants logiciels
Une nomenclature logicielle (SBOM) est un document qui répertorie les fichiers installés, les droits d’auteur, les licences, les versions, les dépôts de code source et d’autres informations pertinentes concernant une installation Qt. Les documents SBOM facilitent la gestion de la chaîne d’approvisionnement en partageant des 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é aux licences et la gestion des failles 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. La commande Qt Online Installer place les documents SBOM dans un répertoire sbom situé dans le répertoire d’installation de la version Qt correspondante. Par exemple, pour l’installation de Qt 6.12.0 sur Android arm64-v8a, les documents SBOM se trouvent à l’emplacement suivant :
<INSTALL_DIR>/6.12.0/android_arm64_v8a/sbom/Pour générer vous-même des documents SBOM à partir des sources Qt, définissez -sbom comme option de configuration.
Par exemple, lors de l’étape de configuration :
./configure -sbomLa génération des documents SBOM fait alors partie intégrante de l’installation standard de Qt :
ninja install
cmake --install .Ce processus de compilation crée des documents SBOM au format JSON et au format « tag:value », conformément aux spécifications du format SPDX.
À partir de Qt 6.11, le processus de compilation crée en option des documents SBOM CycloneDX.
Consultez les sections « Compilation des sources Qt » et « Options de configuration Qt » pour plus d’informations sur la procédure de compilation de Qt.
Pour les développeurs et les responsables de maintenance de Qt, le wiki SBOM contient des informations spécifiques sur la création de documents SBOM.
Modules Qt conformes à REUSE
Les modules Qt sont conformes à REUSE à partir de la version 6.9 de Qt. Plus précisément, la documentation relative aux licences et les vérifications de licences font partie intégrante du processus de développement de Qt. Divers outils vérifient les dépôts Qt à la recherche de licences dans les fichiers ou en externe dans les fichiers REUSE.toml.
L’outil reuse-tool vérifie la conformité à REUSE et génère des SBOM sources. Un outil interne vérifie que les fichiers SBOM sources générés sont conformes à la spécification de licence de Qt.
Pour plus d’informations sur la documentation relative aux licences dans les sources Qt, consultez les pages suivantes :
Format SPDX
Les documents SBOM sont au format SPDX 2.3. Un document commence par des informations sur le module Qt. Les paquets SPDX suivent sous forme d’entrées distinctes.
Pour une installation Qt, un paquet SPDX peut correspondre à :
- module Qt
- un plugin Qt – par exemple, des plugins de plateforme
- un outil Qt – par exemple, moc
- une application Qt – par exemple, Qt Widgets Qt Designer
- Un composant tiers – voir Code tiers utilisé dans Qt
- Dépendance vis-à-vis des bibliothèques système – Options de configuration de Qt
Un paquet SPDX contient généralement au moins :
- le nom du paquet, sa version, le nom du fournisseur et les informations de compilation
- Attribution de licence Qt – un produit Qt peut être soumis à différentes licences commerciales ou open source. Par exemple, un paquet peut répertorier plusieurs licences conclues :
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-onlyLa page « Licences Qt » fournit davantage d’informations sur les options de licence.
- Mentions de droits d'auteur – Les documents SBOM incluent les mentions de droits d'auteur du code source Qt ainsi que celles provenant de sources tierces ou d'auteurs tiers.
- CPE (Common Platform Enumeration) – schéma de nommage permettant d’identifier les paquets. Pour Qt, le format CPE de la SBOM est généralement le suivant :
cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>:<sw_edition>:<target_sw>:<target_hw>:<other>Voici un exemple d’identifiant pour un Qt Network Authorization paquet est :
cpe:2.3:a:qt:qtnetworkauth:6.12.0:*:*:*:*:*:*:*Pour plus d’informations, consultez la page « Spécification CPE ».
- PURL (URL du package) – alternative au CPE, le PURL est un système d'identification qui utilise le format suivant :
scheme:type/namespace/name@version?qualifiers#subpathVoici un exemple de PURL pour un colis :
pkg:generic/TheQtCompany/qtnetworkauth@6.12.0Pour plus d'informations, consultez la page « URL du colis ».
- Relations entre paquets, telles que les dépendances.
Par exemple, l’
DEPENDS_ONpour répertorier une relation de dépendance. Reportez-vous à la clause 11 de la spécification SPDX 2.3 pour obtenir la liste des types de relations valides.
Paquets SPDX tiers
Un paquet SPDX destiné à un composant tiers contient généralement au moins :
- Nom, version et description
- Page d'accueil et emplacement de téléchargement
- Utilisation dans Qt
- Informations relatives à la licence et aux droits d'auteur
- Indication précisant si le composant est critique pour la sécurité (le code peut traiter du code non fiable)
Exemple de SBOM SPDX
Voici un exemple de document SBOM SPDX pour le Qt Network Authorization module. Le fichier SBOM s’appelle « 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 figurent pas 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-NetworkAuthFormat CycloneDX
À partir de Qt 6.11, le processus de compilation crée, en option, des documents SBOM au format CycloneDX v1.6.
Pour forcer la génération au format CycloneDX, configurez Qt avec :
./configure -sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-requiredLa génération de documents CycloneDX nécessite les dépendances suivantes :
- Python version 3.9 ou plus récente
- Packages Python :
- cyclonedx-python-lib[json-validation]
- tomli
Vous pouvez utiliser l'outil ` pip ` de Python pour installer les paquets requis :
pip install 'cyclonedx-python-lib[json-validation]' tomliLes documents CycloneDX fournissent des informations similaires à celles des documents SPDX, notamment sur les composants, les licences, les dépendances et les métadonnées de sécurité.
Par rapport à SPDX, les informations CycloneDX contiennent moins de détails sur certains aspects tels que les licences et les types de relations.
Les documents SBOM CycloneDX installés portent des noms de fichiers au format : <module>-<version>.cdx.json.
Exemple de SBOM CycloneDX
Voici un exemple de document SBOM CycloneDX pour le Qt Network Authorization module. Le nom du fichier SBOM est qtnetworkauth-6.11.0.cdx.json et il se trouve dans le répertoire sbom de l’installation. Notez que le document SBOM contient plusieurs autres composants qui ne figurent pas 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"
}Les builds Yocto avec meta-qt6
Boot to Qt utilise la couche meta-qt6 pour compiler tous les modules Qt et les documents SBOM générés sont disponibles au format SPDX lors de l’installation de Boot to Qt via la Qt Online Installer. Le chemin d’installation dépend de la version de Qt et du matériel cible.
Par exemple, pour la cible Raspberry Pi, les documents SBOM .spdx se trouvent à l'emplacement suivant :
<INSTALL_DIR>/6.12.0/Boot2Qt/raspberrypi-armv8/toolchain/sysroots/cortexa53-poky-linux/usr/lib/sbom/Pour plus d’informations, consultez les pages suivantes :
Sujets connexes
- SPDX 2.3
- Wiki Qt - SBOM - génération de documents SBOM à partir des 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.