Change:
Once you take a video with cheese (as webm), a few strange things happen: No thumbnails for images or videos will load. Cheese will refuse to close without a 'kill/killall .cheese-wrapped' Errors: video in cheese. cheese via 'Quit' button OR by closing the window Check (cheese will still be running) and taking up quite a bit of CPU. Normal behavior is returned once webm file is moved or deleted. Cheese doesn't understand webm yet tries to record as webm. Then every attempt at loading the webm in the preview pane causes an error. Maybe a dependency issue and we should depend on some webm support library? Or an upstream issue with Cheese itself? System: 16.09.1445. (Flounder); 16.03.885. (Emu) Nix version: nix-env (Nix) 1.11.4; nix-env (Nix) 1.11.2 Nixpkgs version: 16.09.1445.; 16.03.885. Cheese version: 3.20.2; 3.18.1
Updated. Still an issue in 16.09.
I can reproduce the problems with thumbnails and webm-related issues on 17.03 and master. It doesn't seem to crash on exit in my testing. Playing with gets problems with missing to disappear, adding gstreamer bits (like is done in totem or sushi) doesn't seem to be sufficient (I'm no expert here). Related: (?).
I opened an upstream issue:
Running cheese with environment variable revealed missing path to bubblewrap. After patching , user still needs to have thumbnailers ( and ) installed, for now I have them as dependencies like I did in . The infinite loop is still an upstream bug but with thumbnailers, it at least should not appear.

Discussion:
{ stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3 , pkgconfig, gtk3, glib, clutter_gtk, clutter-gst, udev, gst_all_1, itstool <del> , libgudev , adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: </del> <ins> , libgudev, autoreconfHook, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib , libxslt, yelp_tools, gnome_common, gtk_doc , adwaita-icon-theme, librsvg, totem, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: </ins> stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; <del> nativeBuildInputs = [ pkgconfig ]; buildInputs = [ gtk3 glib intltool wrapGAppsHook gnome-video-effects itstool gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer libxml2 </del> <ins> nativeBuildInputs = [ pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib libxslt docbook_xml_dtd_43 docbook_xsl autoreconfHook gtk_doc yelp_tools gnome_common ]; buildInputs = [ gtk3 glib gnome-video-effects gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer </ins> gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good gnome_desktop gst_all_1.gst-plugins-bad clutter_gtk clutter-gst libcanberra_gtk3 libgudev ]; <ins> outputs = [ "out" "man" "devdoc" ]; patches = [ gtk_doc.respect_xml_catalog_files_var_patch ]; preFixup = '' gappsWrapperArgs+=( # Effects --prefix XDG_DATA_DIRS : "${gnome-video-effects}/share" # vp8enc preset --prefix GST_PRESET_PATH : "${gst_all_1.gst-plugins-good}/share/gstreamer-1.0/presets" # Thumbnailers --prefix XDG_DATA_DIRS : "${gdk_pixbuf}/share" --prefix XDG_DATA_DIRS : "${totem}/share" ) ''; </ins> enableParallelBuilding = true; meta = with stdenv.lib; {

<ins> --- a/libgnome-desktop/gnome-desktop-thumbnail-script.c +++ b/libgnome-desktop/gnome-desktop-thumbnail-script.c @@ -504,14 +504,10 @@ g_return_val_if_fail (script->s_infile != NULL, FALSE); add_args (array, -	    "bwrap", -	    "--ro-bind", "/usr", "/usr", -	    "--ro-bind", "/lib", "/lib", -	    "--ro-bind", "/lib64", "/lib64", +	    "@BUBBLEWRAP_BIN@", +      "--ro-bind", "/nix/store", "/nix/store", "--proc", "/proc", "--dev", "/dev", -	    "--symlink", "usr/bin", "/bin", -	    "--symlink", "usr/sbin", "/sbin", "--chdir", "/", "--setenv", "GIO_USE_VFS", "local", "--unshare-all", </ins>

{ stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib , intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland <del> , libseccomp, gobjectIntrospection }: </del> <ins> , libseccomp, bubblewrap, gobjectIntrospection }: </ins> stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src;

enableParallelBuilding = true; <del> nativeBuildInputs = [ pkgconfig ]; buildInputs = [ python libxml2Python libxslt which libX11 xkeyboard_config isocodes itstool wayland gtk3 glib intltool gnome_doc_utils libxkbfile libseccomp gobjectIntrospection ]; </del> <ins> nativeBuildInputs = [ pkgconfig which itstool intltool libxslt gnome_doc_utils gobjectIntrospection ]; buildInputs = [ python libxml2Python libX11 bubblewrap xkeyboard_config isocodes wayland gtk3 glib libxkbfile libseccomp ]; </ins> propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ]; <ins> patches = [ ./bubblewrap-paths.patch ]; postPatch = '' substituteInPlace libgnome-desktop/gnome-desktop-thumbnail-script.c --subst-var-by  BUBBLEWRAP_BIN "${bubblewrap}/bin/bwrap" ''; </ins> meta = with stdenv.lib; { platforms = platforms.linux; maintainers = gnome3.maintainers;

stdenv.mkDerivation rec { name = "gnome-video-effects-${version}"; <del> version = "0.4.1"; </del> <ins> version = "0.4.3"; </ins> src = fetchurl { url = "mirror://gnome/sources/gnome-video-effects/0.4/${name}.tar.xz"; <del> sha256 = "0jl4iny2dqpcgi3sgxzpgnbw0752i8ay3rscp2cgdjlp79ql5gil"; </del> <ins> sha256 = "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"; </ins> }; <del> nativeBuildInputs = [ pkgconfig ]; buildInputs = [ intltool ]; </del> <ins> nativeBuildInputs = [ pkgconfig intltool ]; </ins> meta = with stdenv.lib; { homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects;

}; patches = [ <del> ./respect-xml-catalog-files-var.patch </del> <ins> passthru.respect_xml_catalog_files_var_patch </ins> ]; outputDevdoc = "out";

configureFlags = "--disable-scrollkeeper"; <ins> passthru = { # Consumers are expected to copy the m4 files to their source tree, let them reuse the patch respect_xml_catalog_files_var_patch = ./respect-xml-catalog-files-var.patch; }; </ins> meta = with stdenv.lib; { homepage = https://www.gtk.org/gtk-doc; description = "Tools to extract documentation embedded in GTK+ and GNOME source code";