HeroicGamesLauncher icon indicating copy to clipboard operation
HeroicGamesLauncher copied to clipboard

[macOS] winetricks not working

Open Gcenx opened this issue 2 years ago • 20 comments

Describe the bug

A couple of things;

  • winetricks isn't downloaded into ~/Library/Application Support/heroic/tools
  • cabextract isn't included within heroic
  • 7z isn't included within heroic
  • zenity isn't included within heroic

Add logs

(09:20:30) INFO:    [Connection]:       Connectivity: check-online
(09:20:30) INFO:    [Connection]:       Pinging external endpoints
(09:20:30) INFO:    [Legendary]:        Running command: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary --version
(09:20:30) INFO:    [Legendary]:        Legendary location: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary
(09:20:30) INFO:    [Gog]:              GOGDL location: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/gogdl
(09:20:30) INFO:    [Gog]:              GOGDL location: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/gogdl
(09:20:30) WARNING: [Backend]:          Protocol already registered.
(09:20:31) INFO:    [Connection]:       Connectivity: online
(09:20:31) INFO:    [Gog]:              Getting data about the user
(09:20:31) INFO:    [Backend]:          AreWeAntiCheatYet data downloaded
(09:20:32) INFO:    [Gog]:              Saved user data to config
(09:20:33) INFO:    [Backend]:          Loading Screen Ready
(09:20:33) INFO:    [Frontend]:         Refreshing Library
(09:20:33) INFO:    [Legendary]:        Refreshing library...
(09:20:33) INFO:    [Legendary]:        Refreshing Epic Games...
(09:20:33) INFO:    [Legendary]:        Game list updated, got 39 games & DLCs
(09:20:33) INFO:    [Gog]:              Getting GOG library
(09:20:33) INFO:    [Backend]:          Frontend Ready
(09:20:33) INFO:    [Legendary]:        Running command: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary list --third-party
(09:20:33) INFO:    [Backend]:          Checking for new Heroic Updates
(09:20:33) INFO:    [Backend]:          Checking for current version changelog
(09:20:34) INFO:    [Gog]:              Number of library pages: 1
(09:20:34) INFO:    [Gog]:              Saved games data
(09:20:36) INFO:    [Legendary]:        Checking for game updates: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/legendary list --third-party
(09:20:36) INFO:    [Gog]:              Running command: /Applications/Heroic.app/Contents/Resources/app.asar.unpacked/build/bin/darwin/gogdl --version
(09:20:38) INFO:    [Backend]:          Starting the Download Queue
(09:20:42) INFO:    [Backend]:          Checking if wine version exists: Wine Crossover - 22.0.1
(09:20:42) INFO:    [Backend]:          Checking if wine version exists: Wine Crossover - 22.0.1
(09:20:42) DEBUG:   [Backend]:          Running Wine command: wineboot --init
(09:20:44) INFO:    [Backend]:          

