- Update to 2.23.0, rework the -gstreamer/-xine backend split to switch
libraries instead of having replacements for all the binaries
This commit is contained in:
parent
e29b76639a
commit
5ff48a8230
@ -1,51 +1,67 @@
|
||||
#!/bin/sh
|
||||
|
||||
# setup some variables
|
||||
BIN=totem
|
||||
ARCH="$(uname -m)"
|
||||
|
||||
if [ "$ARCH" == "x86_64" ];then
|
||||
_LIBDIR="/usr/lib64"
|
||||
elif [ "$ARCH" == "ppc64" ];then
|
||||
_LIBDIR="/usr/lib64"
|
||||
else
|
||||
_LIBDIR="/usr/lib"
|
||||
fi
|
||||
|
||||
# start functions
|
||||
setBackend() {
|
||||
TOTEM_BACKEND=$1
|
||||
# Default to GStreamer if there's no config
|
||||
if [ -z $TOTEM_BACKEND ] ; then
|
||||
TOTEM_BACKEND=gstreamer
|
||||
fi
|
||||
# Default to GStreamer if the backend is invalid
|
||||
if [ $TOTEM_BACKEND != "xine" -a $TOTEM_BACKEND != "gstreamer" ] ; then
|
||||
TOTEM_BACKEND=gstreamer
|
||||
fi
|
||||
usage() {
|
||||
echo "Usage:"
|
||||
echo "- As root, to set the default backend, system-wide:"
|
||||
echo " $0 -b <backend name>"
|
||||
echo
|
||||
echo "- As a normal user, to run a program with a specific backend:"
|
||||
echo " $0 -b <backend name> <program name> [program options...]"
|
||||
echo
|
||||
echo "- \"backend name\" is one of gstreamer or xine"
|
||||
echo "- \"program name\" is one of totem, totem-audio-preview,"
|
||||
echo " totem-video-indexer or totem-video-thumbnailer"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
if [ "$UID" -eq "0" ];then
|
||||
ln -sf totem-plugin-viewer-$TOTEM_BACKEND /usr/libexec/totem-plugin-viewer
|
||||
ln -sf ../../libtotem-properties-page-$TOTEM_BACKEND.so ${_LIBDIR}/nautilus/extensions-2.0/libtotem-properties-page.so
|
||||
fi
|
||||
gconftool-2 -s /apps/totem/backend $TOTEM_BACKEND --type string
|
||||
exit 0
|
||||
set_backend() {
|
||||
TOTEM_BACKEND=$1
|
||||
# Default to GStreamer if there's no config
|
||||
if [ -z $TOTEM_BACKEND ] ; then
|
||||
echo "*** No backend name passed ***"
|
||||
usage
|
||||
fi
|
||||
# Default to GStreamer if the backend is invalid
|
||||
if [ $TOTEM_BACKEND != "xine" -a $TOTEM_BACKEND != "gstreamer" ] ; then
|
||||
echo "*** Invalid backend name ***"
|
||||
usage
|
||||
fi
|
||||
|
||||
# FIXME if someone can explain update-alternatives to me
|
||||
|
||||
exit 0
|
||||
}
|
||||
# end functions
|
||||
|
||||
# start execution
|
||||
if [ "$1" == "-b" ];then
|
||||
# if we are setting backend, do so and exit
|
||||
setBackend $2
|
||||
elif [ -z $TOTEM_BACKEND ] ; then
|
||||
# Default to GStreamer if there's no config
|
||||
TOTEM_BACKEND=gstreamer
|
||||
elif [ $TOTEM_BACKEND != "xine" -a $TOTEM_BACKEND != "gstreamer" ] ; then
|
||||
# Default to GStreamer if the backend is invalid
|
||||
TOTEM_BACKEND=gstreamer
|
||||
# If root, just try to set the default backend
|
||||
if [ "$UID" -eq "0" ] ; then
|
||||
if [ "$1" != "-b" -o -z "$2" ] ; then
|
||||
usage;
|
||||
fi
|
||||
set_backend $2
|
||||
else
|
||||
if [ "$1" != "-b" -o -z "$2" ] ; then
|
||||
usage;
|
||||
fi
|
||||
TOTEM_BACKEND=$2
|
||||
|
||||
if [ $TOTEM_BACKEND != "xine" -a $TOTEM_BACKEND != "gstreamer" ] ; then
|
||||
echo "*** Invalid backend name passed ***"
|
||||
usage
|
||||
fi
|
||||
|
||||
BIN=$3
|
||||
if [ -z "$BIN" ] ; then
|
||||
echo "*** No program name passed ***"
|
||||
usage
|
||||
fi
|
||||
if [ $BIN != "totem" -a $BIN != "totem-audio-preview" -a $BIN != "totem-video-indexer" -a $BIN != "totem-video-thumbnailer" ] ; then
|
||||
echo "*** Wrong program name ***"
|
||||
usage
|
||||
fi
|
||||
shift 3
|
||||
LD_PRELOAD=libgdk-x11-2.0.so.0:libbaconvideowidget-$TOTEM_BACKEND.so.0.0.0 exec $BIN "$@"
|
||||
fi
|
||||
|
||||
# if no opts are passed, do this
|
||||
TOTEM_BACKEND="$(gconftool-2 -g /apps/totem/backend)"
|
||||
exec $BIN-$TOTEM_BACKEND "$@"
|
||||
exit $?
|
||||
|
||||
129
totem.spec
129
totem.spec
@ -1,4 +1,3 @@
|
||||
%define with_gstreamer 1
|
||||
%define with_xine 1
|
||||
|
||||
%define gstreamer_version 0.10.1
|
||||
@ -10,7 +9,7 @@
|
||||
|
||||
Summary: Movie player for GNOME
|
||||
Name: totem
|
||||
Version: 2.21.96
|
||||
Version: 2.23.0
|
||||
Release: 1%{?dist}
|
||||
License: GPLv2 with exception
|
||||
Group: Applications/Multimedia
|
||||
@ -73,7 +72,6 @@ Totem is simple movie player for the Gnome desktop. It features a
|
||||
simple playlist, a full-screen mode, seek and volume controls, as well as
|
||||
a pretty complete keyboard navigation.
|
||||
|
||||
%if %{with_gstreamer}
|
||||
%package gstreamer
|
||||
Summary: Gstreamer backend for Totem
|
||||
Group: Applications/Multimedia
|
||||
@ -88,7 +86,6 @@ BuildRequires: gstreamer-plugins-good >= %gstreamer_plugins_good_version
|
||||
|
||||
%description gstreamer
|
||||
This package provides the gstreamer backend for the Totem media player.
|
||||
%endif
|
||||
|
||||
%if %{with_xine}
|
||||
%package xine
|
||||
@ -98,7 +95,6 @@ Provides: %{name}-backend
|
||||
Requires: %{name} = %{version}
|
||||
Requires: xine-lib >= %{xine_version}
|
||||
BuildRequires: xine-lib-devel >= %{xine_version}
|
||||
Obsoletes: totem-xine-plparser <= %{version}-%{release}
|
||||
|
||||
%description xine
|
||||
This package provides the xine backend for the Totem media player.
|
||||
@ -171,29 +167,14 @@ Requires: %{name} = %{version}-%{release}
|
||||
A plugin to allow you to share your current playlist (and the files included
|
||||
in that playlist) with other Totems on the same local network.
|
||||
|
||||
%if %{with_gstreamer}
|
||||
%package nautilus-gstreamer
|
||||
%package nautilus
|
||||
Summary: Video and Audio Properties tab for Nautilus
|
||||
Group: Applications/Multimedia
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description nautilus-gstreamer
|
||||
A Nautilus extension that shows the properties of audio and video files in
|
||||
the properties dialogue. This package provides the plugin linked against the
|
||||
gstreamer backend.
|
||||
%endif
|
||||
|
||||
%if %{with_xine}
|
||||
%package nautilus-xine
|
||||
Summary: Video and Audio Properties tab for Nautilus
|
||||
Group: Applications/Multimedia
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
|
||||
%description nautilus-xine
|
||||
A Nautilus extension that shows the properties of audio and video files in
|
||||
the properties dialogue. This package provides the plugin linked against the
|
||||
xine backend.
|
||||
%endif
|
||||
%description nautilus
|
||||
A Nautilus extension that shows the properties of audio and video files in•
|
||||
the properties dialogue.
|
||||
|
||||
%prep
|
||||
%setup -q -c
|
||||
@ -217,7 +198,6 @@ mv totem-%{version} gstreamer
|
||||
|
||||
%build
|
||||
|
||||
%if %{with_gstreamer}
|
||||
pushd gstreamer
|
||||
# try to work around a problem where gst-inspect does
|
||||
# not find playbin the first time around
|
||||
@ -228,28 +208,24 @@ export MOZILLA_PLUGINDIR=%{_libdir}/mozilla/plugins
|
||||
--enable-mozilla \
|
||||
--enable-nautilus \
|
||||
--disable-scrollkeeper \
|
||||
--disable-nvtv \
|
||||
--program-suffix '-gstreamer'
|
||||
--disable-nvtv
|
||||
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with_xine}
|
||||
# Build the xine-lib backend with minimum dependencies
|
||||
pushd xine
|
||||
# works around a bug where xine compilation fails due to gnome-keyring.h not
|
||||
# being found ** this seems to be fixed now **
|
||||
#export CFLAGS="-I/usr/include/gnome-keyring-1/"
|
||||
export MOZILLA_PLUGINDIR=%{_libdir}/mozilla/plugins
|
||||
%configure \
|
||||
--enable-xine \
|
||||
--disable-gstreamer \
|
||||
--enable-mozilla \
|
||||
--enable-nautilus \
|
||||
--disable-mozilla \
|
||||
--disable-nautilus \
|
||||
--disable-scrollkeeper \
|
||||
--disable-nvtv \
|
||||
--program-suffix '-xine'
|
||||
--disable-nvtv
|
||||
|
||||
cd src/backend/
|
||||
make %{?_smp_mflags}
|
||||
popd
|
||||
%endif
|
||||
@ -258,53 +234,35 @@ popd
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
export GCONF_DISABLE_MAKEFILE_SCHEMA_INSTALL=1
|
||||
|
||||
%if %{with_gstreamer}
|
||||
# GSTREAMER INSTALL
|
||||
pushd gstreamer/
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
# move the backend library away
|
||||
mv $RPM_BUILD_ROOT/%{_libdir}/libbaconvideowidget.so.0.0.0 $RPM_BUILD_ROOT/%{_libdir}/libbaconvideowidget-gstreamer.so.0.0.0
|
||||
# language hack
|
||||
%find_lang %{name} --with-gnome
|
||||
mv %{name}.lang ../
|
||||
# nautilus plugin doesn't use --program-suffix: copy manually
|
||||
install -m755 ./src/.libs/libtotem-properties-page.so $RPM_BUILD_ROOT%{_libdir}/libtotem-properties-page-gstreamer.so
|
||||
popd
|
||||
%endif
|
||||
|
||||
%if %{with_xine}
|
||||
# XINE INSTALL
|
||||
pushd xine
|
||||
pushd xine/src/backend
|
||||
make install DESTDIR=$RPM_BUILD_ROOT
|
||||
# nautilus plugin doesn't use --program-suffix :/
|
||||
# copy manually
|
||||
install -m755 ./src/.libs/libtotem-properties-page.so $RPM_BUILD_ROOT%{_libdir}/libtotem-properties-page-xine.so
|
||||
mv $RPM_BUILD_ROOT/%{_libdir}/libbaconvideowidget.so.0.0.0 $RPM_BUILD_ROOT/%{_libdir}/libbaconvideowidget-xine.so.0.0.0
|
||||
popd
|
||||
%endif
|
||||
|
||||
# Restore the default backend
|
||||
ln -sf %{_libdir}/libbaconvideowidget-gstreamer.so.0.0.0 $RPM_BUILD_ROOT/%{_libdir}/libbaconvideowidget.so.0.0.0
|
||||
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/totem/plugins/*/*.{a,la} \
|
||||
$RPM_BUILD_ROOT%{_libdir}/mozilla/plugins/*.{a,la} \
|
||||
$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/*.{a,la}
|
||||
|
||||
# nautilus plugin doesn't use --program-suffix :/
|
||||
# remove binary file so we can symlink it
|
||||
rm -f $RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/libtotem-properties-page.so
|
||||
mkdir -p $RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/
|
||||
ln -sf ../../libtotem-properties-page-gstreamer.so $RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/libtotem-properties-page.so
|
||||
$RPM_BUILD_ROOT%{_libdir}/nautilus/extensions-2.0/*.{a,la} \
|
||||
$RPM_BUILD_ROOT%{_libdir}/libbaconvideowidget*.{a,la}
|
||||
|
||||
%find_lang %{name} --with-gnome
|
||||
|
||||
# these man pages are one and the same... so make one copy
|
||||
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/%{name}*xine*
|
||||
mv $RPM_BUILD_ROOT%{_mandir}/man1/%{name}-gstreamer.1 \
|
||||
$RPM_BUILD_ROOT%{_mandir}/man1/%{name}.1
|
||||
mv $RPM_BUILD_ROOT%{_mandir}/man1/totem-video-thumbnailer-gstreamer.1 \
|
||||
$RPM_BUILD_ROOT%{_mandir}/man1/totem-video-thumbnailer.1
|
||||
|
||||
install -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}
|
||||
# link other binaries
|
||||
ln -sf %{name} $RPM_BUILD_ROOT%{_bindir}/%{name}-video-thumbnailer
|
||||
ln -sf %{name} $RPM_BUILD_ROOT%{_bindir}/%{name}-video-indexer
|
||||
ln -sf %{name} $RPM_BUILD_ROOT%{_bindir}/%{name}-audio-preview
|
||||
ln -sf %{name}-plugin-viewer-gstreamer $RPM_BUILD_ROOT%{_libexecdir}/%{name}-plugin-viewer
|
||||
install -m755 %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}/%{name}-backend
|
||||
|
||||
%clean
|
||||
rm -rf $RPM_BUILD_ROOT
|
||||
@ -323,6 +281,10 @@ if [ -x /usr/bin/gtk-update-icon-cache ]; then
|
||||
/usr/bin/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor
|
||||
fi
|
||||
|
||||
%post gstreamer -p /sbin/ldconfig
|
||||
|
||||
%post xine -p /sbin/ldconfig
|
||||
|
||||
%pre
|
||||
if [ "$1" -gt 1 ]; then
|
||||
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
|
||||
@ -332,7 +294,7 @@ if [ "$1" -gt 1 ]; then
|
||||
%{_sysconfdir}/gconf/schemas/totem-video-thumbnail.schemas \
|
||||
>& /dev/null || :
|
||||
fi
|
||||
|
||||
|
||||
%preun
|
||||
if [ "$1" -eq 0 ]; then
|
||||
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
|
||||
@ -352,6 +314,10 @@ if [ -x /usr/bin/gtk-update-icon-cache ]; then
|
||||
/usr/bin/gtk-update-icon-cache --quiet %{_datadir}/icons/hicolor
|
||||
fi
|
||||
|
||||
%postun gstreamer -p /sbin/ldconfig
|
||||
|
||||
%postun xine -p /sbin/ldconfig
|
||||
|
||||
%post mythtv
|
||||
export GCONF_CONFIG_SOURCE=`gconftool-2 --get-default-source`
|
||||
gconftool-2 --makefile-install-rule \
|
||||
@ -385,6 +351,7 @@ fi
|
||||
%config %{_sysconfdir}/gconf/schemas/totem-handlers.schemas
|
||||
%config %{_sysconfdir}/gconf/schemas/totem-video-thumbnail.schemas
|
||||
%{_bindir}/%{name}
|
||||
%{_bindir}/%{name}-backend
|
||||
%{_bindir}/%{name}-video-thumbnailer
|
||||
%{_bindir}/%{name}-video-indexer
|
||||
%{_bindir}/%{name}-audio-preview
|
||||
@ -392,6 +359,8 @@ fi
|
||||
%{_datadir}/%{name}/
|
||||
%{_libdir}/nautilus/extensions-2.0/*.so*
|
||||
%dir %{_libexecdir}/totem
|
||||
%{_libexecdir}/totem/totem-bugreport.py*
|
||||
%{_libdir}/libbaconvideowidget.so*
|
||||
%dir %{_libdir}/totem/plugins
|
||||
%{_libdir}/totem/plugins/gromit
|
||||
%{_libdir}/totem/plugins/ontop
|
||||
@ -437,37 +406,21 @@ fi
|
||||
%defattr(-, root, root)
|
||||
%{_libdir}/totem/plugins/publish
|
||||
|
||||
%if %{with_gstreamer}
|
||||
%files gstreamer
|
||||
%{_bindir}/%{name}-gstreamer
|
||||
%{_bindir}/%{name}-video-thumbnailer-gstreamer
|
||||
%{_bindir}/%{name}-video-indexer-gstreamer
|
||||
%{_bindir}/%{name}-audio-preview-gstreamer
|
||||
%{_libexecdir}/totem-plugin-viewer-gstreamer
|
||||
%{_libexecdir}/totem/*gstreamer*
|
||||
|
||||
%files nautilus-gstreamer
|
||||
%defattr(-, root, root)
|
||||
# installed to libdir so we can symlink the real spot
|
||||
%{_libdir}/libtotem*gstreamer*.so*
|
||||
%endif
|
||||
%{_libdir}/libbaconvideowidget.so.0.0.0
|
||||
%{_libdir}/libbaconvideowidget-gstreamer.so.0.0.0
|
||||
|
||||
%if %{with_xine}
|
||||
%files xine
|
||||
%{_bindir}/%{name}-xine
|
||||
%{_bindir}/%{name}-video-thumbnailer-xine
|
||||
%{_bindir}/%{name}-video-indexer-xine
|
||||
%{_bindir}/%{name}-audio-preview-xine
|
||||
%{_libexecdir}/totem-plugin-viewer-xine
|
||||
%{_libexecdir}/totem/*xine*
|
||||
|
||||
%files nautilus-xine
|
||||
%defattr(-, root, root)
|
||||
# installed to libdir so we can symlink the real spot
|
||||
%{_libdir}/libtotem*xine*.so*
|
||||
%{_libdir}/libbaconvideowidget-xine.so.0.0.0
|
||||
%endif
|
||||
|
||||
%changelog
|
||||
* Tue Mar 04 2008 - Bastien Nocera <bnocera@redhat.com> - 2.23.0-1
|
||||
- Update to 2.23.0, rework the -gstreamer/-xine backend split to
|
||||
switch libraries instead of having replacements for all the
|
||||
binaries
|
||||
|
||||
* Mon Mar 03 2008 - Bastien Nocera <bnocera@redhat.com> - 2.21.96-1
|
||||
- Update to 2.21.96
|
||||
- Add ppc and ppc64 to ExcludeArch as liboil is crashing on us (#435771)
|
||||
|
||||
Loading…
Reference in New Issue
Block a user