Use bundled libs, only one process allowed

This commit is contained in:
Andrew Lukoshko 2012-05-03 12:21:59 +03:00
parent 082725322a
commit 10e8d195c6
2 changed files with 39 additions and 7 deletions

View file

@ -1,6 +1,6 @@
%define name get-skype
%define version 2.2.0.35
%define release %mkrel 3
%define release %mkrel 4
%define instdir %{_datadir}/skype
%define langdir %{instdir}/lang
%define avatardir %{instdir}/avatars
@ -12,6 +12,9 @@
%define md5 b60a19345ee7b3522b5fe4047150aaf8
%define tmp_download_dir %{_localstatedir}/lib/%{name}
# Don't generate dependencies for bundled libs
AutoReqProv: no
Summary: Download and Install Skype
Name: %{name}
Version: %{version}
@ -21,6 +24,8 @@ Group: Networking/Instant messaging
URL: http://www.skype.com
Requires: wget
%ifarch %{ix86}
Requires: liblcms1
Requires: libmng1
Requires: libqtcore4
@ -34,6 +39,7 @@ Requires: libxv1
Requires: libv4l-wrappers
Requires: libalsa2
Requires: libpulseaudio0
%endif
Obsoletes: skype < 2.2.0.35
Provides: skype = %{version}-%{release}
@ -49,8 +55,8 @@ Source2: lang-%{version}.txt
Source3: skype-txt-gen
# Manually created skype.desktop to replace invalid original in tar.bz2
Source4: skype.desktop
#Skype now only i586. Drop it for x86_64
ExclusiveArch: %{ix86}
# Dependencies for x86_64 package
Source5: skypelibs.tar.xz
%description
This is an installer for Skype-%{version}.
@ -108,9 +114,28 @@ while read line; do
touch %{buildroot}%{langdir}/skype_"$line"
done < %{SOURCE2}
echo "#!/bin/bash
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so %{instdir}/skype"\
%ifarch x86_64
install -d -m 0755 %{buildroot}/opt
tar Jxf %{SOURCE5} -C %{buildroot}/opt
echo '#!/bin/bash
if [ "`pidof skype`" != "" ]; then
echo "Skype is already running!"
else
LD_LIBRARY_PATH=/opt/skypelibs LD_PRELOAD=/opt/skypelibs/v4l2convert.so exec %{instdir}/skype "$@"
fi' \
> %{buildroot}%{_bindir}/skype && chmod +x %{buildroot}%{_bindir}/skype
%endif
%ifarch %{ix86}
echo '#!/bin/bash
if [ "`pidof skype`" != "" ]; then
echo "Skype is already running!"
else
LD_PRELOAD=/usr/lib/libv4l/v4l2convert.so exec %{instdir}/skype "$@"
fi' \
> %{buildroot}%{_bindir}/skype && chmod +x %{buildroot}%{_bindir}/skype
%endif
%post
@ -155,15 +180,21 @@ rm -r ${tmp_extract_dir} %{tmp_download_dir}
%files
%ghost %doc %{docdir}
%{_bindir}/skype
%ifarch x86_64
/opt/skypelibs
%endif
%attr(0644, root, root) %{_datadir}/applications/skype.desktop
%ghost %{_iconsdir}/skype.png
%ghost %{_iconsdir}/SkypeBlue_*.png
%ghost %{instdir}
%ghost %{dbusdir}/skype.conf
%changelog
* Thu Oct 06 2011 Andrey Bondrov <abondrov@mandriva.org> 2.2.0.35-3mdv2011.0
- Add ExclusiveArch to make it 32 bit package only
* Wed May 02 2012 Andrew Lukoshko <andrew.lukoshko@rosalab.ru> 2.2.0.35-4
- use bundled libs in x86_64 package
- allow to run only one skype process
* Thu Oct 06 2011 Andrey Bondrov <abondrov@mandriva.org> 2.2.0.35-2mdv2011.0
+ Revision: 703282

View file

@ -5,4 +5,5 @@ Exec=skype
Icon=skype
Terminal=false
Type=Application
StartupNotify=false
Categories=Network;