spdxtool(1)

spdxtool1

A tool for generating spdx lite 3.0.1 profile software bills of material document

Usage

spdxtool [options] module ...

Overview

spdxtool is a program which generates a JSON-LD formatted SPDX Lite 3.0.1 software bill of materials (SBOM) for a given set of pkg-config modules. The output of this tool can then be translated into other SBOM formats as necessary.

More documentation about SDPX 3.0.1 can be found from: https://spdx.github.io/spdx-spec/v3.0.1/

The options are as follows:

--about

Print the version number, the Copyright notice, and the license of the spdxtool program to standard output and exit. Most other options and all command line arguments are ignored.

--version

Print the version number of the spdxtool program to standard output and exit. Most other options and all command line arguments are ignored.

--agent-name

Set agent name-property in /Core/Agent-class. Default is 'Default'

--creation-time

Set create-property time in /Core/CreationInfo-class. SPDX documentation recommends using ISO 8601-formatted time which is: YYYY-MM-DDThh:mm:ssZ. Default is document creation time. This takes precedence over the SOURCE_DATE_EPOCH environment variable.

--creation-id

Set creation ID in /Core/CreationInfoc-class. As ID in creation info mainly have special format and it's default is '_:creationinfo_1'.

--define-variable=varname=value

Define varname as value. Variables are used in query output, and some modules' results may change based on the presence of a variable definition.

Environment

PKG_CONFIG_DEBUG_SPEW

If set, print debugging messages to stderr.

PKG_CONFIG_IGNORE_CONFLICTS

If set, ignore Conflicts rules in modules. Has the same effect as the --ignore-conflicts option in pkgconf(1)

PKG_CONFIG_LIBDIR

A colon-separated list of low-priority directories where pc(5) files are looked up. The module search path is constructed by appending this list to PKG_CONFIG_PATH, which enjoys higher priority. If PKG_CONFIG_LIBDIR is not defined, the default list compiled into the spdxtool program from the PKG_DEFAULT_PATH preprocessor macro is appended instead. If PKG_CONFIG_LIBDIR is defined but empty, nothing is appended.

PKG_CONFIG_MAXIMUM_TRAVERSE_DEPTH

Impose a limit on the allowed depth in the dependency graph.

PKG_CONFIG_PATH

A colon-separated list of high-priority directories where pc(5) files are looked up.

PKG_CONFIG_PRELOADED_FILES

Colon-separated list of pc(5) files which are loaded before any other pkg-config files. These packages are given highest priority over any other pc(5) files that would otherwise provide a given package.

SOURCE_DATE_EPOCH

If set, and the --creation-time option is not given, the creation time in /Core/CreationInfo-class is derived from this UNIX timestamp instead of the current time, allowing for reproducible SBOM generation.

Exit status

The spdxtool utility exits 0 on success, and >0 if an error occurs.

Examples

Generating an SBOM for the package named foo:

$ spdxtool foo
{
@context: https://spdx.org/rdf/3.0.1/spdx-context.jsonld,
@graph: [
{
type: Agent,
creationInfo: _:creationinfo_1,
spdxId: https://github.com/pkgconf/pkgconf/Agent/default,
name: Default
},
{
type: CreationInfo,
@id: _:creationinfo_1,
[...]

From pkgconf 3.0.10-1 in Arch Linux 2026-11-01. Parsed by carta from the page's mdoc source.