I'm running Slackware 64 14.0 with 32 bit multilibs.
Numerous sites have explained that it is impossible to run multiple versions of wineserver and that the solution is to kill the old version of wineserver to use the new version. A select few sites have mentioned that it is possible by using a different WINEPREFIX for each wineserver version.
That's what I have been doing inadvertently for months because that's what Netflixplayer inherently does. I'm not certain if Netflixplayer's wineserver was running or using my wine installation's wineserver. I have been unable to verify the wine version that is in Netflixplayer.tar.gz because when I run:
/opt/Netflix64/bin/wine --version
or
cd /opt/Netflix64/bin && ./wine --version
it reports whatever wine version is installed in /usr/bin. I've verified this by installing/uninstalling several versions.
According to http://sourceforge.net/projects/postinstaller/files/data/, it doesn't look like Netflixplayer has been updated since 12/24/2012 and the latest wine version out then was 1.5.20 according to http://sourceforge.net/projects/wine/files/Source/
So I've been running
wine 1.5.25 32 bit
and Netflixplayer with
wine <=1.5.20 32 bit
According to 'file' both wine versions are 32 bit:
bash-4.2$ file /opt/Netflix64/bin/wine
/opt/Netflix64/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), BuildID[sha1]=0x2acec63c4ffa5cd7515f1c9fead64d54616df195, stripped
bash-4.2$ file /usr/bin/wine
/usr/bin/wine: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared libs), stripped
And readelf shows that the library runpaths are different.
bash-4.2$ readelf -d /usr/bin/wine | grep -e Library -e library
0x00000001 (NEEDED) Shared library: [libwine.so.1]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000f (RPATH) Library rpath: [$ORIGIN/../lib]
0x0000001d (RUNPATH) Library runpath: [$ORIGIN/../lib]
bash-4.2$ readelf -d /opt/Netflix64/bin/wine | grep -e Library -e library
0x00000001 (NEEDED) Shared library: [libwine.so.1]
0x00000001 (NEEDED) Shared library: [libpthread.so.0]
0x00000001 (NEEDED) Shared library: [libc.so.6]
0x0000000f (RPATH) Library rpath: [$ORIGIN/../lib32]
0x0000001d (RUNPATH) Library runpath: [$ORIGIN/../lib32]
I have only been able to run Netflixplayer once after all of this happened and that was because I uninstalled everything wine related and deleted everything in /tmp including hidden files and deleted every reference to wine, excluding the package history. I've reverted back to 1.5.25 and no matter what I do, not even closing the old version of wineserver using wineserver -k will work.
Executing this:
env WINELOADER="/opt/Netflix64/bin/wine" WINESERVER="/opt/Netflix64/bin/wineserver" WINEPREFIX="$HOME/.Netflix" /opt/Netflix64/bin/wine "C:\Program Files\Mozilla Firefox\firefox.exe" http://netflix.com/
Produces this:
wine client error:0: version mismatch 437/439.
Your wineserver binary was not upgraded correctly,
or you have an older one somewhere in your PATH.
Or maybe the wrong wineserver is still running?
Netflixplayer will no longer work with any other wine installed on the system. I think the environment variables are being ignored. And that somehow WINEPREFIX became useless.
strace wine notepad 2>&1 |grep "/lib/"
and I found something very weird: a lib from wine 1.7.19 was being loaded while executing it with wine 1.7.26 (PATH and LD_LIBRARY_PATH set properly) (I have many wine versions); now I have to try to solve it :)