Fix latest package filtering by architecture

This commit is contained in:
Hansjoerg Maurer authored and André Roth committed 2026-11-05 21:16:51 +01:00
1 parent 217fcc3d2e
commit 2f228199c5
2 files changed
+117 -27

No files matched your search

+5 -27
View File
@@ -285,33 +285,11 @@ func showPackages(c *gin.Context, reflist *deb.PackageRefList, collectionFactory
// filter packages by version
if c.Request.URL.Query().Get("maximumVersion") == "1" {
list.PrepareIndex()
_ = list.ForEach(func(p *deb.Package) error {
versionQ, err := query.Parse(fmt.Sprintf("Name (%s), $Version (<= %s)", p.Name, p.Version))
if err != nil {
fmt.Println("filter packages by version, query string parse err: ", err)
_ = c.AbortWithError(500, fmt.Errorf("unable to parse %s maximum version query string: %s", p.Name, err))
} else {
tmpList, err := list.Filter(deb.FilterOptions{
Queries: []deb.PackageQuery{versionQ},
})
if err == nil {
if tmpList.Len() > 0 {
_ = tmpList.ForEach(func(tp *deb.Package) error {
list.Remove(tp)
return nil
})
_ = list.Add(p)
}
} else {
fmt.Println("filter packages by version, filter err: ", err)
_ = c.AbortWithError(500, fmt.Errorf("unable to get %s maximum version: %s", p.Name, err))
}
}
return nil
})
list, err = list.FilterLatest(1)
if err != nil {
AbortWithJSONError(c, 500, fmt.Errorf("unable to filter latest packages: %s", err))
return
}
}
if c.Request.URL.Query().Get("format") == "details" {