minigalaxy icon indicating copy to clipboard operation
minigalaxy copied to clipboard

Homeworld Emergence - Wine extraction failed

Open NemoBarbarossa opened this issue 1 year ago • 16 comments

I run Fedora 41 and tried to install Homeworld Emergence.

First I had minigalaxy installed as flatpak. When the error happened, I tried if I had to manually install wine as well so I added that via flatpak as well. When the error kept on coming up I removed the flatpaks and installed minigalaxy through dnf which brought wine as a prerequisite already.

I still get the extraction error though. When looking for it I came across issue #357 and was wondering how I could run the mentioned debug mode. I also saw the discussions about innoextract and went looking for it. Seems that was also installed as a prerequisite and I'm not sure if I can uninstall it.

Is there a way to force one installation method or the other for individual titles?

dnf package information:

Name            : innoextract
Epoch           : 0
Version         : 1.9
Release         : 15.fc41
Architecture    : x86_64
Installed size  : 582.5 KiB
Source          : innoextract-1.9-15.fc41.src.rpm
From repository : fedora
Summary         : Tool to extract installers created by Inno Setup
URL             : https://constexpr.org/innoextract/
License         : zlib
Description     : Inno Setup is a tool to create installers for Microsoft Windows
                : applications. innoextract allows to extract such installers under
                : non-windows systems without running the actual installer using wine.
Vendor          : Fedora Project

Name            : minigalaxy
Epoch           : 0
Version         : 1.3.0
Release         : 3.fc41
Architecture    : noarch
Installed size  : 768.9 KiB
Source          : minigalaxy-1.3.0-3.fc41.src.rpm
From repository : fedora
Summary         : GOG client for Linux that lets you download and play your GOG Linux games
URL             : https://sharkwouter.github.io/minigalaxy
License         : GPL-3.0-or-later and CC-BY-3.0
Description     : A simple GOG client for Linux that lets you download and play your GOG Linux
                : games.
Vendor          : Fedora Project

Name            : wine
Epoch           : 0
Version         : 9.15
Release         : 1.fc41
Architecture    : x86_64
Installed size  : 0.0   B
Source          : wine-9.15-1.fc41.src.rpm
From repository : fedora
Summary         : A compatibility layer for windows applications
URL             : https://www.winehq.org/
License         : LGPL-2.1-or-later
Description     : Wine as a compatibility layer for UNIX to run Windows applications. This
                : package includes a program loader, which allows unmodified Windows
                : 3.x/9x/NT binaries to run on x86 and x86_64 Unixes. Wine can use native system
                : .dll files if they are available.
                : 
                : In Fedora wine is a meta-package which will install everything needed for wine
                : to work smoothly. Smaller setups can be achieved by installing some of the
                : wine-* sub packages.
Vendor          : Fedora Project

NemoBarbarossa avatar Nov 08 '24 12:11 NemoBarbarossa

Thanks for the report, sorry for getting back to you so late. This is most likely related to #615, for which I have a PR open now. If you'd be able to, it would be nice if you could do a quick test with #620. I'll create a new release once that PR has been merged.

sharkwouter avatar Nov 26 '24 10:11 sharkwouter

@NemoBarbarossa can you test version 1.3.1 and see if you still have this issue?

sharkwouter avatar Nov 26 '24 22:11 sharkwouter

Thanks, but it's still not working.

Can I get you any more debug data, do you have a flag to run minigalaxy writing a debug log?

NemoBarbarossa avatar Nov 27 '24 21:11 NemoBarbarossa

@NemoBarbarossa Minigalaxy should provide a few error outputs when started from the command line. Those would be a good start.

GB609 avatar Nov 27 '24 21:11 GB609

@NemoBarbarossa we do. You can try running Minigalaxy from the command line like this: MG_DEBUG=ON minigalaxy

Do not post the whole log, though. It will include your token. I should really fix that.

sharkwouter avatar Nov 28 '24 06:11 sharkwouter

Does this help?

2024-11-29 08:00:25,638 - minigalaxy - INFO - Installing Homeworld: Emergence
2024-11-29 08:00:26,175 - minigalaxy - WARNING - Warning. No info about correct HomeworldEmergence-0.bin MD5 checksum
2024-11-29 08:00:26,639 - minigalaxy - WARNING - Warning. No info about correct setup_homeworld_emergence_1.01_hotfix_(12948).exe MD5 checksum
2024-11-29 08:00:49,699 - minigalaxy - ERROR - Entpacken mit Wine fehlgeschlagen.

NemoBarbarossa avatar Nov 29 '24 07:11 NemoBarbarossa

Shame, the installer gives no output as to what is going on.

sharkwouter avatar Nov 29 '24 08:11 sharkwouter

@sharkwouter The output gives a bit of a hint, though. It seems the installer follows the broken filename pattern from before 1.3.1

@NemoBarbarossa Do you possibly have the option "keep downloaded installers" enabled? If yes, could you try to delete them manually and then redownload / reinstall again?

GB609 avatar Nov 29 '24 08:11 GB609

Right. I had minigalaxy installed trough dnf and then pulled the 1.3.1 from the git but did not change to that one when I ran it with the debug.

I disabled "keep downloaded files" and fully removed the game directory, then reran the install from the git and ran the debug with MG_DEBUG=ON bin/minigalaxy > mg_debug and made sure it was the 1.3.1 and not the 1.3.0

Here's the result.

