Software-Materialliste
Ein Software Bill of Materials (SBOM) Dokument ist eine Erklärung der installierten Dateien, Copyrights, Lizenzen, Versionen, Quellcode-Repositories und anderer relevanter Informationen über eine Qt-Installation. Die SBOM-Dokumente erleichtern die Verwaltung 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.9.1 Android arm64-v8a-Installation befinden sich die SBOM-Dokumente zum Beispiel unter:
<INSTALL_DIR>/6.9.1/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 .
Dieser Build-Prozess erzeugt 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.
REUSE-konforme Qt-Module
Qt-Module sind ab Qt 6.9 REUSE-kompatibel. Insbesondere die Lizenzdokumentation und die Lizenzprüfung sind Teil des Qt-Entwicklungsprozesses. Verschiedene Werkzeuge prüfen Qt-Repositories auf Lizenzen in Dateien oder extern in REUSE.toml-Dateien.
Das reuse-tool prüft auf REUSE-Konformität und generiert Source-SBOMs. Ein internes Tool prüft, ob die generierten Quell-SBOM-Dateien mit der Qt-Lizenzspezifikation übereinstimmen.
Weitere Informationen über die Dokumentation der Lizenzen in den Qt-Quellen finden Sie im Folgenden:
SPDX-Format
Die SBOM-Dokumente liegen im SPDX 2.3 Format vor. Ein Dokument beginnt mit Informationen über das Qt-Modul. Es folgen SPDX-Pakete als separate Einträge.
Für eine Qt-Installation kann ein SPDX-Paket ein:
- Qt-Modul
- Qt-Plugin - zum Beispiel Plattform-Plugins
- Qt-Werkzeug - zum Beispiel moc
- Qt-Anwendung - zum Beispiel, Qt Widgets Designer
- Komponente eines Drittanbieters - siehe in Qt verwendeter Code von Drittanbietern
- Systembibliotheks-Abhängigkeit - Qt Configure Options
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.9.1:*:*:*:*:*:*:*
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.9.1
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.9.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.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
Yocto kompiliert mit meta-qt6
Boot to Qt verwendet die meta-qt6-Schicht, um alle Qt-Module zu bauen und die generierten SBOM-Dokumente sind als SPDX-Dateien verfügbar, wenn Sie Boot to Qt über die Qt Online Installer. Der Installationspfad hängt von der Qt-Version und der Zielhardware ab.
Für das Raspberry Pi-Ziel sind die SBOM .spdx-Dokumente zum Beispiel unter:
<INSTALL_DIR>/6.9.1/Boot2Qt/raspberrypi-armv8/toolchain/sysroots/cortexa53-poky-linux/usr/lib/sbom/
Weitere Informationen finden Sie auf den folgenden Seiten:
Verwandte Themen
- SPDX 2.3
- Qt Wiki - SBOM - Erzeugen von SBOM-Dokumenten aus Qt-Quellen
- In Qt verwendeter Code von Drittanbietern
© 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.