このページでは

ソフトウェア部品表

ソフトウェア部品表(Software Bill of Materials:SBOM)ドキュメントとは、インストールされたファイル、著作権、ライセンス、バージョン、ソースリポジトリ、その他 Qt インストールに関する関連情報の宣言です。SBOM ドキュメントは、Qt ユーザーやその他の関係者にコンポーネント情報を共有することで、サプライチェーン管理を容易にします。Qt の SBOM ドキュメントは、ライセンスコンプライアンスとセキュリティ脆弱性管理に特に役立ちます。

Qt 6.8以降、Qtのビルドシステムは、異なるプラットフォームやビルド構成に合わせてSBOMドキュメントを生成することができます。Qt Online Installer は、各 Qt バージョンのインストールディレクトリにあるsbom ディレクトリに SBOM ドキュメントを配置します。例えば、Qt 6.11.0 Android arm64-v8a インストールの場合、SBOM ドキュメントは次の場所にあります:

<INSTALL_DIR>/6.11.0/android_arm64_v8a/sbom/

Qt ソースから SBOM ドキュメントを生成するには、-sbomconfigureオプションとして設定します。

例えば、configureステップの間に:

./configure  -sbom

SBOM ドキュメントの生成は、通常の Qt インストールの一部となります:

ninja install
cmake --install .

このビルドプロセスは、SPDXフォーマットで指定されたJSONとtag:value フォーマットでSBOMドキュメントを作成します。

Qt 6.11から、ビルドプロセスはオプションでCycloneDXSBOMドキュメントを作成します。

Qt のビルド手順の詳細については、「Qt ソースのビルド」と「Qt 設定オプション」を参照してください。

Qtの開発者とメンテナーのために、SBOM WikiにSBOMドキュメントを作成するための具体的な情報があります。

REUSE準拠のQtモジュール

Qt モジュールはQt 6.9 からREUSE に準拠しています。具体的には、ライセンス文書とライセンスチェックは Qt の開発プロセスの一部です。様々なツールがQtのリポジトリをチェックし、ファイルや外部からのREUSE.tomlファイルでライセンスをチェックします。

reuse-toolは REUSE への準拠をチェックし、ソース SBOM を生成します。内部ツールは、生成されたソース SBOM ファイルが Qt ライセンス仕様に準拠しているかどうかをチェックします。

Qt ソース内のライセンス文書に関する詳細は、以下を参照してください:

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.11.0:*:*:*:*:*:*:*

    詳細については、CPE仕様のページを参照してください。

  • PURL(パッケージURL) - CPEの代替となるPURLは、以下のフォーマットを使用する識別子スキームである:
    scheme:type/namespace/name@version?qualifiers#subpath

    パッケージのPURLの例は以下の通りです:

    pkg:generic/TheQtCompany/qtnetworkauth@6.11.0

    詳しくはパッケージURLのページをご覧ください。

  • 依存関係のようなパッケージ間の関係。

    例えば、依存関係の一覧のDEPENDS_ON 。有効な関係タイプの一覧は、SPDX 2.3の第11節を参照してください。

サードパーティのSPDXパッケージ

サードパーティコンポーネントのSPDXパッケージには、通常少なくとも以下の内容が含まれます:

  • 名前、バージョン、説明
  • ホームページとダウンロード場所
  • Qt での使用方法
  • ライセンスと著作権情報
  • そのコンポーネントがセキュリティクリティカルであるかどうか - そのコードが信頼できないコードを処理する可能性があるかどうか

SPDX SBOMの例

以下は、Qt Network AuthorizationモジュールのSPDX SBOM文書の例です。SBOMファイル名はqtnetworkauth-6.9.0.spdx で、インストールのsbom ディレクトリにあります。SBOM文書には、以下の例に記載されていない他のパッケージがいくつか含まれていることに注意してください。

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

CycloneDXフォーマット

Qt 6.11から、ビルドプロセスはオプションでCycloneDX v1.6フォーマットのSBOMドキュメントを作成します。

