summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/gnome.scm17
-rw-r--r--gnu/packages/patches/totem-meson-easy-codec.patch65
3 files changed, 77 insertions, 6 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 3af8e6779d..bb47244261 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1058,6 +1058,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ttf2eot-cstddef.patch			\
   %D%/packages/patches/ttfautohint-source-date-epoch.patch	\
   %D%/packages/patches/tophat-build-with-later-seqan.patch	\
+  %D%/packages/patches/totem-meson-easy-codec.patch		\
   %D%/packages/patches/tuxpaint-stamps-path.patch		\
   %D%/packages/patches/unrtf-CVE-2016-10091.patch		\
   %D%/packages/patches/unzip-CVE-2014-8139.patch		\
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 85b5fb3f44..1ceba162b4 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -3581,7 +3581,7 @@ for application developers.")
 (define-public totem
   (package
     (name "totem")
-    (version "3.24.0")
+    (version "3.26.0")
     (source
      (origin
        (method url-fetch)
@@ -3590,12 +3590,15 @@ for application developers.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "00cdlll5b0wj5ckl1pc0a3g39a0hlq0gxkcsh1f6p20fjixqzmwv"))))
-    (build-system glib-or-gtk-build-system)
+         "04zfx47mgyd0f4p3pjrxl6iaw0awgwbvilbsr1smw14ph2kbjbz3"))
+       (patches (search-patches "totem-meson-easy-codec.patch"))))
+    (build-system meson-build-system)
     (native-inputs
      `(("pkg-config" ,pkg-config)
        ("desktop-file-utils" ,desktop-file-utils)
        ("gobject-introspection" ,gobject-introspection)
+       ("glib:bin" ,glib "bin")                   ;for 'glib-mkenums'
+       ("gtk:bin" ,gtk+ "bin")                    ;for 'gtk-update-icon-cache'
        ("intltool" ,intltool)
        ("itstool" ,itstool)
        ("xmllint" ,libxml2)))
@@ -3636,13 +3639,15 @@ for application developers.")
        ("nettle" ,nettle)
        ("vala" ,vala)))
     (arguments
-     `(;; Disable automatic GStreamer plugin installation via PackageKit and
+     `(#:glib-or-gtk? #t
+
+       ;; Disable automatic GStreamer plugin installation via PackageKit and
        ;; all that.
-       #:configure-flags '("--disable-easy-codec-installation"
+       #:configure-flags '("-D" "enable-easy-codec-installation=no"
 
                            ;; Do not build .a files for the plugins, it's
                            ;; completely useless.  This saves 2 MiB.
-                           "--disable-static")
+                           "--default-library" "shared")
 
        #:phases
        (modify-phases %standard-phases
diff --git a/gnu/packages/patches/totem-meson-easy-codec.patch b/gnu/packages/patches/totem-meson-easy-codec.patch
new file mode 100644
index 0000000000..b97d555c1a
--- /dev/null
+++ b/gnu/packages/patches/totem-meson-easy-codec.patch
@@ -0,0 +1,65 @@
+Fix a bug whereby the 'have_easy_codec' would be left undefined
+when passing '-D enable-easy-codec-installation=no'.  Likewise,
+don't rely on GStreamer's plug-in support when it's disabled.
+
+--- totem-3.26.0/meson.build	2017-10-11 22:29:44.506280919 +0200
++++ totem-3.26.0/meson.build	2017-10-11 22:29:50.902252058 +0200
+@@ -203,6 +203,8 @@ if easy_codec_option != 'no'
+   missing_plugins_deps += gst_pbutils_dep
+   config_h.set('ENABLE_MISSING_PLUGIN_INSTALLATION', have_easy_codec,
+                description: 'Whether we can and want to do installation of missing plugins')
++else
++  have_easy_codec = false
+ endif
+ 
+ # python support
+
+--- totem-3.26.0/src/backend/bacon-video-widget.c	2017-10-11 22:40:52.531217356 +0200
++++ totem-3.26.0/src/backend/bacon-video-widget.c	2017-10-11 22:45:44.973847231 +0200
+@@ -341,6 +341,22 @@ get_type_name (GType class_type, int typ
+   return value->value_nick;
+ }
+ 
++#ifndef ENABLE_MISSING_PLUGIN_INSTALLATION
++
++gchar *
++gst_missing_plugin_message_get_installer_detail (GstMessage *message)
++{
++  return NULL;
++}
++
++char *
++gst_missing_plugin_message_get_description (GstMessage *message)
++{
++  return NULL;
++}
++
++#endif
++
+ static gchar **
+ bvw_get_missing_plugins_foo (const GList * missing_plugins, MsgToStrFunc func)
+ {
+@@ -1654,10 +1670,12 @@ bvw_handle_element_message (BaconVideoWi
+       }
+     }
+     goto done;
++#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
+   } else if (gst_is_missing_plugin_message (msg)) {
+     bvw->priv->missing_plugins =
+       g_list_prepend (bvw->priv->missing_plugins, gst_message_ref (msg));
+     goto done;
++#endif
+   } else if (strcmp (type_name, "not-mounted") == 0) {
+     const GValue *val;
+     GFile *file;
+@@ -6109,7 +6127,9 @@ bacon_video_widget_initable_init (GInita
+   GST_DEBUG ("Initialised %s", version_str);
+   g_free (version_str);
+ 
++#ifdef ENABLE_MISSING_PLUGIN_INSTALLATION
+   gst_pb_utils_init ();
++#endif
+ 
+   /* Instantiate all the fallible plugins */
+   bvw->priv->play = element_make_or_warn ("playbin", "play");
+