diff options
Diffstat (limited to 'media-video')
-rw-r--r-- | media-video/totem/Manifest | 1 | ||||
-rw-r--r-- | media-video/totem/files/3.26-gst-inspect-sandbox.patch | 42 | ||||
-rw-r--r-- | media-video/totem/files/3.30.0-control-plugins.patch | 199 | ||||
-rw-r--r-- | media-video/totem/files/3.30.0-vala-errormsg.patch | 31 | ||||
-rw-r--r-- | media-video/totem/metadata.xml | 3 | ||||
-rw-r--r-- | media-video/totem/totem-3.30.0.ebuild | 135 |
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 +} |