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 }