Gentoo Archives: gentoo-commits

From: Mart Raudsepp <leio@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-video/totem/files/, media-video/totem/
Date: Tue, 15 Jan 2019 14:46:23
Message-Id: 1547563569.57ced08826db7f27e496d8353582bbb2f89ae058.leio@gentoo
1 commit: 57ced08826db7f27e496d8353582bbb2f89ae058
2 Author: Mart Raudsepp <leio <AT> gentoo <DOT> org>
3 AuthorDate: Tue Jan 15 14:36:22 2019 +0000
4 Commit: Mart Raudsepp <leio <AT> gentoo <DOT> org>
5 CommitDate: Tue Jan 15 14:46:09 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=57ced088
7
8 media-video/totem: bump to 3.30.0
9
10 Package-Manager: Portage-2.3.52, Repoman-2.3.12
11 Signed-off-by: Mart Raudsepp <leio <AT> gentoo.org>
12
13 media-video/totem/Manifest | 1 +
14 .../totem/files/3.26-gst-inspect-sandbox.patch | 42 +++++
15 .../totem/files/3.30.0-control-plugins.patch | 199 +++++++++++++++++++++
16 media-video/totem/files/3.30.0-vala-errormsg.patch | 31 ++++
17 media-video/totem/metadata.xml | 3 +-
18 media-video/totem/totem-3.30.0.ebuild | 135 ++++++++++++++
19 6 files changed, 410 insertions(+), 1 deletion(-)
20
21 diff --git a/media-video/totem/Manifest b/media-video/totem/Manifest
22 index 92de57ea8c0..ada4f1ff341 100644
23 --- a/media-video/totem/Manifest
24 +++ b/media-video/totem/Manifest
25 @@ -1 +1,2 @@
26 DIST totem-3.24.0.tar.xz 1987260 BLAKE2B 81cb8c359b2225148a18f7a5c6ae9990cbe2e2f3b9a6a31012c9c8c0920c0cea6bad0a5d9407a79530fadf00fb845fe9e6aa8dbc84d0f8d6e84fbc144d86bc9e SHA512 488db91e09b7f5947e81cb5474444c753367542820777faab561582707b012e664f232d3810d543dfbe0823adf3d8302c2fe6cc387f4225a362d15a6df8b4342
27 +DIST totem-3.30.0.tar.xz 3275852 BLAKE2B 9a5f97229a8aa6f7665c6d3e79dff48cfcce3caeab69510361ef3e9e1a107f7a56c66a5ae89ba3ae0a77d4b0ae8a16ac1f61e77278c82bf768e50009420110d0 SHA512 9d2e0a9e89358eea03404afd9353d18fa23afee7a34612912411ef10d4fb0b26ee02db002e6f8e05f68a333202d419f1e1a35188da23f87189e3093dac655742
28
29 diff --git a/media-video/totem/files/3.26-gst-inspect-sandbox.patch b/media-video/totem/files/3.26-gst-inspect-sandbox.patch
30 new file mode 100644
31 index 00000000000..016368a69b9
32 --- /dev/null
33 +++ b/media-video/totem/files/3.26-gst-inspect-sandbox.patch
34 @@ -0,0 +1,42 @@
35 +From 742b64b7a74eabd67344ef1cc260427dc402588f Mon Sep 17 00:00:00 2001
36 +From: Gilles Dartiguelongue <eva@g.o>
37 +Date: Thu, 7 Jun 2018 23:47:48 +0200
38 +Subject: [PATCH 5/5] Make gst-inspect calls optional at build-time
39 +
40 +Crashes on Gentoo due to plugins trying to access dri nodes which are sandboxed
41 +---
42 + meson_options.txt | 1 +
43 + src/backend/meson.build | 2 ++
44 + 2 files changed, 3 insertions(+)
45 +
46 +diff --git a/meson_options.txt b/meson_options.txt
47 +index 6e056952..631b8cca 100644
48 +--- a/meson_options.txt
49 ++++ b/meson_options.txt
50 +@@ -32,3 +32,4 @@ option('enable-nautilus', type: 'combo', choices: ['yes', 'no', 'auto'], value:
51 + option('with-nautilusdir', type: 'string', value: '', description: 'Installation path for Nautilus extension')
52 + option('enable-gtk-doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
53 + option('enable-introspection', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Enable GObject Introspection (depends on GObject)')
54 ++option('gst-inspect', type: 'boolean', value: true, description: 'build-time test of available gstreamer plugins')
55 +diff --git a/src/backend/meson.build b/src/backend/meson.build
56 +index 28c8e123..55037a6a 100644
57 +--- a/src/backend/meson.build
58 ++++ b/src/backend/meson.build
59 +@@ -1,5 +1,6 @@
60 + backend_inc = include_directories('.')
61 +
62 ++if get_option('gst-inspect')
63 + gst_inspect = find_program(
64 + 'gst-inspect-1.0',
65 + join_paths(gst_dep.get_pkgconfig_variable('toolsdir'), 'gst-inspect-1.0'),
66 +@@ -31,6 +32,7 @@ foreach plugin: gst_good_plugins
67 + assert(r.returncode() == 0,
68 + 'Cannot find required GStreamer-1.0 plugin "' + plugin + '". It should be part of gst-plugins-good. Please install it.')
69 + endforeach
70 ++endif
71 +
72 + sources = files(
73 + 'bacon-time-label.c',
74 +--
75 +2.17.0
76 +
77
78 diff --git a/media-video/totem/files/3.30.0-control-plugins.patch b/media-video/totem/files/3.30.0-control-plugins.patch
79 new file mode 100644
80 index 00000000000..4d57ad0971c
81 --- /dev/null
82 +++ b/media-video/totem/files/3.30.0-control-plugins.patch
83 @@ -0,0 +1,199 @@
84 +From 5bdfac8a4a34e3edec05439fa3cd5544e0515e24 Mon Sep 17 00:00:00 2001
85 +From: =?UTF-8?q?R=C3=A9mi=20Cardona?= <remi@g.o>
86 +Date: Sun, 10 Jun 2018 10:09:16 +0200
87 +Subject: [PATCH] Allow full control over which plugins are built
88 +
89 +---
90 + meson.build | 2 +-
91 + meson_options.txt | 28 ++++++++++++++++++++-
92 + src/plugins/meson.build | 56 ++++++++++++++++++++++++++++++-----------
93 + 3 files changed, 69 insertions(+), 17 deletions(-)
94 +
95 +diff --git a/meson.build b/meson.build
96 +index 9c4797dd..aa91ae10 100644
97 +--- a/meson.build
98 ++++ b/meson.build
99 +@@ -3,7 +3,7 @@ project(
100 + version: '3.30.0',
101 + license: 'GPL2+ with exception',
102 + default_options: 'buildtype=debugoptimized',
103 +- meson_version: '>= 0.43.0'
104 ++ meson_version: '>= 0.44.0'
105 + )
106 +
107 + totem_version = meson.project_version()
108 +diff --git a/meson_options.txt b/meson_options.txt
109 +index 3b6ff67b..6e056952 100644
110 +--- a/meson_options.txt
111 ++++ b/meson_options.txt
112 +@@ -1,7 +1,33 @@
113 + option('enable-easy-codec-installation', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Whether to enable easy codec installation support for GStreamer')
114 + option('enable-python', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'Enable python support')
115 + option('enable-vala', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'whether Vala plugin support is requested')
116 +-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)')
117 ++option('with-plugins', type: 'array', choices: [
118 ++ 'all',
119 ++ 'auto',
120 ++ 'apple-trailers',
121 ++ 'autoload-subtitles',
122 ++ 'brasero-disc-recorder',
123 ++ 'dbusservice',
124 ++ 'gromit',
125 ++ 'im-status',
126 ++ 'lirc',
127 ++ 'media-player-keys',
128 ++ 'ontop',
129 ++ 'opensubtitles',
130 ++ 'properties',
131 ++ 'pythonconsole',
132 ++ 'recent',
133 ++ 'rotation',
134 ++ 'sample-vala',
135 ++ 'samplepython',
136 ++ 'save-file',
137 ++ 'screensaver',
138 ++ 'screenshot',
139 ++ 'skipto',
140 ++ 'variable-rate',
141 ++ 'vimeo',
142 ++ 'zeitgeist-dp'
143 ++], value: ['auto'], description: 'Which Totem plugins to compile (default: auto; "all", "none" and "auto" are valid)')
144 + option('enable-nautilus', type: 'combo', choices: ['yes', 'no', 'auto'], value: 'auto', description: 'compile the nautilus plugin')
145 + option('with-nautilusdir', type: 'string', value: '', description: 'Installation path for Nautilus extension')
146 + option('enable-gtk-doc', type: 'boolean', value: false, description: 'use gtk-doc to build documentation')
147 +diff --git a/src/plugins/meson.build b/src/plugins/meson.build
148 +index 95af6485..289ba811 100644
149 +--- a/src/plugins/meson.build
150 ++++ b/src/plugins/meson.build
151 +@@ -41,8 +41,8 @@ allowed_plugins = [
152 + plugins = []
153 +
154 + plugins_option = get_option('with-plugins')
155 +-if plugins_option != 'none'
156 +- plugins += [
157 ++if plugins_option.length() > 0
158 ++ foreach plugin: [
159 + 'apple-trailers',
160 + 'autoload-subtitles',
161 + 'im-status',
162 +@@ -56,26 +56,38 @@ if plugins_option != 'none'
163 + 'variable-rate',
164 + 'vimeo'
165 + ]
166 ++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
167 ++ plugins += plugin
168 ++ endif
169 ++ endforeach
170 +
171 +- plugin_error = (plugins_option == 'all')
172 ++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('gromit')
173 ++ gdk_targets = gtk_dep.get_pkgconfig_variable('targets')
174 ++ else
175 ++ gdk_targets = []
176 ++ endif
177 +
178 +- gdk_targets = gtk_dep.get_pkgconfig_variable('targets')
179 + if gdk_targets.contains('x11')
180 + plugins += 'gromit'
181 + else
182 + str = 'the gromit plugin is not supported on non-X11 targets'
183 +- if plugin_error
184 ++ if plugins_option.contains('all') or plugins_option.contains('gromit')
185 + error(str)
186 + endif
187 + message(str)
188 + endif
189 +
190 +- lirc_dep = dependency('lirc', required: false)
191 ++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('lirc')
192 ++ lirc_dep = dependency('lirc', required: false)
193 ++ else
194 ++ lirc_dep = disabler()
195 ++ endif
196 ++
197 + if lirc_dep.found() and cc.has_function('lirc_init', dependencies: lirc_dep) and cc.has_header('lirc/lirc_client.h')
198 + plugins += 'lirc'
199 + else
200 + str = 'you need lirc_client installed for the lirc plugin'
201 +- if plugin_error
202 ++ if plugins_option.contains('all') or plugins_option.contains('lirc')
203 + error(str)
204 + endif
205 + message(str)
206 +@@ -84,33 +96,38 @@ if plugins_option != 'none'
207 + libxml_req_version = '>= 2.6.0'
208 + libxml_dep = dependency('libxml-2.0', version: libxml_req_version, required: false)
209 + gtk_x11_dep = dependency('gtk+-x11-3.0', version: gtk_req_version, required: false)
210 +- if libxml_dep.found() and gtk_x11_dep.found()
211 ++
212 ++ 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'))
213 + plugins += 'brasero-disc-recorder'
214 + else
215 + str = 'you need libxml-2.0 ' + libxml_req_version + ' and gtk+-x11-3.0 to use the brasero-disc-recorder plugin'
216 +- if plugin_error
217 ++ if plugins_option.contains('all') or plugins_option.contains('brasero-disc-recorder')
218 + error(str)
219 + endif
220 + message(str)
221 + endif
222 +
223 +- if have_nautilus
224 ++ if have_nautilus and (plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('save-file'))
225 + plugins += 'save-file'
226 + else
227 + str = 'you need libnautilus-extension to use the save-file plugin'
228 +- if plugin_error
229 ++ if plugins_option.contains('all') or plugins_option.contains('save-file')
230 + error(str)
231 + endif
232 + message(str)
233 + endif
234 +
235 + if have_python
236 +- plugins += [
237 ++ foreach plugin: [
238 + 'dbusservice',
239 + 'opensubtitles',
240 + 'pythonconsole',
241 + 'samplepython'
242 + ]
243 ++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
244 ++ plugins += plugin
245 ++ endif
246 ++ endforeach
247 + endif
248 +
249 + if have_vala
250 +@@ -129,17 +146,26 @@ if plugins_option != 'none'
251 + '--pkg=@0@-@1@'.format(totem_gir_ns, totem_api_version)
252 + ]
253 +
254 +- plugins += [
255 ++ foreach plugin: [
256 + 'rotation',
257 + 'sample-vala'
258 + ]
259 ++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains(plugin)
260 ++ plugins += plugin
261 ++ endif
262 ++ endforeach
263 ++
264 ++ if plugins_option.contains('all') or plugins_option.contains('auto') or plugins_option.contains('zeitgeist-dp')
265 ++ zeitgeist_dep = dependency('zeitgeist-2.0', version: '>= 0.9.12', required: false)
266 ++ else
267 ++ zeitgeist_dep = disabler()
268 ++ endif
269 +
270 +- zeitgeist_dep = dependency('zeitgeist-2.0', version: '>= 0.9.12', required: false)
271 + if zeitgeist_dep.found()
272 + plugins += 'zeitgeist-dp'
273 + else
274 + str = 'you need zeitgeist-2.0 >= 0.9.12 to use the zeitgeist-dp plugin'
275 +- if plugin_error
276 ++ if plugins_option.contains('all') or plugins_option.contains('zeitgeist-dp')
277 + error(str)
278 + endif
279 + message(str)
280 +--
281 +2.17.1
282 +
283
284 diff --git a/media-video/totem/files/3.30.0-vala-errormsg.patch b/media-video/totem/files/3.30.0-vala-errormsg.patch
285 new file mode 100644
286 index 00000000000..37816784ded
287 --- /dev/null
288 +++ b/media-video/totem/files/3.30.0-vala-errormsg.patch
289 @@ -0,0 +1,31 @@
290 +From 4fba51c82d855426ad73f8215d0ed7bfdfa4fae2 Mon Sep 17 00:00:00 2001
291 +From: Mart Raudsepp <leio@g.o>
292 +Date: Sat, 15 Dec 2018 20:50:34 +0200
293 +Subject: [PATCH] build: Fix error message with -Denable-vala without vala
294 + found
295 +
296 +Fixes
297 +ERROR: Unknown variable "vala_options"
298 +to
299 +ERROR: Problem encountered: you need vala >= 0.14.1 installed to use vala plugins
300 +by correcting a typo.
301 +---
302 + meson.build | 2 +-
303 + 1 file changed, 1 insertion(+), 1 deletion(-)
304 +
305 +diff --git a/meson.build b/meson.build
306 +index c0679d25..5647376f 100644
307 +--- a/meson.build
308 ++++ b/meson.build
309 +@@ -230,7 +230,7 @@ if vala_option != 'no'
310 + endif
311 +
312 + if not have_vala
313 +- if vala_options == 'yes' or introspection_option == 'yes'
314 ++ if vala_option == 'yes' or introspection_option == 'yes'
315 + error(str)
316 + endif
317 + message(str)
318 +--
319 +2.17.0
320 +
321
322 diff --git a/media-video/totem/metadata.xml b/media-video/totem/metadata.xml
323 index 8a1eb150fb9..1daea3f76b2 100644
324 --- a/media-video/totem/metadata.xml
325 +++ b/media-video/totem/metadata.xml
326 @@ -20,6 +20,7 @@ Totem is movie player for the GNOME desktop. It features a playlist, fullscreen
327 <flag name="lirc">Enable support for controlling Totem with a remote control
328 using <pkg>app-misc/lirc</pkg></flag>
329 <flag name="nautilus">Enable the nautilus extension</flag>
330 - <flag name="python">Build support for <pkg>dev-lang/python</pkg> plugins</flag>
331 + <flag name="python">Build <pkg>dev-lang/python</pkg> using plugins (dbusservice for notifications and MPRIS control, interactive python console and opensubtitles lookup)</flag>
332 + <flag name="vala">Build the rotation plugin, which allows videos to be rotated if they are in the wrong orientation</flag>
333 </use>
334 </pkgmetadata>
335
336 diff --git a/media-video/totem/totem-3.30.0.ebuild b/media-video/totem/totem-3.30.0.ebuild
337 new file mode 100644
338 index 00000000000..9952813ff43
339 --- /dev/null
340 +++ b/media-video/totem/totem-3.30.0.ebuild
341 @@ -0,0 +1,135 @@
342 +# Copyright 1999-2019 Gentoo Authors
343 +# Distributed under the terms of the GNU General Public License v2
344 +
345 +EAPI=6
346 +PYTHON_COMPAT=( python{3_4,3_5,3_6} )
347 +PYTHON_REQ_USE="threads"
348 +
349 +inherit gnome.org gnome2-utils meson vala xdg python-single-r1
350 +
351 +DESCRIPTION="Media player for GNOME"
352 +HOMEPAGE="https://wiki.gnome.org/Apps/Videos"
353 +
354 +LICENSE="GPL-2+ LGPL-2+"
355 +SLOT="0"
356 +IUSE="cdr gtk-doc +introspection lirc nautilus +python test vala"
357 +# see bug #359379
358 +REQUIRED_USE="
359 + python? ( introspection ${PYTHON_REQUIRED_USE} )
360 + vala? ( introspection )
361 +"
362 +
363 +KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~ppc ~ppc64 ~x86 ~x86-fbsd"
364 +
365 +# FIXME:
366 +# Runtime dependency on gnome-session-2.91
367 +COMMON_DEPEND="
368 + >=dev-libs/glib-2.43.4:2
369 + >=x11-libs/gtk+-3.19.4:3[X,introspection?]
370 + >=media-libs/gstreamer-1.6.0:1.0
371 + >=media-libs/gst-plugins-base-1.6.0:1.0[X,pango]
372 + >=media-libs/gst-plugins-good-1.6.0:1.0
373 + >=media-libs/grilo-0.3.0:0.3[playlist]
374 + >=dev-libs/libpeas-1.1.0[gtk]
375 + >=dev-libs/totem-pl-parser-3.10.1:0=[introspection?]
376 + >=media-libs/clutter-1.17.3:1.0[gtk]
377 + >=media-libs/clutter-gst-2.99.2:3.0
378 + >=media-libs/clutter-gtk-1.8.1:1.0
379 + gnome-base/gnome-desktop:3=
380 + gnome-base/gsettings-desktop-schemas
381 + x11-libs/libX11
382 + >=x11-libs/cairo-1.14
383 + x11-libs/gdk-pixbuf:2
384 + introspection? ( >=dev-libs/gobject-introspection-1.54:= )
385 +
386 + cdr? ( >=dev-libs/libxml2-2.6:2 )
387 + lirc? ( app-misc/lirc )
388 + nautilus? ( >=gnome-base/nautilus-2.91.3 )
389 + python? (
390 + ${PYTHON_DEPS}
391 + >=dev-python/pygobject-2.90.3:3[${PYTHON_USEDEP}] )
392 +"
393 +RDEPEND="${COMMON_DEPEND}
394 + media-plugins/grilo-plugins:0.3
395 + media-plugins/gst-plugins-meta:1.0
396 + media-plugins/gst-plugins-taglib:1.0
397 + x11-themes/adwaita-icon-theme
398 + python? (
399 + >=dev-libs/libpeas-1.1.0[python,${PYTHON_USEDEP}]
400 + dev-python/dbus-python[${PYTHON_USEDEP}] )
401 +"
402 +DEPEND="${COMMON_DEPEND}
403 + dev-lang/perl
404 + app-text/docbook-xml-dtd:4.5
405 + gtk-doc? ( >=dev-util/gtk-doc-1.14 )
406 + dev-util/glib-utils
407 + dev-util/itstool
408 + >=sys-devel/gettext-0.19.8
409 + virtual/pkgconfig
410 + x11-base/xorg-proto
411 + vala? ( $(vala_depend) )
412 +"
413 +# perl for pod2man
414 +# docbook-xml-dtd is needed for user doc
415 +# Prevent dev-python/pylint dep, bug #482538
416 +
417 +PATCHES=(
418 + "${FILESDIR}"/${PV}-vala-errormsg.patch
419 + "${FILESDIR}"/${PV}-control-plugins.patch # Do not force all plugins
420 + "${FILESDIR}"/3.26-gst-inspect-sandbox.patch # Allow disabling calls to gst-inspect (sandbox issue)
421 +)
422 +
423 +pkg_setup() {
424 + use python && python-single-r1_pkg_setup
425 +}
426 +
427 +src_prepare() {
428 + use vala && vala_src_prepare
429 + xdg_src_prepare
430 +}
431 +
432 +src_configure() {
433 + # Disabled: sample-python, sample-vala, zeitgeist-dp
434 + # brasero-disc-recorder and gromit require gtk+[X], but totem itself does
435 + # for now still too, so no point in optionality based on that yet.
436 + local plugins="apple-trailers,autoload-subtitles"
437 + plugins+=",im-status,gromit,media-player-keys,ontop"
438 + plugins+=",properties,recent,screensaver,screenshot"
439 + plugins+=",skipto,variable-rate,vimeo"
440 + use cdr && plugins+=",brasero-disc-recorder"
441 + use lirc && plugins+=",lirc"
442 + use nautilus && plugins+=",save-file"
443 + use python && plugins+=",dbusservice,pythonconsole,opensubtitles"
444 + use vala && plugins+=",rotation"
445 +
446 + local emesonargs=(
447 + -Denable-easy-codec-installation=yes
448 + -Denable-python=$(usex python yes no)
449 + -Denable-vala=$(usex vala yes no)
450 + -Dwith-plugins=${plugins}
451 + -Denable-nautilus=$(usex nautilus yes no)
452 + $(meson_use gtk-doc enable-gtk-doc)
453 + -Denable-introspection=$(usex introspection yes no)
454 + -Dgst-inspect=false
455 + )
456 + meson_src_configure
457 +}
458 +
459 +src_install() {
460 + meson_src_install
461 + if use python ; then
462 + python_optimize "${ED}"usr/$(get_libdir)/totem/plugins/
463 + fi
464 +}
465 +
466 +pkg_postinst() {
467 + xdg_pkg_postinst
468 + gnome2_icon_cache_update
469 + gnome2_schemas_update
470 +}
471 +
472 +pkg_postrm() {
473 + xdg_pkg_postrm
474 + gnome2_icon_cache_update
475 + gnome2_schemas_update
476 +}