이 페이지에서

소프트웨어 부품 명세서(SBOM)

소프트웨어 부품 목록(SBOM) 문서는 Qt 설치와 관련된 설치된 파일, 저작권, 라이선스, 버전, 소스 저장소 및 기타 관련 정보를 명시한 문서입니다. SBOM 문서는 Qt 사용자 및 기타 이해 관계자에게 구성 요소 정보를 공유함으로써 공급망 관리를 용이하게 합니다. Qt의 SBOM 문서는 특히 라이선스 준수 및 보안 취약점 관리에 유용합니다.

Qt 6.8부터 Qt의 빌드 시스템은 다양한 플랫폼 및 빌드 구성에 맞춰 SBOM 문서를 생성할 수 있습니다. Qt Online Installer SBOM 문서는 해당 Qt 버전의 설치 디렉터리에 위치한 ` sbom ` 디렉터리에 저장됩니다. 예를 들어, Qt 6.12.0 Android arm64-v8a 설치의 경우 SBOM 문서는 다음 위치에 있습니다:

<INSTALL_DIR>/6.12.0/android_arm64_v8a/sbom/

Qt 소스 코드에서 직접 SBOM 문서를 생성하려면 configure 옵션으로 -sbom 을 설정하십시오.

예를 들어, configure 단계에서 다음과 같이 입력합니다:

./configure  -sbom

그러면 SBOM 문서 생성이 일반적인 Qt 설치 과정의 일부가 됩니다:

ninja install
cmake --install .

이 빌드 프로세스는 SPDX 형식에서 지정된 대로 JSON 및 tag:value 형식의 SBOM 문서를 생성합니다.

Qt 6.11부터는 빌드 과정에서 선택적으로 CycloneDX SBOM 문서를 생성합니다.

Qt 빌드 절차에 대한 자세한 내용은 Qt 소스 빌드 및 Qt 구성 옵션을 참조하십시오.

Qt 개발자 및 유지 관리자를 위해 SBOM 위키에는 SBOM 문서 생성에 대한 구체적인 정보가 제공됩니다.

REUSE를 준수하는 Qt 모듈

Qt 6.9부터Qt 모듈은 REUSE를 준수합니다. 구체적으로, 라이선스 문서화 및 라이선스 검사는 Qt 개발 프로세스의 일부입니다. 다양한 도구가 Qt 저장소에서 파일 내의 라이선스 또는 외부 REUSE.toml 파일의 라이선스를 확인합니다.

reuse-tool은 REUSE 준수 여부를 확인하고 소스 SBOM을 생성합니다. 내부 도구는 생성된 소스 SBOM 파일이 Qt 라이선스 사양을 준수하는지 확인합니다.

Qt 소스 내 라이선스 문서에 대한 자세한 내용은 다음을 참조하십시오.

SPDX 형식

SBOM 문서는 SPDX 2.3 형식으로 되어 있습니다. 문서는 Qt 모듈에 대한 정보로 시작되며, SPDX 패키지는 별도의 항목으로 이어집니다.

Qt 설치의 경우, SPDX 패키지는 다음 중 하나일 수 있습니다:

일반적으로 SPDX 패키지에는 최소한 다음이 포함됩니다:

  • 패키지 이름, 버전, 공급자 이름 및 빌드 정보
  • Qt 라이선스 표기 — Qt 제품은 서로 다른 상용 또는 오픈 소스 라이선스의 적용을 받을 수 있습니다. 예를 들어, 패키지에는 다음과 같이 여러 라이선스가 나열될 수 있습니다:
    LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only

    Qt 라이선싱 페이지에서 라이선스 옵션에 대한 자세한 정보를 확인할 수 있습니다.

  • 저작권 고지 - SBOM 문서에는 Qt 소스 코드의 저작권과 제3자 소스 또는 저작자의 저작권이 포함됩니다.
  • 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 인증 패키지의 식별자 예시는 다음과 같습니다:

    cpe:2.3:a:qt:qtnetworkauth:6.12.0:*:*:*:*:*:*:*

    자세한 내용은 CPE 사양 페이지를 참조하십시오.

  • PURL(패키지 URL) - CPE의 대안인 PURL은 다음 형식을 사용하는 식별자 체계입니다:
    scheme:type/namespace/name@version?qualifiers#subpath

    패키지의 PURL 예시는 다음과 같습니다:

    pkg:generic/TheQtCompany/qtnetworkauth@6.12.0

    자세한 내용은 패키지 URL 페이지를 참조하십시오.

  • 의존성과 같은 패키지 간의 관계.

    예를 들어, 의존성 관계를 나열하는 ‘ DEPENDS_ON ’을 참조하십시오. 유효한 관계 유형 목록은 SPDX 2.3의 제11조를 참조하십시오.

타사 SPDX 패키지

타사 구성 요소를 위한 SPDX 패키지에는 일반적으로 최소한 다음 내용이 포함됩니다:

  • 이름, 버전 및 설명
  • 홈페이지 및 다운로드 위치
  • Qt에서의 사용법
  • 라이선스 및 저작권 정보
  • 해당 컴포넌트가 보안상 중요한지 여부 — 코드가 신뢰할 수 없는 코드를 처리할 수 있음

SPDX SBOM 예시

다음은 Qt Network 인증 모듈에 대한 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 인증 모듈에 대한 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"
}

Yocto는 meta-qt6을 사용하여 빌드하며

Boot to Qt 는 meta-qt6 레이어를 사용하여 모든 Qt 모듈을 빌드하며, Boot to Qt 를 다음 경로를 통해 설치할 때 생성된 SBOM 문서는 SPDX 파일로 제공됩니다. Qt Online Installer. 설치 경로는 Qt 버전과 대상 하드웨어에 따라 다릅니다.

예를 들어, Raspberry Pi 대상의 경우 SBOM .spdx 문서는 다음 위치에 있습니다:

<INSTALL_DIR>/6.12.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.