Sur cette page

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 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

    Pour plus d'informations, voir la page URL du paquet.

  • Les relations entre les paquets, telles que les dépendances.

    Par exemple, le site DEPENDS_ON pour 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 :

© 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.