From 2871acd8c372cba99175c81633b1ea202a0214b5 Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 15 Mar 2018 13:25:07 +0100 Subject: gnome3.gnome-shell: fix build --- pkgs/desktops/gnome-3/core/gnome-shell/default.nix | 64 ++++++++++++++-------- .../gnome-3/core/gnome-shell/fix-paths.patch | 29 ++++------ 2 files changed, 52 insertions(+), 41 deletions(-) (limited to 'pkgs/desktops/gnome-3') diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix index 4ead2112349..7803bfb638d 100644 --- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix +++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix @@ -1,10 +1,10 @@ -{ fetchurl, fetchpatch, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, libcroco, gettext, libsecret +{ fetchurl, fetchpatch, substituteAll, stdenv, meson, ninja, pkgconfig, gnome3, json-glib, libcroco, gettext, libsecret , python3Packages, libsoup, polkit, clutter, networkmanager, docbook_xsl , docbook_xsl_ns, at-spi2-core -, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, p11-kit, unzip, glibcLocales -, sqlite, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42 +, libstartup_notification, telepathy-glib, telepathy-logger, libXtst, unzip, glibcLocales, shared-mime-info +, libgweather, libcanberra-gtk3, librsvg, geoclue2, perl, docbook_xml_dtd_42 , libpulseaudio, libical, nss, gobjectIntrospection, gstreamer, wrapGAppsHook , accountsservice, gdk_pixbuf, gdm, upower, ibus, networkmanagerapplet -, gst_all_1 }: +, sassc, systemd, gst_all_1 }: # http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/gnome-base/gnome-shell/gnome-shell-3.10.2.1.ebuild?revision=1.3&view=markup @@ -25,20 +25,24 @@ in stdenv.mkDerivation rec { LANG = "en_US.UTF-8"; - nativeBuildInputs = [ meson ninja gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales ]; - buildInputs = with gnome3; - [ gsettings-desktop-schemas gnome-keyring gnome-menus glib gcr json-glib accountsservice - libcroco libsecret pkgconfig libsoup polkit gdk_pixbuf librsvg - clutter networkmanager libstartup_notification telepathy-glib - libXtst p11-kit networkmanagerapplet gjs mutter libpulseaudio caribou evolution-data-server - libical nss gtk gstreamer gdm - libcanberra-gtk3 gnome-control-center geoclue2 - defaultIconTheme sqlite gnome3.gnome-bluetooth - libgweather # not declared at build time, but typelib is needed at runtime - gnome3.gnome-clocks # schemas needed - at-spi2-core upower ibus gnome-desktop telepathy-logger gnome3.gnome-settings-daemon - gst_all_1.gst-plugins-good # recording - gobjectIntrospection (stdenv.lib.getLib dconf) ]; + nativeBuildInputs = [ + meson ninja pkgconfig gettext docbook_xsl docbook_xsl_ns docbook_xml_dtd_42 perl wrapGAppsHook glibcLocales + sassc + ]; + buildInputs = with gnome3; [ + systemd caribou + gsettings-desktop-schemas gnome-keyring glib gcr json-glib accountsservice + libcroco libsecret libsoup polkit gdk_pixbuf librsvg + clutter networkmanager libstartup_notification telepathy-glib + libXtst gjs mutter libpulseaudio evolution-data-server + libical gtk gstreamer gdm libcanberra-gtk3 geoclue2 + defaultIconTheme gnome3.gnome-bluetooth + libgweather # not declared at build time, but typelib is needed at runtime + gnome3.gnome-clocks # schemas needed + at-spi2-core upower ibus gnome-desktop telepathy-logger gnome3.gnome-settings-daemon + gst_all_1.gst-plugins-good # recording + gobjectIntrospection + ]; propagatedUserEnvPkgs = [ # Needed to support on-screen keyboard used with touch screen devices # see https://github.com/NixOS/nixpkgs/issues/25968 @@ -51,7 +55,10 @@ in stdenv.mkDerivation rec { url = https://bug787864.bugzilla-attachments.gnome.org/attachment.cgi?id=360016; sha256 = "1dmahd8ysbzh33rxglba0fbq127aw9h14cl2a2bw9913vjxhxijm"; }) - ./fix-paths.patch + (substituteAll { + src = ./fix-paths.patch; + inherit unzip; + }) ]; postPatch = '' @@ -59,23 +66,34 @@ in stdenv.mkDerivation rec { substituteInPlace src/gnome-shell-extension-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python" substituteInPlace src/gnome-shell-perf-tool.in --replace "@PYTHON@" "${pythonEnv}/bin/python" - substituteInPlace js/ui/extensionDownloader.js --replace "unzip" "${unzip}/bin/unzip" ''; postInstall = '' glib-compile-schemas $out/share/glib-2.0/schemas ''; - enableParallelBuilding = true; + preFixup = '' + gappsWrapperArgs+=( + # Until glib’s xdgmime is patched + # Fixes “Failed to load resource:///org/gnome/shell/theme/noise-texture.png: Unrecognized image file format” + --prefix XDG_DATA_DIRS : "${shared-mime-info}/share" + ) + ''; passthru = { mozillaPlugin = "/lib/mozilla/plugins"; - updateScript = gnome3.updateScript { packageName = "gnome-shell"; attrPath = "gnome3.gnome-shell"; }; + updateScript = gnome3.updateScript { + packageName = "gnome-shell"; + attrPath = "gnome3.gnome-shell"; + }; }; meta = with stdenv.lib; { - platforms = platforms.linux; + description = "Core user interface for the GNOME 3 desktop"; + homepage = https://wiki.gnome.org/Projects/GnomeShell; + license = licenses.gpl2Plus; maintainers = gnome3.maintainers; + platforms = platforms.linux; }; } diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch index b24049f9b9f..7b7ff85a7c8 100644 --- a/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch +++ b/pkgs/desktops/gnome-3/core/gnome-shell/fix-paths.patch @@ -1,18 +1,11 @@ -diff --git a/meson.build b/meson.build -index 4c1f5c63b..a9edb8795 100644 ---- a/meson.build -+++ b/meson.build -@@ -59,12 +59,7 @@ servicedir = join_paths(datadir, 'dbus-1', 'services') - - plugindir = get_variable('BROWSER_PLUGIN_DIR', mozplugindir) - --keybindings_dep = dependency('gnome-keybindings', required: false) --if keybindings_dep.found() -- keysdir = keybindings_dep.get_pkgconfig_variable('keysdir') --else -- keysdir = join_paths(datadir, 'gnome-control-center', 'keybindings') --endif -+keysdir = join_paths(datadir, 'gnome-control-center', 'keybindings') - - atk_bridge_dep = dependency('atk-bridge-2.0') - canberra_dep = dependency('libcanberra') +--- a/js/ui/extensionDownloader.js ++++ b/js/ui/extensionDownloader.js +@@ -86,7 +86,7 @@ + stream.output_stream.write_bytes(contents, null); + stream.close(null); + let [success, pid] = GLib.spawn_async(null, +- ['unzip', '-uod', dir.get_path(), '--', file.get_path()], ++ ['@unzip@/bin/unzip', '-uod', dir.get_path(), '--', file.get_path()], + null, + GLib.SpawnFlags.SEARCH_PATH | GLib.SpawnFlags.DO_NOT_REAP_CHILD, + null); -- cgit 1.4.1