rpms/totem/devel totem-bin-backend-ondemand.sh, 1.1, 1.2 totem.spec, 1.167, 1.168

Bastien Nocera (hadess) fedora-extras-commits at redhat.com
Wed Mar 5 00:00:39 UTC 2008


Author: hadess

Update of /cvs/pkgs/rpms/totem/devel
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv3342

Modified Files:
	totem-bin-backend-ondemand.sh totem.spec 
Log Message:
* Tue Mar 04 2008 - Bastien Nocera <bnocera at 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



Index: totem-bin-backend-ondemand.sh
===================================================================
RCS file: /cvs/pkgs/rpms/totem/devel/totem-bin-backend-ondemand.sh,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- totem-bin-backend-ondemand.sh	3 Mar 2008 19:38:44 -0000	1.1
+++ totem-bin-backend-ondemand.sh	5 Mar 2008 00:00:03 -0000	1.2
@@ -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 $?


Index: totem.spec
===================================================================
RCS file: /cvs/pkgs/rpms/totem/devel/totem.spec,v
retrieving revision 1.167
retrieving revision 1.168
diff -u -r1.167 -r1.168
--- totem.spec	3 Mar 2008 20:12:56 -0000	1.167
+++ totem.spec	5 Mar 2008 00:00:03 -0000	1.168
@@ -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 @@
 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 @@
 
 %description gstreamer
 This package provides the gstreamer backend for the Totem media player.
-%endif
 
 %if %{with_xine}
 %package xine
@@ -98,7 +95,6 @@
 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 @@
 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 @@
 
 %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 @@
   --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 @@
 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 @@
   /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 @@
         %{_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 @@
   /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 @@
 %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 @@
 %{_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 @@
 %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 at 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 at redhat.com> - 2.21.96-1
 - Update to 2.21.96
 - Add ppc and ppc64 to ExcludeArch as liboil is crashing on us (#435771)




More information about the fedora-extras-commits mailing list