diff --git a/.github/workflows/validations.yaml b/.github/workflows/validations.yaml
index 41363b2d876..862244d9bea 100644
--- a/.github/workflows/validations.yaml
+++ b/.github/workflows/validations.yaml
@@ -45,8 +45,8 @@ jobs:
- name: Restore RPM test-fixture cache
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 #v3.3.2
with:
- path: syft/pkg/cataloger/rpm/test-fixtures/rpms
- key: ${{ runner.os }}-unit-rpm-cache-${{ hashFiles( 'syft/pkg/cataloger/rpm/test-fixtures/rpms.fingerprint' ) }}
+ path: syft/pkg/cataloger/redhat/test-fixtures/rpms
+ key: ${{ runner.os }}-unit-rpm-cache-${{ hashFiles( 'syft/pkg/cataloger/redhat/test-fixtures/rpms.fingerprint' ) }}
- name: Restore go binary test-fixture cache
uses: actions/cache@704facf57e6136b1bc63b828d79edcd491f0ee84 #v3.3.2
diff --git a/DEVELOPING.md b/DEVELOPING.md
index ece0e5e9e46..f3b8edfbd75 100644
--- a/DEVELOPING.md
+++ b/DEVELOPING.md
@@ -202,6 +202,14 @@ From a high level catalogers have the following properties:
- _Packages created by the cataloger should not be mutated after they are created_. There is one exception made for adding CPEs to a package after the cataloging phase, but that will most likely be moved back into the cataloger in the future.
+Cataloger names should be unique and named with the following rules of thumb in mind:
+
+- Must end with `-cataloger`
+- Use lowercase letters, numbers, and hyphens only
+- Use hyphens to separate words
+- Catalogers for language ecosystems should start with the language name (e.g. `python-` for a cataloger that raises up python packages)
+- Distinct between when the cataloger is searching for evidence of installed packages vs declared packages. For example, there are currently two different gemspec-based catalogers, the `ruby-gemspec-cataloger` and `ruby-installed-gemspec-cataloger`, where the latter requires that the gemspec is found within a `specifications` directory (which means it was installed, not just at the root of a source repo).
+
#### Building a new Cataloger
Catalogers must fulfill the [`pkg.Cataloger` interface](https://github.com/anchore/syft/tree/v0.70.0/syft/pkg/cataloger.go) in order to add packages to the SBOM.
diff --git a/README.md b/README.md
index a64cbcf5516..19f6ca4b410 100644
--- a/README.md
+++ b/README.md
@@ -494,7 +494,7 @@ platform: ""
# set the list of package catalogers to use when generating the SBOM
# default = empty (cataloger set determined automatically by the source type [image or file/directory])
# catalogers:
-# - alpmdb-cataloger
+# - alpm-db-cataloger
# - apkdb-cataloger
# - binary-cataloger
# - cargo-auditable-binary-cataloger
@@ -502,10 +502,10 @@ platform: ""
# - conan-cataloger
# - dartlang-lock-cataloger
# - dotnet-deps-cataloger
-# - dpkgdb-cataloger
+# - dpkg-db-cataloger
# - elixir-mix-lock-cataloger
# - erlang-rebar-lock-cataloger
-# - go-mod-file-cataloger
+# - go-module-file-cataloger
# - go-module-binary-cataloger
# - graalvm-native-image-cataloger
# - haskell-cataloger
@@ -519,12 +519,12 @@ platform: ""
# - php-composer-installed-cataloger
# - php-composer-lock-cataloger
# - portage-cataloger
-# - python-index-cataloger
# - python-package-cataloger
+# - python-installed-package-cataloger
# - rpm-db-cataloger
-# - rpm-file-cataloger
+# - rpm-archive-cataloger
# - ruby-gemfile-cataloger
-# - ruby-gemspec-cataloger
+# - ruby-installed-gemspec-cataloger
# - rust-cargo-lock-cataloger
# - sbom-cataloger
# - spm-cataloger
diff --git a/Taskfile.yaml b/Taskfile.yaml
index 1d7cc633d5e..388a1a0433a 100644
--- a/Taskfile.yaml
+++ b/Taskfile.yaml
@@ -174,7 +174,9 @@ tasks:
unit:
desc: Run unit tests
- deps: [tmpdir]
+ deps:
+ - tmpdir
+ - fixtures
vars:
TEST_PKGS:
sh: "go list ./... | grep -v {{ .OWNER }}/{{ .PROJECT }}/test | tr '\n' ' '"
@@ -261,7 +263,7 @@ tasks:
- syft/pkg/cataloger/binary/test-fixtures/cache.fingerprint
- syft/pkg/cataloger/java/test-fixtures/java-builds/cache.fingerprint
- syft/pkg/cataloger/golang/test-fixtures/archs/binaries.fingerprint
- - syft/pkg/cataloger/rpm/test-fixtures/rpms.fingerprint
+ - syft/pkg/cataloger/redhat/test-fixtures/rpms.fingerprint
- syft/pkg/cataloger/kernel/test-fixtures/cache.fingerprint
- test/install/cache.fingerprint
- test/cli/test-fixtures/cache.fingerprint
@@ -275,7 +277,7 @@ tasks:
# for GO BINARY test fixtures
- "cd syft/pkg/cataloger/golang/test-fixtures/archs && make binaries.fingerprint"
# for RPM test fixtures
- - "cd syft/pkg/cataloger/rpm/test-fixtures && make rpms.fingerprint"
+ - "cd syft/pkg/cataloger/redhat/test-fixtures && make rpms.fingerprint"
# for Kernel test fixtures
- "cd syft/pkg/cataloger/kernel/test-fixtures && make cache.fingerprint"
# for INSTALL integration test fixtures
@@ -287,7 +289,7 @@ tasks:
desc: Generate test fixtures
cmds:
- "cd syft/pkg/cataloger/java/test-fixtures/java-builds && make"
- - "cd syft/pkg/cataloger/rpm/test-fixtures && make"
+ - "cd syft/pkg/cataloger/redhat/test-fixtures && make"
- "cd syft/pkg/cataloger/binary/test-fixtures && make"
show-test-image-cache:
diff --git a/syft/format/cyclonedxjson/test-fixtures/identify/1.3.json b/syft/format/cyclonedxjson/test-fixtures/identify/1.3.json
index cf14029772b..efecdcbd1ae 100644
--- a/syft/format/cyclonedxjson/test-fixtures/identify/1.3.json
+++ b/syft/format/cyclonedxjson/test-fixtures/identify/1.3.json
@@ -31,7 +31,7 @@
"properties": [
{
"name": "syft:package:foundBy",
- "value": "go-mod-file-cataloger"
+ "value": "go-module-file-cataloger"
},
{
"name": "syft:package:language",
diff --git a/syft/format/cyclonedxjson/test-fixtures/identify/1.4.json b/syft/format/cyclonedxjson/test-fixtures/identify/1.4.json
index a95bfc6bc99..35093947a5b 100644
--- a/syft/format/cyclonedxjson/test-fixtures/identify/1.4.json
+++ b/syft/format/cyclonedxjson/test-fixtures/identify/1.4.json
@@ -31,7 +31,7 @@
"properties": [
{
"name": "syft:package:foundBy",
- "value": "go-mod-file-cataloger"
+ "value": "go-module-file-cataloger"
},
{
"name": "syft:package:language",
diff --git a/syft/format/cyclonedxjson/test-fixtures/identify/1.5.json b/syft/format/cyclonedxjson/test-fixtures/identify/1.5.json
index e63a6f069aa..ff649640ee1 100644
--- a/syft/format/cyclonedxjson/test-fixtures/identify/1.5.json
+++ b/syft/format/cyclonedxjson/test-fixtures/identify/1.5.json
@@ -31,7 +31,7 @@
"properties": [
{
"name": "syft:package:foundBy",
- "value": "go-mod-file-cataloger"
+ "value": "go-module-file-cataloger"
},
{
"name": "syft:package:language",
diff --git a/syft/format/cyclonedxxml/test-fixtures/identify/1.3.xml b/syft/format/cyclonedxxml/test-fixtures/identify/1.3.xml
index 089077bae7c..fbea82a2445 100644
--- a/syft/format/cyclonedxxml/test-fixtures/identify/1.3.xml
+++ b/syft/format/cyclonedxxml/test-fixtures/identify/1.3.xml
@@ -21,7 +21,7 @@
cpe:2.3:a:wagoodman:go-partybus:v0.0.0-20230516145632-8ccac152c651:*:*:*:*:*:*:*
pkg:golang/github.com/wagoodman/go-partybus@v0.0.0-20230516145632-8ccac152c651
- go-mod-file-cataloger
+ go-module-file-cataloger
go
GolangModMetadata
go-module
diff --git a/syft/format/cyclonedxxml/test-fixtures/identify/1.4.xml b/syft/format/cyclonedxxml/test-fixtures/identify/1.4.xml
index f8cbc7e3001..05ce4c9b3c3 100644
--- a/syft/format/cyclonedxxml/test-fixtures/identify/1.4.xml
+++ b/syft/format/cyclonedxxml/test-fixtures/identify/1.4.xml
@@ -21,7 +21,7 @@
cpe:2.3:a:wagoodman:go-partybus:v0.0.0-20230516145632-8ccac152c651:*:*:*:*:*:*:*
pkg:golang/github.com/wagoodman/go-partybus@v0.0.0-20230516145632-8ccac152c651
- go-mod-file-cataloger
+ go-module-file-cataloger
go
GolangModMetadata
go-module
diff --git a/syft/format/cyclonedxxml/test-fixtures/identify/1.5.xml b/syft/format/cyclonedxxml/test-fixtures/identify/1.5.xml
index 97ae0242840..c823d1a2cd8 100644
--- a/syft/format/cyclonedxxml/test-fixtures/identify/1.5.xml
+++ b/syft/format/cyclonedxxml/test-fixtures/identify/1.5.xml
@@ -21,7 +21,7 @@
cpe:2.3:a:wagoodman:go-partybus:v0.0.0-20230516145632-8ccac152c651:*:*:*:*:*:*:*
pkg:golang/github.com/wagoodman/go-partybus@v0.0.0-20230516145632-8ccac152c651
- go-mod-file-cataloger
+ go-module-file-cataloger
go
GolangModMetadata
go-module
diff --git a/syft/format/syftjson/test-fixtures/identify/11.0.0.json b/syft/format/syftjson/test-fixtures/identify/11.0.0.json
index d8bd1743c56..2dba6e23ee8 100644
--- a/syft/format/syftjson/test-fixtures/identify/11.0.0.json
+++ b/syft/format/syftjson/test-fixtures/identify/11.0.0.json
@@ -5,7 +5,7 @@
"name": "github.com/wagoodman/go-partybus",
"version": "v0.0.0-20230516145632-8ccac152c651",
"type": "go-module",
- "foundBy": "go-mod-file-cataloger",
+ "foundBy": "go-module-file-cataloger",
"locations": [
{
"path": "/go.mod",
diff --git a/syft/pkg/cataloger/alpine/cataloger.go b/syft/pkg/cataloger/alpine/cataloger.go
new file mode 100644
index 00000000000..5ff537f2611
--- /dev/null
+++ b/syft/pkg/cataloger/alpine/cataloger.go
@@ -0,0 +1,15 @@
+/*
+Package alpine provides a concrete Cataloger implementations for packages relating to the Alpine linux distribution.
+*/
+package alpine
+
+import (
+ "github.com/anchore/syft/syft/pkg"
+ "github.com/anchore/syft/syft/pkg/cataloger/generic"
+)
+
+// NewDBCataloger returns a new cataloger object initialized for Alpine package DB flat-file stores.
+func NewDBCataloger() *generic.Cataloger {
+ return generic.NewCataloger("apk-db-cataloger").
+ WithParserByGlobs(parseApkDB, pkg.ApkDBGlob)
+}
diff --git a/syft/pkg/cataloger/apkdb/cataloger_test.go b/syft/pkg/cataloger/alpine/cataloger_test.go
similarity index 91%
rename from syft/pkg/cataloger/apkdb/cataloger_test.go
rename to syft/pkg/cataloger/alpine/cataloger_test.go
index 9be92209bd6..d9ed0e30c14 100644
--- a/syft/pkg/cataloger/apkdb/cataloger_test.go
+++ b/syft/pkg/cataloger/alpine/cataloger_test.go
@@ -1,4 +1,4 @@
-package apkdb
+package alpine
import (
"testing"
@@ -25,7 +25,7 @@ func TestCataloger_Globs(t *testing.T) {
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
IgnoreUnfulfilledPathResponses("etc/apk/repositories").
- TestCataloger(t, NewApkdbCataloger())
+ TestCataloger(t, NewDBCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/apkdb/package.go b/syft/pkg/cataloger/alpine/package.go
similarity index 99%
rename from syft/pkg/cataloger/apkdb/package.go
rename to syft/pkg/cataloger/alpine/package.go
index ddba886fc65..69c8a8d185e 100644
--- a/syft/pkg/cataloger/apkdb/package.go
+++ b/syft/pkg/cataloger/alpine/package.go
@@ -1,4 +1,4 @@
-package apkdb
+package alpine
import (
"strings"
diff --git a/syft/pkg/cataloger/apkdb/package_test.go b/syft/pkg/cataloger/alpine/package_test.go
similarity index 99%
rename from syft/pkg/cataloger/apkdb/package_test.go
rename to syft/pkg/cataloger/alpine/package_test.go
index 8a3b08ad7f4..23a5fffd4d9 100644
--- a/syft/pkg/cataloger/apkdb/package_test.go
+++ b/syft/pkg/cataloger/alpine/package_test.go
@@ -1,4 +1,4 @@
-package apkdb
+package alpine
import (
"strings"
diff --git a/syft/pkg/cataloger/apkdb/parse_apk_db.go b/syft/pkg/cataloger/alpine/parse_apk_db.go
similarity index 99%
rename from syft/pkg/cataloger/apkdb/parse_apk_db.go
rename to syft/pkg/cataloger/alpine/parse_apk_db.go
index e0b2839a50c..8f0ba9bc7c8 100644
--- a/syft/pkg/cataloger/apkdb/parse_apk_db.go
+++ b/syft/pkg/cataloger/alpine/parse_apk_db.go
@@ -1,4 +1,4 @@
-package apkdb
+package alpine
import (
"bufio"
diff --git a/syft/pkg/cataloger/apkdb/parse_apk_db_test.go b/syft/pkg/cataloger/alpine/parse_apk_db_test.go
similarity index 99%
rename from syft/pkg/cataloger/apkdb/parse_apk_db_test.go
rename to syft/pkg/cataloger/alpine/parse_apk_db_test.go
index ecfdaff6aab..13a1a6cbe40 100644
--- a/syft/pkg/cataloger/apkdb/parse_apk_db_test.go
+++ b/syft/pkg/cataloger/alpine/parse_apk_db_test.go
@@ -1,4 +1,4 @@
-package apkdb
+package alpine
import (
"io"
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/base b/syft/pkg/cataloger/alpine/test-fixtures/base
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/base
rename to syft/pkg/cataloger/alpine/test-fixtures/base
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/empty-deps-and-provides b/syft/pkg/cataloger/alpine/test-fixtures/empty-deps-and-provides
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/empty-deps-and-provides
rename to syft/pkg/cataloger/alpine/test-fixtures/empty-deps-and-provides
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/extra-file-attributes b/syft/pkg/cataloger/alpine/test-fixtures/extra-file-attributes
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/extra-file-attributes
rename to syft/pkg/cataloger/alpine/test-fixtures/extra-file-attributes
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/glob-paths/lib/apk/db/installed b/syft/pkg/cataloger/alpine/test-fixtures/glob-paths/lib/apk/db/installed
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/glob-paths/lib/apk/db/installed
rename to syft/pkg/cataloger/alpine/test-fixtures/glob-paths/lib/apk/db/installed
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/installed b/syft/pkg/cataloger/alpine/test-fixtures/installed
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/installed
rename to syft/pkg/cataloger/alpine/test-fixtures/installed
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/multiple b/syft/pkg/cataloger/alpine/test-fixtures/multiple
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/multiple
rename to syft/pkg/cataloger/alpine/test-fixtures/multiple
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/single b/syft/pkg/cataloger/alpine/test-fixtures/single
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/single
rename to syft/pkg/cataloger/alpine/test-fixtures/single
diff --git a/syft/pkg/cataloger/apkdb/test-fixtures/very-large-entries b/syft/pkg/cataloger/alpine/test-fixtures/very-large-entries
similarity index 100%
rename from syft/pkg/cataloger/apkdb/test-fixtures/very-large-entries
rename to syft/pkg/cataloger/alpine/test-fixtures/very-large-entries
diff --git a/syft/pkg/cataloger/alpm/cataloger.go b/syft/pkg/cataloger/alpm/cataloger.go
deleted file mode 100644
index cbbab9a2339..00000000000
--- a/syft/pkg/cataloger/alpm/cataloger.go
+++ /dev/null
@@ -1,14 +0,0 @@
-package alpm
-
-import (
- "github.com/anchore/syft/syft/pkg"
- "github.com/anchore/syft/syft/pkg/cataloger/generic"
-)
-
-const catalogerName = "alpmdb-cataloger"
-
-// NewAlpmdbCataloger returns a new cataloger object initialized for arch linux pacman database flat-file stores.
-func NewAlpmdbCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
- WithParserByGlobs(parseAlpmDB, pkg.AlpmDBGlob)
-}
diff --git a/syft/pkg/cataloger/apkdb/cataloger.go b/syft/pkg/cataloger/apkdb/cataloger.go
deleted file mode 100644
index e1b6bbb1f7a..00000000000
--- a/syft/pkg/cataloger/apkdb/cataloger.go
+++ /dev/null
@@ -1,17 +0,0 @@
-/*
-Package apkdb provides a concrete Cataloger implementation for Alpine DB files.
-*/
-package apkdb
-
-import (
- "github.com/anchore/syft/syft/pkg"
- "github.com/anchore/syft/syft/pkg/cataloger/generic"
-)
-
-const catalogerName = "apkdb-cataloger"
-
-// NewApkdbCataloger returns a new cataloger object initialized for Alpine package DB flat-file stores.
-func NewApkdbCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
- WithParserByGlobs(parseApkDB, pkg.ApkDBGlob)
-}
diff --git a/syft/pkg/cataloger/arch/cataloger.go b/syft/pkg/cataloger/arch/cataloger.go
new file mode 100644
index 00000000000..0c00a4e2c56
--- /dev/null
+++ b/syft/pkg/cataloger/arch/cataloger.go
@@ -0,0 +1,15 @@
+/*
+Package arch provides a concrete Cataloger implementations for packages relating to the Arch linux distribution.
+*/
+package arch
+
+import (
+ "github.com/anchore/syft/syft/pkg"
+ "github.com/anchore/syft/syft/pkg/cataloger/generic"
+)
+
+// NewDBCataloger returns a new cataloger object initialized for arch linux pacman database flat-file stores.
+func NewDBCataloger() *generic.Cataloger {
+ return generic.NewCataloger("alpm-db-cataloger").
+ WithParserByGlobs(parseAlpmDB, pkg.AlpmDBGlob)
+}
diff --git a/syft/pkg/cataloger/alpm/cataloger_test.go b/syft/pkg/cataloger/arch/cataloger_test.go
similarity index 97%
rename from syft/pkg/cataloger/alpm/cataloger_test.go
rename to syft/pkg/cataloger/arch/cataloger_test.go
index cd10e6596ba..91a735aebab 100644
--- a/syft/pkg/cataloger/alpm/cataloger_test.go
+++ b/syft/pkg/cataloger/arch/cataloger_test.go
@@ -1,4 +1,4 @@
-package alpm
+package arch
import (
"testing"
@@ -18,7 +18,7 @@ func TestAlpmCataloger(t *testing.T) {
Name: "gmp",
Version: "6.2.1-2",
Type: pkg.AlpmPkg,
- FoundBy: "alpmdb-cataloger",
+ FoundBy: "alpm-db-cataloger",
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("LGPL3", dbLocation),
pkg.NewLicenseFromLocations("GPL", dbLocation),
@@ -177,7 +177,7 @@ func TestAlpmCataloger(t *testing.T) {
FromDirectory(t, "test-fixtures/gmp-fixture").
WithCompareOptions(cmpopts.IgnoreFields(pkg.AlpmFileRecord{}, "Time")).
Expects(expectedPkgs, expectedRelationships).
- TestCataloger(t, NewAlpmdbCataloger())
+ TestCataloger(t, NewDBCataloger())
}
@@ -203,7 +203,7 @@ func TestCataloger_Globs(t *testing.T) {
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
IgnoreUnfulfilledPathResponses("var/lib/pacman/local/base-1.0/mtree", "var/lib/pacman/local/dive-0.10.0/mtree").
- TestCataloger(t, NewAlpmdbCataloger())
+ TestCataloger(t, NewDBCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/alpm/package.go b/syft/pkg/cataloger/arch/package.go
similarity index 99%
rename from syft/pkg/cataloger/alpm/package.go
rename to syft/pkg/cataloger/arch/package.go
index 5d55ec6b20c..f20a192f2b2 100644
--- a/syft/pkg/cataloger/alpm/package.go
+++ b/syft/pkg/cataloger/arch/package.go
@@ -1,4 +1,4 @@
-package alpm
+package arch
import (
"strings"
diff --git a/syft/pkg/cataloger/alpm/package_test.go b/syft/pkg/cataloger/arch/package_test.go
similarity index 99%
rename from syft/pkg/cataloger/alpm/package_test.go
rename to syft/pkg/cataloger/arch/package_test.go
index 4e77f3293b9..47a09789811 100644
--- a/syft/pkg/cataloger/alpm/package_test.go
+++ b/syft/pkg/cataloger/arch/package_test.go
@@ -1,4 +1,4 @@
-package alpm
+package arch
import (
"testing"
diff --git a/syft/pkg/cataloger/alpm/parse_alpm_db.go b/syft/pkg/cataloger/arch/parse_alpm_db.go
similarity index 99%
rename from syft/pkg/cataloger/alpm/parse_alpm_db.go
rename to syft/pkg/cataloger/arch/parse_alpm_db.go
index 25cf8937e03..53def2631ea 100644
--- a/syft/pkg/cataloger/alpm/parse_alpm_db.go
+++ b/syft/pkg/cataloger/arch/parse_alpm_db.go
@@ -1,4 +1,4 @@
-package alpm
+package arch
import (
"bufio"
diff --git a/syft/pkg/cataloger/alpm/parse_alpm_db_test.go b/syft/pkg/cataloger/arch/parse_alpm_db_test.go
similarity index 99%
rename from syft/pkg/cataloger/alpm/parse_alpm_db_test.go
rename to syft/pkg/cataloger/arch/parse_alpm_db_test.go
index 70863fb82fa..213ca4cceb0 100644
--- a/syft/pkg/cataloger/alpm/parse_alpm_db_test.go
+++ b/syft/pkg/cataloger/arch/parse_alpm_db_test.go
@@ -1,4 +1,4 @@
-package alpm
+package arch
import (
"bufio"
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/files b/syft/pkg/cataloger/arch/test-fixtures/files
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/files
rename to syft/pkg/cataloger/arch/test-fixtures/files
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/desc b/syft/pkg/cataloger/arch/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/desc
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/desc
rename to syft/pkg/cataloger/arch/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/desc
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/files b/syft/pkg/cataloger/arch/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/files
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/files
rename to syft/pkg/cataloger/arch/test-fixtures/glob-paths/var/lib/pacman/local/base-1.0/files
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/glob-paths/var/lib/pacman/local/dive-0.10.0/desc b/syft/pkg/cataloger/arch/test-fixtures/glob-paths/var/lib/pacman/local/dive-0.10.0/desc
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/glob-paths/var/lib/pacman/local/dive-0.10.0/desc
rename to syft/pkg/cataloger/arch/test-fixtures/glob-paths/var/lib/pacman/local/dive-0.10.0/desc
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/desc b/syft/pkg/cataloger/arch/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/desc
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/desc
rename to syft/pkg/cataloger/arch/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/desc
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/files b/syft/pkg/cataloger/arch/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/files
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/files
rename to syft/pkg/cataloger/arch/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/files
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/mtree b/syft/pkg/cataloger/arch/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/mtree
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/mtree
rename to syft/pkg/cataloger/arch/test-fixtures/gmp-fixture/var/lib/pacman/local/gmp-6.2.1-2/mtree
diff --git a/syft/pkg/cataloger/alpm/test-fixtures/mtree b/syft/pkg/cataloger/arch/test-fixtures/mtree
similarity index 100%
rename from syft/pkg/cataloger/alpm/test-fixtures/mtree
rename to syft/pkg/cataloger/arch/test-fixtures/mtree
diff --git a/syft/pkg/cataloger/binary/cataloger.go b/syft/pkg/cataloger/binary/cataloger.go
index 9f7325c3bc1..67bb9b448e3 100644
--- a/syft/pkg/cataloger/binary/cataloger.go
+++ b/syft/pkg/cataloger/binary/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package binary provides a concrete Cataloger implementations for surfacing possible packages based on signatures found within binary files.
+*/
package binary
import (
diff --git a/syft/pkg/cataloger/cataloger.go b/syft/pkg/cataloger/cataloger.go
index d74830b7102..a66a0569eb6 100644
--- a/syft/pkg/cataloger/cataloger.go
+++ b/syft/pkg/cataloger/cataloger.go
@@ -10,15 +10,16 @@ import (
"github.com/anchore/syft/internal/log"
"github.com/anchore/syft/syft/pkg"
- "github.com/anchore/syft/syft/pkg/cataloger/alpm"
- "github.com/anchore/syft/syft/pkg/cataloger/apkdb"
+ "github.com/anchore/syft/syft/pkg/cataloger/alpine"
+ "github.com/anchore/syft/syft/pkg/cataloger/arch"
"github.com/anchore/syft/syft/pkg/cataloger/binary"
"github.com/anchore/syft/syft/pkg/cataloger/cpp"
"github.com/anchore/syft/syft/pkg/cataloger/dart"
- "github.com/anchore/syft/syft/pkg/cataloger/deb"
+ "github.com/anchore/syft/syft/pkg/cataloger/debian"
"github.com/anchore/syft/syft/pkg/cataloger/dotnet"
"github.com/anchore/syft/syft/pkg/cataloger/elixir"
"github.com/anchore/syft/syft/pkg/cataloger/erlang"
+ "github.com/anchore/syft/syft/pkg/cataloger/gentoo"
"github.com/anchore/syft/syft/pkg/cataloger/githubactions"
"github.com/anchore/syft/syft/pkg/cataloger/golang"
"github.com/anchore/syft/syft/pkg/cataloger/haskell"
@@ -27,10 +28,9 @@ import (
"github.com/anchore/syft/syft/pkg/cataloger/kernel"
"github.com/anchore/syft/syft/pkg/cataloger/nix"
"github.com/anchore/syft/syft/pkg/cataloger/php"
- "github.com/anchore/syft/syft/pkg/cataloger/portage"
"github.com/anchore/syft/syft/pkg/cataloger/python"
"github.com/anchore/syft/syft/pkg/cataloger/r"
- "github.com/anchore/syft/syft/pkg/cataloger/rpm"
+ "github.com/anchore/syft/syft/pkg/cataloger/redhat"
"github.com/anchore/syft/syft/pkg/cataloger/ruby"
"github.com/anchore/syft/syft/pkg/cataloger/rust"
"github.com/anchore/syft/syft/pkg/cataloger/sbom"
@@ -42,61 +42,61 @@ const AllCatalogersPattern = "all"
// ImageCatalogers returns a slice of locally implemented catalogers that are fit for detecting installations of packages.
func ImageCatalogers(cfg Config) []pkg.Cataloger {
return filterCatalogers([]pkg.Cataloger{
- alpm.NewAlpmdbCataloger(),
- apkdb.NewApkdbCataloger(),
+ arch.NewDBCataloger(),
+ alpine.NewDBCataloger(),
binary.NewCataloger(),
cpp.NewConanInfoCataloger(),
- deb.NewDpkgdbCataloger(),
+ debian.NewDBCataloger(),
dotnet.NewDotnetPortableExecutableCataloger(),
golang.NewGoModuleBinaryCataloger(cfg.Golang),
- java.NewJavaCataloger(cfg.JavaConfig()),
+ java.NewArchiveCataloger(cfg.JavaConfig()),
java.NewNativeImageCataloger(),
javascript.NewPackageCataloger(),
nix.NewStoreCataloger(),
php.NewComposerInstalledCataloger(),
- portage.NewPortageCataloger(),
- python.NewPythonPackageCataloger(),
+ gentoo.NewPortageCataloger(),
+ python.NewInstalledPackageCataloger(),
r.NewPackageCataloger(),
- rpm.NewRpmDBCataloger(),
+ redhat.NewDBCataloger(),
ruby.NewInstalledGemSpecCataloger(),
- sbom.NewSBOMCataloger(),
+ sbom.NewCataloger(),
}, cfg.Catalogers)
}
// DirectoryCatalogers returns a slice of locally implemented catalogers that are fit for detecting packages from index files (and select installations)
func DirectoryCatalogers(cfg Config) []pkg.Cataloger {
return filterCatalogers([]pkg.Cataloger{
- alpm.NewAlpmdbCataloger(),
- apkdb.NewApkdbCataloger(),
+ arch.NewDBCataloger(),
+ alpine.NewDBCataloger(),
binary.NewCataloger(),
cpp.NewConanCataloger(),
dart.NewPubspecLockCataloger(),
- deb.NewDpkgdbCataloger(),
+ debian.NewDBCataloger(),
dotnet.NewDotnetDepsCataloger(),
dotnet.NewDotnetPortableExecutableCataloger(),
elixir.NewMixLockCataloger(),
erlang.NewRebarLockCataloger(),
githubactions.NewActionUsageCataloger(),
githubactions.NewWorkflowUsageCataloger(),
- golang.NewGoModFileCataloger(cfg.Golang),
+ golang.NewGoModuleFileCataloger(cfg.Golang),
golang.NewGoModuleBinaryCataloger(cfg.Golang),
haskell.NewHackageCataloger(),
- java.NewJavaCataloger(cfg.JavaConfig()),
- java.NewJavaGradleLockfileCataloger(),
- java.NewJavaPomCataloger(),
+ java.NewArchiveCataloger(cfg.JavaConfig()),
+ java.NewGradleLockfileCataloger(),
+ java.NewPomCataloger(),
java.NewNativeImageCataloger(),
javascript.NewLockCataloger(),
nix.NewStoreCataloger(),
php.NewComposerLockCataloger(),
- portage.NewPortageCataloger(),
- python.NewPythonIndexCataloger(cfg.Python),
- python.NewPythonPackageCataloger(),
- rpm.NewFileCataloger(),
- rpm.NewRpmDBCataloger(),
+ gentoo.NewPortageCataloger(),
+ python.NewPackageCataloger(cfg.Python),
+ python.NewInstalledPackageCataloger(),
+ redhat.NewArchiveCataloger(),
+ redhat.NewDBCataloger(),
ruby.NewGemFileLockCataloger(),
ruby.NewGemSpecCataloger(),
rust.NewCargoLockCataloger(),
- sbom.NewSBOMCataloger(),
+ sbom.NewCataloger(),
swift.NewCocoapodsCataloger(),
swift.NewSwiftPackageManagerCataloger(),
}, cfg.Catalogers)
@@ -105,24 +105,24 @@ func DirectoryCatalogers(cfg Config) []pkg.Cataloger {
// AllCatalogers returns all implemented catalogers
func AllCatalogers(cfg Config) []pkg.Cataloger {
return filterCatalogers([]pkg.Cataloger{
- alpm.NewAlpmdbCataloger(),
- apkdb.NewApkdbCataloger(),
+ arch.NewDBCataloger(),
+ alpine.NewDBCataloger(),
binary.NewCataloger(),
cpp.NewConanCataloger(),
dart.NewPubspecLockCataloger(),
- deb.NewDpkgdbCataloger(),
+ debian.NewDBCataloger(),
dotnet.NewDotnetDepsCataloger(),
dotnet.NewDotnetPortableExecutableCataloger(),
elixir.NewMixLockCataloger(),
erlang.NewRebarLockCataloger(),
githubactions.NewActionUsageCataloger(),
githubactions.NewWorkflowUsageCataloger(),
- golang.NewGoModFileCataloger(cfg.Golang),
+ golang.NewGoModuleFileCataloger(cfg.Golang),
golang.NewGoModuleBinaryCataloger(cfg.Golang),
haskell.NewHackageCataloger(),
- java.NewJavaCataloger(cfg.JavaConfig()),
- java.NewJavaGradleLockfileCataloger(),
- java.NewJavaPomCataloger(),
+ java.NewArchiveCataloger(cfg.JavaConfig()),
+ java.NewGradleLockfileCataloger(),
+ java.NewPomCataloger(),
java.NewNativeImageCataloger(),
javascript.NewLockCataloger(),
javascript.NewPackageCataloger(),
@@ -130,18 +130,18 @@ func AllCatalogers(cfg Config) []pkg.Cataloger {
nix.NewStoreCataloger(),
php.NewComposerInstalledCataloger(),
php.NewComposerLockCataloger(),
- portage.NewPortageCataloger(),
- python.NewPythonIndexCataloger(cfg.Python),
- python.NewPythonPackageCataloger(),
+ gentoo.NewPortageCataloger(),
+ python.NewPackageCataloger(cfg.Python),
+ python.NewInstalledPackageCataloger(),
r.NewPackageCataloger(),
- rpm.NewFileCataloger(),
- rpm.NewRpmDBCataloger(),
+ redhat.NewArchiveCataloger(),
+ redhat.NewDBCataloger(),
ruby.NewGemFileLockCataloger(),
ruby.NewGemSpecCataloger(),
ruby.NewInstalledGemSpecCataloger(),
rust.NewAuditBinaryCataloger(),
rust.NewCargoLockCataloger(),
- sbom.NewSBOMCataloger(),
+ sbom.NewCataloger(),
swift.NewCocoapodsCataloger(),
swift.NewSwiftPackageManagerCataloger(),
}, cfg.Catalogers)
diff --git a/syft/pkg/cataloger/cataloger_test.go b/syft/pkg/cataloger/cataloger_test.go
index 4f4b6ce83fd..5346df27cfb 100644
--- a/syft/pkg/cataloger/cataloger_test.go
+++ b/syft/pkg/cataloger/cataloger_test.go
@@ -26,16 +26,16 @@ func (d dummy) Catalog(_ file.Resolver) ([]pkg.Package, []artifact.Relationship,
func Test_filterCatalogers(t *testing.T) {
largeCatalogerList := []string{
- "alpmdb-cataloger",
+ "alpm-db-cataloger",
"apkdb-cataloger",
"binary-cataloger",
"conan-cataloger",
"dartlang-lock-cataloger",
- "dpkgdb-cataloger",
+ "dpkg-db-cataloger",
"dotnet-deps-cataloger",
"elixir-mix-lock-cataloger",
"erlang-rebar-lock-cataloger",
- "go-mod-file-cataloger",
+ "go-module-file-cataloger",
"go-module-binary-cataloger",
"haskell-cataloger",
"graalvm-native-image-cataloger",
@@ -46,12 +46,12 @@ func Test_filterCatalogers(t *testing.T) {
"php-composer-installed-cataloger",
"php-composer-lock-cataloger",
"portage-cataloger",
- "python-index-cataloger",
"python-package-cataloger",
+ "python-installed-package-cataloger",
"rpm-db-cataloger",
- "rpm-file-cataloger",
+ "rpm-archive-cataloger",
"ruby-gemfile-cataloger",
- "ruby-gemspec-cataloger",
+ "ruby-installed-gemspec-cataloger",
"rust-cargo-lock-cataloger",
"cargo-auditable-binary-cataloger",
"sbom-cataloger",
@@ -67,23 +67,23 @@ func Test_filterCatalogers(t *testing.T) {
name: "no filtering",
patterns: nil,
catalogers: []string{
- "ruby-gemspec-cataloger",
- "python-package-cataloger",
+ "ruby-installed-gemspec-cataloger",
+ "python-installed-package-cataloger",
"php-composer-installed-cataloger",
"javascript-package-cataloger",
- "dpkgdb-cataloger",
- "rpmdb-cataloger",
+ "dpkg-db-cataloger",
+ "rpm-db-cataloger",
"java-cataloger",
"apkdb-cataloger",
"go-module-binary-cataloger",
},
want: []string{
- "ruby-gemspec-cataloger",
- "python-package-cataloger",
+ "ruby-installed-gemspec-cataloger",
+ "python-installed-package-cataloger",
"php-composer-installed-cataloger",
"javascript-package-cataloger",
- "dpkgdb-cataloger",
- "rpmdb-cataloger",
+ "dpkg-db-cataloger",
+ "rpm-db-cataloger",
"java-cataloger",
"apkdb-cataloger",
"go-module-binary-cataloger",
@@ -92,23 +92,23 @@ func Test_filterCatalogers(t *testing.T) {
{
name: "exact name match",
patterns: []string{
- "rpmdb-cataloger",
+ "rpm-db-cataloger",
"javascript-package-cataloger",
},
catalogers: []string{
- "ruby-gemspec-cataloger",
- "python-package-cataloger",
+ "ruby-installed-gemspec-cataloger",
+ "python-installed-package-cataloger",
"php-composer-installed-cataloger",
"javascript-package-cataloger",
- "dpkgdb-cataloger",
- "rpmdb-cataloger",
+ "dpkg-db-cataloger",
+ "rpm-db-cataloger",
"java-cataloger",
"apkdb-cataloger",
"go-module-binary-cataloger",
},
want: []string{
"javascript-package-cataloger",
- "rpmdb-cataloger",
+ "rpm-db-cataloger",
},
},
{
@@ -118,20 +118,21 @@ func Test_filterCatalogers(t *testing.T) {
"installed",
},
catalogers: []string{
- "ruby-gemspec-cataloger",
+ "ruby-installed-gemspec-cataloger",
"ruby-gemfile-cataloger",
- "python-package-cataloger",
+ "python-installed-package-cataloger",
"php-composer-installed-cataloger",
"javascript-package-cataloger",
- "dpkgdb-cataloger",
- "rpmdb-cataloger",
+ "dpkg-db-cataloger",
+ "rpm-db-cataloger",
"java-cataloger",
"apkdb-cataloger",
"go-module-binary-cataloger",
},
want: []string{
"php-composer-installed-cataloger",
- "ruby-gemspec-cataloger",
+ "python-installed-package-cataloger",
+ "ruby-installed-gemspec-cataloger",
"ruby-gemfile-cataloger",
},
},
@@ -141,13 +142,13 @@ func Test_filterCatalogers(t *testing.T) {
"cataloger",
},
catalogers: []string{
- "ruby-gemspec-cataloger",
+ "ruby-installed-gemspec-cataloger",
"ruby-gemfile-cataloger",
- "python-package-cataloger",
+ "python-installed-package-cataloger",
"php-composer-installed-cataloger",
"javascript-package-cataloger",
- "dpkgdb-cataloger",
- "rpmdb-cataloger",
+ "dpkg-db-cataloger",
+ "rpm-db-cataloger",
"java-cataloger",
"apkdb-cataloger",
"go-module-binary-cataloger",
@@ -161,13 +162,13 @@ func Test_filterCatalogers(t *testing.T) {
"go-module",
},
catalogers: []string{
- "ruby-gemspec-cataloger",
+ "ruby-installed-gemspec-cataloger",
"ruby-gemfile-cataloger",
- "python-package-cataloger",
+ "python-installed-package-cataloger",
"php-composer-installed-cataloger",
"javascript-package-cataloger",
- "dpkgdb-cataloger",
- "rpmdb-cataloger",
+ "dpkg-db-cataloger",
+ "rpm-db-cataloger",
"java-cataloger",
"apkdb-cataloger",
"go-module-binary-cataloger",
@@ -196,7 +197,7 @@ func Test_filterCatalogers(t *testing.T) {
},
catalogers: largeCatalogerList,
want: []string{
- "go-mod-file-cataloger",
+ "go-module-file-cataloger",
"go-module-binary-cataloger",
//"rust-cargo-lock-cataloger", // with naive "contains" matching
//"cargo-auditable-binary-cataloger", // with naive "contains" matching
@@ -208,9 +209,10 @@ func Test_filterCatalogers(t *testing.T) {
"mod",
},
catalogers: largeCatalogerList,
- want: []string{
- "go-mod-file-cataloger",
- //"go-module-binary-cataloger", // unfortunately not a full word (this should probably be renamed)
+ want: []string{
+ // important! these are NOT found
+ //"go-module-file-cataloger",
+ //"go-module-binary-cataloger",
},
},
}
@@ -250,7 +252,7 @@ func Test_contains(t *testing.T) {
enabledCatalogers: []string{
"python",
},
- catalogerName: "python-package-cataloger",
+ catalogerName: "python-installed-package-cataloger",
want: true,
},
{
@@ -258,7 +260,7 @@ func Test_contains(t *testing.T) {
enabledCatalogers: []string{
"cataloger",
},
- catalogerName: "python-package-cataloger",
+ catalogerName: "python-installed-package-cataloger",
want: false,
},
}
diff --git a/syft/pkg/cataloger/cpp/cataloger.go b/syft/pkg/cataloger/cpp/cataloger.go
index 5d3b33a9b85..380206d35f9 100644
--- a/syft/pkg/cataloger/cpp/cataloger.go
+++ b/syft/pkg/cataloger/cpp/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package cpp provides a concrete Cataloger implementations for the C/C++ language ecosystem.
+*/
package cpp
import (
diff --git a/syft/pkg/cataloger/dart/cataloger.go b/syft/pkg/cataloger/dart/cataloger.go
index 5fbff6f088a..c8c1af42d03 100644
--- a/syft/pkg/cataloger/dart/cataloger.go
+++ b/syft/pkg/cataloger/dart/cataloger.go
@@ -1,13 +1,14 @@
+/*
+Package dart provides a concrete Cataloger implementations for the Dart language ecosystem.
+*/
package dart
import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-const catalogerName = "dartlang-lock-cataloger"
-
// NewPubspecLockCataloger returns a new Dartlang cataloger object base on pubspec lock files.
func NewPubspecLockCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
+ return generic.NewCataloger("dart-pubspec-lock-cataloger").
WithParserByGlobs(parsePubspecLock, "**/pubspec.lock")
}
diff --git a/syft/pkg/cataloger/deb/cataloger.go b/syft/pkg/cataloger/debian/cataloger.go
similarity index 52%
rename from syft/pkg/cataloger/deb/cataloger.go
rename to syft/pkg/cataloger/debian/cataloger.go
index 19121349717..4efb3a02635 100644
--- a/syft/pkg/cataloger/deb/cataloger.go
+++ b/syft/pkg/cataloger/debian/cataloger.go
@@ -1,17 +1,15 @@
/*
-Package deb provides a concrete Cataloger implementation for Debian package DB status files.
+Package debian provides a concrete Cataloger implementation relating to packages within the Debian linux distribution.
*/
-package deb
+package debian
import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-const catalogerName = "dpkgdb-cataloger"
-
-// NewDpkgdbCataloger returns a new Deb package cataloger capable of parsing DPKG status DB flat-file stores.
-func NewDpkgdbCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
+// NewDBCataloger returns a new Deb package cataloger capable of parsing DPKG status DB flat-file stores.
+func NewDBCataloger() *generic.Cataloger {
+ return generic.NewCataloger("dpkg-db-cataloger").
// 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/*", "**/lib/opkg/info/*.control", "**/lib/opkg/status")
diff --git a/syft/pkg/cataloger/deb/cataloger_test.go b/syft/pkg/cataloger/debian/cataloger_test.go
similarity index 97%
rename from syft/pkg/cataloger/deb/cataloger_test.go
rename to syft/pkg/cataloger/debian/cataloger_test.go
index 9fc0eb2addc..5d3addcbf0d 100644
--- a/syft/pkg/cataloger/deb/cataloger_test.go
+++ b/syft/pkg/cataloger/debian/cataloger_test.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"testing"
@@ -19,7 +19,7 @@ func TestDpkgCataloger(t *testing.T) {
{
Name: "libpam-runtime",
Version: "1.1.8-3.6",
- FoundBy: "dpkgdb-cataloger",
+ FoundBy: "dpkg-db-cataloger",
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("GPL-1", file.NewVirtualLocation("/usr/share/doc/libpam-runtime/copyright", "/usr/share/doc/libpam-runtime/copyright")),
pkg.NewLicenseFromLocations("GPL-2", file.NewVirtualLocation("/usr/share/doc/libpam-runtime/copyright", "/usr/share/doc/libpam-runtime/copyright")),
@@ -92,7 +92,7 @@ func TestDpkgCataloger(t *testing.T) {
{
Name: "libsqlite3-0",
Version: "3.34.1-3",
- FoundBy: "dpkgdb-cataloger",
+ FoundBy: "dpkg-db-cataloger",
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("public-domain", file.NewVirtualLocation("/usr/share/doc/libsqlite3-0/copyright", "/usr/share/doc/libsqlite3-0/copyright")),
pkg.NewLicenseFromLocations("GPL-2+", file.NewVirtualLocation("/usr/share/doc/libsqlite3-0/copyright", "/usr/share/doc/libsqlite3-0/copyright")),
@@ -150,7 +150,7 @@ func TestDpkgCataloger(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
- c := NewDpkgdbCataloger()
+ c := NewDBCataloger()
pkgtest.NewCatalogTester().
WithImageResolver(t, tt.name).
IgnoreLocationLayer(). // this fixture can be rebuilt, thus the layer ID will change
@@ -183,7 +183,7 @@ func TestCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewDpkgdbCataloger())
+ TestCataloger(t, NewDBCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/deb/package.go b/syft/pkg/cataloger/debian/package.go
similarity index 99%
rename from syft/pkg/cataloger/deb/package.go
rename to syft/pkg/cataloger/debian/package.go
index a67dee357d1..e762eeb8e3a 100644
--- a/syft/pkg/cataloger/deb/package.go
+++ b/syft/pkg/cataloger/debian/package.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"fmt"
diff --git a/syft/pkg/cataloger/deb/package_test.go b/syft/pkg/cataloger/debian/package_test.go
similarity index 99%
rename from syft/pkg/cataloger/deb/package_test.go
rename to syft/pkg/cataloger/debian/package_test.go
index 56d695fc886..87c7728b91b 100644
--- a/syft/pkg/cataloger/deb/package_test.go
+++ b/syft/pkg/cataloger/debian/package_test.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"testing"
diff --git a/syft/pkg/cataloger/deb/parse_copyright.go b/syft/pkg/cataloger/debian/parse_copyright.go
similarity index 99%
rename from syft/pkg/cataloger/deb/parse_copyright.go
rename to syft/pkg/cataloger/debian/parse_copyright.go
index 176e6aef89f..3f02131b781 100644
--- a/syft/pkg/cataloger/deb/parse_copyright.go
+++ b/syft/pkg/cataloger/debian/parse_copyright.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"bufio"
diff --git a/syft/pkg/cataloger/deb/parse_copyright_test.go b/syft/pkg/cataloger/debian/parse_copyright_test.go
similarity index 99%
rename from syft/pkg/cataloger/deb/parse_copyright_test.go
rename to syft/pkg/cataloger/debian/parse_copyright_test.go
index e58162aa8f1..711990aa942 100644
--- a/syft/pkg/cataloger/deb/parse_copyright_test.go
+++ b/syft/pkg/cataloger/debian/parse_copyright_test.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"os"
diff --git a/syft/pkg/cataloger/deb/parse_dpkg_db.go b/syft/pkg/cataloger/debian/parse_dpkg_db.go
similarity index 99%
rename from syft/pkg/cataloger/deb/parse_dpkg_db.go
rename to syft/pkg/cataloger/debian/parse_dpkg_db.go
index 14eb06fb89b..ab278184d35 100644
--- a/syft/pkg/cataloger/deb/parse_dpkg_db.go
+++ b/syft/pkg/cataloger/debian/parse_dpkg_db.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"bufio"
diff --git a/syft/pkg/cataloger/deb/parse_dpkg_db_test.go b/syft/pkg/cataloger/debian/parse_dpkg_db_test.go
similarity index 99%
rename from syft/pkg/cataloger/deb/parse_dpkg_db_test.go
rename to syft/pkg/cataloger/debian/parse_dpkg_db_test.go
index bbebe623b3b..10cd440230f 100644
--- a/syft/pkg/cataloger/deb/parse_dpkg_db_test.go
+++ b/syft/pkg/cataloger/debian/parse_dpkg_db_test.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"bufio"
diff --git a/syft/pkg/cataloger/deb/parse_dpkg_info_files.go b/syft/pkg/cataloger/debian/parse_dpkg_info_files.go
similarity index 98%
rename from syft/pkg/cataloger/deb/parse_dpkg_info_files.go
rename to syft/pkg/cataloger/debian/parse_dpkg_info_files.go
index 105c47da956..d9d6802baee 100644
--- a/syft/pkg/cataloger/deb/parse_dpkg_info_files.go
+++ b/syft/pkg/cataloger/debian/parse_dpkg_info_files.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"bufio"
diff --git a/syft/pkg/cataloger/deb/parse_dpkg_info_files_test.go b/syft/pkg/cataloger/debian/parse_dpkg_info_files_test.go
similarity index 99%
rename from syft/pkg/cataloger/deb/parse_dpkg_info_files_test.go
rename to syft/pkg/cataloger/debian/parse_dpkg_info_files_test.go
index bd4f1bdabaf..88ace2330db 100644
--- a/syft/pkg/cataloger/deb/parse_dpkg_info_files_test.go
+++ b/syft/pkg/cataloger/debian/parse_dpkg_info_files_test.go
@@ -1,4 +1,4 @@
-package deb
+package debian
import (
"os"
diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/libaudit-common b/syft/pkg/cataloger/debian/test-fixtures/copyright/libaudit-common
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/copyright/libaudit-common
rename to syft/pkg/cataloger/debian/test-fixtures/copyright/libaudit-common
diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/libc6 b/syft/pkg/cataloger/debian/test-fixtures/copyright/libc6
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/copyright/libc6
rename to syft/pkg/cataloger/debian/test-fixtures/copyright/libc6
diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/liblzma5 b/syft/pkg/cataloger/debian/test-fixtures/copyright/liblzma5
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/copyright/liblzma5
rename to syft/pkg/cataloger/debian/test-fixtures/copyright/liblzma5
diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/python b/syft/pkg/cataloger/debian/test-fixtures/copyright/python
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/copyright/python
rename to syft/pkg/cataloger/debian/test-fixtures/copyright/python
diff --git a/syft/pkg/cataloger/deb/test-fixtures/copyright/trilicense b/syft/pkg/cataloger/debian/test-fixtures/copyright/trilicense
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/copyright/trilicense
rename to syft/pkg/cataloger/debian/test-fixtures/copyright/trilicense
diff --git a/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0.control b/syft/pkg/cataloger/debian/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0.control
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0.control
rename to syft/pkg/cataloger/debian/test-fixtures/glob-paths/usr/lib/opkg/info/pkg-1.0.control
diff --git a/syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status b/syft/pkg/cataloger/debian/test-fixtures/glob-paths/usr/lib/opkg/status
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/glob-paths/usr/lib/opkg/status
rename to syft/pkg/cataloger/debian/test-fixtures/glob-paths/usr/lib/opkg/status
diff --git a/syft/pkg/cataloger/deb/test-fixtures/glob-paths/var/lib/dpkg/status b/syft/pkg/cataloger/debian/test-fixtures/glob-paths/var/lib/dpkg/status
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/glob-paths/var/lib/dpkg/status
rename to syft/pkg/cataloger/debian/test-fixtures/glob-paths/var/lib/dpkg/status
diff --git a/syft/pkg/cataloger/deb/test-fixtures/glob-paths/var/lib/dpkg/status.d/pkg-1.0 b/syft/pkg/cataloger/debian/test-fixtures/glob-paths/var/lib/dpkg/status.d/pkg-1.0
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/glob-paths/var/lib/dpkg/status.d/pkg-1.0
rename to syft/pkg/cataloger/debian/test-fixtures/glob-paths/var/lib/dpkg/status.d/pkg-1.0
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/Dockerfile b/syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/Dockerfile
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/Dockerfile
rename to syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/Dockerfile
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/usr/share/doc/libsqlite3-0/copyright b/syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/usr/share/doc/libsqlite3-0/copyright
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/usr/share/doc/libsqlite3-0/copyright
rename to syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/usr/share/doc/libsqlite3-0/copyright
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0 b/syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0
rename to syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0.md5sums b/syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0.md5sums
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0.md5sums
rename to syft/pkg/cataloger/debian/test-fixtures/image-distroless-deb/var/lib/dpkg/status.d/libsqlite3-0.md5sums
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/Dockerfile b/syft/pkg/cataloger/debian/test-fixtures/image-dpkg/Dockerfile
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/Dockerfile
rename to syft/pkg/cataloger/debian/test-fixtures/image-dpkg/Dockerfile
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright b/syft/pkg/cataloger/debian/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright
rename to syft/pkg/cataloger/debian/test-fixtures/image-dpkg/usr/share/doc/libpam-runtime/copyright
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles b/syft/pkg/cataloger/debian/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles
rename to syft/pkg/cataloger/debian/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.conffiles
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums b/syft/pkg/cataloger/debian/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums
rename to syft/pkg/cataloger/debian/test-fixtures/image-dpkg/var/lib/dpkg/info/libpam-runtime.md5sums
diff --git a/syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/status b/syft/pkg/cataloger/debian/test-fixtures/image-dpkg/var/lib/dpkg/status
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/image-dpkg/var/lib/dpkg/status
rename to syft/pkg/cataloger/debian/test-fixtures/image-dpkg/var/lib/dpkg/status
diff --git a/syft/pkg/cataloger/deb/test-fixtures/info/util-linux.conffiles b/syft/pkg/cataloger/debian/test-fixtures/info/util-linux.conffiles
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/info/util-linux.conffiles
rename to syft/pkg/cataloger/debian/test-fixtures/info/util-linux.conffiles
diff --git a/syft/pkg/cataloger/deb/test-fixtures/info/zlib1g.md5sums b/syft/pkg/cataloger/debian/test-fixtures/info/zlib1g.md5sums
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/info/zlib1g.md5sums
rename to syft/pkg/cataloger/debian/test-fixtures/info/zlib1g.md5sums
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/coreutils-relationships b/syft/pkg/cataloger/debian/test-fixtures/status/coreutils-relationships
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/coreutils-relationships
rename to syft/pkg/cataloger/debian/test-fixtures/status/coreutils-relationships
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/doc-examples b/syft/pkg/cataloger/debian/test-fixtures/status/doc-examples
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/doc-examples
rename to syft/pkg/cataloger/debian/test-fixtures/status/doc-examples
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/empty b/syft/pkg/cataloger/debian/test-fixtures/status/empty
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/empty
rename to syft/pkg/cataloger/debian/test-fixtures/status/empty
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/installed-size-4KB b/syft/pkg/cataloger/debian/test-fixtures/status/installed-size-4KB
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/installed-size-4KB
rename to syft/pkg/cataloger/debian/test-fixtures/status/installed-size-4KB
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/libpam-runtime b/syft/pkg/cataloger/debian/test-fixtures/status/libpam-runtime
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/libpam-runtime
rename to syft/pkg/cataloger/debian/test-fixtures/status/libpam-runtime
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/multiple b/syft/pkg/cataloger/debian/test-fixtures/status/multiple
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/multiple
rename to syft/pkg/cataloger/debian/test-fixtures/status/multiple
diff --git a/syft/pkg/cataloger/deb/test-fixtures/status/single b/syft/pkg/cataloger/debian/test-fixtures/status/single
similarity index 100%
rename from syft/pkg/cataloger/deb/test-fixtures/status/single
rename to syft/pkg/cataloger/debian/test-fixtures/status/single
diff --git a/syft/pkg/cataloger/dotnet/cataloger.go b/syft/pkg/cataloger/dotnet/cataloger.go
index ec7832aba1e..85b20673a79 100644
--- a/syft/pkg/cataloger/dotnet/cataloger.go
+++ b/syft/pkg/cataloger/dotnet/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package dotnet provides a concrete Cataloger implementation relating to packages within the C#/.NET language/runtime ecosystem.
+*/
package dotnet
import (
diff --git a/syft/pkg/cataloger/elixir/cataloger.go b/syft/pkg/cataloger/elixir/cataloger.go
index bcd43cdca6f..9ddf5c2b419 100644
--- a/syft/pkg/cataloger/elixir/cataloger.go
+++ b/syft/pkg/cataloger/elixir/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package elixir provides a concrete Cataloger implementation for elixir specific package manger files.
+Package elixir provides a concrete Cataloger implementation relating to packages within the Elixir language ecosystem.
*/
package elixir
@@ -7,10 +7,8 @@ import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-const catalogerName = "elixir-mix-lock-cataloger"
-
// NewMixLockCataloger returns a cataloger object for Elixir mix.lock files.
func NewMixLockCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
+ return generic.NewCataloger("elixir-mix-lock-cataloger").
WithParserByGlobs(parseMixLock, "**/mix.lock")
}
diff --git a/syft/pkg/cataloger/erlang/cataloger.go b/syft/pkg/cataloger/erlang/cataloger.go
index 62f01330852..8eba5a7cee9 100644
--- a/syft/pkg/cataloger/erlang/cataloger.go
+++ b/syft/pkg/cataloger/erlang/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package erlang provides a concrete Cataloger implementation for erlang specific package manger files.
+Package erlang provides a concrete Cataloger implementation relating to packages within the Erlang language ecosystem.
*/
package erlang
@@ -7,10 +7,8 @@ import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-const catalogerName = "erlang-rebar-lock-cataloger"
-
// NewRebarLockCataloger returns a new cataloger instance for Erlang rebar.lock files.
func NewRebarLockCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
+ return generic.NewCataloger("erlang-rebar-lock-cataloger").
WithParserByGlobs(parseRebarLock, "**/rebar.lock")
}
diff --git a/syft/pkg/cataloger/portage/cataloger.go b/syft/pkg/cataloger/gentoo/cataloger.go
similarity index 74%
rename from syft/pkg/cataloger/portage/cataloger.go
rename to syft/pkg/cataloger/gentoo/cataloger.go
index e51d2e6d292..67c9a218afb 100644
--- a/syft/pkg/cataloger/portage/cataloger.go
+++ b/syft/pkg/cataloger/gentoo/cataloger.go
@@ -1,7 +1,7 @@
/*
-Package portage provides a concrete Cataloger implementation for Gentoo Portage.
+Package gentoo provides a concrete Cataloger implementation related to packages within the Gentoo linux ecosystem.
*/
-package portage
+package gentoo
import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
diff --git a/syft/pkg/cataloger/portage/cataloger_test.go b/syft/pkg/cataloger/gentoo/cataloger_test.go
similarity index 99%
rename from syft/pkg/cataloger/portage/cataloger_test.go
rename to syft/pkg/cataloger/gentoo/cataloger_test.go
index 6fd0c603b70..f2deeb199b4 100644
--- a/syft/pkg/cataloger/portage/cataloger_test.go
+++ b/syft/pkg/cataloger/gentoo/cataloger_test.go
@@ -1,4 +1,4 @@
-package portage
+package gentoo
import (
"testing"
diff --git a/syft/pkg/cataloger/portage/parse_portage_contents.go b/syft/pkg/cataloger/gentoo/parse_portage_contents.go
similarity index 99%
rename from syft/pkg/cataloger/portage/parse_portage_contents.go
rename to syft/pkg/cataloger/gentoo/parse_portage_contents.go
index a0e774a382a..5da6e8c39f7 100644
--- a/syft/pkg/cataloger/portage/parse_portage_contents.go
+++ b/syft/pkg/cataloger/gentoo/parse_portage_contents.go
@@ -1,4 +1,4 @@
-package portage
+package gentoo
import (
"bufio"
diff --git a/syft/pkg/cataloger/portage/purl.go b/syft/pkg/cataloger/gentoo/purl.go
similarity index 95%
rename from syft/pkg/cataloger/portage/purl.go
rename to syft/pkg/cataloger/gentoo/purl.go
index 9ff016b92b3..dc6fd626665 100644
--- a/syft/pkg/cataloger/portage/purl.go
+++ b/syft/pkg/cataloger/gentoo/purl.go
@@ -1,4 +1,4 @@
-package portage
+package gentoo
import (
"github.com/anchore/packageurl-go"
diff --git a/syft/pkg/cataloger/portage/purl_test.go b/syft/pkg/cataloger/gentoo/purl_test.go
similarity index 96%
rename from syft/pkg/cataloger/portage/purl_test.go
rename to syft/pkg/cataloger/gentoo/purl_test.go
index 80541c26cd1..e4683930167 100644
--- a/syft/pkg/cataloger/portage/purl_test.go
+++ b/syft/pkg/cataloger/gentoo/purl_test.go
@@ -1,4 +1,4 @@
-package portage
+package gentoo
import (
"fmt"
diff --git a/syft/pkg/cataloger/portage/test-fixtures/glob-paths/var/db/pkg/x/y/CONTENTS b/syft/pkg/cataloger/gentoo/test-fixtures/glob-paths/var/db/pkg/x/y/CONTENTS
similarity index 100%
rename from syft/pkg/cataloger/portage/test-fixtures/glob-paths/var/db/pkg/x/y/CONTENTS
rename to syft/pkg/cataloger/gentoo/test-fixtures/glob-paths/var/db/pkg/x/y/CONTENTS
diff --git a/syft/pkg/cataloger/portage/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/CONTENTS b/syft/pkg/cataloger/gentoo/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/CONTENTS
similarity index 100%
rename from syft/pkg/cataloger/portage/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/CONTENTS
rename to syft/pkg/cataloger/gentoo/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/CONTENTS
diff --git a/syft/pkg/cataloger/portage/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/LICENSE b/syft/pkg/cataloger/gentoo/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/LICENSE
similarity index 100%
rename from syft/pkg/cataloger/portage/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/LICENSE
rename to syft/pkg/cataloger/gentoo/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/LICENSE
diff --git a/syft/pkg/cataloger/portage/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/SIZE b/syft/pkg/cataloger/gentoo/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/SIZE
similarity index 100%
rename from syft/pkg/cataloger/portage/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/SIZE
rename to syft/pkg/cataloger/gentoo/test-fixtures/image-portage/var/db/pkg/app-containers/skopeo-1.5.1/SIZE
diff --git a/syft/pkg/cataloger/githubactions/cataloger.go b/syft/pkg/cataloger/githubactions/cataloger.go
index 825d3942a7a..e484410879c 100644
--- a/syft/pkg/cataloger/githubactions/cataloger.go
+++ b/syft/pkg/cataloger/githubactions/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package githubactions provides a concrete Cataloger implementation for GitHub Actions packages (both actions and workflows).
+*/
package githubactions
import "github.com/anchore/syft/syft/pkg/cataloger/generic"
diff --git a/syft/pkg/cataloger/githubactions/test-fixtures/workflow-multi-job.yaml b/syft/pkg/cataloger/githubactions/test-fixtures/workflow-multi-job.yaml
index 36502c1332d..bf0fc82c14d 100644
--- a/syft/pkg/cataloger/githubactions/test-fixtures/workflow-multi-job.yaml
+++ b/syft/pkg/cataloger/githubactions/test-fixtures/workflow-multi-job.yaml
@@ -42,8 +42,8 @@ jobs:
- name: Restore RPM test-fixture cache
uses: actions/cache@v3
with:
- path: syft/pkg/cataloger/rpm/test-fixtures/rpms
- key: ${{ runner.os }}-unit-rpm-cache-${{ hashFiles( 'syft/pkg/cataloger/rpm/test-fixtures/rpms.fingerprint' ) }}
+ path: syft/pkg/cataloger/redhat/test-fixtures/rpms
+ key: ${{ runner.os }}-unit-rpm-cache-${{ hashFiles( 'syft/pkg/cataloger/redhat/test-fixtures/rpms.fingerprint' ) }}
- name: Restore go binary test-fixture cache
uses: actions/cache@v3
diff --git a/syft/pkg/cataloger/golang/cataloger.go b/syft/pkg/cataloger/golang/cataloger.go
index 4756df2425c..44c35a6c785 100644
--- a/syft/pkg/cataloger/golang/cataloger.go
+++ b/syft/pkg/cataloger/golang/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package golang provides a concrete Cataloger implementation for go.mod files.
+Package golang provides a concrete Cataloger implementation relating to packages within the Go language ecosystem.
*/
package golang
@@ -19,14 +19,14 @@ import (
var versionCandidateGroups = regexp.MustCompile(`(?P\d+(\.\d+)?(\.\d+)?)(?P\w*)`)
-// NewGoModFileCataloger returns a new cataloger object that searches within go.mod files.
-func NewGoModFileCataloger(opts GoCatalogerOpts) pkg.Cataloger {
+// NewGoModuleFileCataloger returns a new cataloger object that searches within go.mod files.
+func NewGoModuleFileCataloger(opts GoCatalogerOpts) pkg.Cataloger {
c := goModCataloger{
licenses: newGoLicenses(opts),
}
return &progressingCataloger{
progress: c.licenses.progress,
- cataloger: generic.NewCataloger("go-mod-file-cataloger").
+ cataloger: generic.NewCataloger("go-module-file-cataloger").
WithParserByGlobs(c.parseGoModFile, "**/go.mod"),
}
}
diff --git a/syft/pkg/cataloger/golang/cataloger_test.go b/syft/pkg/cataloger/golang/cataloger_test.go
index b1e26ba3517..22964fb6dcf 100644
--- a/syft/pkg/cataloger/golang/cataloger_test.go
+++ b/syft/pkg/cataloger/golang/cataloger_test.go
@@ -30,7 +30,7 @@ func Test_Mod_Cataloger_Globs(t *testing.T) {
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
IgnoreUnfulfilledPathResponses("src/go.sum").
- TestCataloger(t, NewGoModFileCataloger(GoCatalogerOpts{}))
+ TestCataloger(t, NewGoModuleFileCataloger(GoCatalogerOpts{}))
})
}
}
diff --git a/syft/pkg/cataloger/golang/parse_go_mod_test.go b/syft/pkg/cataloger/golang/parse_go_mod_test.go
index cc6809406d8..bd0217ee027 100644
--- a/syft/pkg/cataloger/golang/parse_go_mod_test.go
+++ b/syft/pkg/cataloger/golang/parse_go_mod_test.go
@@ -104,7 +104,7 @@ func Test_GoSumHashes(t *testing.T) {
Version: "v0.6.0",
PURL: "pkg:golang/github.com/CycloneDX/cyclonedx-go@v0.6.0",
Locations: file.NewLocationSet(file.NewLocation("go.mod")),
- FoundBy: "go-mod-file-cataloger",
+ FoundBy: "go-module-file-cataloger",
Language: pkg.Go,
Type: pkg.GoModulePkg,
Metadata: pkg.GolangModuleEntry{},
@@ -114,7 +114,7 @@ func Test_GoSumHashes(t *testing.T) {
Version: "v0.0.0-20180116102854-5a71ef0e047d",
PURL: "pkg:golang/github.com/acarl005/stripansi@v0.0.0-20180116102854-5a71ef0e047d",
Locations: file.NewLocationSet(file.NewLocation("go.mod")),
- FoundBy: "go-mod-file-cataloger",
+ FoundBy: "go-module-file-cataloger",
Language: pkg.Go,
Type: pkg.GoModulePkg,
Metadata: pkg.GolangModuleEntry{
@@ -126,7 +126,7 @@ func Test_GoSumHashes(t *testing.T) {
Version: "v0.0.0-20200706080929-d51e80ef957d",
PURL: "pkg:golang/github.com/mgutz/ansi@v0.0.0-20200706080929-d51e80ef957d",
Locations: file.NewLocationSet(file.NewLocation("go.mod")),
- FoundBy: "go-mod-file-cataloger",
+ FoundBy: "go-module-file-cataloger",
Language: pkg.Go,
Type: pkg.GoModulePkg,
Metadata: pkg.GolangModuleEntry{
@@ -142,7 +142,7 @@ func Test_GoSumHashes(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
Expects(test.expected, nil).
- TestCataloger(t, NewGoModFileCataloger(GoCatalogerOpts{}))
+ TestCataloger(t, NewGoModuleFileCataloger(GoCatalogerOpts{}))
})
}
}
diff --git a/syft/pkg/cataloger/haskell/cataloger.go b/syft/pkg/cataloger/haskell/cataloger.go
index f9231f22193..40b4bbc4d18 100644
--- a/syft/pkg/cataloger/haskell/cataloger.go
+++ b/syft/pkg/cataloger/haskell/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package haskell provides a concrete Cataloger implementation relating to packages within the Haskell language ecosystem.
+*/
package haskell
import (
diff --git a/syft/pkg/cataloger/java/cataloger.go b/syft/pkg/cataloger/java/cataloger.go
index 46127cc1ee0..2b543bf86d2 100644
--- a/syft/pkg/cataloger/java/cataloger.go
+++ b/syft/pkg/cataloger/java/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package java provides a concrete Cataloger implementation for Java archives (jar, war, ear, par, sar, jpi, hpi, and native-image formats).
+Package java provides a concrete Cataloger implementation for packages relating to the Java language ecosystem.
*/
package java
@@ -7,11 +7,11 @@ import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-// NewJavaCataloger returns a new Java archive cataloger object.
-func NewJavaCataloger(cfg Config) *generic.Cataloger {
+// NewArchiveCataloger returns a new Java archive cataloger object for detecting packages with archives (jar, war, ear, par, sar, jpi, hpi, and native-image formats)
+func NewArchiveCataloger(cfg Config) *generic.Cataloger {
gap := newGenericArchiveParserAdapter(cfg)
- c := generic.NewCataloger("java-cataloger").
+ c := generic.NewCataloger("java-archive-cataloger").
WithParserByGlobs(gap.parseJavaArchive, archiveFormatGlobs...)
if cfg.SearchIndexedArchives {
@@ -28,18 +28,16 @@ func NewJavaCataloger(cfg Config) *generic.Cataloger {
return c
}
-// NewJavaPomCataloger returns a cataloger capable of parsing
-// dependencies from a pom.xml file.
+// NewPomCataloger returns a cataloger capable of parsing dependencies from a pom.xml file.
// Pom files list dependencies that maybe not be locally installed yet.
-func NewJavaPomCataloger() *generic.Cataloger {
+func NewPomCataloger() *generic.Cataloger {
return generic.NewCataloger("java-pom-cataloger").
WithParserByGlobs(parserPomXML, "**/pom.xml")
}
-// NewJavaGradleLockfileCataloger returns a cataloger capable of parsing
-// dependencies from a gradle.lockfile file.
-// older versions of lockfiles aren't supported yet
-func NewJavaGradleLockfileCataloger() *generic.Cataloger {
+// NewGradleLockfileCataloger returns a cataloger capable of parsing dependencies from a gradle.lockfile file.
+// Note: Older versions of lockfiles aren't supported yet
+func NewGradleLockfileCataloger() *generic.Cataloger {
return generic.NewCataloger("java-gradle-lockfile-cataloger").
WithParserByGlobs(parseGradleLockfile, gradleLockfileGlob)
}
diff --git a/syft/pkg/cataloger/java/cataloger_test.go b/syft/pkg/cataloger/java/cataloger_test.go
index ab09dc2fe0d..167082103fc 100644
--- a/syft/pkg/cataloger/java/cataloger_test.go
+++ b/syft/pkg/cataloger/java/cataloger_test.go
@@ -54,7 +54,7 @@ func Test_ArchiveCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewJavaCataloger(Config{
+ TestCataloger(t, NewArchiveCataloger(Config{
SearchUnindexedArchives: true,
SearchIndexedArchives: true,
}))
@@ -82,7 +82,7 @@ func Test_POMCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewJavaPomCataloger())
+ TestCataloger(t, NewPomCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/javascript/cataloger.go b/syft/pkg/cataloger/javascript/cataloger.go
index 4ca766db53a..56127e373cd 100644
--- a/syft/pkg/cataloger/javascript/cataloger.go
+++ b/syft/pkg/cataloger/javascript/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package javascript provides a concrete Cataloger implementation for JavaScript ecosystem files (yarn and npm).
+Package javascript provides a concrete Cataloger implementation for packages relating to the JavaScript language ecosystem.
*/
package javascript
@@ -13,7 +13,7 @@ func NewPackageCataloger() *generic.Cataloger {
WithParserByGlobs(parsePackageJSON, "**/package.json")
}
-// NewLockCataloger returns a new cataloger object for NPM (and NPM-adjacent) lock files.
+// NewLockCataloger returns a new cataloger object for NPM (and NPM-adjacent, such as yarn) lock files.
func NewLockCataloger() *generic.Cataloger {
return generic.NewCataloger("javascript-lock-cataloger").
WithParserByGlobs(parsePackageLock, "**/package-lock.json").
diff --git a/syft/pkg/cataloger/nix/cataloger.go b/syft/pkg/cataloger/nix/cataloger.go
index e4d69477e7d..562ca7323d0 100644
--- a/syft/pkg/cataloger/nix/cataloger.go
+++ b/syft/pkg/cataloger/nix/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package nix provides a concrete Cataloger implementation for packages within the Nix packaging ecosystem.
+*/
package nix
import (
@@ -11,10 +14,7 @@ import (
"github.com/anchore/syft/syft/pkg"
)
-const (
- catalogerName = "nix-store-cataloger"
- nixStoreGlob = "**/nix/store/*"
-)
+const catalogerName = "nix-store-cataloger"
// StoreCataloger finds package outputs installed in the Nix store location (/nix/store/*).
type StoreCataloger struct{}
@@ -32,7 +32,7 @@ func (c *StoreCataloger) Catalog(resolver file.Resolver) ([]pkg.Package, []artif
var pkgs []pkg.Package
var filesByPath = make(map[string]*file.LocationSet)
for location := range resolver.AllLocations() {
- matchesStorePath, err := doublestar.Match(nixStoreGlob, location.RealPath)
+ matchesStorePath, err := doublestar.Match("**/nix/store/*", location.RealPath)
if err != nil {
return nil, nil, fmt.Errorf("failed to match nix store path: %w", err)
}
diff --git a/syft/pkg/cataloger/php/cataloger.go b/syft/pkg/cataloger/php/cataloger.go
index 07e06a9a512..bbdf61a52ca 100644
--- a/syft/pkg/cataloger/php/cataloger.go
+++ b/syft/pkg/cataloger/php/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package php provides a concrete Cataloger implementation for PHP ecosystem files.
+Package php provides a concrete Cataloger implementation relating to packages within the PHP language ecosystem.
*/
package php
diff --git a/syft/pkg/cataloger/python/cataloger.go b/syft/pkg/cataloger/python/cataloger.go
index af5f0bd319e..82dfacc5803 100644
--- a/syft/pkg/cataloger/python/cataloger.go
+++ b/syft/pkg/cataloger/python/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package python provides a concrete Cataloger implementation relating to packages within the Python language ecosystem.
+*/
package python
import (
@@ -16,19 +19,19 @@ func DefaultCatalogerConfig() CatalogerConfig {
}
}
-// NewPythonIndexCataloger returns a new cataloger for python packages referenced from poetry lock files, requirements.txt files, and setup.py files.
-func NewPythonIndexCataloger(cfg CatalogerConfig) *generic.Cataloger {
+// NewPackageCataloger returns a new cataloger for python packages referenced from poetry lock files, requirements.txt files, and setup.py files.
+func NewPackageCataloger(cfg CatalogerConfig) *generic.Cataloger {
rqp := newRequirementsParser(cfg)
- return generic.NewCataloger("python-index-cataloger").
+ return generic.NewCataloger("python-package-cataloger").
WithParserByGlobs(rqp.parseRequirementsTxt, "**/*requirements*.txt").
WithParserByGlobs(parsePoetryLock, "**/poetry.lock").
WithParserByGlobs(parsePipfileLock, "**/Pipfile.lock").
WithParserByGlobs(parseSetup, "**/setup.py")
}
-// NewPythonPackageCataloger returns a new cataloger for python packages within egg or wheel installation directories.
-func NewPythonPackageCataloger() *generic.Cataloger {
- return generic.NewCataloger("python-package-cataloger").
+// NewInstalledPackageCataloger returns a new cataloger for python packages within egg or wheel installation directories.
+func NewInstalledPackageCataloger() *generic.Cataloger {
+ return generic.NewCataloger("python-installed-package-cataloger").
WithParserByGlobs(
parseWheelOrEgg,
eggInfoGlob,
diff --git a/syft/pkg/cataloger/python/cataloger_test.go b/syft/pkg/cataloger/python/cataloger_test.go
index aa7f7503607..fd93a84888c 100644
--- a/syft/pkg/cataloger/python/cataloger_test.go
+++ b/syft/pkg/cataloger/python/cataloger_test.go
@@ -24,7 +24,7 @@ func Test_PackageCataloger(t *testing.T) {
PURL: "pkg:pypi/no-version",
Type: pkg.PythonPkg,
Language: pkg.Python,
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "no-version",
SitePackagesRootPath: "test-fixtures",
@@ -47,7 +47,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("Apache 2.0", file.NewLocation("test-fixtures/egg-info/PKG-INFO")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "requests",
Version: "2.22.0",
@@ -83,7 +83,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("Apache 2.0", file.NewLocation("test-fixtures/casesensitive/EGG-INFO/PKG-INFO")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "requests",
Version: "2.22.0",
@@ -120,7 +120,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("BSD License", file.NewLocation("test-fixtures/dist-info/METADATA")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "Pygments",
Version: "2.6.1",
@@ -159,7 +159,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("BSD License", file.NewLocation("test-fixtures/casesensitive/DIST-INFO/METADATA")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "Pygments",
Version: "2.6.1",
@@ -196,7 +196,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("BSD License", file.NewLocation("test-fixtures/malformed-record/dist-info/METADATA")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "Pygments",
Version: "2.6.1",
@@ -227,7 +227,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("BSD License", file.NewLocation("test-fixtures/partial.dist-info/METADATA")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "Pygments",
Version: "2.6.1",
@@ -250,7 +250,7 @@ func Test_PackageCataloger(t *testing.T) {
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("Apache 2.0", file.NewLocation("test-fixtures/test.egg-info")),
),
- FoundBy: "python-package-cataloger",
+ FoundBy: "python-installed-package-cataloger",
Metadata: pkg.PythonPackage{
Name: "requests",
Version: "2.22.0",
@@ -275,7 +275,7 @@ func Test_PackageCataloger(t *testing.T) {
pkgtest.NewCatalogTester().
WithResolver(resolver).
Expects([]pkg.Package{test.expectedPackage}, nil).
- TestCataloger(t, NewPythonPackageCataloger())
+ TestCataloger(t, NewInstalledPackageCataloger())
})
}
}
@@ -296,7 +296,7 @@ func Test_PackageCataloger_IgnorePackage(t *testing.T) {
t.Run(test.MetadataFixture, func(t *testing.T) {
resolver := file.NewMockResolverForPaths(test.MetadataFixture)
- actual, _, err := NewPythonPackageCataloger().Catalog(resolver)
+ actual, _, err := NewInstalledPackageCataloger().Catalog(resolver)
require.NoError(t, err)
if len(actual) != 0 {
@@ -332,7 +332,7 @@ func Test_IndexCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewPythonIndexCataloger(DefaultCatalogerConfig()))
+ TestCataloger(t, NewPackageCataloger(DefaultCatalogerConfig()))
})
}
}
@@ -361,7 +361,7 @@ func Test_PackageCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewPythonPackageCataloger())
+ TestCataloger(t, NewInstalledPackageCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/r/cataloger.go b/syft/pkg/cataloger/r/cataloger.go
index 8cb4774a4af..9b3cb0949f3 100644
--- a/syft/pkg/cataloger/r/cataloger.go
+++ b/syft/pkg/cataloger/r/cataloger.go
@@ -1,13 +1,14 @@
+/*
+Package r provides a concrete Cataloger implementation relating to packages within the R language ecosystem.
+*/
package r
import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-const catalogerName = "r-package-cataloger"
-
// NewPackageCataloger returns a new R cataloger object based on detection of R package DESCRIPTION files.
func NewPackageCataloger() *generic.Cataloger {
- return generic.NewCataloger(catalogerName).
+ return generic.NewCataloger("r-package-cataloger").
WithParserByGlobs(parseDescriptionFile, "**/DESCRIPTION")
}
diff --git a/syft/pkg/cataloger/rpm/cataloger.go b/syft/pkg/cataloger/redhat/cataloger.go
similarity index 52%
rename from syft/pkg/cataloger/rpm/cataloger.go
rename to syft/pkg/cataloger/redhat/cataloger.go
index 74782899e7e..6279ac54693 100644
--- a/syft/pkg/cataloger/rpm/cataloger.go
+++ b/syft/pkg/cataloger/redhat/cataloger.go
@@ -1,7 +1,7 @@
/*
-Package rpm provides a concrete DBCataloger implementation for RPM "Package" DB files and a FileCataloger for RPM files.
+Package redhat provides a concrete DBCataloger implementation relating to packages within the RedHat linux distribution.
*/
-package rpm
+package redhat
import (
"database/sql"
@@ -11,26 +11,21 @@ import (
"github.com/anchore/syft/syft/pkg/cataloger/generic"
)
-const (
- dbCatalogerName = "rpm-db-cataloger"
- fileCatalogerName = "rpm-file-cataloger"
-)
-
-// NewRpmDBCataloger returns a new RPM DB cataloger object.
-func NewRpmDBCataloger() *generic.Cataloger {
+// NewDBCataloger returns a new RPM DB cataloger object.
+func NewDBCataloger() *generic.Cataloger {
// check if a sqlite driver is available
if !isSqliteDriverAvailable() {
log.Warnf("sqlite driver is not available, newer RPM databases might not be cataloged")
}
- return generic.NewCataloger(dbCatalogerName).
+ return generic.NewCataloger("rpm-db-cataloger").
WithParserByGlobs(parseRpmDB, pkg.RpmDBGlob).
WithParserByGlobs(parseRpmManifest, pkg.RpmManifestGlob)
}
-// NewFileCataloger returns a new RPM file cataloger object.
-func NewFileCataloger() *generic.Cataloger {
- return generic.NewCataloger(fileCatalogerName).
+// NewArchiveCataloger returns a new RPM file cataloger object.
+func NewArchiveCataloger() *generic.Cataloger {
+ return generic.NewCataloger("rpm-archive-cataloger").
WithParserByGlobs(parseRpmArchive, "**/*.rpm")
}
diff --git a/syft/pkg/cataloger/rpm/cataloger_test.go b/syft/pkg/cataloger/redhat/cataloger_test.go
similarity index 93%
rename from syft/pkg/cataloger/rpm/cataloger_test.go
rename to syft/pkg/cataloger/redhat/cataloger_test.go
index 31b7bf11b4b..12dfe394ce9 100644
--- a/syft/pkg/cataloger/rpm/cataloger_test.go
+++ b/syft/pkg/cataloger/redhat/cataloger_test.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"testing"
@@ -35,7 +35,7 @@ func Test_DBCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewRpmDBCataloger())
+ TestCataloger(t, NewDBCataloger())
})
}
}
@@ -60,7 +60,7 @@ func Test_RPMFileCataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewFileCataloger())
+ TestCataloger(t, NewArchiveCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/rpm/package.go b/syft/pkg/cataloger/redhat/package.go
similarity index 99%
rename from syft/pkg/cataloger/rpm/package.go
rename to syft/pkg/cataloger/redhat/package.go
index 161753b4513..23954991ac6 100644
--- a/syft/pkg/cataloger/rpm/package.go
+++ b/syft/pkg/cataloger/redhat/package.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"fmt"
diff --git a/syft/pkg/cataloger/rpm/package_test.go b/syft/pkg/cataloger/redhat/package_test.go
similarity index 99%
rename from syft/pkg/cataloger/rpm/package_test.go
rename to syft/pkg/cataloger/redhat/package_test.go
index 669c8f9e38b..b5459717a3c 100644
--- a/syft/pkg/cataloger/rpm/package_test.go
+++ b/syft/pkg/cataloger/redhat/package_test.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"testing"
diff --git a/syft/pkg/cataloger/rpm/parse_rpm_archive.go b/syft/pkg/cataloger/redhat/parse_rpm_archive.go
similarity index 99%
rename from syft/pkg/cataloger/rpm/parse_rpm_archive.go
rename to syft/pkg/cataloger/redhat/parse_rpm_archive.go
index fb87de820b8..73e3ff4b0c3 100644
--- a/syft/pkg/cataloger/rpm/parse_rpm_archive.go
+++ b/syft/pkg/cataloger/redhat/parse_rpm_archive.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"fmt"
diff --git a/syft/pkg/cataloger/rpm/parse_rpm_archive_test.go b/syft/pkg/cataloger/redhat/parse_rpm_archive_test.go
similarity index 96%
rename from syft/pkg/cataloger/rpm/parse_rpm_archive_test.go
rename to syft/pkg/cataloger/redhat/parse_rpm_archive_test.go
index 8ed81fe1fe6..dddf81a9c9d 100644
--- a/syft/pkg/cataloger/rpm/parse_rpm_archive_test.go
+++ b/syft/pkg/cataloger/redhat/parse_rpm_archive_test.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"testing"
@@ -23,7 +23,7 @@ func TestParseRpmFiles(t *testing.T) {
Version: "0:1.01-9.hg20160905.el7",
PURL: "pkg:rpm/abc@1.01-9.hg20160905.el7?arch=x86_64&epoch=0&upstream=abc-1.01-9.hg20160905.el7.src.rpm",
Locations: file.NewLocationSet(file.NewLocation("abc-1.01-9.hg20160905.el7.x86_64.rpm")),
- FoundBy: "rpm-file-cataloger",
+ FoundBy: "rpm-archive-cataloger",
Type: pkg.RpmPkg,
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("MIT", abcRpmLocation),
@@ -51,7 +51,7 @@ func TestParseRpmFiles(t *testing.T) {
Version: "0:1.0.3-1.el7",
PURL: "pkg:rpm/zork@1.0.3-1.el7?arch=x86_64&epoch=0&upstream=zork-1.0.3-1.el7.src.rpm",
Locations: file.NewLocationSet(zorkRpmLocation),
- FoundBy: "rpm-file-cataloger",
+ FoundBy: "rpm-archive-cataloger",
Type: pkg.RpmPkg,
Licenses: pkg.NewLicenseSet(
pkg.NewLicenseFromLocations("Public Domain", zorkRpmLocation),
@@ -90,7 +90,7 @@ func TestParseRpmFiles(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
Expects(test.expected, nil).
- TestCataloger(t, NewFileCataloger())
+ TestCataloger(t, NewArchiveCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/rpm/parse_rpm_db.go b/syft/pkg/cataloger/redhat/parse_rpm_db.go
similarity index 99%
rename from syft/pkg/cataloger/rpm/parse_rpm_db.go
rename to syft/pkg/cataloger/redhat/parse_rpm_db.go
index 03be3ae376b..672b1c753a6 100644
--- a/syft/pkg/cataloger/rpm/parse_rpm_db.go
+++ b/syft/pkg/cataloger/redhat/parse_rpm_db.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"fmt"
diff --git a/syft/pkg/cataloger/rpm/parse_rpm_db_test.go b/syft/pkg/cataloger/redhat/parse_rpm_db_test.go
similarity index 99%
rename from syft/pkg/cataloger/rpm/parse_rpm_db_test.go
rename to syft/pkg/cataloger/redhat/parse_rpm_db_test.go
index ac75023fd5c..b4a9c460999 100644
--- a/syft/pkg/cataloger/rpm/parse_rpm_db_test.go
+++ b/syft/pkg/cataloger/redhat/parse_rpm_db_test.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"fmt"
diff --git a/syft/pkg/cataloger/rpm/parse_rpm_manifest.go b/syft/pkg/cataloger/redhat/parse_rpm_manifest.go
similarity index 98%
rename from syft/pkg/cataloger/rpm/parse_rpm_manifest.go
rename to syft/pkg/cataloger/redhat/parse_rpm_manifest.go
index 5ee18ec5320..b3b06bdcbc2 100644
--- a/syft/pkg/cataloger/rpm/parse_rpm_manifest.go
+++ b/syft/pkg/cataloger/redhat/parse_rpm_manifest.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"bufio"
diff --git a/syft/pkg/cataloger/rpm/parse_rpm_manifest_test.go b/syft/pkg/cataloger/redhat/parse_rpm_manifest_test.go
similarity index 99%
rename from syft/pkg/cataloger/rpm/parse_rpm_manifest_test.go
rename to syft/pkg/cataloger/redhat/parse_rpm_manifest_test.go
index 97965212391..5a2cd2666f4 100644
--- a/syft/pkg/cataloger/rpm/parse_rpm_manifest_test.go
+++ b/syft/pkg/cataloger/redhat/parse_rpm_manifest_test.go
@@ -1,4 +1,4 @@
-package rpm
+package redhat
import (
"testing"
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/.gitignore b/syft/pkg/cataloger/redhat/test-fixtures/.gitignore
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/.gitignore
rename to syft/pkg/cataloger/redhat/test-fixtures/.gitignore
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/Makefile b/syft/pkg/cataloger/redhat/test-fixtures/Makefile
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/Makefile
rename to syft/pkg/cataloger/redhat/test-fixtures/Makefile
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/Packages b/syft/pkg/cataloger/redhat/test-fixtures/Packages
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/Packages
rename to syft/pkg/cataloger/redhat/test-fixtures/Packages
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/bad/bad.rpm b/syft/pkg/cataloger/redhat/test-fixtures/bad/bad.rpm
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/bad/bad.rpm
rename to syft/pkg/cataloger/redhat/test-fixtures/bad/bad.rpm
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/container-manifest-2 b/syft/pkg/cataloger/redhat/test-fixtures/container-manifest-2
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/container-manifest-2
rename to syft/pkg/cataloger/redhat/test-fixtures/container-manifest-2
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/generate-fixture.sh b/syft/pkg/cataloger/redhat/test-fixtures/generate-fixture.sh
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/generate-fixture.sh
rename to syft/pkg/cataloger/redhat/test-fixtures/generate-fixture.sh
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/dive-0.10.0.rpm b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/dive-0.10.0.rpm
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/dive-0.10.0.rpm
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/dive-0.10.0.rpm
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages.db b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages.db
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages.db
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/lib/sysimage/rpm/Packages.db
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/lib/sysimage/rpm/rpmdb.sqlite b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/lib/sysimage/rpm/rpmdb.sqlite
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/lib/sysimage/rpm/rpmdb.sqlite
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/lib/sysimage/rpm/rpmdb.sqlite
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/share/rpm/Packages b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/share/rpm/Packages
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/share/rpm/Packages
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/share/rpm/Packages
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/share/rpm/Packages.db b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/share/rpm/Packages.db
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/share/rpm/Packages.db
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/share/rpm/Packages.db
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/share/rpm/rpmdb.sqlite b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/share/rpm/rpmdb.sqlite
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/usr/share/rpm/rpmdb.sqlite
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/usr/share/rpm/rpmdb.sqlite
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpm/Packages b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpm/Packages
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpm/Packages
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpm/Packages
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpm/Packages.db b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpm/Packages.db
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpm/Packages.db
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpm/Packages.db
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpm/rpmdb.sqlite b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpm/rpmdb.sqlite
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpm/rpmdb.sqlite
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpm/rpmdb.sqlite
diff --git a/syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpmmanifest/container-manifest-2 b/syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpmmanifest/container-manifest-2
similarity index 100%
rename from syft/pkg/cataloger/rpm/test-fixtures/glob-paths/var/lib/rpmmanifest/container-manifest-2
rename to syft/pkg/cataloger/redhat/test-fixtures/glob-paths/var/lib/rpmmanifest/container-manifest-2
diff --git a/syft/pkg/cataloger/ruby/catalogers.go b/syft/pkg/cataloger/ruby/catalogers.go
index a7f86aa0170..0c8faf8ff77 100644
--- a/syft/pkg/cataloger/ruby/catalogers.go
+++ b/syft/pkg/cataloger/ruby/catalogers.go
@@ -1,5 +1,5 @@
/*
-Package ruby bundler provides a concrete Cataloger implementation for Ruby Gemfile.lock bundler files.
+Package ruby provides a concrete Cataloger implementation relating to packages within the Ruby language ecosystem.
*/
package ruby
@@ -15,7 +15,7 @@ func NewGemFileLockCataloger() *generic.Cataloger {
// NewInstalledGemSpecCataloger returns a new Bundler cataloger object tailored for detecting installations of gems (e.g. Gemspec).
func NewInstalledGemSpecCataloger() *generic.Cataloger {
- return generic.NewCataloger("ruby-gemspec-cataloger").
+ return generic.NewCataloger("ruby-installed-gemspec-cataloger").
WithParserByGlobs(parseGemSpecEntries, "**/specifications/**/*.gemspec")
}
diff --git a/syft/pkg/cataloger/rust/cataloger.go b/syft/pkg/cataloger/rust/cataloger.go
index a5128b24da4..51cdeab8f5a 100644
--- a/syft/pkg/cataloger/rust/cataloger.go
+++ b/syft/pkg/cataloger/rust/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package rust provides a concrete Cataloger implementation for Cargo.lock files.
+Package rust provides a concrete Cataloger implementation relating to packages within the Rust language ecosystem.
*/
package rust
diff --git a/syft/pkg/cataloger/sbom/cataloger.go b/syft/pkg/cataloger/sbom/cataloger.go
index 548e5cad4e3..08c601455e4 100644
--- a/syft/pkg/cataloger/sbom/cataloger.go
+++ b/syft/pkg/cataloger/sbom/cataloger.go
@@ -1,3 +1,6 @@
+/*
+Package sbom provides a concrete Cataloger implementation for capturing packages embedded within SBOM files.
+*/
package sbom
import (
@@ -15,8 +18,8 @@ import (
const catalogerName = "sbom-cataloger"
-// NewSBOMCataloger returns a new SBOM cataloger object loaded from saved SBOM JSON.
-func NewSBOMCataloger() *generic.Cataloger {
+// NewCataloger returns a new SBOM cataloger object loaded from saved SBOM JSON.
+func NewCataloger() *generic.Cataloger {
return generic.NewCataloger(catalogerName).
WithParserByGlobs(parseSBOM,
"**/*.syft.json",
diff --git a/syft/pkg/cataloger/sbom/cataloger_test.go b/syft/pkg/cataloger/sbom/cataloger_test.go
index 7138e1c6e12..dbaf37b3088 100644
--- a/syft/pkg/cataloger/sbom/cataloger_test.go
+++ b/syft/pkg/cataloger/sbom/cataloger_test.go
@@ -421,7 +421,7 @@ func Test_parseSBOM(t *testing.T) {
FromDirectory(t, tt.fixture).
IgnorePackageFields("Metadata").
Expects(tt.wantPkgs, tt.wantRelationships).
- TestCataloger(t, NewSBOMCataloger())
+ TestCataloger(t, NewCataloger())
})
}
}
@@ -456,7 +456,7 @@ func Test_Cataloger_Globs(t *testing.T) {
pkgtest.NewCatalogTester().
FromDirectory(t, test.fixture).
ExpectsResolverContentQueries(test.expected).
- TestCataloger(t, NewSBOMCataloger())
+ TestCataloger(t, NewCataloger())
})
}
}
diff --git a/syft/pkg/cataloger/swift/cataloger.go b/syft/pkg/cataloger/swift/cataloger.go
index a890b85818c..f928d3e04c5 100644
--- a/syft/pkg/cataloger/swift/cataloger.go
+++ b/syft/pkg/cataloger/swift/cataloger.go
@@ -1,5 +1,5 @@
/*
-Package swift provides a concrete Cataloger implementation for Podfile.lock and Package.resolved files.
+Package swift provides a concrete Cataloger implementation relating to packages within the swift language ecosystem.
*/
package swift
@@ -8,7 +8,7 @@ import (
)
func NewSwiftPackageManagerCataloger() *generic.Cataloger {
- return generic.NewCataloger("spm-cataloger").
+ return generic.NewCataloger("swift-package-manager-cataloger").
WithParserByGlobs(parsePackageResolved, "**/Package.resolved", "**/.package.resolved")
}
diff --git a/test/cli/packages_cmd_test.go b/test/cli/packages_cmd_test.go
index 89c9a7248f8..5baf0e289c8 100644
--- a/test/cli/packages_cmd_test.go
+++ b/test/cli/packages_cmd_test.go
@@ -235,7 +235,7 @@ func TestPackagesCmdFlags(t *testing.T) {
},
{
name: "catalogers-option",
- // This will detect enable python-index-cataloger, python-package-cataloger and ruby-gemspec cataloger
+ // This will detect enable python-package-cataloger, python-installed-package-cataloger and ruby-gemspec cataloger
args: []string{"packages", "-o", "json", "--catalogers", "python,ruby-gemspec", coverageImage},
assertions: []traitAssertion{
assertPackageCount(13),
diff --git a/test/compare/test-fixtures/acceptance-centos-8.2.2004.json b/test/compare/test-fixtures/acceptance-centos-8.2.2004.json
index 218f9a825fe..71bc5960bf6 100644
--- a/test/compare/test-fixtures/acceptance-centos-8.2.2004.json
+++ b/test/compare/test-fixtures/acceptance-centos-8.2.2004.json
@@ -31672,7 +31672,7 @@
"name": "gpg",
"version": "1.10.0",
"type": "python",
- "foundBy": "python-package-cataloger",
+ "foundBy": "python-installed-package-cataloger",
"locations": [
{
"path": "/usr/lib64/python3.6/site-packages/gpg-1.10.0-py3.6.egg-info",
@@ -95502,7 +95502,7 @@
"name": "rpm",
"version": "4.14.2",
"type": "python",
- "foundBy": "python-package-cataloger",
+ "foundBy": "python-installed-package-cataloger",
"locations": [
{
"path": "/usr/lib64/python3.6/site-packages/rpm-4.14.2-py3.6.egg-info",
@@ -98658,7 +98658,7 @@
"name": "setuptools",
"version": "39.2.0",
"type": "python",
- "foundBy": "python-package-cataloger",
+ "foundBy": "python-installed-package-cataloger",
"locations": [
{
"path": "/usr/lib/python3.6/site-packages/setuptools-39.2.0.dist-info/METADATA",
diff --git a/test/integration/sbom_cataloger_test.go b/test/integration/sbom_cataloger_test.go
index 6faebbd13d9..65d94b3e059 100644
--- a/test/integration/sbom_cataloger_test.go
+++ b/test/integration/sbom_cataloger_test.go
@@ -18,7 +18,7 @@ func TestSbomCataloger(t *testing.T) {
actualSbomPkgs := 0
actualGoModPkgs := 0
for pkg := range sbom.Artifacts.Packages.Enumerate(pkg.GoModulePkg) {
- if pkg.FoundBy == "go-mod-file-cataloger" {
+ if pkg.FoundBy == "go-module-file-cataloger" {
actualGoModPkgs += 1
} else if pkg.FoundBy == "sbom-cataloger" {
actualSbomPkgs += 1