diff options
author | Nirbheek Chauhan <nirbheek@gentoo.org> | 2009-12-30 01:25:30 +0000 |
---|---|---|
committer | Nirbheek Chauhan <nirbheek@gentoo.org> | 2009-12-30 01:25:30 +0000 |
commit | 1ba755ef745357b9c38597c0fb99055bf111929a (patch) | |
tree | 230bfdc46add907e1628bb22c570d145bfe3826d /media-video | |
parent | Support for Python 3.0 apparently has been removed. (diff) | |
download | gentoo-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/ChangeLog | 9 | ||||
-rw-r--r-- | media-video/totem/files/totem-2.26.5-firefox-plugin-apple-trailers.patch | 86 | ||||
-rw-r--r-- | media-video/totem/totem-2.26.5-r1.ebuild | 169 |
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 +} |