Software-Materialliste

Ein Software Bill of Materials (SBOM) Dokument ist eine Deklaration von installierten Dateien, Copyrights, Lizenzen, Versionen, Source Repositories und anderen relevanten Informationen über eine Qt-Installation. Die SBOM-Dokumente erleichtern das Management der Lieferkette, indem sie den Qt-Benutzern und anderen interessierten Parteien Informationen über die Komponenten zur Verfügung stellen. Die SBOM-Dokumente von Qt sind besonders nützlich für die Einhaltung von Lizenzbestimmungen und das Management von Sicherheitslücken.

Ab Qt 6.8 kann das Qt-Build-System SBOM-Dokumente erzeugen, die auf verschiedene Plattformen und Build-Konfigurationen zugeschnitten sind. Die Qt Online Installer legt die SBOM-Dokumente in einem Verzeichnis sbom ab, das sich im Installationsverzeichnis der jeweiligen Qt-Version befindet. Für die Qt 6.8.2 Android arm64-v8a-Installation befinden sich die SBOM-Dokumente zum Beispiel unter:

<INSTALL_DIR>/6.8.2/android_arm64_v8a/sbom/

Um SBOM-Dokumente selbst aus den Qt-Quellen zu generieren, setzen Sie -sbom als configure-Option.

Zum Beispiel während des configure-Schrittes:

./configure  -sbom

Die Erzeugung von SBOM-Dokumenten wird dann Teil der regulären Qt-Installation:

ninja install
cmake --install .

In Qt 6.8 erzeugt dieser Build-Prozess SBOM-Dokumente im JSON- und tag:value -Format, wie vom SPDX-Format vorgegeben.

Siehe Qt-Quellen bauen und Qt-Konfigurationsoptionen für weitere Informationen über den Qt-Bauvorgang.

Für Qt-Entwickler und -Maintainer bietet das SBOM-Wiki spezielle Informationen zur Erstellung von SBOM-Dokumenten.

SPDX-Format

Die SBOM-Dokumente liegen im SPDX 2.3-Format vor. Ein Dokument beginnt mit Informationen über das Qt-Modul. Die SPDX-Pakete folgen als separate Einträge.

Für eine Qt-Installation kann ein SPDX-Paket ein sein:

Ein SPDX-Paket enthält in der Regel mindestens:

  • Paketname, Version, Herstellername und Build-Informationen
  • Qt License Attribution - ein Qt-Produkt kann unter verschiedenen kommerziellen oder Open-Source-Lizenzen stehen. Zum Beispiel kann ein Paket mehrere abgeschlossene Lizenzen auflisten:
    LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

    Die Qt-Lizenzierung enthält weitere Informationen über Lizenzierungsoptionen.

  • Copyright-Hinweise - SBOM-Dokumente enthalten Copyrights von Qt-Quellen und Copyrights von Drittanbietern oder Autoren.
  • CPE (Common Platform Enumeration) - ein Benennungsschema zur Identifizierung von Paketen. Für Qt ist das SBOM-CPE-Format typisch:
    cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>:<sw_edition>:<target_sw>:<target_hw>:<other>

    Eine Beispielkennung für ein Qt Network Autorisierungspaket ist:

    cpe:2.3:a:qt:qtnetworkauth:6.8.0:*:*:*:*:*:*:*

    Weitere Informationen finden Sie auf der Seite CPE-Spezifikation.

  • PURL (Paket-URL) - eine Alternative zu CPE, PURL ist ein Bezeichnungsschema, das das folgende Format verwendet:
    scheme:type/namespace/name@version?qualifiers#subpath

    Ein Beispiel für eine PURL für ein Paket ist:

    pkg:generic/TheQtCompany/qtnetworkauth@6.8.0

    Weitere Informationen finden Sie auf der Seite Paket-URL.

  • Paketbeziehungen zwischen Paketen wie z. B. Abhängigkeiten.

    Zum Beispiel die DEPENDS_ON für die Auflistung einer Abhängigkeitsbeziehung. In Klausel 11 der SPDX 2.3 finden Sie eine Liste der gültigen Beziehungstypen.

SPDX-Pakete von Drittanbietern

Ein SPDX-Paket für eine Komponente eines Drittanbieters enthält in der Regel mindestens:

  • Name, Version und Beschreibung
  • Homepage und Downloadort
  • Verwendung in Qt
  • Lizenz- und Copyright-Informationen
  • Ob die Komponente sicherheitskritisch ist - der Code kann nicht vertrauenswürdigen Code verarbeiten

SBOM Beispiel

Im Folgenden finden Sie ein Beispiel für ein SBOM-Dokument für das Modul Qt Network Authorization. Der SBOM-Dateiname lautet qtnetworkauth-6.8.0.spdx und befindet sich im Verzeichnis sbom der Installation. Beachten Sie, dass das SBOM-Dokument mehrere andere Pakete enthält, die im folgenden Beispiel nicht aufgeführt sind.

SPDXVersion: SPDX-2.3
DataLicense: CC0-1.0
SPDXID: SPDXRef-DOCUMENT
DocumentName: qtnetworkauth-6.8.0
DocumentNamespace: https://qt.io/spdxdocs/qtnetworkauth-6.8.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.8.0 SHA1: 3dbc51259a07d458524a976da2e9607a76fab7e7

PackageName: NetworkAuth
SPDXID: SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth
PackageDownloadLocation: git://code.qt.io/qt/qtnetworkauth.git
PackageVersion: 6.8.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.8.0:*:*:*:*:*:*:*
ExternalRef: SECURITY cpe23Type cpe:2.3:a:qt:qt:6.8.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

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