diff --git a/syft/pkg/cataloger/binary/classifier_cataloger_test.go b/syft/pkg/cataloger/binary/classifier_cataloger_test.go index 721ee9ee045..4e283a56a1e 100644 --- a/syft/pkg/cataloger/binary/classifier_cataloger_test.go +++ b/syft/pkg/cataloger/binary/classifier_cataloger_test.go @@ -359,7 +359,17 @@ func Test_Cataloger_PositiveCases(t *testing.T) { Metadata: metadata("haproxy-binary"), }, }, - + { + logicalFixture: "haproxy/3.1-dev0/linux-amd64", + expected: pkg.Package{ + Name: "haproxy", + Version: "3.1-dev0", + Type: "binary", + PURL: "pkg:generic/haproxy@3.1-dev0", + Locations: locations("haproxy"), + Metadata: metadata("haproxy-binary"), + }, + }, { logicalFixture: "helm/3.11.1/linux-amd64", expected: pkg.Package{ diff --git a/syft/pkg/cataloger/binary/classifiers.go b/syft/pkg/cataloger/binary/classifiers.go index 24c514c7e45..46afa87f5cb 100644 --- a/syft/pkg/cataloger/binary/classifiers.go +++ b/syft/pkg/cataloger/binary/classifiers.go @@ -190,8 +190,8 @@ func DefaultClassifiers() []Classifier { Class: "haproxy-binary", FileGlob: "**/haproxy", EvidenceMatcher: evidenceMatchers( - FileContentsVersionMatcher(`(?m)HA-Proxy version (?P[0-9]+\.[0-9]+\.[0-9]+)`), - FileContentsVersionMatcher(`(?m)(?P[0-9]+\.[0-9]+\.[0-9]+)-[0-9a-zA-Z]{7}.+HAProxy version`), + FileContentsVersionMatcher(`(?m)HA-Proxy version (?P[0-9]+\.[0-9]+(\.|-dev)[0-9]+)`), + FileContentsVersionMatcher(`(?m)(?P[0-9]+\.[0-9]+(\.|-dev)[0-9]+)-[0-9a-zA-Z]{7}.+HAProxy version`), ), Package: "haproxy", PURL: mustPURL("pkg:generic/haproxy@version"), diff --git a/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/haproxy/3.1-dev0/linux-amd64/haproxy b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/haproxy/3.1-dev0/linux-amd64/haproxy new file mode 100644 index 00000000000..94a91b1ad84 Binary files /dev/null and b/syft/pkg/cataloger/binary/test-fixtures/classifiers/snippets/haproxy/3.1-dev0/linux-amd64/haproxy differ diff --git a/syft/pkg/cataloger/binary/test-fixtures/config.yaml b/syft/pkg/cataloger/binary/test-fixtures/config.yaml index 15273d33d2f..78d8ba4b8cf 100644 --- a/syft/pkg/cataloger/binary/test-fixtures/config.yaml +++ b/syft/pkg/cataloger/binary/test-fixtures/config.yaml @@ -106,6 +106,13 @@ from-images: paths: - /usr/local/sbin/haproxy + - version: 3.1-dev0 + images: + - ref: haproxy:3.1-dev0@sha256:eba1aac9aa6ea84869bd2ecae79792a934563fd731eddf724eb3b12ef6a9b93f + platform: linux/amd64 + paths: + - /usr/local/sbin/haproxy + - version: 2.4.54 images: - ref: httpd:2.4.54@sha256:c13feaef62bdb03e65e645f47d9780adea5a080c78eb9e4b3c32e861327262b4