Use redhat as namespace for hummingbird rpms (#4615)

The namespace value of `redhat` signifies this as an RPM package
produced and distributed by Red Hat.

Signed-off-by: Scott Hebert <scoheb@gmail.com>
This commit is contained in:
Scott Hebert 2026-02-11 14:19:20 -05:00 committed by GitHub
parent 9872ff36ba
commit 89b901b20b
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 16 additions and 2 deletions

View File

@ -84,13 +84,13 @@ func newMetadataFromManifestLine(entry string) (*pkg.RpmDBEntry, error) {
}, nil }, nil
} }
// packageURL returns the PURL for the specific RHEL package (see https://github.com/package-url/purl-spec) // packageURL returns the PURL for the specific RHEL or Hummingbird package (see https://github.com/package-url/purl-spec)
func packageURL(name, arch string, epoch *int, srpm string, version, release string, distro *linux.Release) string { func packageURL(name, arch string, epoch *int, srpm string, version, release string, distro *linux.Release) string {
var namespace string var namespace string
if distro != nil { if distro != nil {
namespace = distro.ID namespace = distro.ID
} }
if namespace == "rhel" { if namespace == "rhel" || namespace == "hummingbird" {
namespace = "redhat" namespace = "redhat"
} }
if strings.HasPrefix(namespace, "opensuse") { if strings.HasPrefix(namespace, "opensuse") {

View File

@ -55,6 +55,20 @@ func Test_packageURL(t *testing.T) {
}, },
expected: "pkg:rpm/p@v-r", expected: "pkg:rpm/p@v-r",
}, },
{
name: "hummingbird distro maps to redhat namespace",
distro: &linux.Release{
ID: "hummingbird",
VersionID: "1.0",
},
metadata: pkg.RpmDBEntry{
Name: "p",
Version: "v",
Release: "r",
Epoch: nil,
},
expected: "pkg:rpm/redhat/p@v-r?distro=hummingbird-1.0",
},
{ {
name: "with upstream source rpm info", name: "with upstream source rpm info",
distro: &linux.Release{ distro: &linux.Release{