Remove any self-provides from alpine packages
ci/woodpecker/push/woodpecker Pipeline was successful Details

This commit is contained in:
Elara 2023-10-09 19:25:24 -07:00
parent d9659dab9c
commit 00406493c2
1 changed files with 12 additions and 3 deletions

View File

@ -158,12 +158,14 @@ func BuildPackage(ctx context.Context, opts types.BuildOpts) ([]string, []string
log.Info("Building package metadata").Str("name", vars.Name).Send()
pkgInfo, err := buildPkgMetadata(vars, dirs, append(repoDeps, builtNames...))
pkgFormat := getPkgFormat(opts.Manager)
pkgInfo, err := buildPkgMetadata(vars, dirs, pkgFormat, append(repoDeps, builtNames...))
if err != nil {
return nil, nil, err
}
packager, err := nfpm.Get(getPkgFormat(opts.Manager))
packager, err := nfpm.Get(pkgFormat)
if err != nil {
return nil, nil, err
}
@ -477,7 +479,7 @@ func executeFunctions(ctx context.Context, dec *decoder.Decoder, dirs types.Dire
}
// buildPkgMetadata builds the metadata for the package that's going to be built.
func buildPkgMetadata(vars *types.BuildVars, dirs types.Directories, deps []string) (*nfpm.Info, error) {
func buildPkgMetadata(vars *types.BuildVars, dirs types.Directories, pkgFormat string, deps []string) (*nfpm.Info, error) {
pkgInfo := &nfpm.Info{
Name: vars.Name,
Description: vars.Description,
@ -496,6 +498,13 @@ func buildPkgMetadata(vars *types.BuildVars, dirs types.Directories, deps []stri
},
}
if pkgFormat == "apk" {
// Alpine refuses to install packages that provide themselves, so remove any such provides
pkgInfo.Overridables.Provides = slices.DeleteFunc(pkgInfo.Overridables.Provides, func(s string) bool {
return s == pkgInfo.Name
})
}
if vars.Epoch != 0 {
pkgInfo.Epoch = strconv.FormatUint(uint64(vars.Epoch), 10)
}