Help - Search - Members - Calendar
Full Version: Skype for Linux on FreeBSD
Skype Community > English > Linux
atrox_
if I try to run the static version on FreeBSD, it says: "./skype: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory"
if I try to run dynamic version, it cannot find libqt-mt.so.3

sadsmile.png

what could be the solution?
toivo_
QUOTE(atrox)
if I try to run the static version on FreeBSD, it says: \"./skype: error while loading shared libraries: libstdc++.so.5: cannot open shared object file: No such file or directory\"
if I try to run dynamic version, it cannot find libqt-mt.so.3

:(

what could be the solution?



We should release fbsd compatible bundle. Dont hold your breath.

T.
gb_
path to libqt-mt.so.3 is hard coded and it looks for it in /usr/lib. If you put a link there it only solves this lib path. You will still get stuck with libstdc++.so.5, which is hard coded to be in /usr/lib too. And than again for several other libs which are not even available under Linux emulation. atrox: truss the binary when you face such a case.

Best solution is to wait for a release of the code compiled properly for FreeBSD, that's really not a big deal, but without the sources we have to wait, except if you wan't to work under NDA with skype :-)

gb
lenix_
yet another vote for a native freebsd binary here smile.png
Torfmaster_
It actually does fine under FreeBSD. But I have a few problems:
1. it kills my X Server
2. sound doesn't work. It does open the dsp0.0 device and I hear myself but I cannot hear my opponent.
3. It forgets its prereferences

I run the most current static version ( which in fact does itself need at least 10 additional libraries ? ).

Torfmaster
netchild_
QUOTE(Torfmaster)
It actually does fine under FreeBSD. But I have a few problems:


Which linux_base do you use? I have the default one installed (based upon RedHat 7.1), but there's no official libstdc++.so.5 from RedHat. I'm downloading linux_base-8 ATM. I found a libstdc++.so.5 RPM for RedHat 8.0, but I don't know if there's a libgcc_s.so.1 included (the pkg-plist gets generated dynamically, so I have to download it first :? ).

QUOTE(Torfmaster)
1. it kills my X Server


Can you please describe this more? What version and which X Server do you use (XFree86 or XOrg)? What FreeBSD version? Are there error messages somwhere (e.g. /var/log/XFree86.0.log)?

I think the userland part of the FreeBSD linux emulation needs a major update. I try to get enough free time tomorrow to produce a "quick hack" which is enough to get skype up and running. After that I start a discussion on the FreeBSD ports list about updating the default userland part of the linux emulation (some design decissions need to be made and I want to dicuss them first).

Bye,
Alex (netchild (at) FreeBSD (dot) org).
netchild_
QUOTE(netchild)
Which linux_base do you use? I have the default one installed (based upon RedHat 7.1), but there's no official libstdc++.so.5 from RedHat. I'm downloading linux_base-8 ATM. I found a libstdc++.so.5 RPM for RedHat 8.0, but I don't know if there's a libgcc_s.so.1 included (the pkg-plist gets generated dynamically, so I have to download it first :? ).


Ok, the download finally finished and I can answer parts of this myself.

linux_base-8 is a replacement for linux_base. At least Intels C/C++ compiler and Netscape Navigator 4.8 work as expected. It contains not only libgcc_s.so.1, it also contains libstdc++.so.5.

Everyone who wants to run skype just has to run:
CODE
portupgrade -o emulators/linux_base-8 emulators/linux_base

to upgrade from linux-base-7.1. If you used some kind of X11 software (or want to use skype) you also have to install x11/linux-XFree86-libs. Additionally (for skype) you have to install x11-fonts/linux-fontconfig and textproc/linux-expat.

Now edit /usr/local/etc/pkgtools.conf, add the line
CODE
'emulators/linux_base' => 'emulators/linux_base-8',

into \"ALT_PKGDEP\". This tells portupgrade to depend upon linux_base-8 instead upon linux_base-7.1.

Finally download the static version of scype, extract the tarball, run \"brandelf -t Linux skype_ver-0_90_0_3-staticQT/skye\" and start skype.

I will make and commit a skype port tomorrow.

