From e2e5e223ab834a9b209d5e7280d0c6c6d51a7302 Mon Sep 17 00:00:00 2001 From: witchcraze <67056980+witchcraze@users.noreply.github.com> Date: Fri, 15 May 2026 00:29:42 +0900 Subject: [PATCH] feat: mysqld, ndbd, ndbmtd and ndb_mgmd classifier (#4907) Signed-off-by: witchcraze --- internal/capabilities/generate/merge.go | 6 +- internal/capabilities/generate/overrides.go | 41 +++++++- syft/pkg/cataloger/binary/capabilities.yaml | 71 ++++++++++++++ .../binary/classifier_cataloger_test.go | 92 +++++++++++++++++- syft/pkg/cataloger/binary/classifiers.go | 90 +++++++++++++++++ .../mysql-cluster/7.6.17/linux-amd64/mysqld | Bin 0 -> 351 bytes .../mysql-cluster/9.7.0/linux-amd64/mysqld | Bin 0 -> 351 bytes .../snippets/mysqld/9.7.0/linux-amd64/mysqld | Bin 0 -> 351 bytes .../ndb_mgmd/9.7.0/linux-amd64/ndb_mgmd | Bin 0 -> 352 bytes .../snippets/ndbd/9.7.0/linux-amd64/ndbd | Bin 0 -> 348 bytes .../snippets/ndbmtd/9.7.0/linux-amd64/ndbmtd | Bin 0 -> 350 bytes .../pkg/cataloger/binary/testdata/config.yaml | 60 +++++++++--- 12 files changed, 338 insertions(+), 22 deletions(-) create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysql-cluster/7.6.17/linux-amd64/mysqld create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysql-cluster/9.7.0/linux-amd64/mysqld create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysqld/9.7.0/linux-amd64/mysqld create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/ndb_mgmd/9.7.0/linux-amd64/ndb_mgmd create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/ndbd/9.7.0/linux-amd64/ndbd create mode 100644 syft/pkg/cataloger/binary/testdata/classifiers/snippets/ndbmtd/9.7.0/linux-amd64/ndbmtd diff --git a/internal/capabilities/generate/merge.go b/internal/capabilities/generate/merge.go index c42260e89..5f045fb82 100644 --- a/internal/capabilities/generate/merge.go +++ b/internal/capabilities/generate/merge.go @@ -490,11 +490,15 @@ func (e *EnrichmentData) EnrichWithBinaryClassifier(catalogerName string, entry } for _, o := range binaryClassifierOverrides[classifier.Class] { + cpeStrings := make([]string, len(o.CPEs)) + for i, c := range o.CPEs { + cpeStrings[i] = c.Attributes.BindToFmtString() + } packages = append(packages, capabilities.DetectorPackageInfo{ Class: o.Class, Name: o.Package, PURL: stripPURLVersion(o.PURL), - CPEs: o.CPEs, + CPEs: cpeStrings, Type: "BinaryPkg", }) } diff --git a/internal/capabilities/generate/overrides.go b/internal/capabilities/generate/overrides.go index 1f578a15e..22a77deae 100644 --- a/internal/capabilities/generate/overrides.go +++ b/internal/capabilities/generate/overrides.go @@ -10,7 +10,7 @@ type binaryClassifierOverride struct { Class string Package string PURL string - CPEs []string + CPEs []cpe.CPE } var binaryClassifierOverrides = map[string][]binaryClassifierOverride{ @@ -110,12 +110,47 @@ var binaryClassifierOverrides = map[string][]binaryClassifierOverride{ CPEs: singleCPE("cpe:2.3:a:openssl:openssl:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), }, }, + "mysqld-binary": { + { + Class: "mysqld-mysql-cluster-legacy-binary", + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + Class: "mysqld-mysql-cluster-binary", + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + Class: "mysqld-mysql-server-binary", + Package: "mysql-server", + PURL: mustPURL("pkg:generic/mysql-server@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + }, } func mustPURL(purl string) string { return purl } -func singleCPE(cpeString string, _ ...any) []string { - return []string{cpeString} +func singleCPE(cpeString string, source ...cpe.Source) []cpe.CPE { + src := cpe.GeneratedSource + if len(source) > 0 { + src = source[0] + } + return []cpe.CPE{ + cpe.Must(cpeString, src), + } } diff --git a/syft/pkg/cataloger/binary/capabilities.yaml b/syft/pkg/cataloger/binary/capabilities.yaml index 35a3e946b..600207a5a 100644 --- a/syft/pkg/cataloger/binary/capabilities.yaml +++ b/syft/pkg/cataloger/binary/capabilities.yaml @@ -242,6 +242,77 @@ catalogers: - cpe:2.3:a:percona:percona_server:*:*:*:*:*:*:*:* - cpe:2.3:a:percona:xtradb_cluster:*:*:*:*:*:*:*:* type: BinaryPkg + - method: glob + criteria: + - '**/mysqld' + packages: + - class: mysqld-mysql-cluster-legacy-binary + name: mysql-server + purl: pkg:generic/mysql-server + cpes: + - cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:* + - cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:* + type: BinaryPkg + - method: glob + criteria: + - '**/mysqld' + packages: + - class: mysqld-binary + name: "" + purl: pkg:/ + cpes: [] + type: BinaryPkg + - class: mysqld-mysql-cluster-legacy-binary + name: mysql-cluster + purl: pkg:generic/mysql-cluster + cpes: + - cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:* + type: BinaryPkg + - class: mysqld-mysql-cluster-binary + name: mysql-cluster + purl: pkg:generic/mysql-cluster + cpes: + - cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:* + - cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:* + - cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:* + type: BinaryPkg + - class: mysqld-mysql-server-binary + name: mysql-server + purl: pkg:generic/mysql-server + cpes: + - cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:* + - cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:* + type: BinaryPkg + - method: glob + criteria: + - '**/ndbd' + packages: + - class: ndbd-binary + name: mysql-cluster + purl: pkg:generic/mysql-cluster + cpes: + - cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:* + type: BinaryPkg + - method: glob + criteria: + - '**/ndbmtd' + packages: + - class: ndbmtd-binary + name: mysql-cluster + purl: pkg:generic/mysql-cluster + cpes: + - cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:* + type: BinaryPkg + - method: glob + criteria: + - '**/ndb_mgmd' + packages: + - class: ndb_mgmd-binary + name: mysql-cluster + purl: pkg:generic/mysql-cluster + cpes: + - cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:* + type: BinaryPkg - method: glob criteria: - '**/xtrabackup' diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index 279a21099..28b48cac1 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -36,8 +36,9 @@ func Test_Cataloger_PositiveCases(t *testing.T) { // or testdata/classifiers/bin directory . Snippets are searched for first, and if not found, then existing binaries are // used. If no binary or snippet is found the test will fail. If '-must-use-original-binaries' is used the only // full binaries are tested (no snippets), and if no binary is found the test will be skipped. - logicalFixture string - expected pkg.Package + logicalFixture string + expected pkg.Package + expectedPackages []pkg.Package }{ { logicalFixture: "arangodb/3.11.8/linux-amd64", @@ -206,6 +207,82 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("mariadb-binary"), }, }, + { + logicalFixture: "mysqld/9.7.0/linux-amd64", + expected: pkg.Package{ + Name: "mysql-server", + Version: "9.7.0", + Type: "binary", + PURL: "pkg:generic/mysql-server@9.7.0", + Locations: locations("mysqld"), + Metadata: metadata("mysqld-mysql-server-binary"), + }, + }, + { + logicalFixture: "mysql-cluster/9.7.0/linux-amd64", + expected: pkg.Package{ + Name: "mysql-cluster", + Version: "9.7.0", + Type: "binary", + PURL: "pkg:generic/mysql-cluster@9.7.0", + Locations: locations("mysqld"), + Metadata: metadata("mysqld-mysql-cluster-binary"), + }, + }, + { + logicalFixture: "mysql-cluster/7.6.17/linux-amd64", + expectedPackages: []pkg.Package{ + { + Name: "mysql-server", + Version: "5.7.33", + Type: "binary", + PURL: "pkg:generic/mysql-server@5.7.33", + Locations: locations("mysqld"), + Metadata: metadata("mysqld-mysql-cluster-legacy-binary"), + }, + { + Name: "mysql-cluster", + Version: "7.6.17", + Type: "binary", + PURL: "pkg:generic/mysql-cluster@7.6.17", + Locations: locations("mysqld"), + Metadata: metadata("mysqld-mysql-cluster-legacy-binary"), + }, + }, + }, + { + logicalFixture: "ndbd/9.7.0/linux-amd64", + expected: pkg.Package{ + Name: "mysql-cluster", + Version: "9.7.0", + Type: "binary", + PURL: "pkg:generic/mysql-cluster@9.7.0", + Locations: locations("ndbd"), + Metadata: metadata("ndbd-binary"), + }, + }, + { + logicalFixture: "ndbmtd/9.7.0/linux-amd64", + expected: pkg.Package{ + Name: "mysql-cluster", + Version: "9.7.0", + Type: "binary", + PURL: "pkg:generic/mysql-cluster@9.7.0", + Locations: locations("ndbmtd"), + Metadata: metadata("ndbmtd-binary"), + }, + }, + { + logicalFixture: "ndb_mgmd/9.7.0/linux-amd64", + expected: pkg.Package{ + Name: "mysql-cluster", + Version: "9.7.0", + Type: "binary", + PURL: "pkg:generic/mysql-cluster@9.7.0", + Locations: locations("ndb_mgmd"), + Metadata: metadata("ndb_mgmd-binary"), + }, + }, { logicalFixture: "mongodb/8.0.17/linux-amd64", expected: pkg.Package{ @@ -2377,9 +2454,16 @@ func Test_Cataloger_PositiveCases(t *testing.T) { packages, _, err := c.Catalog(context.Background(), resolver) require.NoError(t, err) - require.Len(t, packages, 1, "mismatched package count") + expected := test.expectedPackages + if len(expected) == 0 { + expected = []pkg.Package{test.expected} + } - assertPackagesAreEqual(t, test.expected, packages[0]) + require.Len(t, packages, len(expected), "mismatched package count") + + for i := range expected { + assertPackagesAreEqual(t, expected[i], packages[i]) + } }) } } diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index 8a0f32fb8..c14f5e8f2 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -294,6 +294,96 @@ func DefaultClassifiers() []binutils.Classifier { cpe.Must("cpe:2.3:a:percona:xtradb_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), }, }, + { + // Legacy MySQL Cluster contains both MySQL Server and MySQL Cluster versions (Example: 5.7.33-ndb-7.5.21) + // This classifier identifies the MySQL Server version of the mysqld binary (5.7.33 in the example above). + Class: "mysqld-mysql-cluster-legacy-binary", + FileGlob: "**/mysqld", + EvidenceMatcher: m.FileContentsVersionMatcher( + `cluster-gpl\x00(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?)\-ndb\-[0-9]+(\.[0-9]+)?(\.[0-9]+)?`), + Package: "mysql-server", + PURL: mustPURL("pkg:generic/mysql-server@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + Class: "mysqld-binary", + FileGlob: "**/mysqld", + EvidenceMatcher: binutils.BranchingEvidenceMatcher([]binutils.Classifier{ + { + // Legacy MySQL Cluster contains both MySQL Server and MySQL Cluster versions (Example: 5.7.33-ndb-7.5.21) + // This classifier identifies the MySQL Cluster version of the mysqld binary (7.5.21 in the example above). + Class: "mysqld-mysql-cluster-legacy-binary", + EvidenceMatcher: m.FileContentsVersionMatcher( + `cluster-gpl\x00[0-9]+(\.[0-9]+)?(\.[0-9]+)?\-ndb\-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?)`), + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + // mysqld from MySQL Cluster after versioning was aligned with MySQL Server + Class: "mysqld-mysql-cluster-binary", + EvidenceMatcher: m.FileContentsVersionMatcher( + `/mysql-cluster-gpl-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)/`), + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + // mysqld from MySQL Server + Class: "mysqld-mysql-server-binary", + EvidenceMatcher: m.FileContentsVersionMatcher( + `/mysql-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)/`), + Package: "mysql-server", + PURL: mustPURL("pkg:generic/mysql-server@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + cpe.Must("cpe:2.3:a:oracle:mysql_server:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + }...), + }, + { + Class: "ndbd-binary", + FileGlob: "**/ndbd", + EvidenceMatcher: m.FileContentsVersionMatcher( + `/mysql-cluster-gpl-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)/`), + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + Class: "ndbmtd-binary", + FileGlob: "**/ndbmtd", + EvidenceMatcher: m.FileContentsVersionMatcher( + `/mysql-cluster-gpl-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)/`), + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, + { + Class: "ndb_mgmd-binary", + FileGlob: "**/ndb_mgmd", + EvidenceMatcher: m.FileContentsVersionMatcher( + `/mysql-cluster-gpl-(?P[0-9]+(\.[0-9]+)?(\.[0-9]+)?(alpha[0-9]|beta[0-9]|rc[0-9])?)/`), + Package: "mysql-cluster", + PURL: mustPURL("pkg:generic/mysql-cluster@version"), + CPEs: []cpe.CPE{ + cpe.Must("cpe:2.3:a:oracle:mysql_cluster:*:*:*:*:*:*:*:*", cpe.NVDDictionaryLookupSource), + }, + }, { Class: "xtrabackup-binary", FileGlob: "**/xtrabackup", diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysql-cluster/7.6.17/linux-amd64/mysqld b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysql-cluster/7.6.17/linux-amd64/mysqld new file mode 100644 index 0000000000000000000000000000000000000000..95650eebb7f4109ec1f3a16c732ef09662cc91d2 GIT binary patch literal 351 zcmXwz$!@|h6h*W4S6D)bvPkL|#}nVsU8Qa#+j$O=j7?)x;O`3^R!4Wx)lK$<2YR}f z&p44BLcw~Vpp<4x0g0IAdVCl?BPA{8GuHQ`?S(v07Z~S(sor=1HTg+7&#eK?zzV0i z0O72MXMqhIw3D7Qqqxw{NM{WROT_;%0B4+Mz2;U)*IR{v#>=3=^pjv#4v1`E27?=n zQVaz{*F(^#Ex;5A*=#n{-7C_+o3v&ca*X*(9}&T^E+=eSA1|fi+Ro?Lh)#8!w`p>% z>SPD1xoJ7dp?O=<<<@Kqr60J`2SffrPEYZ&Eql`J+BW8S#C6T<_=T&>WvTaF^J`!2 JnwB(|*Ka}HW=Q}5 literal 0 HcmV?d00001 diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysql-cluster/9.7.0/linux-amd64/mysqld b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysql-cluster/9.7.0/linux-amd64/mysqld new file mode 100644 index 0000000000000000000000000000000000000000..f087fa4f374a9c86afbbbd0c7117930a335fb496 GIT binary patch literal 351 zcmZvYOHafw41_u7S47%#wz2bS_lUS4aYLL@9(K1P+m>ws?Y}2NaAS_2M`L^Dc%hTL z+_v{x#KOGMev)SBHNfCSrFq=XCkd#m;5P|`RoW1pVh$$NvqA?~$ zM^qvgSG4ULbKWDMEjoaq5Im3*JXQJ&+&VrNKEr6X)bDEmFkk;?wY#Kc>t{mbLiL-$jb%JpO0>8i%Hs^J)p`d|JHNy29V literal 0 HcmV?d00001 diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysqld/9.7.0/linux-amd64/mysqld b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/mysqld/9.7.0/linux-amd64/mysqld new file mode 100644 index 0000000000000000000000000000000000000000..5563de504ecfa132a8bd77e0764b274581110035 GIT binary patch literal 351 zcmXv~OK!v<6w8`ZAdR}I)C9sm*XRMF2Rt&gB&0(|)!e@6Px8jHW!c_f#fh$u_E93K zDK$JMD*31tbDR|1mg726J~Gm_yzh9tUSU*vqRiVga;uF+>A^AOwKmH6#D(=PFvB(D z-ndan;KqjJgk(-|Zk>oeGLmw^|1boT6tfb5OV6ZXT=eSRe$rDS>-^U0)|CozhLWLS>-v5;@iYC!^`>XT zdBRZY(udGJ_0NrT!@b>xlD(F{zF{x-C2!pg&zw>NlzD|MCu~Rej*na3md-=VVQ$Aa GnZ5ueTx!k$ literal 0 HcmV?d00001 diff --git a/syft/pkg/cataloger/binary/testdata/classifiers/snippets/ndb_mgmd/9.7.0/linux-amd64/ndb_mgmd b/syft/pkg/cataloger/binary/testdata/classifiers/snippets/ndb_mgmd/9.7.0/linux-amd64/ndb_mgmd new file mode 100644 index 0000000000000000000000000000000000000000..b559eb61b433c0ea0573648daf0708398ee17e3b GIT binary patch literal 352 zcmZus%SyyR5cE7>F|c^dX1bG}#~wul!JBwqrZYX+g~`JtD*N|F(3^Fu2SwEw2RZ36 z@p>eQrt&b5MTIo9QT{2ABc(9%V zB(?^HtP{?h#5bwwTmnFLv^zejd@b@A&QZjGW2FvPhEi8uU1&{qB9b`$7E~m%3cJo*Ch`GODo{ zOQ@As1zCAg7&sP=P@);jD9Tj%PlhJN-~nSs9i1~oIs^p;vtk#?g8ue|To8T9Ng+6g z0Sp;TOhiH)4hKos#`5>3Y>O;Qt;?spO=8((=EkXU?#10thL5-nb)sP#dL?lRLh#2|k-d)LaFk?XcJtF}b6;_pA)tn|g^SS1! zSGExC*v~v_C%rPP;e6@WGY2KvKHt_A`|~v^>y8SV912JRSDl7JrdW#+pnywIjSQr1 zHcEO)2Bpu^L`;MUDCt0f(XHVhOb1tjqDU%wYotu|0Fg^F%UH;Jt6VgtAZSJ2f>p-V zqw1nERI5kEPNx&kUmf}HP2LwyOKZy~KO(klykf`Fv5xHSN8%%GqTRAsvl4rLg+U!$ uP|gi-Oxob3h7n{8R$H;Hlem9*e0mVm*Z$Uq(%$!u+i+Ri5Jx}CfBkPj)??cM literal 0 HcmV?d00001 diff --git a/syft/pkg/cataloger/binary/testdata/config.yaml b/syft/pkg/cataloger/binary/testdata/config.yaml index ea1540b68..5ad0c69eb 100644 --- a/syft/pkg/cataloger/binary/testdata/config.yaml +++ b/syft/pkg/cataloger/binary/testdata/config.yaml @@ -312,20 +312,52 @@ from-images: paths: - /usr/bin/mysql -# TODO: add pattern for mysqld -# - version: 5.6.51 -# images: -# - ref: mysql:5.6.51@sha256:897086d07d1efa876224b147397ea8d3147e61dd84dce963aace1d5e9dc2802d -# platform: linux/amd64 -# paths: -# - /usr/sbin/mysqld -# -# - version: 8.0.34 -# images: -# - ref: mysql:8.0.34@sha256:8b8835a2c32cd7357a5d2ea4b49ad870ff519c8c1d4add362803feddf4a0a973 -# platform: linux/amd64 -# paths: -# - /usr/sbin/mysqld + - version: 9.7.0 + images: + - ref: mysql:9.7.0@sha256:6e5e46e6aece0bc8edb5abecc6fd726653f36447860f7f4dbf3481c91b477f69 + platform: linux/amd64 + paths: + - /usr/sbin/mysqld + + - name: mysql-cluster + version: 9.7.0 + images: + - ref: container-registry.oracle.com/mysql/community-cluster:9.7.0 + platform: linux/amd64 + paths: + - /usr/sbin/mysqld + + - name: mysql-cluster + version: 7.6.17 + images: + - ref: container-registry.oracle.com/mysql/community-cluster:7.6.17 + platform: linux/amd64 + paths: + - /usr/sbin/mysqld + + - name: ndbd + version: 9.7.0 + images: + - ref: container-registry.oracle.com/mysql/community-cluster:9.7.0 + platform: linux/amd64 + paths: + - /usr/sbin/ndbd + + - name: ndbmtd + version: 9.7.0 + images: + - ref: container-registry.oracle.com/mysql/community-cluster:9.7.0 + platform: linux/amd64 + paths: + - /usr/sbin/ndbmtd + + - name: ndb_mgmd + version: 9.7.0 + images: + - ref: container-registry.oracle.com/mysql/community-cluster:9.7.0 + platform: linux/amd64 + paths: + - /usr/sbin/ndb_mgmd - name: mongodb version: 8.0.17