Skip to content

Commit 5a17023

Browse files
committed
Propagate install_if and provider_priority to APKINDEX
Resolves #28704
1 parent 5f82ead commit 5a17023

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

modules/packages/alpine/metadata.go

+22-10
Original file line numberDiff line numberDiff line change
@@ -55,16 +55,18 @@ type VersionMetadata struct {
5555
}
5656

5757
type FileMetadata struct {
58-
Checksum string `json:"checksum"`
59-
Packager string `json:"packager,omitempty"`
60-
BuildDate int64 `json:"build_date,omitempty"`
61-
Size int64 `json:"size,omitempty"`
62-
Architecture string `json:"architecture,omitempty"`
63-
Origin string `json:"origin,omitempty"`
64-
CommitHash string `json:"commit_hash,omitempty"`
65-
InstallIf string `json:"install_if,omitempty"`
66-
Provides []string `json:"provides,omitempty"`
67-
Dependencies []string `json:"dependencies,omitempty"`
58+
Checksum string `json:"checksum"`
59+
Packager string `json:"packager,omitempty"`
60+
BuildDate int64 `json:"build_date,omitempty"`
61+
Size int64 `json:"size,omitempty"`
62+
Architecture string `json:"architecture,omitempty"`
63+
Origin string `json:"origin,omitempty"`
64+
CommitHash string `json:"commit_hash,omitempty"`
65+
InstallIf string `json:"install_if,omitempty"`
66+
Provides []string `json:"provides,omitempty"`
67+
Dependencies []string `json:"dependencies,omitempty"`
68+
ProviderPriority int64 `json:"provider_priority,omitempty"`
69+
ReplacesPriority int64 `json:"replaces_priority,omitempty"`
6870
}
6971

7072
// ParsePackage parses the Alpine package file
@@ -188,6 +190,16 @@ func ParsePackageInfo(r io.Reader) (*Package, error) {
188190
if value != "" {
189191
p.FileMetadata.Dependencies = append(p.FileMetadata.Dependencies, value)
190192
}
193+
case "provider_priority":
194+
n, err := strconv.ParseInt(value, 10, 64)
195+
if err == nil {
196+
p.FileMetadata.ProviderPriority = n
197+
}
198+
case "replaces_priority":
199+
n, err := strconv.ParseInt(value, 10, 64)
200+
if err == nil {
201+
p.FileMetadata.ReplacesPriority = n
202+
}
191203
}
192204
}
193205
if err := scanner.Err(); err != nil {

services/packages/alpine/repository.go

+6
Original file line numberDiff line numberDiff line change
@@ -230,6 +230,12 @@ func buildPackagesIndex(ctx context.Context, ownerID int64, repoVersion *package
230230
if len(pd.FileMetadata.Provides) > 0 {
231231
fmt.Fprintf(&buf, "p:%s\n", strings.Join(pd.FileMetadata.Provides, " "))
232232
}
233+
if pd.FileMetadata.InstallIf != "" {
234+
fmt.Fprintf(&buf, "i:%s\n", pd.FileMetadata.InstallIf)
235+
}
236+
if pd.FileMetadata.ProviderPriority > 0 {
237+
fmt.Fprintf(&buf, "k:%d\n", pd.FileMetadata.ProviderPriority)
238+
}
233239
fmt.Fprint(&buf, "\n")
234240
}
235241

0 commit comments

Comments
 (0)