diff --git a/modules/packages/alpine/metadata.go b/modules/packages/alpine/metadata.go index c2d0caffa1..582c42610d 100644 --- a/modules/packages/alpine/metadata.go +++ b/modules/packages/alpine/metadata.go @@ -55,16 +55,17 @@ type VersionMetadata struct { } type FileMetadata struct { - Checksum string `json:"checksum"` - Packager string `json:"packager,omitempty"` - BuildDate int64 `json:"build_date,omitempty"` - Size int64 `json:"size,omitempty"` - Architecture string `json:"architecture,omitempty"` - Origin string `json:"origin,omitempty"` - CommitHash string `json:"commit_hash,omitempty"` - InstallIf string `json:"install_if,omitempty"` - Provides []string `json:"provides,omitempty"` - Dependencies []string `json:"dependencies,omitempty"` + Checksum string `json:"checksum"` + Packager string `json:"packager,omitempty"` + BuildDate int64 `json:"build_date,omitempty"` + Size int64 `json:"size,omitempty"` + Architecture string `json:"architecture,omitempty"` + Origin string `json:"origin,omitempty"` + CommitHash string `json:"commit_hash,omitempty"` + InstallIf string `json:"install_if,omitempty"` + Provides []string `json:"provides,omitempty"` + Dependencies []string `json:"dependencies,omitempty"` + ProviderPriority int64 `json:"provider_priority,omitempty"` } // ParsePackage parses the Alpine package file @@ -188,6 +189,11 @@ func ParsePackageInfo(r io.Reader) (*Package, error) { if value != "" { p.FileMetadata.Dependencies = append(p.FileMetadata.Dependencies, value) } + case "provider_priority": + n, err := strconv.ParseInt(value, 10, 64) + if err == nil { + p.FileMetadata.ProviderPriority = n + } } } if err := scanner.Err(); err != nil { diff --git a/services/packages/alpine/repository.go b/services/packages/alpine/repository.go index 30b7a06eb3..104548b421 100644 --- a/services/packages/alpine/repository.go +++ b/services/packages/alpine/repository.go @@ -230,6 +230,12 @@ func buildPackagesIndex(ctx context.Context, ownerID int64, repoVersion *package if len(pd.FileMetadata.Provides) > 0 { fmt.Fprintf(&buf, "p:%s\n", strings.Join(pd.FileMetadata.Provides, " ")) } + if pd.FileMetadata.InstallIf != "" { + fmt.Fprintf(&buf, "i:%s\n", pd.FileMetadata.InstallIf) + } + if pd.FileMetadata.ProviderPriority > 0 { + fmt.Fprintf(&buf, "k:%d\n", pd.FileMetadata.ProviderPriority) + } fmt.Fprint(&buf, "\n") }