Leggere in inglese

Condividi tramite


Fatturazione software dei materiali in vcpkg

vcpkg genera una fattura software di materiali (SBOM) basata sulla specifica SPDX (Software Package Data Exchange). Tiene traccia di informazioni importanti usate per creare un pacchetto, ad esempio l'origine di origine, e mira a fornire ai consumer di pacchetti la trasparenza e l'integrità del software. Per altre informazioni, vedere questo post di blog su SBOM e SPDX .

vcpkg genera un file SPDX contenente le informazioni SBOM per ogni pacchetto installato. I file si trovano in <installed_dir>/<triplet>/share/<package name>/vcpkg.spdx.json. La directory di installazione dipende dal fatto che vcpkg sia in esecuzione in modalità manifesto o in modalità classica. Poiché un pacchetto può avere dipendenze diverse a seconda della piattaforma di destinazione, i file generati sono separati anche da triplet.

Campi specifici di vcpkg

I campi seguenti generati da vcpkg possono essere visualizzati in SBOM a seconda della modalità di compilazione del pacchetto.

name

Fa riferimento al nome del documento. Questo campo contiene il nome del pacchetto, triplet, la versione seguita dall'hash ABI usato per identificare il pacchetto.

Riferimento SPDX: campo Nome documento

creationInfo

Fa riferimento all'autore del documento vcpkg. Il creators campo contiene vcpkg seguito dalla versione.

Riferimento SPDX: campo Creator

relazioni

Contiene informazioni sulla relazione tra gli elementi SPDX di vcpkg. SPDXRef-port fa riferimento alla porta, SPDXRef-file-N fa riferimento a ogni file nella porta, incluso portfile.cmake e SPDXRef-binary fa riferimento al pacchetto binario. In vcpkg il pacchetto binario viene generato dalla porta.

Riferimento SPDX: campo Relazioni

packages

Fa riferimento a ogni pacchetto generato da vcpkg. SPDXRef-port fa riferimento alla porta e SPDXRef-binary fa riferimento al pacchetto binario e SPDXRef-resource fa riferimento a qualsiasi origine usata nel file di porta di vcpkg. vcpkg genera in modo euristico le informazioni di origine dall'oggetto portfile.cmake analizzando vcpkg_from_github, vcpkg_from_gitvcpkg_download_distfile e vcpkg_from_sourceforge le chiamate.

Informazioni di riferimento su SPDX: Informazioni sul pacchetto

files

Fa riferimento a ognuno dei file nella porta. Contiene un percorso relativo al file e un checksum.

Informazioni di riferimento su SPDX: informazioni sui file

Supporto di CicloneDX

vcpkg non supporta il formato SBOM CicloneDX predefinito. È consigliabile usare lo strumento dell'interfaccia della riga di comando Di CicloneDX per convertire i file JSON SPDX generati da vcpkg nel formato CicloneDX.

Ad esempio:

Console
cyclonedx convert --input-file vcpkg.spdx.json --input-format spdxjson --output-format json --output-file <file>

Alcune informazioni sulle dipendenze vcpkg potrebbero andarsi perse durante la conversione. Per altri dettagli, vedere la [documentazione di CicloneDX]((https://github.com/CycloneDX/cyclonedx-cli?tab=readme-ov-file#spdx-format).