Matoking / protontricks

A wrapper that does winetricks things for Proton enabled games, requires Winetricks.
GNU General Public License v3.0
1.66k stars 36 forks source link

Curl error: symbol lookup error #25

Closed ghost closed 5 years ago

ghost commented 5 years ago

I encountered the following problem when installing Windows DLL's and components, such as galliumnine standalone:

[user@fedora-silverblue ~]$ protontricks-flat --gui
winetricks GUI enabled, using zenity 3.30.0
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20190615-next - sha256sum: 2d3311f8cc0783b747c4e074008e701f2ce844765ba53d2fd4d27126d1df2383 with wine-4.2 and WINEARCH=win64
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
------------------------------------------------------
Github down? version '' doesn't appear to be a valid version
------------------------------------------------------
winetricks GUI enabled, using zenity 3.30.0
Executing w_do_call galliumnine
Executing load_galliumnine 
Executing cd /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
Downloading https://github.com/iXit/wine-nine-standalone/releases/download//gallium-nine-standalone-.tar.gz to /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
Executing cd /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
Downloading https://web.archive.org/web/2000/https://github.com/iXit/wine-nine-standalone/releases/download//gallium-nine-standalone-.tar.gz to /home/user/.var/app/com.valvesoftware.Steam/cache/winetricks/galliumnine
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
------------------------------------------------------
Downloading https://web.archive.org/web/2000/https://github.com/iXit/wine-nine-standalone/releases/download//gallium-nine-standalone-.tar.gz failed
------------------------------------------------------

I have tried downgrading the following so far: protontricks to the release 1.2.2, winetricks to the point release 20190615, and org.freedesktop.Platform to the commit 5c0dd88790d99d5aee62c9a471a9e38b1b7ccbe6b3f9e144dfc9169821755990 (I'm using Flatpak Steam). I have also done a clean installation of Fedora Workstation 30 in a virtual machine to check if something on my installation of Fedora Silverblue 30 causes the error in question, but the issue persisted. However, I do not recall encountering this error 10 days ago when I was still using Fedora Workstation 30. I'm looking forward to hearing any clue as to what is to blame even though it might not be in this project's scope to solve it.

Matoking commented 5 years ago

This seems to be out-of-scope for both Protontricks and winetricks, and probably has to do with how curl is installed inside the Flatpak sandbox. I'm guessing libcurl (shared library) and curl (the binary) are both available inside the sandbox, but have different versions.

If you can run protontricks-flat -c "curl --version" <any valid appid here> inside the sandbox, it should print a line like this:

curl 7.65.1 (x86_64-pc-linux-gnu) libcurl/7.65.1 OpenSSL/1.1.1c zlib/1.2.11 libidn2/2.2.0 libpsl/0.21.0 (+libidn2/2.2.0) libssh2/1.8.2 nghttp2/1.36.0

If the version number in curl 7.65.1 is different than the version number in libcurl/7.65.1, that's probably the reason for the error you're seeing.

ghost commented 5 years ago

Certainly. Nevertheless, I'm determined to find out the cause of this error. I've already contacted Flatpak guys about this error, but they (one person who addressed it) hinted at something else.

As for your hint, I'm getting this output instead:

$ protontricks-flat -c "curl --version" 38400
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename

However, when I start a new shell within the sandbox, and run curl --version, I get the expected output:

$ flatpak run --command=bash com.valvesoftware.Steam
[📦 com.valvesoftware.Steam ~]$ curl --version
curl 7.65.1-DEV (x86_64-unknown-linux-gnu) libcurl/7.65.1-DEV GnuTLS/3.6.7 (NSS/3.43) (OpenSSL/1.1.1c) zlib/1.2.11 libidn2/2.0.5
Release-Date: [unreleased]
Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp 
Features: AsynchDNS Debug GSS-API HTTPS-proxy IDN IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL TLS-SRP UnixSockets

But then if I run protontricks with the said shell, the error still persists:

[📦 com.valvesoftware.Steam ~]$ .local/bin/protontricks --gui
winetricks GUI enabled, using zenity 3.30.0
------------------------------------------------------
You are using a 64-bit WINEPREFIX. Note that many verbs only install 32-bit versions of packages. If you encounter problems, please retest in a clean 32-bit WINEPREFIX before reporting a bug.
------------------------------------------------------
Using winetricks 20190615-next - sha256sum: 2d3311f8cc0783b747c4e074008e701f2ce844765ba53d2fd4d27126d1df2383 with wine-4.2 and WINEARCH=win64
curl: symbol lookup error: curl: undefined symbol: curl_mime_filename
------------------------------------------------------
Github down? version '' doesn't appear to be a valid version
------------------------------------------------------
winetricks GUI enabled, using zenity 3.30.0
Matoking commented 5 years ago

Sorry for the late reply. I looked into this a bit more and looks like curl loads the shared library provided by Steam Runtime, which has the wrong version. Disabling Steam Runtime for Protontricks inside Flatpak seems to solve the issue.

Try opening your ~/.bashrc and edit the protontricks-flat alias to this:

alias protontricks-flat='flatpak run --env=WINETRICKS=$HOME/winetricks --env=STEAM_RUNTIME=0 --command=.local/bin/protontricks com.valvesoftware.Steam'

Open a new terminal and then check if the command works again.

ghost commented 5 years ago

It works indeed. Thanks!

ghost commented 5 years ago

On an unrelated note, I would replace .local/bin/pipx install protontricks with .local/share/python/bin/pipx install protontricks on the wiki page concerning usage with Flatpak Steam. While it's a separate issue, I don't think it deserves more attention.

Matoking commented 5 years ago

On an unrelated note, I would replace .local/bin/pipx install protontricks with .local/share/python/bin/pipx install protontricks on the wiki page concerning usage with Flatpak Steam. While it's a separate issue, I don't think it deserves more attention.

Yeah, I noticed that the path had changed the last time I tried out the Flatpak version of Steam. I've made both changes to the wiki page now.