Heroic Version: 2.6.2 Trafalgar Law
Legendary Version:  0.20.32 Dark Energy (hotfix #6)
GOGdl Version: 0.6

Electron Version: 22.2.0
Chrome Version: 108.0.5359.215
NodeJS Version: 16.17.1

OS: macOS Ventura 13.2 KERNEL: 22.3.0 ARCH: x64
CPU: Apple M1 @2.4 
RAM: Total: 8 GiB Available: 6.11 GiB
GRAPHICS: GPU0: Apple M1   


(09:20:47) INFO:    [Backend]:          Checking if wine version exists: Wine Crossover - 22.0.1
(09:20:47) INFO:    [Backend]:          Checking if wine version exists: Wine Crossover - 22.0.1
(09:20:47) DEBUG:   [Backend]:          Running Wine command: wineboot --init
(09:20:48) INFO:    [Legendary]:        Found 0 games to update
(09:20:48) INFO:    [Gog]:              Found 0 game(s) to update
(09:20:51) INFO:    [Backend]:          Checking if wine version exists: Wine Crossover - 22.0.1
(09:20:51) INFO:    [Winetricks]:       Running WINEPREFIX='/Users/gcenx/Games/Heroic/Prefixes/Total Annihilation Commander Pack' PATH='/Users/gcenx/Library/Application Support/heroic/tools/wine/Wine-crossover-wine-22.0.1/Contents/Resources/wine/bin':$PATH /Users/gcenx/Library/Application Support/heroic/tools/winetricks --force -q
(09:20:51) ERROR:   [Winetricks]:       Winetricks threw Error: Error: spawn /Users/gcenx/Library/Application Support/heroic/tools/winetricks ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:283:19)
    at onErrorNT (node:internal/child_process:478:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
(09:20:51) WARNING: [Winetricks]:       cabextract not installed! Winetricks might fail to install some packages or even open
(09:20:51) WARNING: [Winetricks]:       7z not installed! Winetricks might fail to install some packages or even open
(09:20:51) WARNING: [Winetricks]:       zenity not installed! Winetricks might fail to install some packages or even open

Steps to reproduce

  1. Go to 'any game'
  2. Click on 'winecfg'
  3. See error

Expected behavior

winetricks gets downloaded and the menu loads.

Screenshots

Screenshot 2023-02-08 at 9 20 59 AM

Heroic Version

Latest Stable

System Information

  • OS [macOS Ventura 13.2]:

Additional information

No response

Gcenx avatar Feb 08 '23 14:02 Gcenx

Hmm, good catch. At some point we re-added an old check when downloading the winetricks to skip it when not on linux. Probably some wrong merge.

Sent a fix now to main already.

About the dependencies, I am not sure how we can do that on our end. There is a warning that will show once you run the winetricks if you do not have cabextract, 7zip, and zenity. Asking you to install them. But I am not sure if we should bundle them inside Heroic.

If you want to try the fix for the winetricks download, wait for the build on main to finish and download the DMG.

But should be fine now. I also added a check to see if it is installed before running, in case something went wrong during the app startup or if the computer was offline on start.

flavioislima avatar Feb 08 '23 17:02 flavioislima

About the dependencies, I am not sure how we can do that on our end. There is a warning that will show once you run the winetricks if you do not have cabextract, 7zip, and zenity. Asking you to install them. But I am not sure if we should bundle them inside Heroic.

The more Apple way you’d be expected to bundle any needed binaries/dylibs within the app.

Asking the average user to install those might become a support nightmare especially when different package managers install into different locations that won’t always be part of the normal unix paths.

Intel brew installs into /usr/local arm brew installs into /opt/homebrew macports install into /opt/local etc


I may open a feature request for this but putting it here for the moment.

For macOS don’t require zenity instead query winetricks for a list of verbs then generate another file for a list. Alternatively simple provide a text box to enter the verbs the user wants to install and then click “install”. You’d really want to avoid venity on macOS.

That would bring down only needing to provide cabextract and 7z.

Gcenx avatar Feb 08 '23 17:02 Gcenx

As the most common setups would be CrossOver or wine-crossover I might simply bundle cabextract and 7z since this gets added to $PATH

Only thing would be dumping zenith requirement and providing a simple textbox to enter/run winetricks verbs

Gcenx avatar Feb 08 '23 17:02 Gcenx

Just a quick followup question, I am experiencing the exact same issue (MacOs). Should I be able to launch games anyway? (sorry, in case this is completely unrelated..)

My Current behaviour when launching: button gets yellow (game running) and turns green again after ~2 minutes.

My logs dont show any errors

philippkiesling avatar Feb 22 '23 23:02 philippkiesling

Ignore the last message…

@philippkiesling what your seeing isn’t related to this issue. This one’s about making use of winetricks not actually running any games.

Gcenx avatar Feb 22 '23 23:02 Gcenx

even after i installed 7z on mac it still complaints about 7z not installed. I "installed" it into my local/bin dir which is in my PATH. I verified this by running the command in a different directory.

m3kwong avatar Sep 02 '23 20:09 m3kwong

Sent a fix now to main already.

@flavioislima Do you know if that fix was released? I'm on macOS 14.4 running a freshly downloaded copy of Heroic 2.14.1 and I'm still running into this issue:

image

callumgare avatar Aug 04 '24 23:08 callumgare

Sent a fix now to main already.

@flavioislima Do you know if that fix was released? I'm on macOS 14.4 running a freshly downloaded copy of Heroic 2.14.1 and I'm still running into this issue:

image

Me too. How do you solve the problem? If you know about that, show me the solution in detail please.

GreyPate avatar Aug 06 '24 01:08 GreyPate

Sent a fix now to main already.

@flavioislima Do you know if that fix was released? I'm on macOS 14.4 running a freshly downloaded copy of Heroic 2.14.1 and I'm still running into this issue:

image

I'm also having this problem, seems like the winetricks folder doesn't exist and I couldn't find a way to create it from the settings

Looka98 avatar Aug 06 '24 11:08 Looka98

Sent a fix now to main already.

@flavioislima Do you know if that fix was released? I'm on macOS 14.4 running a freshly downloaded copy of Heroic 2.14.1 and I'm still running into this issue: image

I'm also having this problem, seems like the winetricks folder doesn't exist and I couldn't find a way to create it from the settings

Was not released yet. We are finishing merging the latest changes and testing to make a new release.

flavioislima avatar Aug 06 '24 11:08 flavioislima

I worked around the issue on my M3 Mac with

cd ~/Library/Application\ Support/heroic/tools
ln -s $(which winetricks)

I also needed to brew install zenity

andresrinivasan avatar Aug 11 '24 03:08 andresrinivasan

I've done brew install zenity brew install cabextract brew install 7-zip

Heroic still complains about a lacking 7z.

@andresrinivasan your ln -s workaround didn't work out for me. Got me a "no such file or directory"

le-flo avatar Aug 14 '24 14:08 le-flo

@le-flo

  • Looks like I have p7zip (from some other dependency).
  • Just to confirm, the output from which winetricks returns something meaningful and winetricks --help generates a page of usage information.

andresrinivasan avatar Aug 19 '24 16:08 andresrinivasan

@andresrinivasan
It doesn't, because Heroic fails to set up winetricks due to the issue we're discussing. See OP: winetricks isn't downloaded into ~/Library/Application Support/heroic/tools

le-flo avatar Aug 19 '24 19:08 le-flo

The problem is three fold.

  • Doesn't ship the needed binaries for winetricks.
  • Only check /opt/homebrew/bin for binaires
  • And https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/3413

Heroic Games Launcher was using my winetricks fork but upstream became able to support upstreams new wow64 system so I'd pre-warned of the impending removal, that fork is now gone and upstream needs to be used.

Gcenx avatar Aug 19 '24 20:08 Gcenx

Thanks for your clarification @Gcenx So let's see what the next release will bring...

le-flo avatar Aug 20 '24 07:08 le-flo

I've done brew install zenity brew install cabextract brew install 7-zip

Did all that, but didn't work. Then I installed brew (which asked to install Xcode line commands or something):

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" *which had some instructions to run two commands (echo and eval)

then winetricks:

brew install winetricks

then the command 'winetricks --version' worked and also the followed by this since heroic launcher didn't work yet:

cd ~/Library/Application\ Support/heroic/tools
ln -s $(which winetricks)

Now heroic launcher can open winetricks. I am on Sequoia Macos 15.0 beta. Heroic 2.15.1

yoBoss283 avatar Sep 16 '24 13:09 yoBoss283

Well, you've essentially installed winetricks manually. Heroic used to download and deploy pre-"brewed" binaries from Gcenx, which he removed from his Git because of improved upstream versions. Heroics dev needs to adjust to this.

Using the "pre-brewed" data has the advantage that you only have to download it rather than loading the source code and then compiling ("brewing") a tailor-made version on the local device with a tool not everyone has handy.

Did all that, but didn't work.

To be expected, if you had to install brew later... :)

