commit:     5df9f766204246b0ff96862bd9629d565d3ec0bc
Author:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
AuthorDate: Thu Jun  7 22:13:23 2018 +0000
Commit:     Gilles Dartiguelongue <eva <AT> gentoo <DOT> org>
CommitDate: Thu Jun  7 22:20:57 2018 +0000
URL:        https://gitweb.gentoo.org/proj/gnome.git/commit/?id=5df9f766

media-video/totem: 3.24.0 → 3.26.0

Switch to meson build system. Remove unused totem-audio-preview.

Package-Manager: Portage-2.3.40, Repoman-2.3.9
Manifest-Sign-Key: 0x5A56C8CD0C13248A

 media-video/totem/files/3.26-control-plugins.patch | 207 +++++++++++++++++++++
 .../totem/files/3.26-gst-inspect-sandbox.patch     |  42 +++++
 media-video/totem/files/3.26-meson-fixes.patch     |  40 ++++
 .../totem/files/3.26-skip-pylint-check.patch       |  37 ++++
 media-video/totem/totem-3.26.0.ebuild              | 139 ++++++++++++++
 5 files changed, 465 insertions(+)

diff --git a/media-video/totem/files/3.26-control-plugins.patch 
b/media-video/totem/files/3.26-control-plugins.patch
new file mode 100644
index 00000000..1a467603
--- /dev/null
+++ b/media-video/totem/files/3.26-control-plugins.patch
@@ -0,0 +1,207 @@
+From e2dd2508e0b356159e00ba90afdfef0b6b623b27 Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <[email protected]>
+Date: Thu, 7 Jun 2018 22:52:21 +0200
+Subject: [PATCH 2/5] Allow full control over which plugins are built
+
+---
+ meson.build             |  2 +-
+ meson_options.txt       | 28 +++++++++++++++++-
+ src/plugins/meson.build | 65 ++++++++++++++++++++++++++++++-----------
+ 3 files changed, 76 insertions(+), 19 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 9c4797dd..aa91ae10 100644
+--- a/meson.build
++++ b/meson.build
+@@ -7,7 +7,7 @@ project(
+     'c_std=gnu99',
+     'warning_level=1'
+   ],
+-  meson_version: '>= 0.41.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..20134952 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,61 +56,83 @@ 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)
+   endif
+ 
+-  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 plugins_option.contains('all') or plugins_option.contains('auto') or 
plugins_option.contains('brasero-disc-recorder')
++    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)
++  else
++    libxml_dep = disabler()
++    gtk_x11_dep = disabler()
++  endif
++
+   if libxml_dep.found() and gtk_x11_dep.found()
+     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 +151,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.0
+

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 00000000..016368a6
--- /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 <[email protected]>
+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.26-meson-fixes.patch 
b/media-video/totem/files/3.26-meson-fixes.patch
new file mode 100644
index 00000000..924d91c5
--- /dev/null
+++ b/media-video/totem/files/3.26-meson-fixes.patch
@@ -0,0 +1,40 @@
+From b66ceb0e2fe72591132576a6ca3469eff905cd8d Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <[email protected]>
+Date: Thu, 7 Jun 2018 22:52:04 +0200
+Subject: [PATCH 1/4] meson.build: Fix typos in vala handling
+
+---
+ meson.build | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index 8a87b8b9..9c4797dd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -238,13 +238,13 @@ if python_option != 'no'
+ endif
+ 
+ # vala support
++vala_req_version = '>= 0.14.1'
+ have_vala = false
+ 
+ vala_option = get_option('enable-vala')
+ if vala_option != 'no'
+   if have_gir
+     if add_languages('vala', required: false)
+-      vala_req_version = '>= 0.14.1'
+       if 
meson.get_compiler('vala').version().version_compare(vala_req_version)
+         have_vala = true
+       endif
+@@ -258,7 +258,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/files/3.26-skip-pylint-check.patch 
b/media-video/totem/files/3.26-skip-pylint-check.patch
new file mode 100644
index 00000000..326cffbc
--- /dev/null
+++ b/media-video/totem/files/3.26-skip-pylint-check.patch
@@ -0,0 +1,37 @@
+From 008df868818b821cdbed8d124d1a86f0747ad3fc Mon Sep 17 00:00:00 2001
+From: Gilles Dartiguelongue <[email protected]>
+Date: Thu, 7 Jun 2018 22:55:56 +0200
+Subject: [PATCH 3/4] Drop requirement for pylint at build-time
+
+This is a development QA tool anyway.
+---
+ meson.build | 5 ++---
+ 1 file changed, 2 insertions(+), 3 deletions(-)
+
+diff --git a/meson.build b/meson.build
+index aa91ae10..f8f306e4 100644
+--- a/meson.build
++++ b/meson.build
+@@ -219,9 +219,8 @@ if python_option != 'no'
+     python_version = r.stdout().split(' ')[1]
+ 
+     pygobject_dep = dependency('pygobject-3.0', version: '>= 2.90.3', 
required: false)
+-    pylint = find_program('pylint-3', 'pylint3', 'pylint', required: false)
+ 
+-    if python_version.version_compare(python_req_version) and 
pygobject_dep.found() and pylint.found()
++    if python_version.version_compare(python_req_version) and 
pygobject_dep.found()
+       have_python = true
+       python_deps += pygobject_dep
+       meson.add_install_script('meson_compile_python.py')
+@@ -229,7 +228,7 @@ if python_option != 'no'
+   endif
+ 
+   if not have_python
+-    str = 'python ' + python_req_version + ', pygobject or pylint not found'
++    str = 'python ' + python_req_version + ' or pygobject not found'
+     if python_option == 'yes'
+       error(str)
+     endif
+-- 
+2.17.0
+

