Winetricks / winetricks

Winetricks is an easy way to work around problems in Wine
GNU Lesser General Public License v2.1
2.79k stars 402 forks source link

vcrun2015, 2017 and 2019 are broken (ucrtbase is removed prior to running installer) #1736

Closed gverm closed 3 years ago

gverm commented 3 years ago

Some change (can't seem to be able to bisect because of unrelated problems) after wine-6.5 is breaking the vcrun verbs that remove ucrtbase before running the installer.

According to Julliard (on IRC) this is to be expected with the recent loader changes, so we'll have to find another way to fix it.

I would suggest instead of removing ucrtbase, extracting it from the setup and replacing builtin before running the setup.

austin987 commented 3 years ago

Thanks for the report @gverm.

Do you want to attempt a fix? If not, I can, but it will likely be a week or two before I do.

If you don't have time, it would be helpful if you could include the context from IRC (I don't know that I was online at the time).

austin987 commented 3 years ago

FWIW, I suspect this broke more than vcrun*. When I ran the tests last night, I noticed breakage in some other apps, in particularly galliumnine (but didn't investigate, as I've noticed that 6.4/6.5 have have various breakages). I ended up using 5.0 / 6.0 instead to get a better idea of what was broken on the wine versus winetricks side.

While I have no problem fixing things on the winetricks side when needed, I don't have as much time lately for the wine side. As a result, I don't have as much time/interest investigating if regressions are wine bugs or newly intended behavior.

gverm commented 3 years ago

@austin987 I was planning on having a look at the vcrun* stuff later this week. I've pasted the IRC convo below, hopefully that helps.

As for other regressions, a lot of them were reported and fixed, some after 6.5, so 6.6 should be a better release.

gverm With current wine-git it's not possible anymore to remove builtin ucrtbase before installing native (like winetricks does), is this to be expected? It still works with wine-6.5 and bisecting is proving to be difficult due to other issues.

julliard gverm: if the installer depends on ucrtbase you can't remove it, yes

gverm julliard: I'm guessing this is due to your recent loader changes and isn't going to change?

nsivov are you sure installer uses ucrtbase itself? in other words what exactly fails? or is it because wine is linked to it

julliard gverm: yes, the idea is that we need to have a proper file corresponding to each loaded module

gverm nsivov: Library ucrtbase.dll (which is needed by L"C:\windows\system32\sechost.dll") not found I get a bunch of these. winetricks currently removes builtin ucrtbase, because builtin has a higher version number and the installer won't overwrite it. julliard: Thanks, good to know.

nsivov right, so that's because with link PE modules to it, instead of msvcrt like window does linking to msvcrt will have the same issue presumably if you wanted to install native msvcrt

TheEssem commented 3 years ago

I'm using the winetricks-git package on Arch (the sha256sum shows as aac2be702936c7d9f69044a5b5b5f8fdb78303bc5e54e84e24cdaec3ffd3ad1c) as well as Wine 6.14 and I'm getting the same issue. The PR did not seem to fix it, unfortunately.

stefson commented 2 years ago

a new snapshot is needed for a fix, this is really bad in terms of crashing peoples prefixes beyond repair