From d217cad2ac317254351f279929ac009c9e1508d5 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 03:04:31 +0100 Subject: [PATCH 01/10] =?UTF-8?q?gnome3.gnome-video-effects:=200.4.1=20?= =?UTF-8?q?=E2=86=92=200.4.3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix index dfeefe0def86b..486898a4e1f2d 100644 --- a/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix +++ b/pkgs/desktops/gnome-3/misc/gnome-video-effects/default.nix @@ -2,15 +2,14 @@ stdenv.mkDerivation rec { name = "gnome-video-effects-${version}"; - version = "0.4.1"; + version = "0.4.3"; src = fetchurl { url = "mirror://gnome/sources/gnome-video-effects/0.4/${name}.tar.xz"; - sha256 = "0jl4iny2dqpcgi3sgxzpgnbw0752i8ay3rscp2cgdjlp79ql5gil"; + sha256 = "06c2f1kihyhawap1s3zg5w7q7fypsybkp7xry4hxkdz4mpsy0zjs"; }; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ intltool ]; + nativeBuildInputs = [ pkgconfig intltool ]; meta = with stdenv.lib; { homepage = https://wiki.gnome.org/Projects/GnomeVideoEffects; From 9d18aa073d676f749f862413694dfd38b7eca801 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 03:25:39 +0100 Subject: [PATCH 02/10] gnome3.cheese: reorganize build inputs --- pkgs/desktops/gnome-3/apps/cheese/default.nix | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix index 7a4cd0e949568..251d34b4a2347 100644 --- a/pkgs/desktops/gnome-3/apps/cheese/default.nix +++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix @@ -1,14 +1,16 @@ { stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3 , pkgconfig, gtk3, glib, clutter_gtk, clutter-gst, udev, gst_all_1, itstool -, libgudev +, libgudev, vala, appstream-glib , adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ gtk3 glib intltool wrapGAppsHook gnome-video-effects itstool - gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer libxml2 + nativeBuildInputs = [ + pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib + ]; + buildInputs = [ gtk3 glib gnome-video-effects + gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer 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 ]; From d95052a89633d19b42940e1945a84a1e7192fbca Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 03:26:06 +0100 Subject: [PATCH 03/10] gnome3.cheese: add effects to path --- pkgs/desktops/gnome-3/apps/cheese/default.nix | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix index 251d34b4a2347..826708e8e10dc 100644 --- a/pkgs/desktops/gnome-3/apps/cheese/default.nix +++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix @@ -15,6 +15,13 @@ stdenv.mkDerivation rec { gst_all_1.gst-plugins-bad clutter_gtk clutter-gst libcanberra_gtk3 libgudev ]; + preFixup = '' + gappsWrapperArgs+=( + # Effects + --prefix XDG_DATA_DIRS : "${gnome-video-effects}/share" + ) + ''; + enableParallelBuilding = true; meta = with stdenv.lib; { From a6cd26740baae696115a7b501b6bf449321acebd Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 04:10:47 +0100 Subject: [PATCH 04/10] gtk_doc: propagate the respect-xml-catalog-files-var.patch We are patching the xmlcatalog calls in the JH_CHECK_XML_CATALOG macro to use the XML_CATALOG_FILES environment variable instead of a single central catalog file. Since consumers (libraries or applications) are expected to copy the m4 files to their source tree, we need to patch them separately. The files should be identical, though, so we can reuse the patch for gtk_doc. This commit makes the patch available in passthru so the consumer expressions do not need to maintain the long relative path. --- pkgs/development/tools/documentation/gtk-doc/default.nix | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkgs/development/tools/documentation/gtk-doc/default.nix b/pkgs/development/tools/documentation/gtk-doc/default.nix index 5f31a2dfb7c63..b88b8e3c82a97 100644 --- a/pkgs/development/tools/documentation/gtk-doc/default.nix +++ b/pkgs/development/tools/documentation/gtk-doc/default.nix @@ -11,7 +11,7 @@ stdenv.mkDerivation rec { }; patches = [ - ./respect-xml-catalog-files-var.patch + passthru.respect_xml_catalog_files_var_patch ]; outputDevdoc = "out"; @@ -24,6 +24,11 @@ stdenv.mkDerivation rec { configureFlags = "--disable-scrollkeeper"; + 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; + }; + meta = with stdenv.lib; { homepage = https://www.gtk.org/gtk-doc; description = "Tools to extract documentation embedded in GTK+ and GNOME source code"; From cb447dda85d51d9cc862c856df0094332261fc27 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 03:58:44 +0100 Subject: [PATCH 05/10] gnome3.cheese: build manpage --- pkgs/desktops/gnome-3/apps/cheese/default.nix | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix index 826708e8e10dc..a211c8d18a8ff 100644 --- a/pkgs/desktops/gnome-3/apps/cheese/default.nix +++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix @@ -1,6 +1,7 @@ { stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3 , pkgconfig, gtk3, glib, clutter_gtk, clutter-gst, udev, gst_all_1, itstool -, libgudev, vala, appstream-glib +, libgudev, autoreconfHook, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib +, libxslt, yelp_tools, gnome_common , adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: stdenv.mkDerivation rec { @@ -8,6 +9,8 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib + libxslt docbook_xml_dtd_43 docbook_xsl + autoreconfHook yelp_tools gnome_common ]; buildInputs = [ gtk3 glib gnome-video-effects gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer @@ -15,6 +18,12 @@ stdenv.mkDerivation rec { gst_all_1.gst-plugins-bad clutter_gtk clutter-gst libcanberra_gtk3 libgudev ]; + outputs = [ "out" "man" ]; + + patches = [ + gtk_doc.respect_xml_catalog_files_var_patch + ]; + preFixup = '' gappsWrapperArgs+=( # Effects From 83df26f180d5775f0df8a64dd3c510a8abecd539 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 04:02:10 +0100 Subject: [PATCH 06/10] gnome3.cheese: build devdoc --- pkgs/desktops/gnome-3/apps/cheese/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix index a211c8d18a8ff..466456b050fa0 100644 --- a/pkgs/desktops/gnome-3/apps/cheese/default.nix +++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix @@ -1,7 +1,7 @@ { stdenv, intltool, fetchurl, wrapGAppsHook, gnome-video-effects, libcanberra_gtk3 , pkgconfig, gtk3, glib, clutter_gtk, clutter-gst, udev, gst_all_1, itstool , libgudev, autoreconfHook, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib -, libxslt, yelp_tools, gnome_common +, libxslt, yelp_tools, gnome_common, gtk_doc , adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: stdenv.mkDerivation rec { @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig intltool itstool vala wrapGAppsHook libxml2 appstream-glib libxslt docbook_xml_dtd_43 docbook_xsl - autoreconfHook yelp_tools gnome_common + autoreconfHook gtk_doc yelp_tools gnome_common ]; buildInputs = [ gtk3 glib gnome-video-effects gdk_pixbuf adwaita-icon-theme librsvg udev gst_all_1.gstreamer @@ -18,7 +18,7 @@ stdenv.mkDerivation rec { gst_all_1.gst-plugins-bad clutter_gtk clutter-gst libcanberra_gtk3 libgudev ]; - outputs = [ "out" "man" ]; + outputs = [ "out" "man" "devdoc" ]; patches = [ gtk_doc.respect_xml_catalog_files_var_patch From cc4d5520fb78a13311d9c4ead8cb342cdd12ba67 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 04:53:34 +0100 Subject: [PATCH 07/10] gnome3.cheese: fix missing vp8enc preset Closes: #11634 --- pkgs/desktops/gnome-3/apps/cheese/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix index 466456b050fa0..63e13debd4770 100644 --- a/pkgs/desktops/gnome-3/apps/cheese/default.nix +++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix @@ -28,6 +28,8 @@ stdenv.mkDerivation rec { 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" ) ''; From 129aac73ec45a27dc2de1231a6a8eab88d541246 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 05:49:41 +0100 Subject: [PATCH 08/10] gnome3.gnome_desktop: reorganize build inputs --- pkgs/desktops/gnome-3/core/gnome-desktop/default.nix | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix index e8a7cb8ceb95c..27b6413e16e44 100644 --- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix @@ -10,11 +10,12 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - nativeBuildInputs = [ pkgconfig ]; - buildInputs = [ python libxml2Python libxslt which libX11 - xkeyboard_config isocodes itstool wayland - gtk3 glib intltool gnome_doc_utils libxkbfile - libseccomp gobjectIntrospection ]; + nativeBuildInputs = [ + pkgconfig which itstool intltool libxslt gnome_doc_utils gobjectIntrospection + ]; + buildInputs = [ python libxml2Python libX11 + xkeyboard_config isocodes wayland + gtk3 glib libxkbfile libseccomp ]; propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ]; From f816fe6fd3ff9121862eb849107f3e9dd5e0b42b Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 06:55:00 +0100 Subject: [PATCH 09/10] gnome3.gnome_desktop: fix sandboxing --- .../core/gnome-desktop/bubblewrap-paths.patch | 19 +++++++++++++++++++ .../gnome-3/core/gnome-desktop/default.nix | 13 +++++++++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch b/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch new file mode 100644 index 0000000000000..ee9b012b6e45f --- /dev/null +++ b/pkgs/desktops/gnome-3/core/gnome-desktop/bubblewrap-paths.patch @@ -0,0 +1,19 @@ +--- 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", diff --git a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix index 27b6413e16e44..68ec28e93b6e9 100644 --- a/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-desktop/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, pkgconfig, python, libxml2Python, libxslt, which, libX11, gnome3, gtk3, glib , intltool, gnome_doc_utils, libxkbfile, xkeyboard_config, isocodes, itstool, wayland -, libseccomp, gobjectIntrospection }: +, libseccomp, bubblewrap, gobjectIntrospection }: stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; @@ -13,12 +13,21 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkgconfig which itstool intltool libxslt gnome_doc_utils gobjectIntrospection ]; - buildInputs = [ python libxml2Python libX11 + buildInputs = [ python libxml2Python libX11 bubblewrap xkeyboard_config isocodes wayland gtk3 glib libxkbfile libseccomp ]; propagatedBuildInputs = [ gnome3.gsettings_desktop_schemas ]; + patches = [ + ./bubblewrap-paths.patch + ]; + + postPatch = '' + substituteInPlace libgnome-desktop/gnome-desktop-thumbnail-script.c --subst-var-by \ + BUBBLEWRAP_BIN "${bubblewrap}/bin/bwrap" + ''; + meta = with stdenv.lib; { platforms = platforms.linux; maintainers = gnome3.maintainers; From e53ebf3a31e1e510bcb786a53250ddb8ede90b7e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Sat, 2 Dec 2017 06:56:33 +0100 Subject: [PATCH 10/10] gnome3.cheese: add thumbnailers Without thumbnailers available, cheese loops endlessly. https://github.com/NixOS/nixpkgs/issues/15790 --- pkgs/desktops/gnome-3/apps/cheese/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/gnome-3/apps/cheese/default.nix b/pkgs/desktops/gnome-3/apps/cheese/default.nix index 63e13debd4770..e94a89c7f27cd 100644 --- a/pkgs/desktops/gnome-3/apps/cheese/default.nix +++ b/pkgs/desktops/gnome-3/apps/cheese/default.nix @@ -2,7 +2,7 @@ , pkgconfig, gtk3, glib, clutter_gtk, clutter-gst, udev, gst_all_1, itstool , libgudev, autoreconfHook, vala, docbook_xml_dtd_43, docbook_xsl, appstream-glib , libxslt, yelp_tools, gnome_common, gtk_doc -, adwaita-icon-theme, librsvg, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: +, adwaita-icon-theme, librsvg, totem, gdk_pixbuf, gnome3, gnome_desktop, libxml2 }: stdenv.mkDerivation rec { inherit (import ./src.nix fetchurl) name src; @@ -30,6 +30,9 @@ stdenv.mkDerivation rec { --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" ) '';