CycloneDX の生成を必要とするには、Qt を次のように設定します:

./configure -sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-required

CycloneDXドキュメントの生成には、以下の依存関係が必要です:

  • Pythonバージョン3.9以降
  • Pythonパッケージ:
    • cyclonedx-python-lib[json-validation]。
    • tomli

Pythonのpip ツールを使用して、必要なパッケージをインストールできます:

pip install 'cyclonedx-python-lib[json-validation]' tomli

CycloneDXドキュメントは、コンポーネント、ライセンス、依存関係、セキュリティメタデータなど、SPDXドキュメントと同様の情報を提供します。

SPDXと比較すると、CycloneDXの情報には、ライセンスやリレーションシップの種類など、一部の領域に関する詳細があまり含まれていません。

インストールされたCycloneDX SBOMドキュメントのファイル名は、<module>-<version>.cdx.json.

CycloneDX SBOMの例

以下は、Qt Network Authorizationモジュールの CycloneDX SBOM 文書の例です。SBOM ファイル名はqtnetworkauth-6.11.0.cdx.json で、インストールのsbom ディレクトリにあります。SBOMドキュメントには、以下の例に記載されていない他のコンポーネントがいくつか含まれていることに注意してください。

{
  "components": [
    {
      "bom-ref": "SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth",
      "copyright": "Copyright (C) The Qt Company Ltd. and other contributors.",
      "cpe": "cpe:2.3:a:qt:qt:6.11.0:*:*:*:*:*:*:*",
      "licenses": [
        {
          "license": {
            "acknowledgement": "concluded",
            "id": "GPL-3.0-only"
          }
        }
      ],
      "name": "NetworkAuth",
      "properties": [
        {
          "name": "qt:sbom:entity_type",
          "value": "QT_MODULE"
        },
        {
          "name": "qt:sbom:is_qt_entity_type",
          "value": "true"
        },
        {
          "name": "spdx:external-reference:package-manager:purl",
          "value": "pkg:github/qt/qtnetworkauth?library_name=NetworkAuth#src/oauth"
        },
        {
          "name": "spdx:external-reference:security:cpe23",
          "value": "cpe:2.3:a:qt:qtnetworkauth:6.11.0:*:*:*:*:*:*:*"
        }
      ],
      "purl": "pkg:generic/TheQtCompany/qtnetworkauth-NetworkAuth?library_name=NetworkAuth&vcs_url=https://code.qt.io/qt/qtnetworkauth.git#src/oauth",
      "supplier": {
        "name": "TheQtCompany",
        "url": [
          "https://qt.io"
        ]
      },
      "type": "library",
      "version": "6.11.0"
    }
  ],
  "dependencies": [
    {
      "dependsOn": [
        "SPDXRef-Package-qtbase-qt-module-Core",
        "SPDXRef-Package-qtbase-qt-module-Gui",
        "SPDXRef-Package-qtbase-qt-module-Network",
        "SPDXRef-Package-qtbase-qt-module-PlatformModuleInternal"
      ],
      "ref": "SPDXRef-Package-qtnetworkauth-qt-module-NetworkAuth"
    }
  ],
  "serialNumber": "urn:uuid:ce0d41b5-0fe8-5383-bf31-ff353a05b8be",
  "version": 1,
  "$schema": "http://cyclonedx.org/schema/bom-1.6.schema.json",
  "bomFormat": "CycloneDX",
  "specVersion": "1.6"
}

meta-qt6を使用したYoctoビルド

Boot to QtQt Online Installerを介してBoot to Qt をインストールする場合、生成された SBOM ドキュメントは SPDX ファイルとして利用できます。 インストールパスは Qt のバージョンとターゲットハードウェアに依存します。

例えば、Raspberry Pi ターゲットの場合、SBOM .spdx ドキュメントは次の場所にあります:

<INSTALL_DIR>/6.11.0/Boot2Qt/raspberrypi-armv8/toolchain/sysroots/cortexa53-poky-linux/usr/lib/sbom/

詳細については、以下のページを参照してください:

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