summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@gentoo.org>2009-12-30 01:25:30 +0000
committerNirbheek Chauhan <nirbheek@gentoo.org>2009-12-30 01:25:30 +0000
commit1ba755ef745357b9c38597c0fb99055bf111929a (patch)
tree230bfdc46add907e1628bb22c570d145bfe3826d /media-video
parentSupport for Python 3.0 apparently has been removed. (diff)
downloadgentoo-2-1ba755ef745357b9c38597c0fb99055bf111929a.tar.gz
gentoo-2-1ba755ef745357b9c38597c0fb99055bf111929a.tar.bz2
gentoo-2-1ba755ef745357b9c38597c0fb99055bf111929a.zip
Fix playing of apple trailers using the firefox plugin, bug 292852
(Portage version: 2.1.7.16/cvs/Linux i686)
Diffstat (limited to 'media-video')
-rw-r--r--media-video/totem/ChangeLog9
-rw-r--r--media-video/totem/files/totem-2.26.5-firefox-plugin-apple-trailers.patch86
-rw-r--r--media-video/totem/totem-2.26.5-r1.ebuild169
3 files changed, 263 insertions, 1 deletions
diff --git a/media-video/totem/ChangeLog b/media-video/totem/ChangeLog
index 5d85dff90d80..a3fe2822acd8 100644
--- a/media-video/totem/ChangeLog
+++ b/media-video/totem/ChangeLog
@@ -1,6 +1,13 @@
# ChangeLog for media-video/totem
# Copyright 1999-2009 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-video/totem/ChangeLog,v 1.268 2009/12/23 10:21:59 mrpouet Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-video/totem/ChangeLog,v 1.269 2009/12/30 01:25:30 nirbheek Exp $
+
+*totem-2.26.5-r1 (30 Dec 2009)
+
+ 30 Dec 2009; Nirbheek Chauhan <nirbheek@gentoo.org>
+ +totem-2.26.5-r1.ebuild,
+ +files/totem-2.26.5-firefox-plugin-apple-trailers.patch:
+ Fix playing of apple trailers using the firefox plugin, bug 292852
*totem-2.28.5 (23 Dec 2009)
diff --git a/media-video/totem/files/totem-2.26.5-firefox-plugin-apple-trailers.patch b/media-video/totem/files/totem-2.26.5-firefox-plugin-apple-trailers.patch
new file mode 100644
index 000000000000..b9d129c02a46
--- /dev/null
+++ b/media-video/totem/files/totem-2.26.5-firefox-plugin-apple-trailers.patch
@@ -0,0 +1,86 @@
+Fixes playing of apple trailers using the firefox plugin by changing the UA
+
+Patch backported by Ryan May
+
+http://bugs.gentoo.org/show_bug.cgi?id=292852
+
+---
+--- browser-plugin/totemPlugin.cpp
++++ browser-plugin/totemPlugin.cpp
+@@ -156,6 +156,15 @@
+ "The <a href=\"http://www.gnome.org/projects/totem/\">Totem</a> " PACKAGE_VERSION " plugin handles video and audio streams.";
+ #endif
+
++static const char kPluginUserAgent[] =
++#if defined(TOTEM_NARROWSPACE_PLUGIN)
++ "Quicktime/"TOTEM_NARROWSPACE_VERSION;
++#elif defined(TOTEM_GMP_PLUGIN)
++ "Windows-Media-Player/10.00.00.4019";
++#else
++ "";
++#endif
++
+ #if defined(TOTEM_COMPLEX_PLUGIN) && defined(HAVE_NSTARRAY_H)
+ nsTArray<totemPlugin*> *totemPlugin::sPlugins;
+
+@@ -463,10 +472,13 @@
+ return NPERR_NO_ERROR;
+ #endif /* TOTEM_COMPLEX_PLUGIN */
+
+- const char *userAgent = NPN_UserAgent (mNPP);
+- if (!userAgent) {
+- /* See https://bugzilla.mozilla.org/show_bug.cgi?id=328778 */
+- D ("User agent has more than 127 characters; fix your browser!");
++ const char *userAgent = kPluginUserAgent;
++ if (*kPluginUserAgent == '\0') {
++ userAgent = NPN_UserAgent (mNPP);
++ if (!userAgent) {
++ /* See https://bugzilla.mozilla.org/show_bug.cgi?id=328778 */
++ D ("User agent has more than 127 characters; fix your browser!");
++ }
+ }
+
+ GPtrArray *arr = g_ptr_array_new ();
+--- browser-plugin/totem-plugin-viewer.c
++++ browser-plugin/totem-plugin-viewer.c
+@@ -2336,7 +2336,7 @@
+ /* FIXME: this won't work with gvfs:
+ * http://bugzilla.gnome.org/show_bug.cgi?id=534482 */
+ if (arg_user_agent != NULL) {
+- g_setenv ("GNOME_VFS_HTTP_USER_AGENT", arg_user_agent, TRUE);
++ g_setenv ("BACON_VIDEO_WIDGET_HTTP_USER_AGENT", arg_user_agent, TRUE);
+ g_free (arg_user_agent);
+ arg_user_agent = NULL;
+ }
+--- src/backend/bacon-video-widget-gst-0.10.c
++++ src/backend/bacon-video-widget-gst-0.10.c
+@@ -1686,6 +1686,21 @@
+ }
+
+ static void
++bvw_set_user_agent_on_element (BaconVideoWidget * bvw, GstElement * element)
++{
++ const char *ua;
++
++ ua = g_getenv ("BACON_VIDEO_WIDGET_HTTP_USER_AGENT");
++ if (ua == NULL)
++ return;
++
++ if (g_object_class_find_property (G_OBJECT_GET_CLASS (element), "user-agent")) {
++ GST_DEBUG ("Setting HTTP user-agent to '%s'", ua);
++ g_object_set (element, "user-agent", ua, NULL);
++ }
++}
++
++static void
+ playbin_source_notify_cb (GObject *play, GParamSpec *p, BaconVideoWidget *bvw)
+ {
+ GObject *source = NULL;
+@@ -1709,6 +1724,7 @@
+ if (source) {
+ GST_DEBUG ("Got source of type %s", G_OBJECT_TYPE_NAME (source));
+ bvw_set_device_on_element (bvw, GST_ELEMENT (source));
++ bvw_set_user_agent_on_element (bvw, GST_ELEMENT (source));
+ g_object_unref (source);
+ }
+ }
diff --git a/media-video/totem/totem-2.26.5-r1.ebuild b/media-video/totem/totem-2.26.5-r1.ebuild
new file mode 100644
index 000000000000..c9abcc0dbb89
--- /dev/null
+++ b/media-video/totem/totem-2.26.5-r1.ebuild
@@ -0,0 +1,169 @@
+# Copyright 1999-2009 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/media-video/totem/totem-2.26.5-r1.ebuild,v 1.1 2009/12/30 01:25:30 nirbheek Exp $
+
+EAPI="2"
+
+inherit autotools eutils gnome2 multilib python
+
+DESCRIPTION="Media player for GNOME"
+HOMEPAGE="http://gnome.org/projects/totem/"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd"
+
+IUSE="bluetooth debug doc galago lirc nautilus nsplugin python tracker"
+
+# TODO:
+# easy-publish-and-consume is not in tree (epc)
+# Cone (VLC) plugin needs someone with the right setup (remi ?)
+# check gmyth requirement ? -> waiting for updates in tree
+# coherence plugin not enabled until we have deps in tree
+
+# youtube plugin depends on gst-plugins-soup
+RDEPEND=">=dev-libs/glib-2.15
+ >=x11-libs/gtk+-2.13.0
+ >=gnome-base/gconf-2.0
+ >=dev-libs/totem-pl-parser-2.23.91
+ >=x11-themes/gnome-icon-theme-2.16
+ x11-libs/cairo
+ app-text/iso-codes
+ >=dev-libs/libxml2-2.6
+ >=dev-libs/dbus-glib-0.71
+ >=media-libs/gstreamer-0.10.16
+ >=media-libs/gst-plugins-good-0.10
+ >=media-libs/gst-plugins-base-0.10.12
+ >=media-plugins/gst-plugins-gconf-0.10
+
+ >=media-plugins/gst-plugins-gio-0.10
+ >=media-plugins/gst-plugins-pango-0.10
+ >=media-plugins/gst-plugins-x-0.10
+ >=media-plugins/gst-plugins-meta-0.10-r2
+
+ x11-libs/libSM
+ x11-libs/libX11
+ x11-libs/libXtst
+ >=x11-libs/libXrandr-1.1.1
+ >=x11-libs/libXxf86vm-1.0.1
+
+ bluetooth? ( || (
+ net-wireless/bluez
+ net-wireless/bluez-libs ) )
+ galago? ( >=dev-libs/libgalago-0.5.2 )
+ lirc? ( app-misc/lirc )
+ nautilus? ( >=gnome-base/nautilus-2.10 )
+ python? (
+ dev-lang/python[threads]
+ >=dev-python/pygtk-2.12
+ dev-python/pyxdg
+ dev-python/gdata
+ dev-python/gst-python
+ dev-python/gconf-python
+ media-plugins/gst-plugins-soup )
+ tracker? ( >=app-misc/tracker-0.5.3 )"
+DEPEND="${RDEPEND}
+ x11-proto/xproto
+ x11-proto/xextproto
+ x11-proto/xf86vidmodeproto
+ app-text/scrollkeeper
+ gnome-base/gnome-common
+ app-text/gnome-doc-utils
+ >=dev-util/intltool-0.40
+ >=dev-util/pkgconfig-0.20
+ dev-util/gtk-doc-am
+ doc? ( >=dev-util/gtk-doc-1.11 )"
+
+DOCS="AUTHORS ChangeLog NEWS README TODO"
+
+# FIXME: tests broken with USE="-doc" upstream bug #577774
+RESTRICT="test"
+
+pkg_setup() {
+ G2CONF="${G2CONF}
+ --disable-scrollkeeper
+ --disable-schemas-install
+ --disable-static
+ --disable-vala
+ --with-dbus
+ --with-smclient
+ --enable-easy-codec-installation
+ $(use_enable nsplugin browser-plugins)"
+
+ # Plugin configuration
+ G2CONF="${G2CONF}
+ BROWSER_PLUGIN_DIR=/usr/$(get_libdir)/nsbrowser/plugins
+ PLUGINDIR=/usr/$(get_libdir)/totem/plugins"
+
+ local plugins="properties,thumbnail,screensaver,ontop,gromit,media-player-keys,skipto,brasero-disc-recorder,screenshot"
+ use bluetooth && plugins="${plugins},bemused"
+ use galago && plugins="${plugins},galago"
+ use lirc && plugins="${plugins},lirc"
+ use python && plugins="${plugins},youtube,opensubtitles,jamendo,pythonconsole"
+ use tracker && plugins="${plugins},tracker"
+
+ G2CONF="${G2CONF} --with-plugins=${plugins}"
+
+ G2CONF="${G2CONF}
+ $(use_enable debug)
+ $(use_enable nautilus)
+ $(use_enable python)"
+}
+
+src_prepare() {
+ gnome2_src_prepare
+
+ # Fix broken smclient option passing
+ epatch "${FILESDIR}/${PN}-2.26.1-smclient-target-detection.patch"
+
+ # YouTube plugin broken, when we try to load some videos, bug #292839
+ epatch "${FILESDIR}/${PN}-2.26.4-youtube-plug-play-vids.patch"
+
+ # Fix playing of Apple trailers using firefox plugin, bug 292852
+ epatch "${FILESDIR}/${P}-firefox-plugin-apple-trailers.patch"
+
+ # FIXME: tarball generated with broken gtk-doc, revisit me.
+ if use doc; then
+ sed "/^TARGET_DIR/i \GTKDOC_REBASE=/usr/bin/gtkdoc-rebase" \
+ -i gtk-doc.make || die "sed 1 failed"
+ else
+ sed "/^TARGET_DIR/i \GTKDOC_REBASE=$(type -P true)" \
+ -i gtk-doc.make || die "sed 2 failed"
+ fi
+
+ intltoolize --force --copy --automake || die "intltoolize failed"
+ eautoreconf
+
+ # disable pyc compiling
+ mv py-compile py-compile.orig
+ ln -s $(type -P true) py-compile
+}
+
+src_configure() {
+ # FIXME: why does it need write access here, probably need to set up a fake
+ # home in /var/tmp like other pkgs do
+
+ addpredict "$(unset HOME; echo ~)/.gconf"
+ addpredict "$(unset HOME; echo ~)/.gconfd"
+ addpredict "$(unset HOME; echo ~)/.gnome2"
+
+ gnome2_src_configure
+}
+
+pkg_postinst() {
+ gnome2_pkg_postinst
+ if use python; then
+ python_need_rebuild
+ python_mod_optimize /usr/$(get_libdir)/totem/plugins
+ fi
+
+ ewarn
+ ewarn "If totem doesn't play some video format, please check your"
+ ewarn "USE flags on media-plugins/gst-plugins-meta"
+ ewarn
+}
+
+pkg_postrm() {
+ gnome2_pkg_postrm
+ python_mod_cleanup /usr/$(get_libdir)/totem/plugins
+}