1
1
Fork 0
mirror of https://github.com/goreleaser/nfpm synced 2024-04-25 01:55:04 +02:00

fix: deb version order in control (#498)

This commit is contained in:
Kyle Penfound 2022-04-22 14:25:37 -04:00 committed by GitHub
parent 0310042153
commit 170bf81da5
Signed by: GitHub
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 46 additions and 2 deletions

View File

@ -681,9 +681,9 @@ const controlTemplate = `
{{- /* Mandatory fields */ -}}
Package: {{.Info.Name}}
Version: {{ if .Info.Epoch}}{{ .Info.Epoch }}:{{ end }}{{.Info.Version}}
{{- if .Info.Release}}-{{ .Info.Release }}{{- end }}
{{- if .Info.Prerelease}}~{{ .Info.Prerelease }}{{- end }}
{{- if .Info.VersionMetadata}}+{{ .Info.VersionMetadata }}{{- end }}
{{- if .Info.Release}}-{{ .Info.Release }}{{- end }}
Section: {{.Info.Section}}
Priority: {{.Info.Priority}}
Architecture: {{.Info.Arch}}

View File

@ -157,7 +157,7 @@ func TestDebVersionWithReleaseAndPrerelease(t *testing.T) {
err := writeControl(&buf, controlData{info, 0})
require.NoError(t, err)
v := extractDebVersion(&buf)
require.Equal(t, "1.0.0-2~rc1", v)
require.Equal(t, "1.0.0~rc1-2", v)
}
func TestDebVersionWithVersionMetadata(t *testing.T) {
@ -260,6 +260,41 @@ func TestNoJoinsControl(t *testing.T) {
require.Equal(t, string(bts), w.String())
}
func TestVersionControl(t *testing.T) {
var w bytes.Buffer
require.NoError(t, writeControl(&w, controlData{
Info: nfpm.WithDefaults(&nfpm.Info{
Name: "foo",
Arch: "amd64",
Description: "Foo does things",
Priority: "extra",
Maintainer: "Carlos A Becker <pkg@carlosbecker.com>",
Version: "v1.0.0-beta+meta",
Release: "2",
Section: "default",
Homepage: "http://carlosbecker.com",
Vendor: "nope",
Overridables: nfpm.Overridables{
Depends: []string{},
Recommends: []string{},
Suggests: []string{},
Replaces: []string{},
Provides: []string{},
Conflicts: []string{},
Contents: []*files.Content{},
},
}),
InstalledSize: 10,
}))
golden := "testdata/control4.golden"
if *update {
require.NoError(t, ioutil.WriteFile(golden, w.Bytes(), 0o600))
}
bts, err := ioutil.ReadFile(golden) //nolint:gosec
require.NoError(t, err)
require.Equal(t, string(bts), w.String())
}
func TestDebFileDoesNotExist(t *testing.T) {
abs, err := filepath.Abs("../testdata/whatever.confzzz")
require.NoError(t, err)

9
deb/testdata/control4.golden vendored Normal file
View File

@ -0,0 +1,9 @@
Package: foo
Version: 1.0.0~beta+meta-2
Section: default
Priority: extra
Architecture: amd64
Maintainer: Carlos A Becker <pkg@carlosbecker.com>
Installed-Size: 10
Homepage: http://carlosbecker.com
Description: Foo does things