Thursday, 27 September 2007

Ubuntu Gutsy 64bit Wine misses ssl support so Google Picasa can not sign in.

Today I have realized that Picasa - I am using "windows version" of picasa under wine - can not sign me in - means no web upload is possible - from my home machine (Ubuntu Gutsy 64bit) and wine showed the following error:

fixme:win:FlashWindowEx 0x33afd4
fixme:wininet:InternetSetOptionW Option INTERNET_OPTION_CONNECT_TIMEOUT (10000): STUB
fixme:wininet:InternetSetOptionW INTERNET_OPTION_SEND/RECEIVE_TIMEOUT not supported on protocol 1
fixme:wininet:NETCON_init can't use SSL, not compiled in.

I was a bit surprised since Picasa on my office notebook (Ubuntu Feisty 32bit) worked fine. So checked the error and decided to recompile wine and see if ssl is really not compiled in.

First I downloaded the source and dependencies needed to compile.

# apt-get build-dep wine

I would mention that it will download a lot.
Then downloaded wine source too into a temporary directory and tried to compile.

# mkdir /tmp/wine_build
# cd /tmp/wine_build
# apt-get source wine
cd wine-0.9.45
dpkg-buildpackage -rfakeroot -b

And part of the result is:

checking for -lcapi20... not found [ CAPI support ISDN Cards ]
checking for -lcups... not found [ CUPS printing support ]
checking for -ljack... not found [ Jack audio server support ]
checking for -lssl... not found
checking for -lcrypto... not found
checking for -ljpeg... not found
checking for -lpng... not found

So configure could not find ssl library. After some check it turned out that this is a 32 bit compilation therefore it needs 32 bit libraries. And of course I did not have some 32 bit lib on my system. My current problem is the access of internet because of the missing ssl support so now focus on this.

I have downloaded libssl0.9.8_0.9.8e-5ubuntu1_i386.deb and extracted this and copied the missing files to the right place and created required soft links.
# mkdir /tmp/libssl
# dpkg -x libssl0.9.8_0.9.8e-5ubuntu1_i386.deb /tmp/libssl
# cp /tmp/libssl/usr/lib/ /usr/lib32/
# cp /tmp/libssl/usr/lib/ /usr/lib32/
# ln -s /usr/lib32/ /usr/lib32/
# ln -s /usr/lib32/ /usr/lib32/

If you try to compile wine again with dpkg-buildpackage -rfakeroot -b this should work now.

[ Update: It took a long time on my machine. :( But finally it is working. :) ]

[ Update: I saw sadly that some fonts are not visible under Picasa. Hmmm. Not easy to get it to work. But it can be. If you have font problem install msttcorefonts. But that is not all you have to do. After that you have to remove your ~/.wine directory and reinstall Picasa. The important thing is not Picasa reinstallation. But when wine does not find a ~/.wine it recreates and this is the point after all. I'll try to find another way to do this but this is working. ]

[ Update: Tried to start EVE Online under wine and found two problems. Both were discussed on wine web page but here are details.
Main error is below but first solve the easier one:
$ cp /usr/share/fonts/truetype/msttcorefonts/arial.ttf ~/.wine/drive_c/windows/fonts/

Main error message:
fixme:d3d_draw:drawPrimitive Using software emulation because not all material properties could be tracked
Still do not know really how to solve this.]

P.S. :
As you could see some other libraries are missing too. So if you have a similar problem just do a procedure like this and you can correct it.

The following libraries were also missing:
checking for -lcapi20... not found
checking for -lcups... not found
checking for -ljack... not found
checking for -lssl... not found
checking for -lcrypto... not found
checking for -ljpeg... not found
checking for -lpng... not found

The followings are also missing so in case of problem with wine on 64 bit linux you should consider this list:
checking for IceConnectionNumber in -lICE... no
checking for x86_64-linux-gnu-ar... no
checking for x86_64-linux-gnu-ranlib... no
checking for x86_64-linux-gnu-strip... no
checking for x86_64-linux-gnu-windres... no
checking for windres... no
checking for lclint... no
checking for lint... no
checking for i386_set_ldt in -li386... no
checking for _oss_ioctl in -lossaudio... no
checking AudioUnit/AudioUnit.h usability... no
checking AudioUnit/AudioUnit.h presence... no
checking for AudioUnit/AudioUnit.h... no
checking Carbon/Carbon.h usability... no
checking Carbon/Carbon.h presence... no
checking for Carbon/Carbon.h... no
checking CoreAudio/CoreAudio.h usability... no
checking CoreAudio/CoreAudio.h presence... no
checking for CoreAudio/CoreAudio.h... no
checking DiskArbitration/DiskArbitration.h usability... no
checking DiskArbitration/DiskArbitration.h presence... no