Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Homeworld Emergence - Wine extraction failed #618

Open
NemoBarbarossa opened this issue Nov 8, 2024 · 16 comments
Open

Homeworld Emergence - Wine extraction failed #618

NemoBarbarossa opened this issue Nov 8, 2024 · 16 comments

Comments

@NemoBarbarossa
Copy link

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
@sharkwouter
Copy link
Owner

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
Copy link
Owner

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

@NemoBarbarossa
Copy link
Author

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?

@GB609
Copy link
Collaborator

GB609 commented Nov 27, 2024

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

@sharkwouter
Copy link
Owner

@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.

@NemoBarbarossa
Copy link
Author

NemoBarbarossa commented Nov 29, 2024

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.

@sharkwouter
Copy link
Owner

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

@GB609
Copy link
Collaborator

GB609 commented Nov 29, 2024

@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 GB609 mentioned this issue Nov 29, 2024
1 task
@NemoBarbarossa
Copy link
Author

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?

@GB609
Copy link
Collaborator

GB609 commented Nov 29, 2024

@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.

@sharkwouter
Copy link
Owner

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

@GB609
Copy link
Collaborator

GB609 commented Nov 29, 2024

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.

@NemoBarbarossa
Copy link
Author

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: -> /

@GB609
Copy link
Collaborator

GB609 commented Dec 2, 2024

@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?

@NemoBarbarossa
Copy link
Author

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?

@GB609
Copy link
Collaborator

GB609 commented Dec 4, 2024

The release 1.3.1 you pulled via git likely is the commit c10d697 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 130ce00, 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 #618 (comment), 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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants