6 Commits

Author SHA1 Message Date
4545bc82c2 1.0.3 2025-07-24 12:11:21 -07:00
4e22ca8714 remove MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS 2025-07-24 10:38:26 -07:00
a973508d92 Fix chmodding 2025-07-24 09:03:44 -07:00
8edd61dbba fix updating (#8)
Fixes #6

Reviewed-on: #8
2025-07-24 15:48:21 +00:00
eafc55f67c fix dir perms (#7)
Fixes #4

Reviewed-on: #7
2025-07-24 15:40:04 +00:00
bc80ca2c9c Improve logging (#2)
Reviewed-on: #2
2025-07-24 15:30:33 +00:00
8 changed files with 28 additions and 28 deletions

View File

@@ -2,5 +2,5 @@
Icon = "Icon.png"
Name = "EpochSilicon"
ID = "com.burkey.epochsilicon"
Version = "1.0.0"
Build = 14
Version = "1.0.3"
Build = 25

1
go.mod
View File

@@ -7,6 +7,7 @@ toolchain go1.24.5
require (
fyne.io/fyne/v2 v2.6.1
git.burkey.co/eburk/epochcli v0.0.0-20250724135717-365171fddc6b
github.com/Masterminds/semver/v3 v3.4.0
github.com/rs/zerolog v1.34.0
github.com/zalando/go-keyring v0.2.6
gopkg.in/natefinch/lumberjack.v2 v2.2.1

2
go.sum
View File

@@ -8,6 +8,8 @@ git.burkey.co/eburk/epochcli v0.0.0-20250724135717-365171fddc6b h1:fPDSiwJI3PzaU
git.burkey.co/eburk/epochcli v0.0.0-20250724135717-365171fddc6b/go.mod h1:DgybCn9/LpJwvkrsyea9N2nWy/wuDgo6jkpOWYkTH3c=
github.com/BurntSushi/toml v1.5.0 h1:W5quZX/G/csjUnuI8SUYlsHs9M38FC7znL0lIO+DvMg=
github.com/BurntSushi/toml v1.5.0/go.mod h1:ukJfTF/6rtPPRCnwkur4qwRxa8vTRFBF0uk2lLoLwho=
github.com/Masterminds/semver/v3 v3.4.0 h1:Zog+i5UMtVoCU8oKka5P7i9q9HgrJeGzI9SA1Xbatp0=
github.com/Masterminds/semver/v3 v3.4.0/go.mod h1:4V+yj/TJE1HU9XfppCwVMZq3I84lprf4nC11bSS5beM=
github.com/coreos/go-systemd/v22 v22.5.0/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0=

View File

@@ -7,10 +7,11 @@ import (
"epochsilicon/pkg/utils"
"fyne.io/fyne/v2"
"fyne.io/fyne/v2/app"
"github.com/Masterminds/semver/v3"
"strings"
)
const appVersion = "1.0.1"
const appVersion = "1.0.2"
func main() {
log.SetupLogging()
@@ -22,7 +23,7 @@ func main() {
go func() {
prefs, _ := utils.LoadPrefs()
updateInfo, updateAvailable, err := utils.CheckForUpdateWithAssets(appVersion)
updateInfo, updateAvailable, err := utils.CheckForUpdateWithAssets(semver.MustParse(appVersion))
if err != nil {
log.Debugf("Failed to check for updates: %v", err)
return

View File

@@ -188,7 +188,7 @@ func continueLaunch(myWindow fyne.Window, wowExePath string) {
}
// Prepare environment variables
envVars := fmt.Sprintf(`WINEDLLOVERRIDES="d3d9=n,b" MTL_HUD_ENABLED=%s MVK_CONFIG_SYNCHRONOUS_QUEUE_SUBMITS=1 DXVK_ASYNC=1`, mtlHudValue)
envVars := fmt.Sprintf(`WINEDLLOVERRIDES="d3d9=n,b" MTL_HUD_ENABLED=%s DXVK_ASYNC=1`, mtlHudValue)
if CustomEnvVars != "" {
envVars = CustomEnvVars + " " + envVars
}

View File

@@ -205,6 +205,17 @@ func PatchEpoch(myWindow fyne.Window, updateAllStatuses func()) {
dialog.ShowInformation("Downloading patches", "Downloading patches for Project Epoch, this will take some time. Please wait until the status changes to \"Patched\"", myWindow)
paths.DownloadingPatches = true
log.Debug("Attempting to download Epoch patches...")
// Ensure permissions on Data directory is correct
err := os.Chmod(filepath.Join(paths.EpochPath, "Data"), 0755)
if err != nil {
msg := fmt.Sprintf("Failed to set Data directory permissions: %v", err)
log.Error(msg)
dialog.ShowInformation("Error", msg, myWindow)
} else {
log.Debug("Successfully set Data directory permissions")
}
go func() {
stats := epoch.Update(paths.EpochPath, true, true, false)
if stats.Error != nil {

View File

@@ -5,6 +5,7 @@ import (
"epochsilicon/pkg/log"
"errors"
"fmt"
"github.com/Masterminds/semver/v3"
"io"
"net/http"
"os"
@@ -128,25 +129,6 @@ func QuotePathForShell(path string) string {
return fmt.Sprintf(`"%s"`, path)
}
func CheckForUpdate(currentVersion string) (latestVersion, releaseNotes string, updateAvailable bool, err error) {
resp, err := http.Get("https://api.github.com/repos/tairasu/EpochSilicon/releases/latest")
if err != nil {
return "", "", false, err
}
defer resp.Body.Close()
var data struct {
TagName string `json:"tag_name"`
Body string `json:"body"`
}
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
return "", "", false, err
}
latest := strings.TrimPrefix(data.TagName, "v")
return latest, data.Body, latest != currentVersion, nil
}
// UpdateInfo contains information about the latest release
type UpdateInfo struct {
TagName string `json:"tag_name"`
@@ -161,7 +143,7 @@ type Asset struct {
}
// CheckForUpdateWithAssets returns update information including download assets
func CheckForUpdateWithAssets(currentVersion string) (*UpdateInfo, bool, error) {
func CheckForUpdateWithAssets(currentVersion *semver.Version) (*UpdateInfo, bool, error) {
resp, err := http.Get("https://git.burkey.co/api/v1/repos/eburk/epochsilicon/releases/latest")
if err != nil {
return nil, false, err
@@ -191,8 +173,11 @@ func CheckForUpdateWithAssets(currentVersion string) (*UpdateInfo, bool, error)
return nil, false, fmt.Errorf("failed to parse JSON response: %v. Response: %s", err, bodyStr[:min(200, len(bodyStr))])
}
latest := strings.TrimPrefix(updateInfo.TagName, "v")
updateAvailable := latest != currentVersion
latest, err := semver.NewVersion(updateInfo.TagName)
if err != nil {
return nil, false, fmt.Errorf("failed to parse semver: %v", err)
}
updateAvailable := latest.GreaterThan(currentVersion)
return &updateInfo, updateAvailable, nil
}