Skip to content

Record repaired libraries' provenance into wheel with SBOM #541

Open
@sethmlarson

Description

@sethmlarson

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions