Reservations that I have about proprietary software like Skype notwithstanding, it has to be said that there is nothing currently to compete with it in ease-of-use terms, in the free software world. However, if you’re running a Red Hat Enterprise Linux 6 desktop and try to install the Fedora 16 package downloaded from Skype’s Linux downloads page, you’ll probably be unsuccessful (at least with version 4.0.0.8) and see something like this:
error: Failed dependencies:
alsa-lib >= 1.0.23 is needed by skype-4.0.0.8-fc16.i586
libstdc++.so.6(GLIBCXX_3.4.15) is needed by skype-4.0.0.8-fc16.i586
At first glance this looks like a no-go: Skype simply won’t work on this platform. But actually it’s not true; it’s just a badly-built RPM. It never ceases to amaze me the number of ways that proprietary software vendors manage to mangle RPMs (perhaps they need some RPM workshops from our expert team at Red Hat Consulting?); a very common scenario seems to override RPM’s very good automatic dependency generation and instead pile in the dependencies manually – usually incorrectly.
Now, one can of course simply force the package install with rpm --force
, but this is really not the right thing to do, and also not workable if one wanted to push out via a yum repository. So, I decided to re-package the RPM using a standard Fedora template (using the rpmdev-newspec
command, as usual) and adhering as closely as possible to the Fedora packaging guidelines. The resulting Skype spec file for RHEL6 can be downloaded together with a slightly-cleaned-up desktop file; you download the Skype binary tarball instead of the Fedora package as the source. With these you can build a clean RPM.
(Side note: the same could probably be achieved in a less clean way with an interesting tool which my colleague Harri Savolainen pointed out to me the other day: rpmrebuild)
(Another aside: previous versions like 4.0.0.7 seemed to require a symlink from libtiff.so.3 to libtiff.so.4, but at least so far Skype 4.0.0.8 is working for me without that symlink)