github.com/anchore/syft@v1.4.2-0.20240516191711-1bec1fc5d397/syft/pkg/cataloger/binary/elf_package.go (about)

     1  package binary
     2  
     3  import (
     4  	"github.com/anchore/packageurl-go"
     5  	"github.com/anchore/syft/syft/file"
     6  	"github.com/anchore/syft/syft/pkg"
     7  )
     8  
     9  func newELFPackage(metadata elfBinaryPackageNotes, locations file.LocationSet, licenses []pkg.License) pkg.Package {
    10  	p := pkg.Package{
    11  		Name:      metadata.Name,
    12  		Version:   metadata.Version,
    13  		Licenses:  pkg.NewLicenseSet(licenses...),
    14  		PURL:      packageURL(metadata),
    15  		Type:      pkg.BinaryPkg,
    16  		Locations: locations,
    17  		Metadata:  metadata.ELFBinaryPackageNoteJSONPayload,
    18  	}
    19  
    20  	p.SetID()
    21  
    22  	return p
    23  }
    24  
    25  func packageURL(metadata elfBinaryPackageNotes) string {
    26  	// TODO: what if the System value is not set?
    27  	return packageurl.NewPackageURL(
    28  		packageurl.TypeGeneric,
    29  		metadata.System,
    30  		metadata.Name,
    31  		metadata.Version,
    32  		nil,
    33  		"",
    34  	).ToString()
    35  }