Help - Search - Members - Calendar
Full Version: glibc 2.4 dependence
Skype Community > English > Development, Betas and Skype Garage > Archive > Skype for Linux 1.4 Alpha
sega
Hi!

First, thank you for working on Skype for linux development.
But the problem for me (and probably for a significant part of the linux community still having glibc 2.3) will be a dependence on the glibc 2.4 . Is it really required by skype? Or, can you probably produce the skype version compiled statically with glibc?

It would be great to consider the problem now, because updating the glibc is extremely nontrivial operation.

Thank you.
feklee
QUOTE(sega @ Sat May 5 2007, 15:03) [snapback]390500[/snapback]

But the problem for me (and probably for a significant part of the linux community still having glibc 2.3) will be a dependence on the glibc 2.4.
I've the same problem, thus, filed a bug report:

https://developer.skype.com/jira/browse/SCL-15
berkus
Thanks for filing the bugreport. We will try to compile it with less strict glibc dependencies for the next build.

This time we were just short of time to produce such build.
khopesh
I'm on Debian Lenny, which uses glibc 2.3.6 (I have libc6-i686 and libc6 at version 2.3.6.ds1-13). I installed Skype 1.4.0.58_alpha with crossed fingers, and it works.

Aside from sometimes not showing me the first line in a chat (which I fix by changing the logs to a time that includes older messages), I haven't seen any bugs (aside from missing features, but it's a work-in-process). Hopefully, this trend will continue.
(/me knocks wood)

Berkus - don't take this as a green-light to continue compiling with glibc 2.4+ ... unneeded dependencies are always best left out; you want the base-most build system you can find so that you can support as many machines as possible.
cartoon_nate
khopesh: I'm using debian etch and no dice with running skype (static version); did you download the static binary or the other (generic) version? Regardless, would you be able to put together a mini how-to?

QUOTE(khopesh @ Mon May 14 2007, 21:10) [snapback]394815[/snapback]

I'm on Debian Lenny, which uses glibc 2.3.6 (I have libc6-i686 and libc6 at version 2.3.6.ds1-13). I installed Skype 1.4.0.58_alpha with crossed fingers, and it works.

khopesh
QUOTE(cartoon_nate @ Thu May 17 2007, 18:20) [snapback]396109[/snapback]
khopesh: I'm using debian etch and no dice with running skype (static version); did you download the static binary or the other (generic) version? Regardless, would you be able to put together a mini how-to?


Etch and Lenny should be similar enough right now to not be problematic.

Use the generic. Though I usually create a directory like /usr/local/stow/skype-1.4.0.64 and then "install" the thing with GNU stow (this package would need me to fix the directories first), I decided to cut out that variable and try it directly. Here's what I did (this is updated for the release that came out today, but it works great on both):

(note that these forums crash when you say "w get" without the space. remove the space below.)

CODE

killall -q skype
cd /usr/bin
sudo mv skype skype-1.3
cd
ls -ld .?ype*
tar -pzcf skype-1.3.tgz .Skype
w get http://download.skype.com/linux/skype-alpha-1.4.0.64-generic.tar.bz2
tar -jxf skype-alpha-1.4.0.64-generic.tar.bz2
cd skype-1.4.0.64
sudo cp -ai sounds /usr/share/skype/
sudo cp -ai skype /usr/bin
skype


This backs up the old skype binary and profile and installs the new version. Notice that you have no conflict of the sounds directory, since 1.3 uses /usr/share/skype/sound and 1.4 uses /usr/share/skype/sounds (note plural on the new version).

The altered /usr/bin/skype binary and presence of the sounds directory might confuse apt when you run 'apt-get install skype' after the skype-moderated repository is updated with the 1.4 release, so if there is an error, just remove the binary and sounds directory.
berkus
Thanks for the guide khopesh, we will try to put out debian and rpm packages soon to simplify things on this front.
feklee
QUOTE(khopesh @ Wed May 23 2007, 20:20) [snapback]398584[/snapback]

CODE

