@@ -485,12 +485,19 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
485485 return fmt .Errorf ("package is version streamed but package.version %s starts with different than given version stream %s" , c .Package .Version , versionStream )
486486 }
487487
488- providesList := []string {
489- fmt .Sprintf ("%s=%s-r%d" , packageName , c .Package .Version , c .Package .Epoch ),
490- fmt .Sprintf ("%s=%s-r%d" , packageName , versionStream , c .Package .Epoch ),
491- fmt .Sprintf ("%s=%s" , packageName , c .Package .Version ),
492- fmt .Sprintf ("%s=%s" , packageName , versionStream ),
493- fmt .Sprintf ("%s=%s.999" , packageName , versionStream ),
488+ var providesList []string
489+ addToProvidesList := func (key string ) {
490+ providesList = append (providesList , fmt .Sprintf ("%s=%s-r%d" , key , c .Package .Version , c .Package .Epoch ))
491+ providesList = append (providesList , fmt .Sprintf ("%s=%s-r%d" , key , versionStream , c .Package .Epoch ))
492+ providesList = append (providesList , fmt .Sprintf ("%s=%s" , key , c .Package .Version ))
493+ providesList = append (providesList , fmt .Sprintf ("%s=%s" , key , versionStream ))
494+ providesList = append (providesList , fmt .Sprintf ("%s=%s.999" , key , versionStream ))
495+ }
496+ addToProvidesList (packageName )
497+
498+ // Some packages have different provides for package name, i.e. python-3 instead of python.
499+ if majorMinor := strings .Split (versionStream , "." ); len (majorMinor ) > 1 {
500+ addToProvidesList (fmt .Sprintf ("%s-%s" , packageName , majorMinor [0 ]))
494501 }
495502
496503 anyMatch := false
@@ -506,7 +513,7 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
506513 }
507514
508515 if c .Update .Enabled && ! c .Update .Manual && c .Update .GitHubMonitor != nil {
509- prefixesToCheck := []string {"" , "v" , packageName , "release" }
516+ prefixesToCheck := []string {"" , "v" , packageName , "release" , strings . ReplaceAll ( packageName , "-fips" , "" ), c . Update . GitHubMonitor . StripPrefix }
510517 separators := []string {"" , "." , "-" , "_" }
511518 versionsToCheck := []string {versionStream , strings .ReplaceAll (versionStream , "." , "-" ), strings .ReplaceAll (versionStream , "." , "_" )}
512519
@@ -522,7 +529,7 @@ var AllRules = func(l *Linter) Rules { //nolint:gocyclo
522529 }
523530
524531 if ! slices .Contains (filtersToCheck , c .Update .GitHubMonitor .TagFilter ) && ! slices .Contains (filtersToCheck , c .Update .GitHubMonitor .TagFilterPrefix ) {
525- return fmt .Errorf ("package is version streamed but tag filter %s is missing on update.github" , versionStream )
532+ return fmt .Errorf ("package is version streamed but tag filter %s is mismatch on update.github" , versionStream )
526533 }
527534 }
528535 return nil
0 commit comments