Unfortunately I'm not able to login with skype. Trying to register fails (\"login failed\", I tried to register \"Alexander-Leidinger.net\" if it matters; BTW: why is an at sign (@) not allowed to be used in the Skype user name?) and trying to open File->Options results in a segfault:
QUOTE
UI: MainForm::tabWidget_currentChanged
QButtonGroup::setProperty( \"selectedId\", value ) failed: property invalid, read-only or does not exist
QButtonGroup::setProperty( \"selectedId\", value ) failed: property invalid, read-only or does not exist
QButtonGroup::setProperty( \"selectedId\", value ) failed: property invalid, read-only or does not exist
ASSERT: \"!lib.isNull()\" in skyengine.cpp (882)


Bye,
Alex.
Jaanus
Alex,

thanks for the feedback. We do not allow the @ sign in Skype name because it has been reserved for future purposes.

The crash when selecting "Options" when offline is a known one that will be fixed in 0.90.0.4, out Real Soon Now.

The "logging in failed" may also indicate that Skype is for some reason unable to connect to the network. Are you in a proxied network? If so, please set the "http_proxy" or "https_proxy" envvars to point to your http(s) proxy ("host:port"), this might help.
tolmaion_
I did pretty much the same as netchild to get Skype running on my FreeBSD 5-current. I already had linux-base-8 installed. I added linux-fontconfig and linux-expat. This made Skype run. It seems to be rather stable, hasn't crashed on me so far. Also, it connects to the network just fine, lets me register as a new user, lets me log in, lets me set options, lets me initiate and answer calls. So, pretty much everything is working. However, there's a problem - sound doesn't work :(.

If I just run Skype from a terminal, I have no sound at all. The other party can't hear me and I can't hear them. Also, when I am being called, I can't hear any ring tone. I got a bit further by installing linux-arts. This port allows me to run:

artsdsp -m skype

With this, Skype actually plays a ring tone when someone is calling. So, it's a step in the right direction. However, I still have no sound either way while in a call. Just after a call has been established, I get a line like this in the console:

read error, res = 0 , handle = 22

My best guess so far is that this is the connection to artsdsp dying. I don't know why though. And I don't know what to try next.
netchild_
QUOTE(terminus)
The \"logging in failed\" may also indicate that Skype is for some reason unable to connect to the network. Are you in a proxied network? If so, please set the \"http_proxy\" or \"https_proxy\" envvars to point to your http(s) proxy (\"host:port\"), this might help.


Yes, I'm behind a NAT and I have a proxy installed on my gateway too. I tried with
CODE
http_proxy=andro-beta:3128 /usr/ports/multimedia/skype/work/skype_ver-0_90_0_3-staticQT/skype

but it doesn't work, I get
QUOTE
Engine::customEvent invoked. curState is 2
Engine::customEvent Sky::Event::SKY_PROFILE_CHANGE_EVENT ev->getKey() is 281
Engine::customEvent Sky::Event::SKY_PROFILE_CHANGE_EVENT SkyLib::Profile::LOGGING_IN
Engine::customEvent invoked. curState is 2
Engine::customEvent Sky::Event::SKY_PROFILE_CHANGE_EVENT ev->getKey() is 146
Profile::OnChange invoked. key is 281
Event::Event invoked. type is 1002 oid is 1 key is 281
Engine::customEvent invoked. curState is 2
Engine::customEvent Sky::Event::SKY_PROFILE_CHANGE_EVENT ev->getKey() is 281
Engine::customEvent Sky::Event::SKY_PROFILE_CHANGE_EVENT failure. status is 7


The same with https_proxy and with the IP address instead of the name. I also looked at a tcpdump, it doesn't try to contact the proxy instead it does something like this:
QUOTE
10:42:11.970753 IP 192.168.1.1.54045 > 68.206.43.167.19731: UDP, length: 18
10:42:12.294362 IP 192.168.1.1.54045 > 68.14.255.164.15681: UDP, length: 18
10:42:12.496047 IP 68.206.43.167.19731 > 192.168.1.1.54045: UDP, length: 11
10:42:12.496524 IP 192.168.1.1.54045 > 68.206.43.167.19731: UDP, length: 23
10:42:12.631920 IP 68.14.255.164.15681 > 192.168.1.1.54045: UDP, length: 11
10:42:12.632264 IP 192.168.1.1.54045 > 68.14.255.164.15681: UDP, length: 23
10:42:13.284379 IP 192.168.1.1.54045 > 213.22.78.17.62384: UDP, length: 18
10:42:13.284472 IP 192.168.1.1.54045 > 80.160.91.10.33033: UDP, length: 18
10:42:13.284522 IP 192.168.1.1.54045 > 24.73.53.247.12785: UDP, length: 18
10:42:13.307797 IP 68.206.43.167.19731 > 192.168.1.1.54045: UDP, length: 18
10:42:13.369623 IP 68.14.255.164.15681 > 192.168.1.1.54045: UDP, length: 18
10:42:13.422194 IP 80.160.91.10.33033 > 192.168.1.1.54045: UDP, length: 58
10:42:13.449845 IP 213.22.78.17.62384 > 192.168.1.1.54045: UDP, length: 18
10:42:13.523362 IP 24.73.53.247.12785 > 192.168.1.1.54045: UDP, length: 18

and a little bit more...

I finish now the the FreeBSD port of Skype first. Then I install the Windows version of Skype on my laptop and try again (since I don't have a mic yet, and the laptop has a build-in one, this makes more sense ATM :-) ).

Bye,
Alex.
Neovanglist_
Hey there, I'm running it under FreeBSD 5-CURRENT, using the debian linux base, and I'm getting the following error when I run skype.

This happens when I try to log in, or to create a new account.

Neovanglist# ./skype
Engine::init invoked. user is
Engine::init success
SkyWindowBase::onlineStatusChanged setting pixmap
UI: MainForm::tabWidget_currentChanged
Engine::init invoked. user is Neovanglist
Engine::init success
UI: Lib::OnConnStatusChange status is 1, 1
Engine::customEvent invoked. curState is 1
Engine::customEvent Sky::Event::SKY_CONN_STATUS_EVENT
UI: Lib::OnConnStatusChange status is 1, 1
Engine::customEvent invoked. curState is 1
Engine::customEvent Sky::Event::SKY_CONN_STATUS_EVENT
Abort (core dumped)

Thanks,
Neovanglist
netchild_
QUOTE(Neovanglist)
Hey there, I'm running it under FreeBSD 5-CURRENT, using the debian linux base, and I'm getting the following error when I run skype.


The debian linux base doesn't come with SOVERSION 5 of libstdc++. So you either added a symlink, or you installed libstdc++.so.5 from somewhere. In the first case: don't do that, that doesn't work. In the second case: only do this if you know what you are doing (and how to fix it yourself).

I suggest to replace the debian linux_base with linux_base-8:
CODE
portupgrade -o emulators/linux_base-8 emulators/linux_base-debian


I just committed the FreeBSD port. Wait a little bit until your local cvsup mirror catches up (one hour should be enough) and then you only need to install net/skype (after replacing linux_base-debian).

BTW: I'm using -current too.

Bye,
Alexander.
Neovanglist_
It does not come by default, but can be installed correctly via the apt tools.

I have however, managed to get it working with the debian_base. If you use the apt tools to update to debian sid (it comes from ports as debian woody) it runs great. (I'm assuming it's because of the more recent libstdc++ or libc libraries)

Another thing I did to help it run a bit smoother was to mount a devfs to /usr/compat/linux/dev. While this is _bad_ for some other things (the devices do not always work the same FreeBSD<->Linux) it works fine for the things that skype uses. (mixer, null, etc)

EDIT: I am having problems with the sound. Same as stated above, I can not hear anything (even ringing and etc) and nobody else can hear me.

I've been playing with it for a while now, I'll let you know if I figure anything out.
netchild_
QUOTE(Neovanglist)
Another thing I did to help it run a bit smoother was to mount a devfs to /usr/compat/linux/dev. While this is _bad_ for some other things (the devices do not always work the same FreeBSD<->Linux) it works fine for the things that skype uses. (mixer, null, etc)


I haven't noticed bad things. And I've run skype with ktrace to find the reason for the sound problems (I've mailed my findings and some thoughts to the skype staff, now we have to wait...). When the linux compatibility code doesn't find a file system object in /compat/linux (e.g. if /dev/null isn't available in /compat/linux/dev/null), it searches from the root (the real /dev/null in this case).

While ktracing it I haven't noticed a huge amount of file system requests, so it shouldn't matter if you mount devfs into /compat/linux (/compat is a symlink to /usr/compat) or not. It should only matter if skype would do alot of open/close combinations per second, but in this case it would be better to keep the file/device open directly in skype, and not to mount devfs into /compat/linux.

Bye,
Alexander.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.