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"); +