killall -q skype
cd /usr/bin
sudo mv skype skype-1.3
cd
ls -ld .?ype*
tar -pzcf skype-1.3.tgz .Skype
w get http://download.skype.com/linux/skype-alpha-1.4.0.64-generic.tar.bz2
tar -jxf skype-alpha-1.4.0.64-generic.tar.bz2
cd skype-1.4.0.64
sudo cp -ai sounds /usr/share/skype/
sudo cp -ai skype /usr/bin
skype


I don't see any trick here. How did you solve the glibc incompatibility problem?

When I start skype:
CODE
/opt/skype-1.4.0.64$ LD_PRELOAD="/opt/gcc-4.1.2/lib/libstdc++.so" ./skype
./skype: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by ./skype)

To the Skype developers: Please tell us what's the secret that glibc 2.4 is required? Are there issues with Skype and glibc 2.3?
feklee
I just ran Sykpe in a test system where I installed glibc 2.4. It aborts due to a segfault. The last few lines of an strace:
CODE
...
gettimeofday({1180433582, 58783}, NULL) = 0
select(11, [3 7 10], [], [], {0, 11554}) = 1 (in [3], left {0, 12000})
gettimeofday({1180433582, 59283}, NULL) = 0
read(3, "\0", 16)                       = 1
read(3, 0xbfdbcb90, 16)                 = -1 EAGAIN (Resource temporarily unavailable)
gettimeofday({1180433582, 59940}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
gettimeofday({1180433582, 60361}, NULL) = 0
select(11, [3 7 10], [], [], {0, 9976}) = 0 (Timeout)
gettimeofday({1180433582, 89211}, NULL) = 0
gettimeofday({1180433582, 89437}, NULL) = 0
gettimeofday({1180433582, 89690}, NULL) = 0
select(1024, [8], [], [], {0, 0})       = 0 (Timeout)
gettimeofday({1180433582, 90192}, NULL) = 0
ioctl(7, FIONREAD, [0])                 = 0
gettimeofday({1180433582, 90633}, NULL) = 0
select(11, [3 7 10], [], [], {0, 79704}) = 0 (Timeout)
gettimeofday({1180433582, 171379}, NULL) = 0
gettimeofday({1180433582, 172055}, NULL) = 0
gettimeofday({1180433582, 172679}, NULL) = 0
select(1024, [8], [], [], {0, 0})       = 1 (in [8], left {0, 0})
read(8, "`\3509\t\0\3419\t", 8)         = 8
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
rt_sigprocmask(SIG_UNBLOCK, [ABRT], NULL, 8) = 0
tgkill(18267, 18267, SIGABRT)           = 0
--- SIGABRT (Aborted) @ 0 (0) ---
+++ killed by SIGABRT +++


Would be really nice, if the Skype developers could make the releases glibc 2.3 compatible, preferrably ASAP. There are other people out there who've trouble with the current stable Skype release and would like to try out the alpha version on systems that aren't glibc 2.4 compatible.
Andypoo
Hi -- the dependency on glibc 2.4 will be relaxed. The only reason it was released as 2.4, is that our current development boxes are all on 2.4, and we wanted to release this alpha as quickly as possible.

A glibc 2.3 version is expected to be released.

Andypoo.
Martin Swift
QUOTE(Andypoo @ Wed May 30 2007, 12:12) [snapback]400803[/snapback]

Hi -- the dependency on glibc 2.4 will be relaxed.


Will this cover glibc 2.5 as well as 2.3?
Andypoo
QUOTE(Martin Swift @ Wed May 30 2007, 14:19) [snapback]400853[/snapback]

Will this cover glibc 2.5 as well as 2.3?


Yes, newer is fine.

Andypoo.
Martin Swift
QUOTE(Andypoo @ Wed May 30 2007, 21:34) [snapback]401024[/snapback]

Yes, newer is fine.

Has it been tested?

From How to get Skype 1.4 Alhpa to work in Slackware 11?:

QUOTE(sega @ Fri Jun 1 2007, 16:01) [snapback]401699[/snapback]

QUOTE(Martin Swift @ Thu May 31 2007, 02:37) [snapback]401097[/snapback]

Which libraries are those? Since it's not a Slackware specific issue, a Slackware independent solution would be great.

I'd figured it was a glibc issue since Mussemouse is running 2.5 as I am, so I asked in the glibc 2.4 dependence topic whether that might be a problem.

The reply was negative, so I'm lost as to what the dependency issue may be. Googling pointed to glibc, and the Skype for Linux development page says the only software dependencies are glibc 2.4 and sigc++ 2.0.

The reply was wrong. Because the C++ ABI tends to change between glibc versions. And The binaries compiled for one glibc won't work for the newer glibc'es if the C++ ABI is different.

khopesh
QUOTE(feklee @ Tue May 29 2007, 08:06) [snapback]400382[/snapback]
I don't see any trick here. How did you solve the glibc incompatibility problem?
I didn't do anything special to solve the glibc issue, it just worked (no trick). Are you sure you're using the non-static build?

I'm using Debian package libc6 2.3.6.ds1-13 on Debian Lenny, which (iirc) is the same version as on Etch.

QUOTE
When I start skype:
CODE
/opt/skype-1.4.0.64$ LD_PRELOAD="/opt/gcc-4.1.2/lib/libstdc++.so" ./skype
./skype: /lib/tls/libc.so.6: version `GLIBC_2.4' not found (required by ./skype)
Looks like you're trying to be needlessly tricky yourself. Have you tried just running the binary directly, or replicating my steps to run it from /usr/bin/skype?
feklee
QUOTE(khopesh @ Fri Jun 1 2007, 22:06) [snapback]401826[/snapback]
Are you sure you're using the non-static build?

No, I used the static build as the non-static build would require me to install additional libraries. Did you have a problem with the static build?

QUOTE
I'm using Debian package libc6 2.3.6.ds1-13 on Debian Lenny, which (iirc) is the same version as on Etch.

I use Slackware 10.2 with glibc 2.3.5 and, in a chroot test environment where I updated to 2.4, Skype crashed although other sound based programs such as audacity worked fine.

QUOTE
Looks like you're trying to be needlessly tricky yourself.

Why's that?

QUOTE
Have you tried just running the binary directly, or replicating my steps to run it from /usr/bin/skype?

Well, I just installed it in /opt/ and set symlinks. Installation of the alpha package seems pretty straigt forward to me. You do it this way, I do it that way - there are some, but not many, options.
khopesh
QUOTE(feklee @ Fri Jun 1 2007, 22:26) [snapback]401831[/snapback]

No, I used the static build as the non-static build would require me to install additional libraries. Did you have a problem with the static build?
I did not try the static build, as it has more places it could break with respect to having the wrong dependencies (methinks?).

QUOTE
I use Slackware 10.2 with glibc 2.3.5 and, in a chroot test environment where I updated to 2.4, Skype crashed although other sound based programs such as audacity worked fine.


Ah, I had assumed you were in Debian Etch.

Why the chroot? Do you not trust the skype binary, or is that needed for slackware in other areas (as noted in the thread How to get Skype 1.4 Alhpa to work in Slackware 11?, What dependencies are missing [sic]? Have you tried just running it to see what happens?
berkus
QUOTE(khopesh @ Wed Jun 6 2007, 01:17) [snapback]403058[/snapback]

I did not try the static build, as it has more places it could break with respect to having the wrong dependencies (methinks?).


Static builds have _less_ dependencies.

And glibc 2.4 dependency has been relaxed, in a short while we will release a new version which needs glibc 2.3.
feklee
QUOTE(khopesh @ Tue Jun 5 2007, 23:17) [snapback]403058[/snapback]
Why the chroot?

I didn't want to install glibc 2.4 into my glibc 2.3 based main system (Slackware 10.2) since that could break things. So, I simply copied my main system to another disk, installed glibc 2.4, and chrooted into that system.
QUOTE
Have you tried just running it to see what happens?

Yes, I did. To sum it up:
  • On my main system, skype 1.4 alpha fails with the error message "`GLIBC_2.4' not found".
  • In the chroot environment, skype 1.4 alpha fails with a segfault.
Andypoo
Wait for the next release, and let us know how you go with the new binaries.

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