Skip to content

Drop whiteout/opaque files and warn when pkg lacks Name/Version#1017

Closed
jonasagx wants to merge 15 commits into
anchore:mainfrom
jonasagx:warn-python-pkg-without-basic-fields
Closed

Drop whiteout/opaque files and warn when pkg lacks Name/Version#1017
jonasagx wants to merge 15 commits into
anchore:mainfrom
jonasagx:warn-python-pkg-without-basic-fields

Conversation

@jonasagx
Copy link
Copy Markdown
Contributor

@jonasagx jonasagx commented May 27, 2022

This PR addresses two issues from #780

Syft indexes whiteout and opaque files

Addressed by:

  • Filtering those files out during directory resolver walk
  • Making use of stereoscope support for identifying whiteout and opaque files.
  • Added cli tests and integration tests

Questions

  • Should the filtering pattern be extended to ImageScheme?
  • By excluding files from file trees, and the final SBOM, does it create a security issue?
    • We can let the users decide what to do via syft's config files, using an exclusion pattern

Packages created without Name or Version don't give warnings

Name and Version are important fields, later used to generate CPEs, pURLs. We should warn when they are missing, since that will produce broken SBOMs

Addressed by:

  • Added warn logs to package SetID (that function already had some warnings, so it looks like an acceptable place)
  • Added integration tests to the warn messages
  • Removed log from GitHub format encoder in favor of SetID's warn log.

Fix: #780

Signed-off-by: Jonas Xavier jonasx@anchore.com

Name and Version are important fields that later are used to generate
CPEs, pURLs, we should warn about it.

Signed-off-by: Jonas Xavier <jonasx@anchore.com>
@jonasagx jonasagx marked this pull request as draft May 27, 2022 20:56
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
@jonasagx jonasagx changed the title Warn when Python pkg lacks basic fields Warn when pkg lacks Name and Version May 27, 2022
jonasagx added 2 commits May 27, 2022 15:33
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
func dependencyName(p pkg.Package) string {
purl, err := packageurl.FromString(p.PURL)
if err != nil {
log.Warnf("Invalid PURL for package: '%s' PURL: '%s' (%w)", p.Name, p.PURL, err)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This log line seems unnecessary with the new warning that works for all formats

@jonasagx jonasagx marked this pull request as ready for review May 27, 2022 23:04
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Comment thread syft/pkg/package.go

func (p *Package) SetID() {
if p.Name == "" {
log.Warnf("%s: missing package name, that is necessary for further metadata extraction. Please take a look at %s", p.FoundBy, p.Locations.ToSlice())
Copy link
Copy Markdown
Contributor Author

@jonasagx jonasagx May 27, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Warning log to inform user which package has missing Name and/or Version.

jonasagx added 2 commits May 29, 2022 17:18
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
@jonasagx jonasagx changed the title Warn when pkg lacks Name and Version Drop whiteout/opaque files and warn when pkg lacks Name/Version May 30, 2022
jonasagx added 7 commits May 29, 2022 22:34
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
@jonasagx jonasagx marked this pull request as draft May 30, 2022 20:09
Signed-off-by: Jonas Xavier <jonasx@anchore.com>
@jonasagx
Copy link
Copy Markdown
Contributor Author

Closing this PR in favor of #1021

@jonasagx jonasagx closed this May 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Python package Name and pURL have errors in CycloneDX output

1 participant