Winetricks / winetricks

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

vcrun2005 - extracting file fails under docker #1543

Open mantielero opened 4 years ago

mantielero commented 4 years ago

I am facing this problem reported in the issue.

My environment

I have created a docker image using archlinux/base and I have installed wine-5.7. I am using a x64.

What I have tried so far

I have tried:

$ winetricks vcrun2005
$ WINEPREFIX=~/.wine32 WINEARCH=win32 winetricks vcrun2005

What I get

It gets stuck in the following step: winetricks_error

And in the command line I get:

[...]
Executing rm -rf /home/jose/.wine/dosdevices/c:/windows/winsxs/manifests/x86_microsoft.vc80.mfcloc_1fc8b3b9a1e18e3b_8.0.50727.6195_none_deadbeef.manifest
Executing rm -rf /home/jose/.wine/dosdevices/c:/windows/winsxs/manifests/x86_microsoft.vc80.openmp_1fc8b3b9a1e18e3b_8.0.50727.6195_none_deadbeef.manifest
Executing wine regedit C:\windows\Temp\override-dll.reg
Executing wine64 regedit C:\windows\Temp\override-dll.reg
Executing cd /home/jose/.cache/winetricks/vcrun2005
Executing wine vcredist_x86.EXE
0047:fixme:advapi:DecryptFileA ("C:\\users\\jose\\Temp\\IXP005.TMP\\", 00000000): stub
------------------------------------------------------
Note: command wine vcredist_x86.EXE returned status 43. Aborting.
------------------------------------------------------

In the folder C:\\users\\jose\\Temp\\IXP005.TMP\\ I see the file:

vcredis1.cab

What else could I try?

austin987 commented 4 years ago

Winetricks version?

Does it work outside of docker for you? You might look at the installers logfiles, they may have a hint.

austin987 commented 4 years ago

May be related to #1525

mantielero commented 4 years ago

It works outside of the docker container.

I used ArchLinux, so I have tried with these two:

aur/winetricks-git 20180513.r15.g3733382-1 (+92 0.80%) 
    Script to install various redistributable runtime libraries in Wine.
multilib/winetricks 20200412-1 (165.5 KiB 888.0 KiB) (Installed)
    Script to install various redistributable runtime libraries in Wine.

And I have tried as well downloading directly from github.

austin987 commented 4 years ago

Passing -q may help, though it's more likely something docker specific, given #1525. Probably needs some investigation by someone more familiar with docker.

mantielero commented 4 years ago

What would be the manual steps to install vcrun2005 without winetricks?

austin987 commented 4 years ago

https://github.com/Winetricks/winetricks/blob/master/src/winetricks#L12019

basically, download the installer, override dlls as native,builtin, then run installer(s).

mantielero commented 4 years ago

How do I do "override dlls as native,builtin". I am not that familiar with neither wine and winetricks. But I can test what is happening in the docker container. So far:

wget http://download.microsoft.com/download/8/B/4/8B42259F-5D70-43F4-AC2E-4B208FD8D66A/vcredist_x86.EXE

It looks ok. I can run:

$ cabextract vcredist_x86.EXE
Extracting cabinet: vcredist_x86.EXE
  extracting vcredis1.cab
  extracting vcredist.msi

All done, no errors.
austin987 commented 4 years ago

https://wiki.winehq.org/FAQ and https://forum.winehq.org/ may be helpful.

There are three ways to override the dlls: 1) temporarily, via environmental variable: WINEDLLOVERRIDES=... 2) permanently via winecfg > Libraries 3) permanently via registry (which is what winecfg does). Winetricks automates that with regedit. Look at winetricks w_override_dlls() for the details.

mantielero commented 4 years ago

WINEDLLOVERRIDES looks easy for me. What are the ones that I have to override in order to perform the installation?

austin987 commented 4 years ago

Take a look at https://github.com/Winetricks/winetricks/blob/master/src/winetricks#L12019, it's pretty clear what the code is doing.

mantielero commented 4 years ago

I am trying:

WINEDLLOVERRIDES="atl80 msvcm80 msvcp80 msvcr80 vcomp" WINEPREFIX=~/deleteme WINEARCH=win32  wine vcredist_x86.EXE

But this is not working.