Lista de materiales de software
Un documento Software Bill of Materials (SBOM) es una declaración de archivos instalados, derechos de autor, licencias, versiones, repositorios de fuentes y otra información relevante sobre una instalación de Qt. Los documentos SBOM facilitan la gestión de la cadena de suministro compartiendo información sobre los componentes con los usuarios de Qt y otras partes interesadas. Los documentos SBOM de Qt son especialmente útiles para el cumplimiento de licencias y la gestión de vulnerabilidades de seguridad.
A partir de Qt 6.8, el sistema de compilación de Qt puede generar documentos SBOM adaptados a diferentes plataformas y configuraciones de compilación. El Qt Online Installer coloca los documentos SBOM en un directorio sbom ubicado en el directorio de instalación de la versión respectiva de Qt. Por ejemplo, para la instalación de Qt 6.11.0 Android arm64-v8a, los documentos SBOM se encuentran en:
<INSTALL_DIR>/6.11.0/android_arm64_v8a/sbom/
Para generar tú mismo los documentos SBOM a partir de las fuentes de Qt, establece -sbom como opción de configuración.
Por ejemplo, durante el paso configure:
./configure -sbom
La generación de documentos SBOM se convierte entonces en parte de la instalación normal de Qt:
ninja install cmake --install .
Este proceso de compilación crea documentos SBOM en formato JSON y tag:value como se especifica en el formato SPDX.
A partir de Qt 6.11, el proceso de compilación crea opcionalmente documentos SBOM de CycloneDX.
Ver Building Qt Sources y Qt Configure Options para más información sobre el procedimiento de compilación de Qt.
Para los desarrolladores y mantenedores de Qt, el Wiki SBOM tiene información específica para la creación de documentos SBOM.
Módulos Qt compatibles con REUSE
Losmódulos Qt son compatibles con REUSE a partir de Qt 6.9. En concreto, la documentación de licencias y las comprobaciones de licencias forman parte del proceso de desarrollo de Qt. Varias herramientas comprueban los repositorios de Qt en busca de licencias en archivos o externamente en archivos REUSE.toml.
La herramienta reuse comprueba el cumplimiento de REUSE y genera SBOMs de código fuente. Una herramienta interna comprueba que los archivos SBOM fuente generados cumplen con la especificación de licencia de Qt.
Para más información sobre la documentación de licencias en los fuentes de Qt, visite lo siguiente:
Formato SPDX
Los documentos SBOM están en formato SPDX 2.3. Un documento comienza con información sobre el módulo Qt. Los paquetes SPDX siguen como entradas separadas.
Para una instalación Qt, un paquete SPDX puede ser un:
- Módulo Qt
- Plugin Qt - por ejemplo, plugins de plataforma
- Herramienta Qt - por ejemplo, moc
- Aplicación Qt - por ejemplo, Qt Widgets Designer
- Componente de terceros - véase Código de terceros utilizado en Qt
- Dependencia de la biblioteca del sistema - Opciones de configuración de Qt
Un paquete SPDX suele contener al menos:
- Nombre del paquete, versión, nombre del proveedor e información de compilación
- Atribución de la licencia Qt - un producto Qt puede estar bajo diferentes licencias comerciales o de código abierto. Por ejemplo, un paquete puede listar varias licencias concluidas:
LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
La Licencia Q t tiene más información sobre las opciones de licencia.
- Avisos de Copyright - los documentos SBOM incluyen copyrights de fuentes Qt y copyrights de terceras fuentes o autores.
- CPE (Common Platform Enumeration) - un esquema de nomenclatura para la identificación de paquetes. Para Qt, el formato SBOM CPE es típicamente:
cpe:<cpe_version>:<part>:<vendor>:<product>:<version>:<update>:<edition>:<language>:<sw_edition>:<target_sw>:<target_hw>:<other>
Un ejemplo de identificador para un paquete Qt Network Authorization paquete es:
cpe:2.3:a:qt:qtnetworkauth:6.11.0:*:*:*:*:*:*:*
Para más información, consulte la página Especificación CPE.
- PURL (URL del paquete): una alternativa a CPE, PURL es un esquema identificador que utiliza el siguiente formato:
scheme:type/namespace/name@version?qualifiers#subpath
Un ejemplo de PURL para un paquete es:
pkg:generic/TheQtCompany/qtnetworkauth@6.11.0
Para más información, página URL del paquete.
- Relaciones entre paquetes, como las dependencias.
Por ejemplo,
DEPENDS_ONpara listar una relación de dependencia. Consulte la cláusula 11 de SPDX 2.3 para obtener una lista de tipos de relación válidos.
Paquetes SPDX de terceros
Un paquete SPDX para un componente de terceros suele contener al menos:
- Nombre, versión y descripción
- Página de inicio y ubicación de descarga
- Uso en Qt
- Información sobre licencia y copyright
- Si el componente es crítico para la seguridad - el código puede procesar código no fiable
Ejemplo de SPDX SBOM
A continuación se muestra un ejemplo de documento SPDX SBOM para el módulo Qt Network Authorization módulo. El nombre del archivo SBOM es qtnetworkauth-6.9.0.spdx y se encuentra en el directorio sbom de la instalación. Tenga en cuenta que el documento SBOM contiene varios paquetes más que no aparecen en el siguiente ejemplo.
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
Formato CycloneDX
A partir de Qt 6.11, el proceso de compilación crea opcionalmente documentos SBOM en formato CycloneDX v1.6.
Para requerir la generación de CycloneDX, configure Qt con:
./configure -sbom -sbom-cyclonedx-v1_6 -sbom-cyclonedx-v1_6-required
La generación de documentos CycloneDX requiere las siguientes dependencias:
- Python versión 3.9 o posterior
- Paquetes de Python:
- cyclonedx-python-lib[json-validation]
- tomli
Puede utilizar la herramienta pip de Python para instalar los paquetes necesarios:
pip install 'cyclonedx-python-lib[json-validation]' tomli
Los documentos CycloneDX proporcionan información similar a los documentos SPDX, incluyendo componentes, licencias, dependencias y metadatos de seguridad.
En comparación con SPDX, la información de CycloneDX contiene menos detalles sobre algunas áreas como licencias y tipos de relación.
Los documentos SBOM de CycloneDX instalados tienen nombres de archivo con el formato: <module>-<version>.cdx.json.
Ejemplo de SBOM de CycloneDX
A continuación se muestra un ejemplo de documento SBOM de CycloneDX para el módulo Qt Network Authorization de CycloneDX. El nombre de archivo SBOM es qtnetworkauth-6.11.0.cdx.json y se encuentra en el directorio sbom de la instalación. Tenga en cuenta que el documento SBOM contiene otros componentes que no aparecen en el siguiente ejemplo.
{
"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 construye con meta-qt6
Boot to Qt utiliza la capa meta-qt6 para compilar todos los módulos Qt y los documentos SBOM generados están disponibles como archivos SPDX al instalar Boot to Qt a través de Qt Online Installer. La ruta de instalación depende de la versión de Qt y del hardware de destino.
Por ejemplo, para el objetivo Raspberry Pi, los documentos SBOM .spdx están en:
<INSTALL_DIR>/6.11.0/Boot2Qt/raspberrypi-armv8/toolchain/sysroots/cortexa53-poky-linux/usr/lib/sbom/
Para más información, visita las siguientes páginas:
Temas relacionados
- SPDX 2.3
- Qt Wiki - SBOM - generando documentos SBOM a partir de fuentes Qt
- Código de terceros utilizado en Qt
© 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.