diff --git a/media-video/totem/totem-3.26.0.ebuild 
b/media-video/totem/totem-3.26.0.ebuild
new file mode 100644
index 00000000..8ab39a4f
--- /dev/null
+++ b/media-video/totem/totem-3.26.0.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2018 Gentoo Foundation
+# 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-meson python-single-r1 vala
+
+DESCRIPTION="Media player for GNOME"
+HOMEPAGE="https://wiki.gnome.org/Apps/Videos";
+
+LICENSE="GPL-2+ LGPL-2+"
+SLOT="0"
+IUSE="cdr +introspection lirc nautilus +python test vala"
+# see bug #359379
+REQUIRED_USE="
+       python? ( introspection ${PYTHON_REQUIRED_USE} )
+"
+
+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[dbus]
+       >=dev-libs/libpeas-1.1[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
+       >=x11-libs/cairo-1.14
+       >=x11-libs/gdk-pixbuf-2.23.0:2
+       >=x11-libs/gtk+-3.19.4:3[introspection?]
+
+       >=media-libs/grilo-0.3.0:0.3[playlist]
+       >=media-libs/gstreamer-1.6.0:1.0
+       >=media-libs/gst-plugins-base-1.6.0:1.0[X,introspection?,pango]
+       media-libs/gst-plugins-good:1.0
+
+       x11-libs/libX11
+
+       gnome-base/gnome-desktop:3=
+       gnome-base/gsettings-desktop-schemas
+
+       cdr? (
+               >=dev-libs/libxml2-2.6:2
+               >=x11-libs/gtk+-3.19.4:3[X]
+       )
+       introspection? ( >=dev-libs/gobject-introspection-0.6.7:= )
+       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/pyxdg[${PYTHON_USEDEP}]
+               dev-python/dbus-python[${PYTHON_USEDEP}]
+               >=x11-libs/gtk+-3.5.2:3[introspection] )
+"
+# libxml2+gdk-pixbuf required for glib-compile-resources
+DEPEND="${COMMON_DEPEND}
+       app-text/docbook-xml-dtd:4.5
+       app-text/yelp-tools
+       >=dev-libs/libxml2-2.6:2
+       >=dev-util/meson-0.44
+       >=sys-devel/gettext-0.19.8
+       virtual/pkgconfig
+       x11-base/xorg-proto
+       vala? ( $(vala_depend) )
+"
+# docbook-xml-dtd is needed for user doc
+# Prevent dev-python/pylint dep, bug #482538
+
+PATCHES=(
+       # Fix some typos in meson.build files
+       "${FILESDIR}"/3.26-meson-fixes.patch
+       # Do not force all plugins
+       "${FILESDIR}"/3.26-control-plugins.patch
+       # Do not force pylint with USE=python
+       "${FILESDIR}"/3.26-skip-pylint-check.patch
+       # Allow disabling calls to gst-inspect (sandbox issue)
+       "${FILESDIR}"/3.26-gst-inspect-sandbox.patch
+)
+
+pkg_setup() {
+       use python && python-single-r1_pkg_setup
+}
+
+src_prepare() {
+       vala_src_prepare
+       gnome-meson_src_prepare
+}
+
+src_configure() {
+       # Disabled: sample-python, sample-vala, zeitgeist-dp
+       # brasero-disc-recorder and gromit depend on GTK+ X11 backend and could 
be made optional
+       # if totem itself didn't depend on it
+       local plugins="apple-trailers,autoload-subtitles"
+       plugins+=",im-status,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"
+       plugins+=",gromit"
+
+       # pylint is checked unconditionally, but is only used for make check
+       # appstream-util overriding necessary until upstream fixes their macro
+       # to respect configure switch
+       gnome-meson_src_configure \
+               -Denable-easy-codec-installation=yes \
+               -Denable-gtk-doc=false \
+               -Denable-introspection=$(usex introspection yes no) \
+               -Denable-nautilus=$(usex nautilus yes no) \
+               -Denable-python=$(usex python yes no) \
+               -Denable-vala=$(usex vala yes no) \
+           -Dgst-inspect=false \
+               -Dwith-plugins=${plugins}
+}
+
+src_install() {
+       gnome-meson_src_install
+       if use python ; then
+               local plugin
+               for plugin in dbusservice pythonconsole opensubtitles ; do
+                       python_optimize 
"${ED}"usr/$(get_libdir)/totem/plugins/${plugin}
+               done
+       fi
+}

Reply via email to