bottlesdevs / dependencies

Repository for wine software dependencies
https://usebottles.com/database/dependencies
41 stars 42 forks source link

[Bug]: Gecko does not seem to be able to do its job? #111

Open linkert opened 2 years ago

linkert commented 2 years ago

Describe the bug

Not sure this bug/misconfiguration fits on your issue tracker. Sorry if you deem it unrelated to bottles. I think it might be, but what do I know?

Trying to get Diablo 2: Lord of Destruction going in order to then install and play the kick-ass mod Project Diablo 2 through Bottles.

I'm running into the age old issue people have been running into since the dawn of time when trying to install Diablo 2 using Wine: When clicking "Install" in the vanilla Diablo 2 installer you are prompted with a seemingly empty EULA - this is due to Gecko not being installed as it's needed to render the HTML in the EULA.

When Gecko is installed the text is rendered, enabling the user to scroll past and click agree.

I the proceed to the Bottle dependencies menu and install Gecko (wine_gecko-2.47.2-x86.msi). restart Bottles just in case, try again. No text this time either - hence I think this is an issue with some aspect of the way Bottles goes about installing Gecko?

To Reproduce

  1. Create bottle for gaming
  2. Run Diablo 2 Vanilla installer. (from Blizzard, version 1.14b)
  3. Notice EULA is not being rendered
  4. Install Gecko through the dependencies within Bottles
  5. Try running the installer and run into the same non-rendered EULA.

Package

Flatpak from Flathub

Distribution

Void Linux

Health Check

Display:
    X.org: true
    X.org (port): :99.0
    Wayland: true
Graphics:
    vendors:
        amd:
            vendor: amd
            envs:
                DRI_PRIME: '1'
            icd: /usr/lib/x86_64-linux-gnu/GL/vulkan/icd.d/radeon_icd.x86_64.json:/usr/lib/i386-linux-gnu/GL/vulkan/icd.d/radeon_icd.i686.json
    prime:
        integrated: null
        discrete: null
Kernel:
    Type: Linux
    Version: 5.15.34_1
Distro:
    Name: GNOME
    Version: '"42 (Flatpak runtime)"'
Tools:
    cabextract: true
    p7zip: true
    patool: true
    glibc_min: '2.33'
Bottles_envs: null

Display Protocol

Wayland

Display Backend used by Bottles

I don't know

Additional context

Plain speculation:

Permissions issue somehow? If that's the case it's a flatpak type issue I guess. Both it's strength and, at times, a gosh darn curse of flatpak.

Maybe gvfsd has something to do with it? Getting alot of this when running the installer.exe for d2: “/run/user/1000/gvfsd”: No such file or directory. Falling back to the session bus. Your application is probably missing --filesystem=xdg-run/gvfsd privileges.

mirkobrombin commented 2 years ago

I've been investigating this for a while. I'm starting to think about some missing flatpak permissions.

linkert commented 2 years ago

I faffed about with more or less all the toggles through Flatseal (for Bottles) just to see if it changed anything. Started out systematically toggling something on, testing, no luck, toggle back and move to the next - after some toggles I lost focus and can't swear I checked all of them.

Now, Flatseal offers some common permission toggles, could be something not offered by Flatseal and I'll have to turn to flatpak directly.

mirkobrombin commented 2 years ago

Funny thing: I'm able to reproduce using wine directly

linkert commented 2 years ago

Oh? Wine installed off your distro repos or from flathub?

Had not tried as I thought I'd avoid using vanilla Wine on my new laptop since Bottles exists and offers more portability and stuff. Did not have this issue last go around using Wine + gecko (whatever version back then) through Void repos.

Well then I guess we can conclude it's a wine issue, not a bottles issue?

mirkobrombin commented 2 years ago

I've made some tests with our Caffe runner and wine from the Fedora repository, both give me the same problem. It may be a Wine problem or some missing dependencies.

linkert commented 2 years ago

I'll bite the bullet and grab wine from the repos to do some testing on my end (yeay! battling messed up file accociations...).

Step one will be base line: wine wine-gecko wine-mono – try the Diablo 2 installer and see if it works on my end.

Step two will be an exploration of dependencies. Found this comment on an unrelated post under r/voidlinux which mentions "Wine dependency hell". Thinking I'll explore what the mentioned packages state they are for and grab those I find to be most relevant and go through one by one to see what happens. Hopefully I find a culprit.

https://www.reddit.com/r/voidlinux/comments/uiyok9/-/i7fqnj4

linkert commented 2 years ago

Step one will be base line: wine wine-gecko wine-mono – try the Diablo 2 installer and see if it works on my end.

I am not able to reproduce the issue using wine 7.8 from the Void Linux repos. Packages I installed: wine wine-32bit wine-gecko wine-mono as well as winetricks but it has not been utilized for anything. $ wine ~/path/to/Installer.exe, click install and viola! There's the EULA.

Went exploring the Bottle preferences where I found the components section. I click the drop-down where Caffe runner is selected, change it to sys-wine as that seemed interesting to try. Does not change the runner from what I can tell. Under the bottle details page it keeps stating 64-bit caffe 7.7 even though I've changed it to sys-wine. Try to close Bottles and start it again, check the component runner selection and it's reverted back to Caffe.

Does that tell you anything peculiar?

mirkobrombin commented 2 years ago

I think there is a regression, let me check. About the main problem instead, I think we an exclude a missing path in Caffe as I'm having the same problem with Lutris and Proton runners.

ktzee commented 2 years ago

I'm having the same exact issue, with the Diablo 2 installer. This only happens going through Bottles. Using my system's wine from outside Bottles (terminal) works well. When using sys-wine from Bottles, the EULA is not visible.
From Bottles, I tried sys-wine and GE-Proton-7-24. I have Gecko and mono installed in the bottle. I tried with Steam Runtime, Bottles Runtime and both of them off. No luck.

The EULA is correctly visible from both Lutris and my system's wine.

I'm on Arch Linux, Bottles 2022.5.28-trento-3.

SavageOpopanax commented 2 years ago

Just checking if there are any updates here? Running into this issue myself and nothing noted here for a few months

mirkobrombin commented 2 years ago

I'm still not able to find a fix

SavageOpopanax commented 2 years ago

Any work around? Can’t get it going at all in lutris, bottles is the only thing that gets me to this point, then the blank eula hits

nmlynch94 commented 1 year ago

I've also been seeing inconsistent behavior when it comes to gecko in bottles vs something like Wine or Lutris.

If I'm understanding correctly, it looks like gecko is provided via dependencies https://github.com/bottlesdevs/dependencies/blob/main/Essentials/gecko.yml#L10. Bottles overrides mshtml as disabled, which will prevent wine from installing gecko itself and all wine runners will be provided version 2.47.2 of gecko. Is there a reason not to use wine's built-in installer?

It looks like the version in the dependencies linked above is 2.47.2, but don't different wine runners need different versions of gecko? I'm not super well-versed so I may be wrong, but this page implies there are supported gecko + wine combinations https://wiki.winehq.org/Gecko.

edit - Ha! Looks like someone actually fixed this a few days ago before I posted this. The latest code on main prompts you to install gecko and displays the EULA for the diablo II installer after it completes like expected. The application preset also seems to work as expected. https://github.com/bottlesdevs/Bottles/pull/3062/files#diff-f196389563406556e692bb3c08586d85aaec682571ed7320efe789f421f6b303L204.