2024-11-29 12:35:51,092 - minigalaxy.download_manager.DownloadManager - DEBUG - Returning result from _download_operation: True
2024-11-29 12:35:51,092 - minigalaxy.download_manager.DownloadManager - DEBUG - Download finished, thread 140224357193408
2024-11-29 12:35:51,092 - minigalaxy - INFO - Installing Homeworld: Emergence
2024-11-29 12:35:51,092 - minigalaxy.download_manager.DownloadManager - DEBUG - Removing download from active downloads list
2024-11-29 12:35:51,589 - minigalaxy - INFO - setup_homeworld_emergence_1.01_hotfix_(12948).exe integrity is preserved. MD5 is: 2dd76b4f130b2416b6987f0dbb5947a8
2024-11-29 12:36:12,950 - minigalaxy - ERROR - Entpacken mit Wine fehlgeschlagen.

So it seems like the game itself is correctly installed but the hotfix is the actual problem?

NemoBarbarossa avatar Nov 29 '24 11:11 NemoBarbarossa

@NemoBarbarossa Could you answer a few questions? How is the update triggered? I've searched through the code, but i can't find anything that would indicate that Minigalaxy automatically installs the update. Did you click on an update button?

Can you provide a screenshot of the download page for this game? I'd like to see the version table listing.

Also, if possible; i'd like to see the result of the command ls -la gamedir/prefix/dosdevices 2 times:

  1. Directly after installation
  2. After the update has failed

My guess is that the update gets another empty temporary target directory, which is why it fails because there are no game files to patch in that directory. The wine installation method really needs a rework on error handling and output because it currently just swallows everything coming from wine.

If you'd like to, you can try my fork/branch Support UMU-Launcher for the installation and update as i have mostly rewritten the wine installation method to not use any temporary directory (including more console output). If that works for you, i could try to rip out the rewritten install method into a dedicated PR.

GB609 avatar Nov 29 '24 13:11 GB609

I think I found another game which has this error, which is 1nsane. There are probably more.

sharkwouter avatar Nov 29 '24 14:11 sharkwouter

The latest installer on GOG does not include all patches in some rare cases. These are the (only) ones were running an update directly after install like this is even possible. However, the same could happen when a previously installed game receives some updates later on.

GB609 avatar Nov 29 '24 14:11 GB609

I assume it is as @GB609 wrote, there is no patched installer for the full game.

Here's a screenshot, I hope it's the page you wanted to see? image

I ran watch "ls -la Homeworld\ Emergence/prefix/dosdevices/" so I could see if anything changes during the installation but it looked the same all through the process:

drwxr-xr-x. 2 user group 4096  1. Dez 21:13 .
drwxr-xr-x. 4 user group 4096  1. Dez 21:14 ..
lrwxrwxrwx. 1 user group   10  1. Dez 21:04 c: -> ../drive_c
lrwxrwxrwx. 1 user group    8  1. Dez 21:04 d:: -> /dev/sr0
lrwxrwxrwx. 1 user group    8  1. Dez 21:13 lpt1 -> /dev/lp0
lrwxrwxrwx. 1 user group    8  1. Dez 21:13 lpt2 -> /dev/lp1
lrwxrwxrwx. 1 user group    8  1. Dez 21:13 lpt3 -> /dev/lp2
lrwxrwxrwx. 1 user group    8  1. Dez 21:13 lpt4 -> /dev/lp3
lrwxrwxrwx. 1 user group    1  1. Dez 21:04 z: -> /

NemoBarbarossa avatar Dec 01 '24 20:12 NemoBarbarossa

@NemoBarbarossa Thanks for the screenshot. What i meant was a bit different, and so was my understanding of the problem indicated in the initial logs. I thought that there were 2 files being run/installed:

  1. A first install with another, older version, e.g. 1.0.0 (because it thought gog had not updated to main installer to include 1.01...)
  2. Then the patch to 1.01 hotfix

But it looks like there is only one installer, which already includes the hotfix. So it is not an issue with multiple installation files following one after the other, or patch-installing over an existing game.

It's something else and i think i found it. Minigalaxy Release 1.3.1 does not contain my fix for the wine installation where 't:' is used as temporary drive instead of 'd:'. And from your ls i can see that you have an optical drive.

Can you re-try with master branch of minigalaxy?

GB609 avatar Dec 02 '24 08:12 GB609

Pardon my ignorance, but I thought 1.3.1 was the current master branch release?

It is not working with the 1.3.0 from the Fedora repository and it is not working with the current 1.3.1 release I pulled via git. How do I get the branch you mean?

NemoBarbarossa avatar Dec 04 '24 21:12 NemoBarbarossa

The release 1.3.1 you pulled via git likely is the commit https://github.com/sharkwouter/minigalaxy/commit/c10d6973e86a601e1f37155e708c466c05cf39dc from Nov. 26. That release mainly fixed issues games where the installer consists of multiple files.

But the issue you currently have with the game appears to be related to a fix that was merged to the master shortly after this release was created, with commit https://github.com/sharkwouter/minigalaxy/commit/130ce001c76465b67888f43f12edb9f81be29e85, on Nov. 28. The code simply has progressed, but there is no release for this yet. This fix is actually marked to be included in 1.3.2 currently.

Sorry about the confusion with the versions. They changed with the progression of the error analysis and our understanding of it.

When you said you pulled the release 1.3.1 from git in https://github.com/sharkwouter/minigalaxy/issues/618#issuecomment-2507641467, i assumed you know how to use git and select what to check out. Is that not the case? Do you need more help on that? How did you 'pull' the release, and where from exactly?

If you know how to use git and you've actually cloned the repository to your PC using git clone, then your local copy is outdated and you need to use git pull to pull in the latest changes from github. Before that, please make sure that you've checked out the branch named 'master' with git status. If not, git checkout master would be the first command you need to use.

GB609 avatar Dec 04 '24 22:12 GB609