From e55277f26dbd802bf2c3cf40e61afb9eb1fdd27d Mon Sep 17 00:00:00 2001 From: "Nicholas R. Smith" Date: Thu, 3 Aug 2023 09:33:14 -0700 Subject: [PATCH] Expand deb cataloger to include opkg (#1985) * Add opkg info directory and status file to deb cataloger opkg uses the same or nearly the same metadata and structure as Debian: **/lib/opkg/status lists status information for all packages **/lib/opkg/info/opkg.conffiles is a list of configuration files **/lib/opkg/info/*.list contains files and directories installed by the package **/lib/opkg/info/*.preinst are scripts to run before installation **/lib/opkg/info/*.postinst are scripts to run after installation **/lib/opkg/info/*.postrm are scripts to run after package removal **/lib/opkg/info/*.control provides package metadata Signed-off-by: Nicholas R. Smith --------- Signed-off-by: Nicholas R. Smith Co-authored-by: Nicholas R. Smith --- syft/pkg/cataloger/deb/cataloger.go | 2 +- syft/pkg/cataloger/deb/cataloger_test.go | 2 ++ .../deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0 | 1 + .../cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status | 1 + 4 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0 create mode 100644 syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status diff --git a/syft/pkg/cataloger/deb/cataloger.go b/syft/pkg/cataloger/deb/cataloger.go index 70bd8e426..377ebd75e 100644 --- a/syft/pkg/cataloger/deb/cataloger.go +++ b/syft/pkg/cataloger/deb/cataloger.go @@ -14,5 +14,5 @@ func NewDpkgdbCataloger() *generic.Cataloger { return generic.NewCataloger(catalogerName). // note: these globs have been intentionally split up in order to improve search performance, // please do NOT combine into: "**/var/lib/dpkg/{status,status.d/*}" - WithParserByGlobs(parseDpkgDB, "**/var/lib/dpkg/status", "**/var/lib/dpkg/status.d/*") + WithParserByGlobs(parseDpkgDB, "**/var/lib/dpkg/status", "**/var/lib/dpkg/status.d/*", "**/lib/opkg/info/*", "**/lib/opkg/status") } diff --git a/syft/pkg/cataloger/deb/cataloger_test.go b/syft/pkg/cataloger/deb/cataloger_test.go index 348718896..2297247c7 100644 --- a/syft/pkg/cataloger/deb/cataloger_test.go +++ b/syft/pkg/cataloger/deb/cataloger_test.go @@ -168,6 +168,8 @@ func TestCataloger_Globs(t *testing.T) { expected: []string{ "var/lib/dpkg/status", "var/lib/dpkg/status.d/pkg-1.0", + "usr/lib/opkg/status", + "usr/lib/opkg/info/pkg-1.0", }, }, } diff --git a/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0 b/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0 new file mode 100644 index 000000000..35d7c2cbb --- /dev/null +++ b/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0 @@ -0,0 +1 @@ +bogus package diff --git a/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status b/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status new file mode 100644 index 000000000..6556d772f --- /dev/null +++ b/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status @@ -0,0 +1 @@ +bogus status