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:
- Qt-Modul
- Qt-Plugin - zum Beispiel Plattform-Plugins
- Qt-Werkzeug - zum Beispiel moc
- Qt-Anwendung - zum Beispiel, Qt 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.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
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.