diff --git a/updater/fetchers/rocky/rocky.go b/updater/fetchers/rocky/rocky.go index 48d8d0f..b499369 100644 --- a/updater/fetchers/rocky/rocky.go +++ b/updater/fetchers/rocky/rocky.go @@ -145,11 +145,19 @@ func extractVersionModuleFromNevra(nevra string) (string, string) { if len(nevraInfo) != 2 { return "", "" } + + // Strip trailing "-" from namePart (the "0" before ':') moduleName := nevraInfo[0] if lastPeriod := strings.LastIndex(moduleName, "-"); lastPeriod > 0 { moduleName = moduleName[:lastPeriod] } + moduleVersion := nevraInfo[1] + if strings.Contains(moduleVersion, "^") { + // "0^20240806.gee36266-6.el9_5" -> "0.20240806.gee36266-6.el9_5" + moduleVersion = strings.ReplaceAll(moduleVersion, "^", ".") + } + return moduleName, moduleVersion } @@ -185,7 +193,7 @@ func buildFixedInByNamespace(affectedProducts []affectedProduct, packages []pkg) if _, existing := groupPakcage[pkgVersion]; !existing { fvVer, err := common.NewVersion(pkgVersion) if err != nil { - log.WithFields(log.Fields{"err": err, "version": pkgVersion, "ftVer": fvVer}).Debug("Error converting version to FeatureVersion") + log.WithFields(log.Fields{"pkg.Nevra": pkg.Nevra, "version": pkgVersion, "pkgName": pkgName, "err": err}).Error("Error converting version to FeatureVersion") } groupPakcage[pkgVersion] = common.FeatureVersion{ diff --git a/updater/fetchers/rocky/rocky_test.go b/updater/fetchers/rocky/rocky_test.go index 5477099..3c00c80 100644 --- a/updater/fetchers/rocky/rocky_test.go +++ b/updater/fetchers/rocky/rocky_test.go @@ -16,6 +16,7 @@ func TestExtractVersionModuleFromNevra(t *testing.T) { {nevra: "kernel-0:6.12.0-124.8.1.el10_1.aarch64.rpm", moduleName: "kernel", moduleVersion: "6.12.0-124.8.1.el10_1"}, {nevra: "kernel-64k-debug-core-0:6.12.0-124.8.1.el10_1.aarch64.rpm", moduleName: "kernel-64k-debug-core", moduleVersion: "6.12.0-124.8.1.el10_1"}, {nevra: "kernel-abi-stablelists-0:6.12.0-124.8.1.el10_1.noarch.rpm", moduleName: "kernel-abi-stablelists", moduleVersion: "6.12.0-124.8.1.el10_1"}, + {nevra: "passt-0:0^20240806.gee36266-6.el9_5.aarch64.rpm", moduleName: "passt", moduleVersion: "0.20240806.gee36266-6.el9_5"}, } for _, test := range tests { moduleName, moduleVersion := extractVersionModuleFromNevra(test.nevra)