summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--media-video/totem/Manifest1
-rw-r--r--media-video/totem/files/3.26-gst-inspect-sandbox.patch42
-rw-r--r--media-video/totem/files/3.30.0-control-plugins.patch199
-rw-r--r--media-video/totem/files/3.30.0-vala-errormsg.patch31
-rw-r--r--media-video/totem/metadata.xml3
-rw-r--r--media-video/totem/totem-3.30.0.ebuild135
6 files changed, 410 insertions, 1 deletions
diff --git a/media-video/totem/Manifest b/media-video/totem/Manifest
index 92de57ea8c0e..ada4f1ff341b 100644
--- a/media-video/totem/Manifest
+++ b/media-video/totem/Manifest
@@ -1 +1,2 @@
DIST totem-3.24.0.tar.xz 1987260 BLAKE2B 81cb8c359b2225148a18f7a5c6ae9990cbe2e2f3b9a6a31012c9c8c0920c0cea6bad0a5d9407a79530fadf00fb845fe9e6aa8dbc84d0f8d6e84fbc144d86bc9e SHA512 488db91e09b7f5947e81cb5474444c753367542820777faab561582707b012e664f232d3810d543dfbe0823adf3d8302c2fe6cc387f4225a362d15a6df8b4342
+DIST totem-3.30.0.tar.xz 3275852 BLAKE2B 9a5f97229a8aa6f7665c6d3e79dff48cfcce3caeab69510361ef3e9e1a107f7a56c66a5ae89ba3ae0a77d4b0ae8a16ac1f61e77278c82bf768e50009420110d0 SHA512 9d2e0a9e89358eea03404afd9353d18fa23afee7a34612912411ef10d4fb0b26ee02db002e6f8e05f68a333202d419f1e1a35188da23f87189e3093dac655742
diff --git a/media-video/totem/files/3.26-gst-inspect-sandbox.patch b/media-video/totem/files/3.26-gst-inspect-sandbox.patch
new file mode 100644
index 000000000000..016368a69b97
--- /dev/null
+++ b/media-video/totem/files/3.26-gst-inspect-sandbox.patch
@@ -0,0 +1,42 @@
+From 742b64b7a74eabd67344ef1cc260427dc402588f Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <eva@gentoo.org>
+Date: Thu, 7 Jun 2018 23:47:48 +0200
+Subject: [PATCH 5/5] Make gst-inspect calls optional at build-time
+
+Crashes on Gentoo due to plugins trying to access dri nodes which are sandboxed
+---
+ meson_options.txt | 1 +
+ src/backend/meson.build | 2 ++
+ 2 files changed, 3 insertions(+)
+
+diff --git a/meson_options.txt b/meson_options.txt
+index 6e056952..631b8cca 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -32,3 +32,4 @@ option('enable-nautilus', type: 'combo', choices: ['yes', 'no', 'auto'], value:
+ option('with-nautilusdir', type: 'string', value: '', description: 'Installation path for Nautilus extension')
+ option('enable-gtk-doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
+ option('enable-introspection', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Enable GObject Introspection (depends on GObject)')
++option('gst-inspect', type: 'boolean', value: true, description: 'build-time test of available gstreamer plugins')
+diff --git a/src/backend/meson.build b/src/backend/meson.build
+index 28c8e123..55037a6a 100644
+--- a/src/backend/meson.build
++++ b/src/backend/meson.build
+@@ -1,5 +1,6 @@
+ backend_inc = include_directories('.')
+
++if get_option('gst-inspect')
+ gst_inspect = find_program(
+ 'gst-inspect-1.0',
+ join_paths(gst_dep.get_pkgconfig_variable('toolsdir'), 'gst-inspect-1.0'),
+@@ -31,6 +32,7 @@ foreach plugin: gst_good_plugins
+ assert(r.returncode() == 0,
+ 'Cannot find required GStreamer-1.0 plugin "' + plugin + '". It should be part of gst-plugins-good. Please install it.')
+ endforeach
++endif
+
+ sources = files(
+ 'bacon-time-label.c',
+--
+2.17.0
+
diff --git a/media-video/totem/files/3.30.0-control-plugins.patch b/media-video/totem/files/3.30.0-control-plugins.patch
new file mode 100644
index 000000000000..4d57ad0971c0
--- /dev/null
+++ b/media-video/totem/files/3.30.0-control-plugins.patch
@@ -0,0 +1,199 @@
+From 5bdfac8a4a34e3edec05439fa3cd5544e0515e24 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?R=C3=A9mi=20Cardona?= <remi@gentoo.org>
+Date: Sun, 10 Jun 2018 10:09:16 +0200
+Subject: [PATCH] Allow full control over which plugins are built
+
+---
+ meson.build | 2 +-
+ meson_options.txt | 28 ++++++++++++++++++++-
+ src/plugins/meson.build | 56 ++++++++++++++++++++++++++++++-----------
+ 3 files changed, 69 insertions(+), 17 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 9c4797dd..aa91ae10 100644
+--- a/meson.build
++++ b/meson.build
+@@ -3,7 +3,7 @@ project(
+ version: '3.30.0',
+ license: 'GPL2+ with exception',
+ default_options: 'buildtype=debugoptimized',
+- meson_version: '>= 0.43.0'
++ meson_version: '>= 0.44.0'
+ )
+
+ totem_version = meson.project_version()
+diff --git a/meson_options.txt b/meson_options.txt
+index 3b6ff67b..6e056952 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,7 +1,33 @@
+ option('enable-easy-codec-installation', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Whether to enable easy codec installation support for GStreamer')
+ option('enable-python', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Enable python support')
+ option('enable-vala', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'whether Vala plugin support is requested')
+-option('with-plugins', type: 'combo', choices: ['all', 'none', 'auto'], value: 'auto', description: 'Which Totem plugins to compile (default: auto; "all", "none" and "auto" are valid)')
++option('with-plugins', type: 'array', choices: [
++ 'all',
++ 'auto',
++ 'apple-trailers',
++ 'autoload-subtitles',
++ 'brasero-disc-recorder',
++ 'dbusservice',
++ 'gromit',
++ 'im-status',
++ 'lirc',
++ 'media-player-keys',
++ 'ontop',
++ 'opensubtitles',
++ 'properties',
++ 'pythonconsole',
++ 'recent',
++ 'rotation',
++ 'sample-vala',
++ 'samplepython',
++ 'save-file',
++ 'screensaver',
++ 'screenshot',
++ 'skipto',
++ 'variable-rate',
++ 'vimeo',
++ 'zeitgeist-dp'
++], value: ['auto'], description: 'Which Totem plugins to compile (default: auto; "all", "none" and "auto" are valid)')
+ option('enable-nautilus', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'compile the nautilus plugin')
+ option('with-nautilusdir', type: 'string', value: '', description: 'Installation path for Nautilus extension')
+ option('enable-gtk-doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
+diff --git a/src/plugins/meson.build b/src/plugins/meson.build
+index 95af6485..289ba811 100644
+--- a/src/plugins/meson.build
++++ b/src/plugins/meson.build
+@@ -41,8 +41,8 @@ allowed_plugins = [
+ plugins = []
+
+ plugins_option = get_option('with-plugins')
+-if plugins_option != 'none'
+- plugins += [
++if plugins_option.length() > 0
++ foreach plugin: [
+ 'apple-trailers',
+ 'autoload-subtitles',
+ 'im-status',
+@@ -56,26 +56,38 @@ if plugins_option != 'none'
+ 'variable-rate',
+ 'vimeo'
+ ]
++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
++ plugins += plugin
++ endif
++ endforeach
+
+- plugin_error = (plugins_option == 'all')
++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('gromit')
++ gdk_targets = gtk_dep.get_pkgconfig_variable('targets')
++ else
++ gdk_targets = []
++ endif
+
+- gdk_targets = gtk_dep.get_pkgconfig_variable('targets')
+ if gdk_targets.contains('x11')
+ plugins += 'gromit'
+ else
+ str = 'the gromit plugin is not supported on non-X11 targets'
+- if plugin_error
++ if plugins_option.contains('all') or plugins_option.contains('gromit')
+ error(str)
+ endif
+ message(str)
+ endif
+
+- lirc_dep = dependency('lirc', required: false)
++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('lirc')
++ lirc_dep = dependency('lirc', required: false)
++ else
++ lirc_dep = disabler()
++ endif
++
+ if lirc_dep.found() and cc.has_function('lirc_init', dependencies: lirc_dep) and cc.has_header('lirc/lirc_client.h')
+ plugins += 'lirc'
+ else
+ str = 'you need lirc_client installed for the lirc plugin'
+- if plugin_error
++ if plugins_option.contains('all') or plugins_option.contains('lirc')
+ error(str)
+ endif
+ message(str)
+@@ -84,33 +96,38 @@ if plugins_option != 'none'
+ libxml_req_version = '>= 2.6.0'
+ libxml_dep = dependency('libxml-2.0', version: libxml_req_version, required: false)
+ gtk_x11_dep = dependency('gtk+-x11-3.0', version: gtk_req_version, required: false)
+- if libxml_dep.found() and gtk_x11_dep.found()
++
++ if libxml_dep.found() and gtk_x11_dep.found() and (plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('brasero-disc-recorder'))
+ plugins += 'brasero-disc-recorder'
+ else
+ str = 'you need libxml-2.0 ' + libxml_req_version + ' and gtk+-x11-3.0 to use the brasero-disc-recorder plugin'
+- if plugin_error
++ if plugins_option.contains('all') or plugins_option.contains('brasero-disc-recorder')
+ error(str)
+ endif
+ message(str)
+ endif
+
+- if have_nautilus
++ if have_nautilus and (plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('save-file'))
+ plugins += 'save-file'
+ else
+ str = 'you need libnautilus-extension to use the save-file plugin'
+- if plugin_error
++ if plugins_option.contains('all') or plugins_option.contains('save-file')
+ error(str)
+ endif
+ message(str)
+ endif
+
+ if have_python
+- plugins += [
++ foreach plugin: [
+ 'dbusservice',
+ 'opensubtitles',
+ 'pythonconsole',
+ 'samplepython'
+ ]
++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
++ plugins += plugin
++ endif
++ endforeach
+ endif
+
+ if have_vala
+@@ -129,17 +146,26 @@ if plugins_option != 'none'
+ '--pkg=@0@-@1@'.format(totem_gir_ns, totem_api_version)
+ ]
+
+- plugins += [
++ foreach plugin: [
+ 'rotation',
+ 'sample-vala'
+ ]
++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
++ plugins += plugin
++ endif
++ endforeach
++
++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('zeitgeist-dp')
++ zeitgeist_dep = dependency('zeitgeist-2.0', version: '>= 0.9.12', required: false)
++ else
++ zeitgeist_dep = disabler()
++ endif
+
+- zeitgeist_dep = dependency('zeitgeist-2.0', version: '>= 0.9.12', required: false)
+ if zeitgeist_dep.found()
+ plugins += 'zeitgeist-dp'
+ else
+ str = 'you need zeitgeist-2.0 >= 0.9.12 to use the zeitgeist-dp plugin'
+- if plugin_error
++ if plugins_option.contains('all') or plugins_option.contains('zeitgeist-dp')
+ error(str)
+ endif
+ message(str)
+--
+2.17.1
+
diff --git a/media-video/totem/files/3.30.0-vala-errormsg.patch b/media-video/totem/files/3.30.0-vala-errormsg.patch
new file mode 100644
index 000000000000..37816784ded8
--- /dev/null
+++ b/media-video/totem/files/3.30.0-vala-errormsg.patch
@@ -0,0 +1,31 @@
+From 4fba51c82d855426ad73f8215d0ed7bfdfa4fae2 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Sat, 15 Dec 2018 20:50:34 +0200
+Subject: [PATCH] build: Fix error message with -Denable-vala without vala
+ found
+
+Fixes
+ERROR: Unknown variable "vala_options"
+to
+ERROR: Problem encountered: you need vala >= 0.14.1 installed to use vala plugins
+by correcting a typo.
+---
+ meson.build | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/meson.build b/meson.build
+index c0679d25..5647376f 100644
+--- a/meson.build
++++ b/meson.build
+@@ -230,7 +230,7 @@ if vala_option != 'no'
+ endif
+
+ if not have_vala
+- if vala_options == 'yes' or introspection_option == 'yes'
++ if vala_option == 'yes' or introspection_option == 'yes'
+ error(str)
+ endif
+ message(str)
+--
+2.17.0
+
diff --git a/media-video/totem/metadata.xml b/media-video/totem/metadata.xml
index 8a1eb150fb9b..1daea3f76b23 100644
--- a/media-video/totem/metadata.xml
+++ b/media-video/totem/metadata.xml
@@ -20,6 +20,7 @@ Totem is movie player for the GNOME desktop. It features a playlist, fullscreen
<flag name="lirc">Enable support for controlling Totem with a remote control
using <pkg>app-misc/lirc</pkg></flag>
<flag name="nautilus">Enable the nautilus extension</flag>
- <flag name="python">Build support for <pkg>dev-lang/python</pkg> plugins</flag>
+ <flag name="python">Build <pkg>dev-lang/python</pkg> using plugins (dbusservice for notifications and MPRIS control, interactive python console and opensubtitles lookup)</flag>
+ <flag name="vala">Build the rotation plugin, which allows videos to be rotated if they are in the wrong orientation</flag>
</use>
</pkgmetadata>
diff --git a/media-video/totem/totem-3.30.0.ebuild b/media-video/totem/totem-3.30.0.ebuild
new file mode 100644
index 000000000000..9952813ff43b
--- /dev/null
+++ b/media-video/totem/totem-3.30.0.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2019 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{3_4,3_5,3_6} )
+PYTHON_REQ_USE="threads"
+
+inherit gnome.org gnome2-utils meson vala xdg python-single-r1
+
+DESCRIPTION="Media player for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Apps/Videos"
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="0"
+IUSE="cdr gtk-doc +introspection lirc nautilus +python test vala"
+# see bug #359379
+REQUIRED_USE="
+ python? ( introspection ${PYTHON_REQUIRED_USE} )
+ vala? ( introspection )
+"
+
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
+
+# FIXME:
+# Runtime dependency on gnome-session-2.91
+COMMON_DEPEND="
+ >=dev-libs/glib-2.43.4:2
+ >=x11-libs/gtk+-3.19.4:3[X,introspection?]
+ >=media-libs/gstreamer-1.6.0:1.0
+ >=media-libs/gst-plugins-base-1.6.0:1.0[X,pango]
+ >=media-libs/gst-plugins-good-1.6.0:1.0
+ >=media-libs/grilo-0.3.0:0.3[playlist]
+ >=dev-libs/libpeas-1.1.0[gtk]
+ >=dev-libs/totem-pl-parser-3.10.1:0=[introspection?]
+ >=media-libs/clutter-1.17.3:1.0[gtk]
+ >=media-libs/clutter-gst-2.99.2:3.0
+ >=media-libs/clutter-gtk-1.8.1:1.0
+ gnome-base/gnome-desktop:3=
+ gnome-base/gsettings-desktop-schemas
+ x11-libs/libX11
+ >=x11-libs/cairo-1.14
+ x11-libs/gdk-pixbuf:2
+ introspection? ( >=dev-libs/gobject-introspection-1.54:= )
+
+ cdr? ( >=dev-libs/libxml2-2.6:2 )
+ lirc? ( app-misc/lirc )
+ nautilus? ( >=gnome-base/nautilus-2.91.3 )
+ python? (
+ ${PYTHON_DEPS}
+ >=dev-python/pygobject-2.90.3:3[${PYTHON_USEDEP}] )
+"
+RDEPEND="${COMMON_DEPEND}
+ media-plugins/grilo-plugins:0.3
+ media-plugins/gst-plugins-meta:1.0
+ media-plugins/gst-plugins-taglib:1.0
+ x11-themes/adwaita-icon-theme
+ python? (
+ >=dev-libs/libpeas-1.1.0[python,${PYTHON_USEDEP}]
+ dev-python/dbus-python[${PYTHON_USEDEP}] )
+"
+DEPEND="${COMMON_DEPEND}
+ dev-lang/perl
+ app-text/docbook-xml-dtd:4.5
+ gtk-doc? ( >=dev-util/gtk-doc-1.14 )
+ dev-util/glib-utils
+ dev-util/itstool
+ >=sys-devel/gettext-0.19.8
+ virtual/pkgconfig
+ x11-base/xorg-proto
+ vala? ( $(vala_depend) )
+"
+# perl for pod2man
+# docbook-xml-dtd is needed for user doc
+# Prevent dev-python/pylint dep, bug #482538
+
+PATCHES=(
+ "${FILESDIR}"/${PV}-vala-errormsg.patch
+ "${FILESDIR}"/${PV}-control-plugins.patch # Do not force all plugins
+ "${FILESDIR}"/3.26-gst-inspect-sandbox.patch # Allow disabling calls to gst-inspect (sandbox issue)
+)
+
+pkg_setup() {
+ use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+ use vala && vala_src_prepare
+ xdg_src_prepare
+}
+
+src_configure() {
+ # Disabled: sample-python, sample-vala, zeitgeist-dp
+ # brasero-disc-recorder and gromit require gtk+[X], but totem itself does
+ # for now still too, so no point in optionality based on that yet.
+ local plugins="apple-trailers,autoload-subtitles"
+ plugins+=",im-status,gromit,media-player-keys,ontop"
+ plugins+=",properties,recent,screensaver,screenshot"
+ plugins+=",skipto,variable-rate,vimeo"
+ use cdr && plugins+=",brasero-disc-recorder"
+ use lirc && plugins+=",lirc"
+ use nautilus && plugins+=",save-file"
+ use python && plugins+=",dbusservice,pythonconsole,opensubtitles"
+ use vala && plugins+=",rotation"
+
+ local emesonargs=(
+ -Denable-easy-codec-installation=yes
+ -Denable-python=$(usex python yes no)
+ -Denable-vala=$(usex vala yes no)
+ -Dwith-plugins=${plugins}
+ -Denable-nautilus=$(usex nautilus yes no)
+ $(meson_use gtk-doc enable-gtk-doc)
+ -Denable-introspection=$(usex introspection yes no)
+ -Dgst-inspect=false
+ )
+ meson_src_configure
+}
+
+src_install() {
+ meson_src_install
+ if use python ; then
+ python_optimize "${ED}"usr/$(get_libdir)/totem/plugins/
+ fi
+}
+
+pkg_postinst() {
+ xdg_pkg_postinst
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}
+
+pkg_postrm() {
+ xdg_pkg_postrm
+ gnome2_icon_cache_update
+ gnome2_schemas_update
+}