diff --git a/build.go b/build.go index 45b8c704d..bf763601a 100644 --- a/build.go +++ b/build.go @@ -631,20 +631,27 @@ func buildSnap(target target) { func shouldBuildSyso(dir string) (string, error) { type M map[string]interface{} - major, minor, patch, build := semanticVersion() + version := getVersion() + version = strings.TrimPrefix(version, "v") + major, minor, patch := semanticVersion() bs, err := json.Marshal(M{ "FixedFileInfo": M{ "FileVersion": M{ "Major": major, "Minor": minor, "Patch": patch, - "Build": build, + }, + "ProductVersion": M{ + "Major": major, + "Minor": minor, + "Patch": patch, }, }, "StringFileInfo": M{ "FileDescription": "Open Source Continuous File Synchronization", "LegalCopyright": "The Syncthing Authors", - "ProductVersion": getVersion(), + "FileVersion": version, + "ProductVersion": version, "ProductName": "Syncthing", }, "IconPath": "assets/logo.ico", @@ -864,22 +871,18 @@ func getVersion() string { return "unknown-dev" } -func semanticVersion() (major, minor, patch, build int) { - r := regexp.MustCompile(`v(?P\d+)\.(?P\d+).(?P\d+).*\+(?P\d+)`) +func semanticVersion() (major, minor, patch int) { + r := regexp.MustCompile(`v(\d+)\.(\d+).(\d+)`) matches := r.FindStringSubmatch(getVersion()) - if len(matches) != 5 { - return 0, 0, 0, 0 + if len(matches) != 4 { + return 0, 0, 0 } - var ints [4]int - for i := 1; i < 5; i++ { - value, err := strconv.Atoi(matches[i]) - if err != nil { - return 0, 0, 0, 0 - } - ints[i-1] = value + var ints [3]int + for i, s := range matches[1:] { + ints[i], _ = strconv.Atoi(s) } - return ints[0], ints[1], ints[2], ints[3] + return ints[0], ints[1], ints[2] } func getBranchSuffix() string {