type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd2
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/additionalToolSPDXRef-gnrtd3
created: 2026-07-04T06:18:35Z

type: CreationInfo
spec version: 3.0.1
created by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd0
created using: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/additionalToolSPDXRef-gnrtd1
created: 2026-07-04T06:18:35Z

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26604
type: Relationship
relationship type: hasDeclaredLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26605
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26600
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26601
type: Relationship
relationship type: hasConcludedLicense
to: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26602
from: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26600
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26605
type: simplelicensing_LicenseExpression
simplelicensing license expression: (MIT OR Unlicense)
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26602
type: simplelicensing_LicenseExpression
simplelicensing license expression: (MIT OR Unlicense)
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26603
type: Organization
name: http://openeuler.org
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26600
type: software_Package
supplied by: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/SPDXRef-gnrtd26603
software download location: NOASSERTION
summary: Fast sprintf, snprintf for C/C++
software home page: https://github.com/nothings/stb
description: This is a full sprintf replacement that supports everything that the C runtime sprintfs support, including float/double, 64-bit integers, hex floats, field parameters (%*.*d stuff), length reads backs, etc. Why would you need this if sprintf already exists? Well, first off, it’s *much* faster (see below). It’s also much smaller than the CRT versions code-space-wise. We’ve also added some simple improvements that are super handy (commas in thousands, callbacks at buffer full, for example). Finally, the format strings for MSVC and GCC differ for 64-bit integers (among other small things), so this lets you use the same format strings in cross platform code. It uses the standard single file trick of being both the header file and the source itself. If you just include it normally, you just get the header file function definitions. To get the code, you include it from a C or C++ file and define STB_SPRINTF_IMPLEMENTATION first. It only uses va_args macros from the C runtime to do its work. It does cast doubles to S64s and shifts and divides U64s, which does drag in CRT code on most platforms. It compiles to roughly 8K with float support, and 4K without. As a comparison, when using MSVC static libs, calling sprintf drags in 16K.
name: stb_sprintf-devel
software source info: acquired package info from repodata DB: repodata/1878cc60a19e65efc93d1a539275c5a6799b0acbd7796ee105712c44cae47ab4-primary.sqlite.bz2
creation info: _:creationInfo_0

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/additionalToolSPDXRef-gnrtd3
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_1

spdx id: https://anchore.com/syft/dir/repo/openeuler/openEuler-24.03-LTS-SP4/EPOL/main/x86_64-f564cbdc-f776-4454-88c1-914c6d644e96-specv3/additionalToolSPDXRef-gnrtd1
type: Tool
name: syft-[not provided]
creation info: _:creationInfo_0