ソフトウェア部品表

ソフトウェア部品表(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 ドキュメントを生成するには、-sbomconfigureオプションとして設定します。

例えば、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パッケージは以下のようになります:

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

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