le-flo avatar Sep 16 '24 21:09 le-flo

@le-flo https://github.com/Heroic-Games-Launcher/HeroicGamesLauncher/issues/2438#issuecomment-2297362347

As explained in that comment Heroic Games Launcher has never provided the required binaries for winetricks to function & it doesn’t check $PATH but a hardcoded location.

The reason for using my fork was due to the prior lack of new wow64 support in upstream winetricks, that’s been resolved in upstream winetricks.

All that changed was downloading winetricks git from my fork back to upstream.

Gcenx avatar Sep 16 '24 22:09 Gcenx

@Gcenx Ah, I thought Heroic did initially by using your fork.

le-flo avatar Sep 17 '24 05:09 le-flo

heroic games launcher controller not working on macos

Rishir09 avatar Jan 15 '25 16:01 Rishir09

I'm getting something similar

(20:53:16) INFO:    [Backend]:          Checking if wine version exists: Game-Porting-Toolkit-2.0-beta3
(20:53:16) INFO:    [Winetricks]:       Running /Users/mikdiet/Library/Application Support/heroic/tools/winetricks -q --guy
(20:53:16) WARNING: [Winetricks]:       7z not installed! Winetricks might fail to install some packages or even open
(20:53:16) WARNING: [Winetricks]:       cabextract not installed! Winetricks might fail to install some packages or even open
(20:53:16) WARNING: [Winetricks]:       zenity not installed! Winetricks might fail to install some packages or even open
(20:53:16) ERROR:   [Winetricks]:       Executing cd /Users/mikdiet/Library/Application Support/heroic/tools
(20:53:16) INFO:    [Winetricks]:       No arguments given, so tried to start GUI, but neither zenity
nor kdialog were found. Please install one of them if you want
a graphical interface, or run with --help for more options.

I did some manual manipulations advised previously in this issue , which did not help me. Listed:

  • symlink winetricks to heroic tools
  • brew install cabextract, zenity and 7-zip
  • when I run /Users/mikdiet/Library/Application Support/heroic/tools/winetricks -q --guy in console, it opens GUI with an error "WINE is wine, which is neither on the path nor an executable file"

mikdiet avatar Mar 01 '25 18:03 mikdiet