Skip to content

Commit

Permalink
fix: deb version order in control (#498)
Browse files Browse the repository at this point in the history
  • Loading branch information
kpenfound committed Apr 22, 2022
1 parent 0310042 commit 170bf81
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 2 deletions.
2 changes: 1 addition & 1 deletion deb/deb.go
Original file line number Diff line number Diff line change
Expand Up @@ -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}}
Expand Down
37 changes: 36 additions & 1 deletion deb/deb_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -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) {
Expand Down Expand Up @@ -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)
Expand Down
9 changes: 9 additions & 0 deletions deb/testdata/control4.golden
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit 170bf81

Please sign in to comment.