Description
Hello! I'm the author of PEP 770 which allows shipping SBOM files inside a Python package archive. PEP 770 is approaching provisional status and adds a new Metadata-Version, so the following work detailed below might take some time before it's usable end-to-end by PyPI and Python package builders.
I propose recording the software ID and provenance for the software libraries that are "repaired" and bundled into Python wheels for manylinux compliance.
Looking at many widely used binary Python packages, auditwheel and the bundling of libraries is quite common! This means there'd be value in recording this information automatically through auditwheel where possible.
This would look like:
- If the operating system is supported:
- For each library being repaired:
- Look up which package provides the package path
- Record the package name, version, and other identifiers into an SBOM file
- Add the SBOM file into the Python wheel, adding the
Sbom-File
field to the Python package metadata.
I've created a rudimentary patch to auditwheel in the past that uses the above approach and have seen positive results with the SBOM/SCA tools Syft and Grype which can detect and report on the bundled software.
Not all software is automatable in this way, this only would cover software libraries that are distributed through a packaging tool like yum
or rpm
.
Activity