ソフトウェア部品表
ソフトウェア部品表(Software Bill of Materials:SBOM)ドキュメントとは、インストールされたファイル、著作権、ライセンス、バージョン、ソースリポジトリ、および Qt インストールに関するその他の関連情報の宣言です。SBOM ドキュメントは、Qt ユーザーやその他の関係者にコンポーネント情報を共有することで、サプライチェーン管理を容易にします。Qt の SBOM ドキュメントは、ライセンスコンプライアンスとセキュリティ脆弱性管理に特に役立ちます。
Qt 6.8 以降、Qt のビルドシステムは異なるプラットフォームやビルド構成に合わせて SBOM ドキュメントを生成することができます。Qtのビルドシステムは Qt Online Installerは、SBOM ドキュメントを各 Qt バージョンのインストールディレクトリにあるsbom
ディレクトリに配置します。例えば、Qt 6.8.2 Android arm64-v8aのインストールでは、SBOMドキュメントは次の場所にあります:
<INSTALL_DIR>/6.8.2/android_arm64_v8a/sbom/
Qt ソースから SBOM ドキュメントを生成するには、-sbom
をconfigureオプションとして設定します。
例えば、configureステップの間に:
./configure -sbom
SBOMドキュメントの生成は、通常のQtインストールの一部になります:
ninja install cmake --install .
Qt 6.8 では、このビルドプロセスによって、SPDXフォーマットで指定された JSON およびtag:value
フォーマットの SBOM ドキュメントが作成されます。
Qt のビルド手順の詳細については、「Qt ソースのビルド」と「Qt 設定オプション」を参照してください。
Qtの開発者とメンテナーのために、SBOM WikiにSBOMドキュメントを作成するための特定の情報があります。
SPDXフォーマット
SBOMドキュメントはSPDX 2.3形式です。ドキュメントはQtモジュールに関する情報で始まる。SPDXパッケージは個別の項目として続く。
Qtのインストールでは、SPDXパッケージは以下のようになります:
- Qt モジュール
- Qt プラグイン -プラットフォームプラグインなど
- Qt ツール -mocなど
- QtアプリケーションQt Designer
- サードパーティコンポーネント -Qt で使用されるサードパーティのコードを参照してください。
- システムライブラリ依存 -Qt 設定オプション
SPDX パッケージには、通常少なくとも以下の情報が含まれています:
- パッケージ名、バージョン、サプライヤ名、ビルド情報
- Qt License Attribution - Qt 製品は、異なる商用ライセンスやオープンソースライセンスの下にある場合があります。例えば、パッケージには複数のライセンスが記載されている場合があります:
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
Qt Licensingにライセンスオプションに関する詳細情報があります。
- 著作権表示 - SBOM ドキュメントには、Qt のソース著作権、およびサードパーティのソースまたは作者の著作権が含まれています。
- CPE(Common Platform Enumeration) - パッケージ識別のための命名スキーム。Qt では、SBOM CPE 形式が一般的である:
cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>:<sw_edition>:<target_sw>:<target_hw>:<other>
パッケージの識別子の例は Qt Network Authorizationパッケージの識別子の例:
cpe:2.3:a:qt:qtnetworkauth:6.8.0:*:*:*:*:*:*:*
詳細については、CPE仕様のページを参照してください。
- PURL (パッケージURL) - CPEの代替となるPURLは、以下のフォーマットを使用する識別子スキームです:
scheme:type/namespace/name@version?qualifiers#subpath
パッケージのPURLの例は以下の通りです:
pkg:generic/TheQtCompany/qtnetworkauth@6.8.0
詳しくはパッケージURLのページをご覧ください。
- 依存関係のようなパッケージ間の関係。
例えば、依存関係の一覧の
DEPENDS_ON
。有効な関係タイプの一覧は、SPDX 2.3の第11節を参照してください。
サードパーティのSPDXパッケージ
サードパーティコンポーネントのSPDXパッケージには、通常少なくとも以下の内容が含まれます:
- 名前、バージョン、説明
- ホームページとダウンロード場所
- Qt での使用方法
- ライセンスと著作権情報
- そのコンポーネントがセキュリティクリティカルであるかどうか - そのコードが信頼できないコードを処理する可能性があるかどうか
SBOMの例
モジュールのSBOM文書の例を以下に示します。 Qt Network AuthorizationモジュールのSBOM文書の例です。SBOM ファイル名はqtnetworkauth-6.8.0.spdx
で、インストールのsbom
ディレクトリにあります。SBOM文書には、以下の例に記載されていない他のパッケージがいくつか含まれていることに注意してください。
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
関連トピック
- SPDX 2.3
- Qt Wiki - SBOM- Qt ソースから SBOM ドキュメントを生成する
- Qt で使用されるサードパーティのコード
© 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.