Winetricks / winetricks

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

No HTTPS #966

Closed JonnyTech closed 6 years ago

JonnyTech commented 6 years ago

Running a 32 bit wine prefix on Debian:

$ WINEPREFIX=~/.wine32 WINEARCH=win32 wine --version
wine-3.0 (Debian 3.0-1~mx17+1)

Latest winhttp and wininet installed from latest winetricks:

$ wget https://raw.githubusercontent.com/Winetricks/winetricks/master/src/winetricks
$ chmod +x winetricks
$ WINEPREFIX=~/.wine32 WINEARCH=win32 ./winetricks winhttp wininet
Using winetricks 20180217-next - sha256sum: 9d0d23c3b1c5277dc50ed5e6eb7a5dac85628370788763ce9a6da68c538e0225 with wine-3.0 (Debian 3.0-1~mx17+1) and WINEARCH=win32
Executing w_do_call winhttp
Executing load_winhttp 
Executing cabextract -q -d /home/user/.wine32/dosdevices/c:/windows/temp/_winhttp -L -F i386/new/winhttp.dl_ /home/user/.cache/winetricks/win2ksp4/W2KSP4_EN.EXE
Executing cabextract -q --directory=/home/user/.wine32/dosdevices/c:/windows/system32 /home/user/.wine32/dosdevices/c:/windows/temp/_winhttp/i386/new/winhttp.dl_
Using native,builtin override for following DLLs: winhttp
Executing wine regedit C:\windows\Temp\_winhttp\override-dll.reg
Executing w_do_call wininet
Executing load_wininet 
Executing cabextract -q -d /home/user/.wine32/dosdevices/c:/windows/temp/_wininet -L -F i386/wininet.dl_ /home/user/.cache/winetricks/win2ksp4/W2KSP4_EN.EXE
Executing cabextract -q --directory=/home/user/.wine32/dosdevices/c:/windows/system32 /home/user/.wine32/dosdevices/c:/windows/temp/_wininet/i386/wininet.dl_
Using native,builtin override for following DLLs: wininet
Executing wine regedit C:\windows\Temp\_wininet\override-dll.reg
$ WINEPREFIX=~/.wine32 WINEARCH=win32 ./winetricks winhttp wininet
Using winetricks 20180217-next - sha256sum: 9d0d23c3b1c5277dc50ed5e6eb7a5dac85628370788763ce9a6da68c538e0225 with wine-3.0 (Debian 3.0-1~mx17+1) and WINEARCH=win32
Executing w_do_call winhttp
winhttp already installed, skipping
Executing w_do_call wininet
wininet already installed, skipping

But I cannot load in any https pages (http only sites work fine)

$ WINEPREFIX=~/.wine32 WINEARCH=win32 wine iexplore
003d:err:secur32:schan_AcquireClientCredentials Could not find matching protocol

Files seem to be in the correct location:

$ WINEPREFIX=~/.wine32 WINEARCH=win32 wine cmd
Microsoft Windows 6.1.7601 (3.0)

Z:\home\user>dir c:\windows\system32\win????.dll
Volume in drive c has no label.
Volume Serial Number is 0000-0000

Directory of c:\windows\system32

12/04/2018     17:07           208  win87em.dll
12/04/2018     17:07           208  winaspi.dll
12/04/2018     17:07         2,436  wined3d.dll
19/06/2003     12:05       310,784  winhttp.dll
19/06/2003     12:05       466,704  wininet.dll
12/04/2018     17:07           208  winsock.dll

What am I doing wrong?

austin987 commented 6 years ago

It looks like wine's secur32 isn't compatible with native wininet/winhttp.

You could try native secur32, but than that crashes: wine: Call from 0x7b43cd0c to unimplemented function sspicli.dll.InitSecurityInterfaceA, aborting

Native sspicli avoids the crash, but doesn't allow for working https, fyi.

JonnyTech commented 6 years ago

So who do I contact about fixing this as it worked several months ago but now after updating it does not?

austin987 commented 6 years ago

As a first step, you'd need to find what broke it (winetricks or wine). As a general rule, upstream wine is unlikely to consider wine's iexplore not working with native dlls a bug though.

JonnyTech commented 6 years ago

Using iexplore.exe was simply an easy to demonstrate and replicate example for this bug report. The issue surfaced with metatrader 4 no longer connecting to servers. It requires the use of winhttp which afaik is only installable with winetricks. How can I get information such as secur32 and sspicli details quoted above to enable further troubleshooting?

austin987 commented 6 years ago

@JonnyTech I ran 'winetricks -q wininet winhttp' as you did, saw the problem, then tried 'winetricks -q secur32' since that was where the error was reported. I then tried iexplore again, which crashed. I extracted sspicli from win7sp1, manually placed it in system32 and overrode to native, but was still unable to load https sites.

austin987 commented 6 years ago

Are there upstream bugs for the wininet / winhttp problems? I couldn't find them in a quick search.

JonnyTech commented 6 years ago

The solution I found that fixes iexplore.exe, metatrader and a couple of other utilities with all versions of wine: WINEPREFIX=~/.wine32 WINEARCH=win32 winetricks wininet=builtin winihttp=native

austin987 commented 6 years ago

Cool.

I'd still love to see an upstream bug filed for the metatrader problem. Feel free to CC me on it.

JonnyTech commented 6 years ago

As it affects multiple applications, is it not a wine or winetricks issue?

Can you point me where to file an upstream bug report please?

austin987 commented 6 years ago

It's a wine issue. Please report to https://bugs.winehq.org, include the terminal output without any native overrides. Also include what winetricks commands help, to help narrow down the bug.

JonnyTech commented 6 years ago

Wine bug filed here: https://bugs.winehq.org/show_bug.cgi?id=44990 @austin987 I could not find your email address to cc you as requested