about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/audio/lollypop/default.nix4
-rw-r--r--pkgs/applications/audio/vocal/default.nix4
-rw-r--r--pkgs/applications/editors/quilter/default.nix4
-rw-r--r--pkgs/applications/graphics/fondo/default.nix4
-rw-r--r--pkgs/applications/graphics/freecad/default.nix4
-rw-r--r--pkgs/applications/misc/prusa-slicer/default.nix89
-rw-r--r--pkgs/applications/misc/slic3r/prusa3d.nix147
-rw-r--r--pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix4
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch323
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch89
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch38
-rw-r--r--pkgs/desktops/deepin/dde-file-manager/default.nix251
-rw-r--r--pkgs/desktops/deepin/deepin-movie-reborn/default.nix2
-rw-r--r--pkgs/desktops/deepin/default.nix1
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calculator/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-calendar/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-files/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-photos/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-terminal/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/elementary-videos/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix5
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix3
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix6
-rw-r--r--pkgs/desktops/pantheon/apps/switchboard/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/gala/default.nix5
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix4
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix3
-rw-r--r--pkgs/desktops/pantheon/desktop/wingpanel/default.nix7
-rw-r--r--pkgs/desktops/pantheon/granite/default.nix2
-rw-r--r--pkgs/desktops/pantheon/services/cerbere/default.nix3
-rw-r--r--pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix3
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix9
-rw-r--r--pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch30
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix3
-rw-r--r--pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix3
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix1
-rw-r--r--pkgs/development/haskell-modules/patches/insert-ordered-containers-fix-test.patch25
-rw-r--r--pkgs/development/libraries/mpich/default.nix4
-rw-r--r--pkgs/development/tools/rust/cargo-make/default.nix10
-rw-r--r--pkgs/misc/lilypond/default.nix36
-rw-r--r--pkgs/misc/lilypond/fonts.nix44
-rw-r--r--pkgs/misc/lilypond/unstable.nix35
-rw-r--r--pkgs/misc/lilypond/with-fonts.nix37
-rw-r--r--pkgs/misc/vim-plugins/generated.nix105
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/servers/jellyfin/default.nix4
-rw-r--r--pkgs/tools/graphics/wallutils/default.nix6
-rw-r--r--pkgs/tools/system/throttled/default.nix43
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix12
74 files changed, 1072 insertions, 448 deletions
diff --git a/pkgs/applications/audio/lollypop/default.nix b/pkgs/applications/audio/lollypop/default.nix
index c12ea8851679..45fc05623372 100644
--- a/pkgs/applications/audio/lollypop/default.nix
+++ b/pkgs/applications/audio/lollypop/default.nix
@@ -21,7 +21,7 @@
 
 python3.pkgs.buildPythonApplication rec  {
   pname = "lollypop";
-  version = "1.0.10";
+  version = "1.0.12";
 
   format = "other";
   doCheck = false;
@@ -30,7 +30,7 @@ python3.pkgs.buildPythonApplication rec  {
     url = "https://gitlab.gnome.org/World/lollypop";
     rev = "refs/tags/${version}";
     fetchSubmodules = true;
-    sha256 = "118z1qhvpv7x5n63lpm4mf81pmv7gd450sa55i68mnjvry93h9h5";
+    sha256 = "0jc40p2yw3zp035c87crav2lq0iraf35ag9w26vzmbjvgpvwzb86";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/audio/vocal/default.nix b/pkgs/applications/audio/vocal/default.nix
index c89fe9ef26e9..b6ba5ec349a1 100644
--- a/pkgs/applications/audio/vocal/default.nix
+++ b/pkgs/applications/audio/vocal/default.nix
@@ -22,13 +22,13 @@
 
 stdenv.mkDerivation rec {
   pname = "vocal";
-  version = "2.4.1";
+  version = "2.4.2";
 
   src = fetchFromGitHub {
     owner = "needle-and-thread";
     repo = pname;
     rev = version;
-    sha256 = "0jz72nmc6qmadsvcpk339x1fm4wg6yx9r1bagr7mcgnz3x5papnr";
+    sha256 = "1c4n89rdl9r13kmmh2qymmy9sa6shjwai7df48k2kfn0pnzq5mad";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/editors/quilter/default.nix b/pkgs/applications/editors/quilter/default.nix
index b22b04bac655..c27a85d260b6 100644
--- a/pkgs/applications/editors/quilter/default.nix
+++ b/pkgs/applications/editors/quilter/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   pname = "quilter";
-  version = "1.8.4";
+  version = "1.9.1";
 
   src = fetchFromGitHub {
     owner = "lainsce";
     repo = pname;
     rev = version;
-    sha256 = "14qbkkz1l4zj6kwds5d82swnh3ynj6diyvjl0pafgp5i1i27j4rh";
+    sha256 = "1sjk8n0y9039xs47zw9a4l4vd36vkm30gf6x3fzaib81hnh1fx7v";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/fondo/default.nix b/pkgs/applications/graphics/fondo/default.nix
index af6eaa2904ae..f7d5f099f84c 100644
--- a/pkgs/applications/graphics/fondo/default.nix
+++ b/pkgs/applications/graphics/fondo/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   pname = "fondo";
-  version = "1.2.2";
+  version = "1.3.0";
 
   src = fetchFromGitHub {
     owner = "calo001";
     repo = pname;
     rev = version;
-    sha256 = "0mh3s2726zf3va6nj7kj2nbmq5q65xrbnsllss3sqf8a838zqfn6";
+    sha256 = "1xflkqzdbyvdjybarvb13vw6p8f2xjlvpr155yaxgjjzjcr1j86y";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/applications/graphics/freecad/default.nix b/pkgs/applications/graphics/freecad/default.nix
index 298b03cf4302..92fc74242a24 100644
--- a/pkgs/applications/graphics/freecad/default.nix
+++ b/pkgs/applications/graphics/freecad/default.nix
@@ -38,6 +38,10 @@ in stdenv.mkDerivation rec {
     wrapProgram $out/bin/FreeCAD --prefix PYTHONPATH : $PYTHONPATH \
       --set COIN_GL_NO_CURRENT_CONTEXT_CHECK 1
   '';
+
+  postFixup = ''
+    mv $out/share/doc $out
+  '';
     
   meta = with stdenv.lib; {
     description = "General purpose Open Source 3D CAD/MCAD/CAx/CAE/PLM modeler";
diff --git a/pkgs/applications/misc/prusa-slicer/default.nix b/pkgs/applications/misc/prusa-slicer/default.nix
new file mode 100644
index 000000000000..cc6f63c0960b
--- /dev/null
+++ b/pkgs/applications/misc/prusa-slicer/default.nix
@@ -0,0 +1,89 @@
+{ stdenv, lib, fetchFromGitHub, makeWrapper, cmake, pkgconfig
+, boost, curl, expat, glew, libpng, tbb, wxGTK30
+, gtest, nlopt, xorg, makeDesktopItem
+}:
+let
+  nloptVersion = if lib.hasAttr "version" nlopt
+                 then lib.getAttr "version" nlopt
+                 else "2.4";
+in
+stdenv.mkDerivation rec {
+  name = "prusa-slicer-${version}";
+  version = "2.0.0";
+
+  enableParallelBuilding = true;
+
+  nativeBuildInputs = [
+    cmake
+    makeWrapper
+    pkgconfig
+  ];
+
+  # We could add Eigen, but it doesn't currently compile with the version in
+  # nixpkgs.
+  buildInputs = [
+    boost
+    curl
+    expat
+    glew
+    libpng
+    tbb
+    wxGTK30
+    xorg.libX11
+  ] ++ checkInputs;
+
+  checkInputs = [ gtest ];
+
+  # The build system uses custom logic - defined in
+  # xs/src/libnest2d/cmake_modules/FindNLopt.cmake in the package source -
+  # for finding the nlopt library, which doesn't pick up the package in the nix store.
+  # We need to set the path via the NLOPT environment variable instead.
+  NLOPT = "${nlopt}";
+
+  prePatch = ''
+    # In nix ioctls.h isn't available from the standard kernel-headers package
+    # on other distributions. As the copy in glibc seems to be identical to the
+    # one in the kernel, we use that one instead.
+    sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' src/libslic3r/GCodeSender.cpp
+  '' + lib.optionalString (lib.versionOlder "2.5" nloptVersion) ''
+    # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
+    # now seems to be integrated into the main lib.
+    sed -i 's|nlopt_cxx|nlopt|g' src/libnest2d/cmake_modules/FindNLopt.cmake
+  '';
+
+  src = fetchFromGitHub {
+    owner = "prusa3d";
+    repo = "PrusaSlicer";
+    sha256 = "135wn2sza2f2kvbja1haxil5kx1b74lc1i7dsa35i1y3phabykhz";
+    rev = "version_${version}";
+  };
+
+  cmakeFlags = [
+    "-DSLIC3R_FHS=1"
+    "-DSLIC3R_WX_STABLE=1"  # necessary when compiling against wxGTK 3.0
+  ];
+
+  postInstall = ''
+    mkdir -p "$out/share/pixmaps/"
+    ln -s "$out/share/PrusaSlicer/icons/PrusaSlicer.png" "$out/share/pixmaps/PrusaSlicer.png"
+    mkdir -p "$out/share/applications"
+    cp "$desktopItem"/share/applications/* "$out/share/applications/"
+  '';
+
+  desktopItem = makeDesktopItem {
+    name = "PrusaSlicer";
+    exec = "prusa-slicer";
+    icon = "PrusaSlicer";
+    comment = "G-code generator for 3D printers";
+    desktopName = "PrusaSlicer";
+    genericName = "3D printer tool";
+    categories = "Application;Development;";
+  };
+
+  meta = with stdenv.lib; {
+    description = "G-code generator for 3D printer";
+    homepage = https://github.com/prusa3d/PrusaSlicer;
+    license = licenses.agpl3;
+    maintainers = with maintainers; [ tweber ];
+  };
+}
diff --git a/pkgs/applications/misc/slic3r/prusa3d.nix b/pkgs/applications/misc/slic3r/prusa3d.nix
deleted file mode 100644
index 1f0a3a71be8b..000000000000
--- a/pkgs/applications/misc/slic3r/prusa3d.nix
+++ /dev/null
@@ -1,147 +0,0 @@
-{ stdenv, lib, fetchFromGitHub, makeWrapper, which, cmake, perl, perlPackages,
-  boost, tbb, wxGTK30, pkgconfig, gtk3, fetchurl, gtk2, libGLU,
-  glew, eigen, curl, gtest, nlopt, pcre, xorg, makeDesktopItem }:
-let
-  AlienWxWidgets = perlPackages.buildPerlPackage rec {
-    name = "Alien-wxWidgets-0.69";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MD/MDOOTSON/${name}.tar.gz";
-      sha256 = "075m880klf66pbcfk0la2nl60vd37jljizqndrklh5y4zvzdy1nr";
-    };
-    propagatedBuildInputs = [
-      pkgconfig perlPackages.ModulePluggable perlPackages.ModuleBuild
-      gtk2 gtk3 wxGTK30
-    ];
-  };
-
-  Wx = perlPackages.Wx.overrideAttrs (oldAttrs: {
-    propagatedBuildInputs = [
-      perlPackages.ExtUtilsXSpp
-      AlienWxWidgets
-    ];
-  });
-
-  WxGLCanvas = perlPackages.buildPerlPackage rec {
-    name = "Wx-GLCanvas-0.09";
-    src = fetchurl {
-      url = "mirror://cpan/authors/id/M/MB/MBARBON/${name}.tar.gz";
-      sha256 = "1q4gvj4gdx4l8k4mkgiix24p9mdfy1miv7abidf0my3gy2gw5lka";
-    };
-    propagatedBuildInputs = [ Wx perlPackages.OpenGL libGLU ];
-    doCheck = false;
-  };
-in
-stdenv.mkDerivation rec {
-  name = "slic3r-prusa-edition-${version}";
-  version = "1.41.3";
-
-  enableParallelBuilding = true;
-
-  nativeBuildInputs = [
-    cmake
-    makeWrapper
-  ];
-
-  buildInputs = [
-    curl
-    eigen
-    glew
-    pcre
-    perl
-    tbb
-    which
-    Wx
-    WxGLCanvas
-    xorg.libXdmcp
-    xorg.libpthreadstubs
-  ] ++ checkInputs ++ (with perlPackages; [
-    boost
-    ClassXSAccessor
-    EncodeLocale
-    ExtUtilsMakeMaker
-    ExtUtilsTypemapsDefault
-    ExtUtilsXSpp
-    GrowlGNTP
-    ImportInto
-    IOStringy
-    locallib
-    LWP
-    MathClipper
-    MathConvexHullMonotoneChain
-    MathGeometryVoronoi
-    MathPlanePath
-    ModuleBuildWithXSpp
-    Moo
-    NetDBus
-    OpenGL
-    XMLSAX
-  ]);
-
-  checkInputs = [ gtest ];
-
-  # The build system uses custom logic - defined in
-  # xs/src/libnest2d/cmake_modules/FindNLopt.cmake in the package source -
-  # for finding the nlopt library, which doesn't pick up the package in the nix store.
-  # We need to set the path via the NLOPT environment variable instead.
-  NLOPT = "${nlopt}";
-
-  prePatch = ''
-    # In nix ioctls.h isn't available from the standard kernel-headers package
-    # on other distributions. As the copy in glibc seems to be identical to the
-    # one in the kernel, we use that one instead.
-    sed -i 's|"/usr/include/asm-generic/ioctls.h"|<asm-generic/ioctls.h>|g' xs/src/libslic3r/GCodeSender.cpp
-
-    # PERL_VENDORARCH and PERL_VENDORLIB aren't set correctly by the build
-    # system, so we have to override them. Setting them as environment variables
-    # doesn't work though, so substituting the paths directly in CMakeLists.txt
-    # seems to be the easiest way.
-    sed -i "s|\''${PERL_VENDORARCH}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
-    sed -i "s|\''${PERL_VENDORLIB}|$out/lib/slic3r-prusa3d|g" xs/CMakeLists.txt
-  '' + lib.optionalString (lib.versionOlder "2.5" nlopt.version) ''
-    # Since version 2.5.0 of nlopt we need to link to libnlopt, as libnlopt_cxx
-    # now seems to be integrated into the main lib.
-    sed -i 's|nlopt_cxx|nlopt|g' xs/src/libnest2d/cmake_modules/FindNLopt.cmake
-  '';
-
-  postInstall = ''
-    echo 'postInstall'
-    wrapProgram "$out/bin/slic3r-prusa3d" \
-    --prefix PERL5LIB : "$out/lib/slic3r-prusa3d:$PERL5LIB"
-
-    # it seems we need to copy the icons...
-    mkdir -p $out/bin/var
-    cp -r ../resources/icons/* $out/bin/var/
-    cp -r ../resources $out/bin/
-
-
-    mkdir -p "$out/share/pixmaps/"
-    ln -s "$out/bin/var/Slic3r.png" "$out/share/pixmaps/slic3r-prusa.png"
-    mkdir -p "$out/share/applications"
-    cp "$desktopItem"/share/applications/* "$out/share/applications/"
-  '';
-
-  src = fetchFromGitHub {
-    owner = "prusa3d";
-    repo = "Slic3r";
-    sha256 = "145dfsv610c5p0sngab9z7lzbk5383pq9l26mrrpf1wxdlxgljpl";
-    rev = "version_${version}";
-  };
-
-  desktopItem = makeDesktopItem {
-    name = "slic3r-Prusa-Edition";
-    exec = "slic3r-prusa3d";
-    icon = "slic3r-prusa";
-    comment = "G-code generator for 3D printers";
-    desktopName = "Slic3r Prusa Edition";
-    genericName = "3D printer tool";
-    categories = "Application;Development;";
-  };
-
-  meta = with stdenv.lib; {
-    description = "G-code generator for 3D printer";
-    homepage = https://github.com/prusa3d/Slic3r;
-    license = licenses.agpl3;
-    maintainers = with maintainers; [ tweber ];
-    broken = stdenv.hostPlatform.isAarch64;
-  };
-}
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index f906d4712f99..fa7afa2f97f8 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -4,8 +4,8 @@ let
   mkTelegram = args: qt5.callPackage (import ./generic.nix args) { };
   stableVersion = {
     stable = true;
-    version = "1.7.3";
-    sha256Hash = "0y0chdfxq75ydx8lz40yfpbx8ycm8vdkl5dvll6glxjq5m21kxf9";
+    version = "1.7.7";
+    sha256Hash = "0w3jq02qzpx58xlmwaj0lgav5lx6s9hdidnq9v1npp4qmpdnsn75";
     # svn log svn://svn.archlinux.org/community/telegram-desktop/trunk
     archPatchesRevision = "476826";
     archPatchesHash = "1vnlvba60hxd5jlh0fvsa50xmb9xgcphdsx6j1ld7f12m7ik68zr";
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
new file mode 100644
index 000000000000..253a67b04ec7
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-mime-cache-paths.patch
@@ -0,0 +1,323 @@
+From 29f4ad88e2294ae70b10180e7361d135c4e5c896 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Mon, 13 May 2019 00:09:42 -0300
+Subject: [PATCH 2/2] Use XDG to look for mime cache
+
+---
+ .../shutil/mimesappsmanager.cpp               | 230 ++++++++++--------
+ .../shutil/mimesappsmanager.h                 |   6 +-
+ 2 files changed, 125 insertions(+), 111 deletions(-)
+
+diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
+index c9e53630..7a21df51 100644
+--- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
++++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
+@@ -552,14 +552,20 @@ QString MimesAppsManager::getMimeAppsCacheFile()
+     return QString("%1/%2").arg(DFMStandardPaths::location(DFMStandardPaths::CachePath), "MimeApps.json");
+ }
+ 
+-QString MimesAppsManager::getMimeInfoCacheFilePath()
++QStringList MimesAppsManager::getMimeInfoCacheFilePath()
+ {
+-    return "/usr/share/applications/mimeinfo.cache";
++    QStringList paths;
++    for (const QString dir : getMimeInfoCacheFileRootPath() )
++       paths.append(dir + QDir::separator() + "mimeinfo.cache");
++    qDebug() << "getMimeInfoCacheFilePath: " << paths;
++    return paths;
+ }
+ 
+-QString MimesAppsManager::getMimeInfoCacheFileRootPath()
++QStringList MimesAppsManager::getMimeInfoCacheFileRootPath()
+ {
+-    return "/usr/share/applications";
++    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
++    qDebug() << "getMimeInfoCacheFileRootPath: " << paths;
++    return paths;
+ }
+ 
+ QString MimesAppsManager::getDesktopFilesCacheFile()
+@@ -574,23 +580,27 @@ QString MimesAppsManager::getDesktopIconsCacheFile()
+ 
+ QStringList MimesAppsManager::getDesktopFiles()
+ {
+-      QStringList desktopFiles;
++    QStringList desktopFiles;
+ 
+-      foreach (QString desktopFolder, getApplicationsFolders()) {
+-          QDirIterator it(desktopFolder, QStringList("*.desktop"),
+-                          QDir::Files | QDir::NoDotAndDotDot,
+-                          QDirIterator::Subdirectories);
+-          while (it.hasNext()) {
+-            it.next();
+-            desktopFiles.append(it.filePath());
+-          }
+-      }
+-      return desktopFiles;
++    foreach (QString desktopFolder, getApplicationsFolders()) {
++        QDirIterator it(desktopFolder, QStringList("*.desktop"),
++                        QDir::Files | QDir::NoDotAndDotDot,
++                        QDirIterator::Subdirectories);
++        while (it.hasNext()) {
++          it.next();
++          desktopFiles.append(it.filePath());
++        }
++    }
++    return desktopFiles;
+ }
+ 
+-QString MimesAppsManager::getDDEMimeTypeFile()
++QStringList MimesAppsManager::getDDEMimeTypeFile()
+ {
+-    return QString("%1/%2/%3").arg(getMimeInfoCacheFileRootPath(), "deepin", "dde-mimetype.list");
++    QStringList paths;
++    for (const QString path : getMimeInfoCacheFileRootPath())
++       paths.append(QString("%1/%2/%3").arg(path, "deepin", "dde-mimetype.list"));
++    qDebug() << "getDDEMimeTypeFile: " << paths;
++    return paths;
+ }
+ 
+ QMap<QString, DesktopFile> MimesAppsManager::getDesktopObjs()
+@@ -663,124 +673,128 @@ void MimesAppsManager::initMimeTypeApps()
+         MimeApps.insert(key, orderApps);
+     }
+ 
+-    //check mime apps from cache
+-    QFile f(getMimeInfoCacheFilePath());
+-    if(!f.open(QIODevice::ReadOnly)){
+-        qDebug () << "failed to read mime info cache file:" << f.errorString();
+-        return;
+-    }
+-
+     QStringList audioDesktopList;
+     QStringList imageDeksopList;
+     QStringList textDekstopList;
+     QStringList videoDesktopList;
+ 
+-    while (!f.atEnd()) {
+-        QString data = f.readLine();
+-        QString _desktops = data.split("=").last();
+-        QString mimeType = data.split("=").first();
+-        QStringList desktops = _desktops.split(";");
+-
+-        foreach (const QString desktop, desktops) {
+-            if(desktop.isEmpty() || audioDesktopList.contains(desktop))
+-                continue;
++    //check mime apps from cache
++    for (const QString path : getMimeInfoCacheFilePath()) {
++        QFile f(path);
++        if(!f.open(QIODevice::ReadOnly)){
++            qDebug () << "failed to read mime info cache file:" << f.errorString();
++            return;
++        }
+ 
+-            if(mimeType.startsWith("audio")){
+-                if(!audioDesktopList.contains(desktop))
+-                    audioDesktopList << desktop;
+-            } else if(mimeType.startsWith("image")){
+-                if(!imageDeksopList.contains(desktop))
+-                    imageDeksopList << desktop;
+-            } else if(mimeType.startsWith("text")){
+-                if(!textDekstopList.contains(desktop))
+-                    textDekstopList << desktop;
+-            } else if(mimeType.startsWith("video")){
+-                if(!videoDesktopList.contains(desktop))
+-                    videoDesktopList << desktop;
++        while (!f.atEnd()) {
++            QString data = f.readLine();
++            QString _desktops = data.split("=").last();
++            QString mimeType = data.split("=").first();
++            QStringList desktops = _desktops.split(";");
++
++            foreach (const QString desktop, desktops) {
++                if(desktop.isEmpty() || audioDesktopList.contains(desktop))
++                    continue;
++
++                if(mimeType.startsWith("audio")){
++                    if(!audioDesktopList.contains(desktop))
++                        audioDesktopList << desktop;
++                } else if(mimeType.startsWith("image")){
++                    if(!imageDeksopList.contains(desktop))
++                        imageDeksopList << desktop;
++                } else if(mimeType.startsWith("text")){
++                    if(!textDekstopList.contains(desktop))
++                        textDekstopList << desktop;
++                } else if(mimeType.startsWith("video")){
++                    if(!videoDesktopList.contains(desktop))
++                        videoDesktopList << desktop;
++                }
+             }
+         }
++        f.close();
+     }
+-    f.close();
+ 
+-    const QString mimeInfoCacheRootPath = getMimeInfoCacheFileRootPath();
+-    foreach (QString desktop, audioDesktopList) {
+-        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
+-        if(!QFile::exists(path))
+-            continue;
+-        DesktopFile df(path);
+-        AudioMimeApps.insert(path, df);
+-    }
++    for (const QString mimeInfoCacheRootPath : getMimeInfoCacheFileRootPath()) {
++        foreach (QString desktop, audioDesktopList) {
++            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
++            if(!QFile::exists(path))
++                continue;
++            DesktopFile df(path);
++            AudioMimeApps.insert(path, df);
++        }
+ 
+-    foreach (QString desktop, imageDeksopList) {
+-        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
+-        if(!QFile::exists(path))
+-            continue;
+-        DesktopFile df(path);
+-        ImageMimeApps.insert(path, df);
+-    }
++        foreach (QString desktop, imageDeksopList) {
++            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
++            if(!QFile::exists(path))
++                continue;
++            DesktopFile df(path);
++            ImageMimeApps.insert(path, df);
++        }
+ 
+-    foreach (QString desktop, textDekstopList) {
+-        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
+-        if(!QFile::exists(path))
+-            continue;
+-        DesktopFile df(path);
+-        TextMimeApps.insert(path, df);
+-    }
++        foreach (QString desktop, textDekstopList) {
++            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
++            if(!QFile::exists(path))
++                continue;
++            DesktopFile df(path);
++            TextMimeApps.insert(path, df);
++        }
+ 
+-    foreach (QString desktop, videoDesktopList) {
+-        const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
+-        if(!QFile::exists(path))
+-            continue;
+-        DesktopFile df(path);
+-        VideoMimeApps.insert(path, df);
++        foreach (QString desktop, videoDesktopList) {
++            const QString path = QString("%1/%2").arg(mimeInfoCacheRootPath,desktop);
++            if(!QFile::exists(path))
++                continue;
++            DesktopFile df(path);
++            VideoMimeApps.insert(path, df);
++        }
+     }
+-
+     return;
+ }
+ 
+ void MimesAppsManager::loadDDEMimeTypes()
+ {
+-    QSettings settings(getDDEMimeTypeFile(), QSettings::IniFormat);
+-    qDebug() << settings.childGroups();
++    for (const QString path : getDDEMimeTypeFile()) {
++        QSettings settings(path, QSettings::IniFormat);
++        qDebug() << settings.childGroups();
+ 
+-    QFile file(getDDEMimeTypeFile());
+-    if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
+-        return;
+-    }
++        QFile file(path);
++        if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
++            continue;
++        }
++
++        // Read propeties
++        QTextStream in(&file);
++        QString desktopKey;
++        while (!in.atEnd()) {
+ 
+-    // Read propeties
+-    QTextStream in(&file);
+-    QString desktopKey;
+-    while (!in.atEnd()) {
++          // Read new line
++          QString line = in.readLine();
+ 
+-      // Read new line
+-      QString line = in.readLine();
++          // Skip empty line or line with invalid format
++          if (line.trimmed().isEmpty()) {
++            continue;
++          }
+ 
+-      // Skip empty line or line with invalid format
+-      if (line.trimmed().isEmpty()) {
+-        continue;
+-      }
++          // Read group
++          // NOTE: symbols '[' and ']' can be found not only in group names, but
++          // only group can start with '['
+ 
+-      // Read group
+-      // NOTE: symbols '[' and ']' can be found not only in group names, but
+-      // only group can start with '['
++          if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
++                QString tmp = line.trimmed().replace("[", "").replace("]", "");
++                desktopKey = tmp;
++                continue;
++          }
+ 
+-      if (line.trimmed().startsWith("[") && line.trimmed().endsWith("]")) {
+-            QString tmp = line.trimmed().replace("[", "").replace("]", "");
+-            desktopKey = tmp;
+-            continue;
+-      }
+-
+-      // If we are in correct group and line contains assignment then read data
+-      int first_equal = line.indexOf('=');
+-      if (!desktopKey.isEmpty() && first_equal >= 0) {
+-            QString value = line.mid(first_equal + 1);
+-            QStringList mimetypes = value.split(";");
+-            DDE_MimeTypes.insert(desktopKey, mimetypes);
+-            desktopKey.clear();
++          // If we are in correct group and line contains assignment then read data
++          int first_equal = line.indexOf('=');
++          if (!desktopKey.isEmpty() && first_equal >= 0) {
++                QString value = line.mid(first_equal + 1);
++                QStringList mimetypes = value.split(";");
++                DDE_MimeTypes.insert(desktopKey, mimetypes);
++                desktopKey.clear();
++            }
+         }
++        file.close();
+     }
+-    file.close();
+ }
+ 
+ bool MimesAppsManager::lessByDateTime(const QFileInfo &f1, const QFileInfo &f2)
+diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.h b/dde-file-manager-lib/shutil/mimesappsmanager.h
+index 223c80aa..00a61302 100644
+--- a/dde-file-manager-lib/shutil/mimesappsmanager.h
++++ b/dde-file-manager-lib/shutil/mimesappsmanager.h
+@@ -101,12 +101,12 @@ public:
+ 
+     static QStringList getApplicationsFolders();
+     static QString getMimeAppsCacheFile();
+-    static QString getMimeInfoCacheFilePath();
+-    static QString getMimeInfoCacheFileRootPath();
++    static QStringList getMimeInfoCacheFilePath();
++    static QStringList getMimeInfoCacheFileRootPath();
+     static QString getDesktopFilesCacheFile();
+     static QString getDesktopIconsCacheFile();
+     static QStringList getDesktopFiles();
+-    static QString getDDEMimeTypeFile();
++    static QStringList getDDEMimeTypeFile();
+     static QMap<QString, DesktopFile> getDesktopObjs();
+     static void initMimeTypeApps();
+     static void loadDDEMimeTypes();
+-- 
+2.21.0
+
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
new file mode 100644
index 000000000000..3ced15e7e5a4
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.fix-paths.patch
@@ -0,0 +1,89 @@
+From e68d983a6befd223087916cb3fe31baee77decc4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Sun, 12 May 2019 08:50:07 -0300
+Subject: [PATCH 1/2] Use qt library to determine where to look for application
+ files
+
+---
+ dde-file-manager-lib/shutil/fileutils.cpp     | 34 ++++++++++++-------
+ .../shutil/mimesappsmanager.cpp               | 11 ++----
+ 2 files changed, 25 insertions(+), 20 deletions(-)
+
+diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
+index ae8120d3..d6a0573a 100644
+--- a/dde-file-manager-lib/shutil/fileutils.cpp
++++ b/dde-file-manager-lib/shutil/fileutils.cpp
+@@ -242,13 +242,19 @@ bool FileUtils::isArchive(const QString &path)
+  */
+ QStringList FileUtils::getApplicationNames() {
+   QStringList appNames;
+-  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
+-                  QDir::Files | QDir::NoDotAndDotDot,
+-                  QDirIterator::Subdirectories);
+-  while (it.hasNext()) {
+-    it.next();
+-    appNames.append(it.fileName());
++
++  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
++  qDebug() << "dde-file-manager getApplicationNames desktopDirs:" << desktopDirs;
++  for (const QString &dir : desktopDirs) {
++    QDirIterator it(dir, QStringList("*.desktop"),
++                    QDir::Files | QDir::NoDotAndDotDot,
++                    QDirIterator::Subdirectories);
++    while (it.hasNext()) {
++      it.next();
++      appNames.append(it.fileName());
++    }
+   }
++  
+   return appNames;
+ }
+ //---------------------------------------------------------------------------
+@@ -259,12 +265,16 @@ QStringList FileUtils::getApplicationNames() {
+  */
+ QList<DesktopFile> FileUtils::getApplications() {
+   QList<DesktopFile> apps;
+-  QDirIterator it("/usr/share/applications", QStringList("*.desktop"),
+-                  QDir::Files | QDir::NoDotAndDotDot,
+-                  QDirIterator::Subdirectories);
+-  while (it.hasNext()) {
+-    it.next();
+-    apps.append(DesktopFile(it.filePath()));
++  const QStringList desktopDirs = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
++  qDebug() << "dde-file-manager getApplications desktopDirs:" << desktopDirs;
++  for (const QString &dir : desktopDirs) {
++    QDirIterator it(dir, QStringList("*.desktop"),
++                    QDir::Files | QDir::NoDotAndDotDot,
++                    QDirIterator::Subdirectories);
++    while (it.hasNext()) {
++      it.next();
++      apps.append(DesktopFile(it.filePath()));
++    }
+   }
+   return apps;
+ }
+diff --git a/dde-file-manager-lib/shutil/mimesappsmanager.cpp b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
+index c6149702..c9e53630 100644
+--- a/dde-file-manager-lib/shutil/mimesappsmanager.cpp
++++ b/dde-file-manager-lib/shutil/mimesappsmanager.cpp
+@@ -542,14 +542,9 @@ QStringList MimesAppsManager::getrecommendedAppsFromMimeWhiteList(const DUrl &ur
+ 
+ QStringList MimesAppsManager::getApplicationsFolders()
+ {
+-    QStringList desktopFolders;
+-    desktopFolders << QString("/usr/share/applications/")
+-                   << QString("/usr/local/share/applications/")
+-                   << QString("/usr/share/gnome/applications/")
+-                   << QString("/var/lib/flatpak/exports/share/applications")
+-                   << QDir::homePath() + QString("/.local/share/flatpak/exports/share/applications")
+-                   << QDir::homePath() + QString( "/.local/share/applications" );
+-    return desktopFolders;
++    QStringList paths = QStandardPaths::standardLocations(QStandardPaths::ApplicationsLocation);
++    qDebug() << "dde-file-manager getApplicationsFolders:" << paths;
++    return paths;
+ }
+ 
+ QString MimesAppsManager::getMimeAppsCacheFile()
+-- 
+2.21.0
+
diff --git a/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
new file mode 100644
index 000000000000..582760e6db2a
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-file-manager/dde-file-manager.pixmaps-paths.patch
@@ -0,0 +1,38 @@
+From 084c3cfcf4995c109ca2e96f042fe341f925b0b4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Jos=C3=A9=20Romildo=20Malaquias?= <malaquias@gmail.com>
+Date: Thu, 16 May 2019 19:00:52 -0300
+Subject: [PATCH 4/4] Use xdg to look for pixmap icons
+
+---
+ dde-file-manager-lib/shutil/fileutils.cpp | 15 ++++++++++-----
+ 1 file changed, 10 insertions(+), 5 deletions(-)
+
+diff --git a/dde-file-manager-lib/shutil/fileutils.cpp b/dde-file-manager-lib/shutil/fileutils.cpp
+index d6a0573a..e912e7c2 100644
+--- a/dde-file-manager-lib/shutil/fileutils.cpp
++++ b/dde-file-manager-lib/shutil/fileutils.cpp
+@@ -362,11 +362,16 @@ QIcon FileUtils::searchAppIcon(const DesktopFile &app,
+   }
+ 
+   // Last chance
+-  QDir appIcons("/usr/share/pixmaps","", 0, QDir::Files | QDir::NoDotAndDotDot);
+-  QStringList iconFiles = appIcons.entryList();
+-  QStringList searchIcons = iconFiles.filter(name);
+-  if (searchIcons.count() > 0) {
+-    return QIcon("/usr/share/pixmaps/" + searchIcons.at(0));
++  const QStringList dirs = QStandardPaths::standardLocations(QStandardPaths::GenericDataLocation);
++  qDebug() << "searchAppIcon: last chance: look for pixmaps at: " << dirs;
++  for (const QString &dir : dirs) {
++    const QString path = dir + QDir::separator() + "pixmaps";
++    QDir appIcons(path,"", 0, QDir::Files | QDir::NoDotAndDotDot);
++    QStringList iconFiles = appIcons.entryList();
++    QStringList searchIcons = iconFiles.filter(name);
++    if (searchIcons.count() > 0) {
++      return QIcon(path + QDir::separator() + searchIcons.at(0));
++    }
+   }
+ 
+   // Default icon
+-- 
+2.21.0
+
diff --git a/pkgs/desktops/deepin/dde-file-manager/default.nix b/pkgs/desktops/deepin/dde-file-manager/default.nix
new file mode 100644
index 000000000000..44964b65c9d7
--- /dev/null
+++ b/pkgs/desktops/deepin/dde-file-manager/default.nix
@@ -0,0 +1,251 @@
+{ stdenv, fetchFromGitHub, pkgconfig, avfs, dde-daemon, dde-dock,
+  dde-polkit-agent, dde-qt-dbus-factory, deepin, deepin-anything,
+  deepin-desktop-schemas, deepin-gettext-tools, deepin-movie-reborn,
+  deepin-shortcut-viewer, deepin-terminal, dtkcore, dtkwidget,
+  ffmpegthumbnailer, file, glib, gnugrep, gsettings-qt, gvfs,
+  jemalloc, kcodecs, libX11, libsecret, polkit, polkit-qt, poppler,
+  procps, qmake, qt5integration, qtmultimedia, qtsvg, qttools,
+  qtx11extras, runtimeShell, samba, shadow, taglib, udisks2-qt5,
+  xdg-user-dirs, xorg, zlib, wrapGAppsHook }:
+
+stdenv.mkDerivation rec {
+  name = "${pname}-${version}";
+  pname = "dde-file-manager";
+  version = "4.8.6.2";
+
+  src = fetchFromGitHub {
+    owner = "linuxdeepin";
+    repo = pname;
+    rev = version;
+    sha256 = "1qw9slssvy6c4j9czyqrhlr3pq6hzxybb86darja2vka84zmvwip";
+  };
+
+  nativeBuildInputs = [
+    deepin.setupHook
+    qmake
+    qttools
+    pkgconfig
+    deepin-gettext-tools
+    wrapGAppsHook
+  ];
+
+  buildInputs = [
+    avfs
+    dde-daemon
+    dde-dock
+    dde-polkit-agent
+    dde-qt-dbus-factory
+    deepin-anything
+    deepin-desktop-schemas
+    deepin-movie-reborn.dev
+    deepin-shortcut-viewer
+    deepin-terminal
+    dtkcore
+    dtkwidget
+    ffmpegthumbnailer
+    file
+    glib.bin
+    glib.dev
+    gnugrep
+    gsettings-qt
+    gvfs
+    jemalloc
+    kcodecs
+    libsecret
+    polkit
+    polkit-qt
+    poppler
+    procps
+    qt5integration
+    qtmultimedia
+    qtsvg
+    qtx11extras
+    samba
+    taglib
+    udisks2-qt5
+    xdg-user-dirs
+    xorg.libX11
+    xorg.libxcb
+    xorg.xcbutil
+    xorg.xcbutilwm
+    xorg.xorgproto
+    zlib
+  ];
+
+  patches = [
+    ./dde-file-manager.fix-paths.patch
+    ./dde-file-manager.fix-mime-cache-paths.patch
+    ./dde-file-manager.pixmaps-paths.patch
+  ];
+
+  postPatch = ''
+    searchHardCodedPaths
+
+    patchShebangs dde-desktop/translate_generation.sh
+    patchShebangs dde-desktop/translate_ts2desktop.sh
+    patchShebangs dde-file-manager-lib/generate_translations.sh
+    patchShebangs dde-file-manager/generate_translations.sh
+    patchShebangs dde-file-manager/translate_ts2desktop.sh
+    patchShebangs usb-device-formatter/generate_translations.sh
+    patchShebangs usb-device-formatter/translate_ts2desktop.sh
+
+    # x-terminal-emulator is a virtual package in Debian systems. The
+    # terminal emulator is configured by Debian's alternative system.
+    # It is not available on NixOS. Use deepin-terminal instead
+    sed -i -e "s,x-terminal-emulator,deepin-terminal," \
+      dde-file-manager-lib/shutil/fileutils.cpp
+
+    sed -i -e "s,\$\$\\[QT_INSTALL_LIBS\\],$out/lib," \
+       dde-file-manager-lib/dde-file-manager-lib.pro \
+       dde-file-thumbnail-tool/common.pri \
+       common/common.pri
+
+    sed -i '/^QMAKE_PKGCONFIG_DESTDIR/i QMAKE_PKGCONFIG_PREFIX = $$PREFIX' \
+       dde-file-manager-lib/dde-file-manager-lib.pro
+
+    fixPath ${dde-dock} /usr/include/dde-dock \
+      dde-dock-plugins/disk-mount/disk-mount.pro
+
+    # treefrog is not available in NixOS, and I am not sure if it is really needed
+    #fixPath $ {treefrog-framework} /usr/include/treefrog \
+    #  dde-sharefiles/appbase.pri
+
+    fixPath ${deepin-anything} /usr/share/dbus-1/interfaces \
+      dde-file-manager-lib/dbusinterface/dbusinterface.pri
+
+    sed -i -e "s,\$\$system(\$\$PKG_CONFIG --variable libdir deepin-anything-server-lib),$out/lib," \
+      deepin-anything-server-plugins/dde-anythingmonitor/dde-anythingmonitor.pro
+
+    fixPath ${dde-daemon} /usr/lib/deepin-daemon/desktop-toggle \
+      dde-zone/mainwindow.h
+
+    fixPath ${deepin-gettext-tools} /usr/bin/deepin-desktop-ts-convert \
+      dde-desktop/translate_desktop2ts.sh \
+      dde-desktop/translate_ts2desktop.sh \
+      dde-file-manager/translate_desktop2ts.sh \
+      dde-file-manager/translate_ts2desktop.sh \
+      usb-device-formatter/translate_desktop2ts.sh \
+      usb-device-formatter/translate_ts2desktop.sh
+
+    fixPath ${avfs} /usr/bin/mountavfs dde-file-manager-lib/shutil/fileutils.cpp
+    fixPath ${avfs} /usr/bin/umountavfs dde-file-manager-lib/shutil/fileutils.cpp
+
+    fixPath ${deepin-terminal} /usr/bin/deepin-terminal \
+      dde-file-manager-lib/shutil/fileutils.cpp
+
+    fixPath $out /usr/share/dde-file-manager \
+      dde-sharefiles/appbase.pri \
+      dde-sharefiles/dde-sharefiles.pro
+
+    fixPath $out /usr/share/usb-device-formatter \
+      usb-device-formatter/main.cpp
+
+    fixPath $out /usr/share/applications \
+      dde-file-manager/mips/dde-file-manager-autostart.desktop \
+      dde-desktop/development.pri
+
+    fixPath $out /usr/bin \
+      dbusservices/com.deepin.dde.desktop.service \
+      dde-desktop/data/com.deepin.dde.desktop.service \
+      dde-desktop/dbus/filedialog/com.deepin.filemanager.filedialog.service \
+      dde-desktop/dbus/filemanager1/org.freedesktop.FileManager.service \
+      dde-file-manager-daemon/dbusservice/com.deepin.filemanager.daemon.service \
+      dde-file-manager-daemon/dbusservice/dde-filemanager-daemon.service \
+      dde-file-manager-daemon/dde-file-manager-daemon.pro \
+      dde-file-manager-lib/dde-file-manager-lib.pro \
+      dde-file-manager-lib/pkexec/com.deepin.pkexec.dde-file-manager.policy \
+      dde-file-manager/dde-file-manager-xdg-autostart.desktop \
+      dde-file-manager/dde-file-manager.desktop \
+      dde-file-manager/dde-file-manager.pro \
+      dde-file-manager/mips/dde-file-manager-autostart.desktop \
+      dde-file-manager/mips/dde-file-manager.desktop \
+      dde-file-manager/pkexec/com.deepin.pkexec.dde-file-manager.policy \
+      usb-device-formatter/pkexec/com.deepin.pkexec.usb-device-formatter.policy \
+      usb-device-formatter/usb-device-formatter.desktop \
+      usb-device-formatter/usb-device-formatter.pro
+      fixPath $out /etc \
+      dde-file-manager/dde-file-manager.pro \
+      dde-file-manager-daemon/dde-file-manager-daemon.pro
+
+    fixPath $out /usr \
+      common/common.pri \
+      dde-desktop/dbus/filedialog/filedialog.pri \
+      dde-desktop/dbus/filemanager1/filemanager1.pri \
+      dde-desktop/development.pri \
+      dde-dock-plugins/disk-mount/disk-mount.pro \
+      dde-file-manager-daemon/dde-file-manager-daemon.pro \
+      usb-device-formatter/usb-device-formatter.pro
+
+    sed -i -e "s,xdg-user-dir,${xdg-user-dirs}/bin/xdg-user-dir," \
+      dde-file-manager/dde-xdg-user-dirs-update
+
+    sed -i -e "s,Exec=dde-file-manager,Exec=$out/bin/dde-file-manager," \
+      dde-file-manager/dde-file-manager.desktop
+
+    sed -i -e "s,Exec=gio,Exec=${glib.bin}/bin/gio," \
+      dde-desktop/data/applications/dde-trash.desktop \
+      dde-desktop/data/applications/dde-computer.desktop
+
+    sed -i -e "s,/usr/lib/gvfs/gvfsd,${gvfs}/libexec/gvfsd," \
+      dde-file-manager-lib/gvfs/networkmanager.cpp
+
+    sed -i -e "s,/usr/sbin/smbd,${samba}/bin/smbd," \
+           -e "s,/usr/sbin/groupadd,${shadow}/bin/groupadd," \
+           -e "s,/usr/sbin/adduser,${shadow}/bin/adduser," \
+      dde-file-manager-daemon/usershare/usersharemanager.cpp
+
+    sed -i -e 's,startDetached("deepin-shortcut-viewer",startDetached("${deepin-shortcut-viewer}/bin/deepin-shortcut-viewer",' \
+      dde-file-manager-lib/controllers/appcontroller.cpp
+
+    sed -i -e 's,/bin/bash,${runtimeShell},' \
+           -e 's,\<ps\>,${procps}/bin/ps,' \
+           -e 's,\<grep\>,${gnugrep}/bin/grep,' \
+      utils/utils.cpp \
+      dde-file-manager-lib/controllers/fileeventprocessor.cpp
+
+    # The hard coded path in `QString("/etc/xdg/%1/%2")` in
+    # dde-file-manager-lib/interfaces/dfmsettings.cpp
+    # does not needed a fix because all the standard locations
+    # are tried before faling back to /etc/xdg.
+
+    # I do not know yet how to deal with:
+    #   dde-file-manager-lib/sw_label/llsdeepinlabellibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libllsdeeplabel.so";
+    #   dde-file-manager-lib/sw_label/filemanagerlibrary.h:        return "/usr/lib/sw_64-linux-gnu/dde-file-manager/libfilemanager.so";
+    #   dde-file-manager-lib/sw_label/libinstall.sh:mkdir /usr/lib/sw_64-linux-gnu/dde-file-manager
+    #   dde-file-manager-lib/sw_label/libinstall.sh:cp libfilemanager.so libllsdeeplabel.so /usr/lib/sw_64-linux-gnu/dde-file-manager
+    # They are not present on my installations of Deepin Linux, Arch Linux and Ubuntu. Can they be ignored?
+
+    # Notes:
+    # - As file-roller is looked in the path using QStandardPaths::findExecutable, it is not been added as a dependency.
+    # - deepin-qt5config is a dependency exclusive to the Deepin Linux distribution. No other distribution has it, according to repology.
+  '';
+
+  qmakeFlags = [
+    "QMAKE_CFLAGS_ISYSTEM="
+
+    # Disable ffmpeg
+    "CONFIG+=DISABLE_FFMPEG"
+  ];
+
+  preBuild = ''
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${zlib}/lib";
+    export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:${libX11}/lib";
+  '';
+
+  postFixup = ''
+    # debuging
+    unset LD_LIBRARY_PATH
+    searchForUnresolvedDLL $out
+    searchHardCodedPaths $out
+  '';
+
+  passthru.updateScript = deepin.updateScript { inherit name; };
+
+  meta = with stdenv.lib; {
+    description = "File manager and desktop module for Deepin Desktop Environment";
+    homepage = https://github.com/linuxdeepin/dde-file-manager;
+    license = licenses.gpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ romildo ];
+  };
+}
diff --git a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
index 914e77d85157..ef47603f817b 100644
--- a/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
+++ b/pkgs/desktops/deepin/deepin-movie-reborn/default.nix
@@ -14,6 +14,8 @@ stdenv.mkDerivation rec {
     sha256 = "1qh079j4c2n33z0ykv87af9vfkmdxxrv6dy54wdqdpr7vrhn89gb";
   };
 
+  outputs = [ "out" "dev" ];
+
   nativeBuildInputs = [
     cmake
     pkgconfig
diff --git a/pkgs/desktops/deepin/default.nix b/pkgs/desktops/deepin/default.nix
index ccc2270a8edf..49114330f135 100644
--- a/pkgs/desktops/deepin/default.nix
+++ b/pkgs/desktops/deepin/default.nix
@@ -11,6 +11,7 @@ let
     dde-calendar = callPackage ./dde-calendar { };
     dde-daemon = callPackage ./dde-daemon { };
     dde-dock = callPackage ./dde-dock { };
+    dde-file-manager = callPackage ./dde-file-manager { };
     dde-network-utils = callPackage ./dde-network-utils { };
     dde-polkit-agent = callPackage ./dde-polkit-agent { };
     dde-qt-dbus-factory = callPackage ./dde-qt-dbus-factory { };
diff --git a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
index 9aed8ffcc272..4a4850a0824e 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calculator/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig
 , meson, ninja, vala, desktop-file-utils, libxml2
-, gtk3, python3, granite, libgee, gobject-introspection
-, elementary-icon-theme, appstream, wrapGAppsHook }:
+, gtk3, python3, granite, libgee, elementary-icon-theme
+, appstream, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "calculator";
@@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     appstream
     desktop-file-utils
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
index c165df26f60b..9f684c22767d 100644
--- a/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-calendar/default.nix
@@ -2,7 +2,7 @@
 , ninja, vala, desktop-file-utils, gtk3, granite, libgee
 , geoclue2, libchamplain, clutter, folks, geocode-glib, python3
 , libnotify, libical, evolution-data-server, appstream-glib
-, elementary-icon-theme, gobject-introspection, wrapGAppsHook }:
+, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "calendar";
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     appstream-glib
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index c90d9a566f8d..99c7afffe7a5 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, gettext, vala
 , python3, desktop-file-utils, libcanberra, gtk3, libgee, granite, libnotify
 , libunity, pango, plank, bamf, sqlite, libdbusmenu-gtk3, zeitgeist, glib-networking
-, elementary-icon-theme, gobject-introspection, wrapGAppsHook }:
+, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "files";
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
     desktop-file-utils
     gettext
     glib-networking
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 4ee2aef17601..32e9a0bcc8db 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, desktop-file-utils
 , gtk3, glib, libaccounts-glib, libexif, libgee, geocode-glib, gexiv2,libgphoto2, fetchpatch
 , granite, gst_all_1, libgudev, json-glib, libraw, librest, libsoup, sqlite, python3
-, scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, gobject-introspection, elementary-icon-theme }:
+, scour, webkitgtk, libwebp, appstream, libunity, wrapGAppsHook, elementary-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "photos";
@@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     appstream
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
index 2644d31d7983..b1a5796770d9 100644
--- a/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-screenshot-tool/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, callPackage
 , ninja, vala, python3, desktop-file-utils, gtk3, granite, libgee
-, libcanberra, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, libcanberra, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "screenshot-tool"; # This will be renamed to "screenshot" soon. See -> https://github.com/elementary/screenshot/pull/93
@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
index 9b2060afa6b7..2c146169f427 100644
--- a/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-terminal/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, python3
 , vala, desktop-file-utils, gtk3, libxml2, granite, libnotify, vte, libgee
-, elementary-icon-theme, appstream, gobject-introspection, wrapGAppsHook }:
+, elementary-icon-theme, appstream, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "terminal";
@@ -25,7 +25,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     appstream
     desktop-file-utils
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
index b123d4cbf5bc..2d978d966b93 100644
--- a/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-videos/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, python3
 , desktop-file-utils, gtk3, granite, libgee, clutter-gst, clutter-gtk, gst_all_1
-, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "videos";
@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 1883e2294797..859e04eb954d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
+, vala, libgee, granite, gtk3, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-a11y";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index d217ad20d2ed..6d7ecbffa314 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard, pciutils, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja
+, pkgconfig, vala, libgee, granite, gtk3, switchboard, pciutils }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-about";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index ed4dc0c84473..0d7586391ce0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, meson, ninja
+, pkgconfig, vala, libgee, granite, gtk3, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-applications";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index db653a7f8ffe..547b6d897e4e 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, libgee
-, granite, gtk3, bluez, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
+, vala, libgee, granite, gtk3, bluez, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-bluetooth";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index 8c00ff4728e8..e1303a3cc48a 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, substituteAll, pkgconfig
-, vala, libgee, granite, gtk3, libxml2, switchboard, tzdata, gobject-introspection }:
+, vala, libgee, granite, gtk3, libxml2, switchboard, tzdata }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-datetime";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index f5fbb0a51cfb..22fb795297e0 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, meson, ninja
+, pkgconfig, vala, libgee, granite, gtk3, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-display";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index 50256b8f77d7..71f865bdeb62 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig, vala, libgee
-, granite, gtk3, libxml2, libgnomekbd, libxklavier, xorg, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja, pkgconfig
+, vala, libgee, granite, gtk3, libxml2, libgnomekbd, libxklavier, xorg, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-keyboard";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index eaf15fdb8155..a55a525c79bd 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, fetchpatch, meson, ninja, pkgconfig, vala
-, libgee, granite, gtk3, switchboard, elementary-settings-daemon, gobject-introspection }:
+, libgee, granite, gtk3, switchboard, elementary-settings-daemon }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-mouse-touchpad";
@@ -27,7 +27,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 95b558901d20..283a13bd82aa 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, substituteAll, vala
-, libgee, granite, gtk3, networkmanager, networkmanagerapplet, switchboard, gobject-introspection }:
+, libgee, granite, gtk3, networkmanager, networkmanagerapplet, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-network";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index a6fb86bb828c..277f70cf984c 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -1,5 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, meson, ninja
+, pkgconfig, vala, libgee, granite, gtk3, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-notifications";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
index 0417d33df7d7..496a69ce1f6b 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/onlineaccounts/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala
 , libgee, granite, gtk3, libaccounts-glib, libsignon-glib, json-glib
-, librest, webkitgtk, libsoup, switchboard, gobject-introspection }:
+, librest, webkitgtk, libsoup, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-onlineaccounts";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index 6c29282652c8..4d6a1f5c5c67 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala
 , libgee, granite, gexiv2, elementary-settings-daemon, gtk3, gnome-desktop
-, gala, wingpanel, plank, switchboard, gettext, gobject-introspection, bamf }:
+, gala, wingpanel, plank, switchboard, gettext, bamf }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-pantheon-shell";
@@ -21,7 +21,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     gettext
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index 0178f23f5e1a..0179aac84ced 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, substituteAll, meson, ninja
 , pkgconfig, vala, libgee, elementary-dpms-helper, elementary-settings-daemon
-, makeWrapper, granite, gtk3, dbus, polkit, switchboard, gobject-introspection }:
+, makeWrapper, granite, gtk3, dbus, polkit, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-power";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index 11bd70894edd..293faad51c74 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, cups, switchboard, gobject-introspection }:
+, vala, libgee, granite, gtk3, cups, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-printers";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index ff59768e363f..9cbab8f2c9f8 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, meson, python3, ninja
 , pkgconfig, vala, libgee, granite, gtk3, polkit, zeitgeist
-, switchboard, lightlocker, pantheon-agent-geoclue2, gobject-introspection }:
+, switchboard, lightlocker, pantheon-agent-geoclue2 }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-security-privacy";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index 9660daa7715d..265352ed8815 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
+, vala, libgee, granite, gtk3, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sharing";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index ad379f37471a..907bdc37e2a7 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig
-, vala, libgee, granite, gtk3, pulseaudio, libcanberra, libcanberra-gtk3
-, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, meson, ninja, pkgconfig, vala, libgee
+, granite, gtk3, pulseaudio, libcanberra, libcanberra-gtk3, switchboard }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard-plug-sound";
@@ -20,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/apps/switchboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard/default.nix
index 310230c7aacc..12edf97f6ba9 100644
--- a/pkgs/desktops/pantheon/apps/switchboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja
 , vala, gtk3, libgee, granite, gettext, clutter-gtk, libunity
-, elementary-icon-theme, wrapGAppsHook, gobject-introspection }:
+, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "switchboard";
@@ -21,7 +21,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     gettext
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
index 32083d3ada62..177837c76dc0 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-greeter/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, substituteAll, makeWrapper, meson
 , ninja, vala, desktop-file-utils, gtk3, granite, libgee, elementary-settings-daemon
-, gnome-desktop, mutter, gobject-introspection, elementary-icon-theme, wingpanel-with-indicators
+, gnome-desktop, mutter, elementary-icon-theme, wingpanel-with-indicators
 , elementary-gtk-theme, nixos-artwork, elementary-default-settings, lightdm, numlockx
 , clutter-gtk, libGL, dbus, wrapGAppsHook }:
 
@@ -26,7 +26,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
index 6ceebf1980c6..ca0ab888f149 100644
--- a/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
+++ b/pkgs/desktops/pantheon/desktop/elementary-shortcut-overlay/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, libxml2, desktop-file-utils
-, gtk3, glib, granite, libgee, elementary-icon-theme, gobject-introspection, wrapGAppsHook }:
+, gtk3, glib, granite, libgee, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "shortcut-overlay";
@@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index bc29dba9718e..1005c4090f3f 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala
 , desktop-file-utils, gettext, libxml2, gtk3, granite, libgee, bamf, libcanberra
-, libcanberra-gtk3, gnome-desktop, mutter, clutter, plank, gobject-introspection
-, elementary-icon-theme, elementary-settings-daemon, wrapGAppsHook }:
+, libcanberra-gtk3, gnome-desktop, mutter, clutter, plank, elementary-icon-theme
+, elementary-settings-daemon, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "gala";
@@ -24,7 +24,6 @@ stdenv.mkDerivation rec {
   nativeBuildInputs = [
     desktop-file-utils
     gettext
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 571dab02c318..4d7868a1d14c 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3
 , ninja, vala, gtk3, granite, libnotify, wingpanel, libgee, libxml2
-, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-bluetooth";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 297e99fe47b1..8a4c9f393839 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -1,7 +1,6 @@
 { stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, python3
 , ninja, substituteAll, vala, gtk3, granite, wingpanel, evolution-data-server
-, libical, libgee, libxml2, libsoup, gobject-introspection
-, elementary-calendar, elementary-icon-theme, wrapGAppsHook }:
+, libical, libgee, libxml2, libsoup, elementary-calendar, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-datetime";
@@ -21,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index f34ca29a98bb..aa63f82c9652 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja
 , substituteAll, vala, gtk3, granite, libxml2, wingpanel, libgee
-, xorg, libgnomekbd, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, xorg, libgnomekbd, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-keyboard";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     libxml2
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 2ac05fdc6d82..a201d6864a66 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
 , gtk3, granite, networkmanager, networkmanagerapplet, wingpanel
-, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, libgee, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-network";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 8e450726976b..fd4e1cc7e177 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -1,6 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala
-, gtk3, granite, wingpanel, libgee, libxml2, gobject-introspection
-, elementary-icon-theme, wrapGAppsHook }:
+, gtk3, granite, wingpanel, libgee, libxml2, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-nightlight";
@@ -20,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index 6a7fcfbb4e03..03369c3ad42e 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja, vala, gtk3, granite
-, wingpanel, libgee, libwnck3, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, wingpanel, libgee, libwnck3, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-notifications";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index 45a4e543b662..a9af53449c9a 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3
 , ninja, vala, gtk3, granite, bamf, libgtop, udev, wingpanel
-, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, libgee, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-power";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index a46e001e7a0e..5b1bd161b05f 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
 , ninja, vala, gtk3, granite, wingpanel, accountsservice
-, libgee, gobject-introspection, elementary-icon-theme, wrapGAppsHook }:
+, libgee, elementary-icon-theme, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-session";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index fc40c2faf5ef..3e17813fde2a 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson
 , python3, ninja, vala, gtk3, granite, wingpanel, libnotify
 , pulseaudio, libcanberra-gtk3, libgee, libxml2, wrapGAppsHook
-, gobject-introspection, elementary-icon-theme }:
+, elementary-icon-theme }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel-indicator-sound";
@@ -21,7 +21,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     libxml2
     meson
     ninja
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
index 9c18eaed6da2..be6c89f9c05d 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel/default.nix
@@ -1,6 +1,5 @@
-{ stdenv, fetchFromGitHub, pantheon, fetchpatch, wrapGAppsHook, pkgconfig, meson, ninja
-, vala, gala, gtk3, libgee, granite, gettext, glib-networking, mutter, json-glib
-, python3, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, wrapGAppsHook, pkgconfig, meson, ninja
+, vala, gala, gtk3, libgee, granite, gettext, mutter, json-glib, python3 }:
 
 stdenv.mkDerivation rec {
   pname = "wingpanel";
@@ -21,8 +20,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     gettext
-    glib-networking
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/granite/default.nix b/pkgs/desktops/pantheon/granite/default.nix
index 66ba331ddcdc..cc612407bf61 100644
--- a/pkgs/desktops/pantheon/granite/default.nix
+++ b/pkgs/desktops/pantheon/granite/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala, pkgconfig, gobject-introspection, libgee, pantheon, gtk3, glib, gettext, hicolor-icon-theme, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, fetchpatch, python3, meson, ninja, vala, pkgconfig, libgee, pantheon, gtk3, glib, gettext, hicolor-icon-theme, gobject-introspection, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "granite";
diff --git a/pkgs/desktops/pantheon/services/cerbere/default.nix b/pkgs/desktops/pantheon/services/cerbere/default.nix
index 59983469c114..da5e544b0058 100644
--- a/pkgs/desktops/pantheon/services/cerbere/default.nix
+++ b/pkgs/desktops/pantheon/services/cerbere/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, glib, libgee, vala, gobject-introspection, wrapGAppsHook }:
+{ stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, glib, libgee, vala, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "cerbere";
@@ -18,7 +18,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
index e77948ccf295..055706b1521a 100644
--- a/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-capnet-assist/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, python3, ninja, vala
-, desktop-file-utils, gtk3, granite, libgee, gcr, webkitgtk, gobject-introspection, wrapGAppsHook }:
+, desktop-file-utils, gtk3, granite, libgee, gcr, webkitgtk, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "capnet-assist";
@@ -23,7 +23,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
index aa451ba75166..d8514c51f4f7 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/default.nix
@@ -36,25 +36,26 @@
 , systemd
 , tzdata
 , upower
+, libXtst
 , wrapGAppsHook
 }:
 
 stdenv.mkDerivation rec {
   pname = "elementary-settings-daemon";
-  version = "3.32.0";
+  version = "3.30.2";
 
   projectName = "gnome-settings-daemon";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${projectName}/${stdenv.lib.versions.majorMinor version}/${projectName}-${version}.tar.xz";
-    sha256 = "15w3sn9qf1zqlmk8c93kgrh2a20s62m5yfizkp21m5ylrrd07f63";
+    sha256 = "0c663csa3gnsr6wm0xfll6aani45snkdj7zjwjfzcwfh8w4a3z12";
   };
 
   # Source for ubuntu's patchset
   src2 = fetchgit {
     url = "https://git.launchpad.net/~ubuntu-desktop/ubuntu/+source/${projectName}";
     rev = "refs/tags/ubuntu/${version}-1ubuntu1";
-    sha256 = "0ayd50mr0pv2h4j1r1haf8y2hj8jv59vypa7lx8jis0llrm7s3yn";
+    sha256 = "02awkhw6jqm7yh812mw0nsdmsljfi8ksz8mvd2qpns5pcv002g2c";
   };
 
   # We've omitted the 53_sync_input_sources_to_accountsservice patch because it breaks the build.
@@ -71,6 +72,7 @@ stdenv.mkDerivation rec {
     "${patchPath}/64_restore_terminal_keyboard_shortcut_schema.patch"
     "${patchPath}/correct_logout_action.patch"
     "${patchPath}/ubuntu-lid-close-suspend.patch"
+    "${patchPath}/revert-wacom-migration.patch"
     "${patchPath}/revert-gsettings-removals.patch"
     "${patchPath}/revert-mediakeys-dbus-interface-drop.patch"
     "${patchPath}/ubuntu_ibus_configs.patch"
@@ -129,6 +131,7 @@ stdenv.mkDerivation rec {
     gsettings-desktop-schemas
     gtk3
     lcms2
+    libXtst
     libcanberra-gtk3
     libgnomekbd # for org.gnome.libgnomekbd.keyboard schema
     libgudev
diff --git a/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch b/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
index dcdc83934ba6..c073b23e6b9f 100644
--- a/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
+++ b/pkgs/desktops/pantheon/services/elementary-settings-daemon/global-backlight-helper.patch
@@ -1,18 +1,18 @@
-diff --git a/plugins/power/gsd-backlight.c b/plugins/power/gsd-backlight.c
-index d7d10fd2..5619d6ad 100644
---- a/plugins/power/gsd-backlight.c
-+++ b/plugins/power/gsd-backlight.c
-@@ -358,7 +358,7 @@ gsd_backlight_run_set_helper (GsdBacklight *backlight, GTask *task)
-                 proc = g_subprocess_new (G_SUBPROCESS_FLAGS_STDOUT_SILENCE,
-                                          &error,
-                                          "pkexec",
--                                         LIBEXECDIR "/gsd-backlight-helper",
-+                                         "/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper",
-                                          g_udev_device_get_sysfs_path (backlight->udev_device),
-                                          data->value_str, NULL);
-         } else {
+diff --git a/plugins/power/gpm-common.c b/plugins/power/gpm-common.c
+index e83f1549..15890053 100644
+--- a/plugins/power/gpm-common.c
++++ b/plugins/power/gpm-common.c
+@@ -452,7 +452,7 @@ run_backlight_helper (enum BacklightHelperCommand   command,
+         gchar *argv[5] = { 0 };
+ 
+         argv[0] = "pkexec";
+-        argv[1] = LIBEXECDIR "/gsd-backlight-helper";
++        argv[1] = "/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper";
+         argv[2] = helper_args[command];
+         argv[3] = value;
+ 
 diff --git a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
-index f16300f8..79d6bd17 100644
+index f16300f8..f19bba3e 100644
 --- a/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
 +++ b/plugins/power/org.gnome.settings-daemon.plugins.power.policy.in.in
 @@ -25,7 +25,7 @@
@@ -22,5 +22,5 @@ index f16300f8..79d6bd17 100644
 -    <annotate key="org.freedesktop.policykit.exec.path">@libexecdir@/gsd-backlight-helper</annotate>
 +    <annotate key="org.freedesktop.policykit.exec.path">/run/current-system/sw/bin/elementary-settings-daemon/gsd-backlight-helper</annotate>
    </action>
-
+ 
  </policyconfig>
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
index 2487c4ba3af4..4b055d47b0a0 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-geoclue2/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, fetchpatch, pantheon, pkgconfig, meson, ninja, vala, glib
-, gtk3, libgee, desktop-file-utils, geoclue2, gobject-introspection, wrapGAppsHook }:
+, gtk3, libgee, desktop-file-utils, geoclue2, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-geoclue2";
@@ -20,7 +20,6 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [
     desktop-file-utils
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
index 4fdaa4a8bf9f..d9e5512ce784 100644
--- a/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
+++ b/pkgs/desktops/pantheon/services/pantheon-agent-polkit/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, pantheon, pkgconfig, meson, ninja
-, vala, gtk3, libgee, polkit, gobject-introspection, wrapGAppsHook }:
+, vala, gtk3, libgee, polkit, wrapGAppsHook }:
 
 stdenv.mkDerivation rec {
   pname = "pantheon-agent-polkit";
@@ -19,7 +19,6 @@ stdenv.mkDerivation rec {
   };
 
   nativeBuildInputs = [
-    gobject-introspection
     meson
     ninja
     pkgconfig
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 26e0f56d506c..4028859e3385 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -1181,7 +1181,6 @@ self: super: {
   # Jailbreak tasty < 1.2: https://github.com/phadej/tdigest/issues/30
   tdigest = doJailbreak super.tdigest; # until tdigest > 0.2.1
   these = doJailbreak super.these; # until these >= 0.7.6
-  insert-ordered-containers = appendPatch super.insert-ordered-containers ./patches/insert-ordered-containers-fix-test.patch;
 
   uri-bytestring = appendPatch super.uri-bytestring (pkgs.fetchpatch {
     url = "https://github.com/Soostone/uri-bytestring/commit/e5c5602a97160a6a6304a24947e33e47c9155460.patch";
diff --git a/pkgs/development/haskell-modules/patches/insert-ordered-containers-fix-test.patch b/pkgs/development/haskell-modules/patches/insert-ordered-containers-fix-test.patch
deleted file mode 100644
index 1e9ac5aa66a4..000000000000
--- a/pkgs/development/haskell-modules/patches/insert-ordered-containers-fix-test.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-diff --git a/insert-ordered-containers.cabal b/insert-ordered-containers.cabal
-index 0e8923a..bfbbec4 100644
---- a/insert-ordered-containers.cabal
-+++ b/insert-ordered-containers.cabal
-@@ -21,8 +21,8 @@ tested-with:
-   GHC==7.10.3,
-   GHC==8.0.1,
-   GHC==8.2.2,
--  GHC==8.4.3,
--  GHC==8.6.1
-+  GHC==8.4.4,
-+  GHC==8.6.3
- 
- extra-source-files:
-     CHANGELOG.md
-@@ -70,7 +70,7 @@ test-suite ins-ord-containers-tests
-     , unordered-containers
-     , base
-     , insert-ordered-containers
--    , tasty             >= 0.10.1.2 && <1.2
-+    , tasty             >= 0.10.1.2 && <1.3
-     , tasty-quickcheck  >= 0.8.3.2  && <0.11
-     , QuickCheck        >=2.7.6     && <2.13
-   default-language: Haskell2010
-
diff --git a/pkgs/development/libraries/mpich/default.nix b/pkgs/development/libraries/mpich/default.nix
index ffe6b5edf961..1c6b8df15114 100644
--- a/pkgs/development/libraries/mpich/default.nix
+++ b/pkgs/development/libraries/mpich/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation  rec {
   name = "mpich-${version}";
-  version = "3.3";
+  version = "3.3.1";
 
   src = fetchurl {
     url = "https://www.mpich.org/static/downloads/${version}/mpich-${version}.tar.gz";
-    sha256 = "02zs118q9n4xz9qnfc24i2r84vnzgnwnyyqanfv03lf3wqpy17ij";
+    sha256 = "1raism1r4jsx4cybc9ddyr1xkccbxm0l8j3ryrw8kslfkkr1wmgy";
   };
 
   configureFlags = [
diff --git a/pkgs/development/tools/rust/cargo-make/default.nix b/pkgs/development/tools/rust/cargo-make/default.nix
index ab625d7ea357..da42e819ced6 100644
--- a/pkgs/development/tools/rust/cargo-make/default.nix
+++ b/pkgs/development/tools/rust/cargo-make/default.nix
@@ -2,7 +2,7 @@
 
 rustPlatform.buildRustPackage rec {
   pname = "cargo-make";
-  version = "0.19.4";
+  version = "0.19.5";
 
   src =
     let
@@ -10,11 +10,11 @@ rustPlatform.buildRustPackage rec {
         owner = "sagiegurari";
         repo = pname;
         rev = version;
-        sha256 = "019dn401p4bds144fbvqxbnn8vswcj0lxr8cvgpxb2y22640z60l";
+        sha256 = "0xjyzsi3n3lb5g4gl6v0s4p87nazkqgjf244m792iji9i568ynjb";
       };
       cargo-lock = fetchurl {
-        url = "https://gist.githubusercontent.com/xrelkd/e4c9c7738b21f284d97cb7b1d181317d/raw/c5b9fde279a9f6d55d97e0ba4e0b4cd62e0ab2bf/cargo-make-Cargo.lock";
-        sha256 = "1d5md3m8hxwf3pwvx059fsk1b3vvqm17pxbbyiisn9v4psrsmld5";
+        url = "https://gist.githubusercontent.com/xrelkd/e4c9c7738b21f284d97cb7b1d181317d/raw/285cf8f9b0ab33db0d656fdc8e759feed55c0167/cargo-make-Cargo.lock";
+        sha256 = "0l2i2hq43k482m2w6hpapaq53r8bjljfcszp6csljj4fvxcl62yj";
       };
     in
     runCommand "cargo-make-src" {} ''
@@ -25,7 +25,7 @@ rustPlatform.buildRustPackage rec {
 
   buildInputs = stdenv.lib.optionals stdenv.isDarwin [ Security ];
 
-  cargoSha256 = "0wf60ck0w3m9fa19dz99q84kw05sxlj2pp6bd8r1db3cfy8f8h8j";
+  cargoSha256 = "1rmdmvr5wc2m0yv3dy07cv9y1xrwlfri3hk97zjwv5f73wgncspy";
 
   # Some tests fail because they need network access.
   # However, Travis ensures a proper build.
diff --git a/pkgs/misc/lilypond/default.nix b/pkgs/misc/lilypond/default.nix
index fb17e5e5a2d7..7738c9b1c091 100644
--- a/pkgs/misc/lilypond/default.nix
+++ b/pkgs/misc/lilypond/default.nix
@@ -1,26 +1,26 @@
-{ stdenv, fetchurl, ghostscript, texinfo, imagemagick, texi2html, guile
+{ stdenv, fetchgit, ghostscript, texinfo, imagemagick, texi2html, guile
 , python2, gettext, flex, perl, bison, pkgconfig, autoreconfHook, dblatex
 , fontconfig, freetype, pango, fontforge, help2man, zip, netpbm, groff
-, fetchsvn, makeWrapper, t1utils
+, makeWrapper, t1utils
 , texlive, tex ? texlive.combine {
     inherit (texlive) scheme-small lh metafont epsf;
   }
 }:
 
-stdenv.mkDerivation rec{
-  majorVersion="2.18";
-  minorVersion="2";
-  version="${majorVersion}.${minorVersion}";
-  name = "lilypond-${version}";
+let
 
-  urwfonts = fetchsvn {
-    url = "http://svn.ghostscript.com/ghostscript/tags/urw-fonts-1.0.7pre44";
-    sha256 = "0al5vdsb66db6yzwi0qgs1dnd1i1fb77cigdjxg8zxhhwf6hhwpn";
-  };
+  version = "2.18.2";
+
+in
+
+stdenv.mkDerivation {
+  pname = "lilypond";
+  inherit version;
 
-  src = fetchurl {
-    url = "http://download.linuxaudio.org/lilypond/sources/v${majorVersion}/lilypond-${version}.tar.gz";
-    sha256 = "01xs9x2wjj7w9appaaqdhk15r1xvvdbz9qwahzhppfmhclvp779j";
+  src = fetchgit {
+    url = "https://git.savannah.gnu.org/r/lilypond.git";
+    rev = "release/${version}-1";
+    sha256 = "0fk045fmmb6fcv7jdvkbqr04qlwnxzwclr2gzx3gja714xy6a76x";
   };
 
   postInstall = ''
@@ -33,7 +33,10 @@ stdenv.mkDerivation rec{
     done
   '';
 
-  configureFlags = [ "--disable-documentation" "--with-ncsb-dir=${urwfonts}"];
+  configureFlags = [
+    "--disable-documentation"
+    "--with-ncsb-dir=${ghostscript}/share/ghostscript/fonts"
+  ];
 
   preConfigure = ''
     sed -e "s@mem=mf2pt1@mem=$PWD/mf/mf2pt1@" -i scripts/build/mf2pt1.pl
@@ -56,8 +59,9 @@ stdenv.mkDerivation rec{
     description = "Music typesetting system";
     homepage = http://lilypond.org/;
     license = licenses.gpl3;
-    maintainers = [ maintainers.marcweber ];
+    maintainers = with maintainers; [ marcweber yurrriq ];
     platforms = platforms.all;
+    broken = stdenv.isDarwin;
   };
 
   patches = [ ./findlib.patch ];
diff --git a/pkgs/misc/lilypond/fonts.nix b/pkgs/misc/lilypond/fonts.nix
index bb3487cd0a88..00335eddce86 100644
--- a/pkgs/misc/lilypond/fonts.nix
+++ b/pkgs/misc/lilypond/fonts.nix
@@ -1,45 +1,43 @@
 { stdenv, fetchFromGitHub, lilypond }:
 
-with stdenv.lib;
-
 let
-  olpFont = a@{
-    fontName,
-    rev,
-    sha256,
-    version ? rev,
-    ...
-  }:
-    stdenv.mkDerivation (a // rec {
+
+  olpFont = { fontName, rev, sha256, version ? rev, ... }:
+    stdenv.mkDerivation {
       inherit version;
-      name = "openlilypond-font-${fontName}-${version}";
+      pname = "openlilypond-font-${fontName}";
+
 
       src = fetchFromGitHub {
         inherit rev sha256;
         owner = "OpenLilyPondFonts";
-        repo = a.fontName;
+        repo = fontName;
       };
 
       phases = [ "unpackPhase" "installPhase" ];
 
       installPhase = ''
-        for f in {otf,supplementary-fonts}/**.{o,t}tf; do
-          install -Dt $out/otf -m755 $f
+        local fontsdir="$out/share/lilypond/${lilypond.version}/fonts"
+
+        install -m755 -d "$fontsdir/otf"
+        for font in {otf,supplementary-fonts}/**.{o,t}tf; do
+          install -Dt "$fontsdir/otf" -m755 "$font"
         done
 
-        for f in svg/**.{svg,woff}; do
-          install -Dt $out/svg -m755 $f
+        install -m755 -d "$fontsdir/svg"
+        for font in svg/**.{svg,woff}; do
+          install -Dt "$fontsdir/svg" -m755 "$font"
         done
       '';
 
-      meta = {
+      meta = with stdenv.lib; {
         inherit (src.meta) homepage;
+        inherit (lilypond.meta) platforms;
         description = "${fontName} font for LilyPond";
-        license = a.license or licenses.ofl;
-        platforms = lilypond.meta.platforms;
-        maintainers = (a.meta.maintainers or []) ++ [ maintainers.yurrriq ];
+        license = licenses.ofl;
+        maintainers = with maintainers; [ yurrriq ];
       };
-    });
+    };
 
 in
 
@@ -86,8 +84,8 @@ rec {
   };
   lilyjazz = olpFont {
     fontName = "lilyjazz";
-    rev = "8f1f2dd";
-    sha256 = "0k44dl5hfcn7wn2b6c51mbw6hsb1sprmx95xiabvcbpxnkplbmac";
+    rev = "8fa7d554";
+    sha256 = "1z7px7k2sn7snnj7yfjv0p9axwbn452vn9ww9icmb1249b0d1qry";
   };
   lv-goldenage = olpFont {
     fontName = "lv-goldenage";
diff --git a/pkgs/misc/lilypond/unstable.nix b/pkgs/misc/lilypond/unstable.nix
index df83502aa88a..ce72c1fdfee8 100644
--- a/pkgs/misc/lilypond/unstable.nix
+++ b/pkgs/misc/lilypond/unstable.nix
@@ -1,26 +1,23 @@
-{ stdenv, fetchurl, fetchgit, rsync, lilypond, gyre-fonts }:
+{ stdenv, fetchgit, lilypond, ghostscript, gyre-fonts }:
 
-with stdenv.lib;
+let
 
-let urw-fonts = fetchgit {
-  url = "http://git.ghostscript.com/urw-core35-fonts.git";
-  rev = "1f28a6fcd2176256a995db907d9ffe6e1b9b83e9";
-  sha256 = "1nlx95l1pw5lxqp2v0rn9a7lqrsbbhzr0dy3cybk55r4a8awbr2a";
-}; in
+  version = "2.19.83";
 
-overrideDerivation lilypond (p: rec {
-  majorVersion = "2.19";
-  minorVersion = "65";
-  version="${majorVersion}.${minorVersion}";
-  name = "lilypond-${version}";
+in
 
-  src = fetchurl {
-    url = "http://download.linuxaudio.org/lilypond/sources/v${majorVersion}/lilypond-${version}.tar.gz";
-    sha256 = "0k2jy7z58j62c5cv1308ac62d6jri17wip76xrbq8s6jq6jl7phd";
-  };
-
-  configureFlags = [ "--disable-documentation" "--with-urwotf-dir=${urw-fonts}" "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/"];
+lilypond.overrideAttrs (oldAttrs: {
+  inherit version;
 
-  buildInputs = p.buildInputs ++ [ rsync ];
+  src = fetchgit {
+    url = "https://git.savannah.gnu.org/r/lilypond.git";
+    rev = "release/${version}-1";
+    sha256 = "1ycyx9x76d79jh7wlwyyhdjkyrwnhzqpw006xn2fk35s0jrm2iz0";
+  };
 
+  configureFlags = [
+    "--disable-documentation"
+    "--with-urwotf-dir=${ghostscript}/share/ghostscript/fonts"
+    "--with-texgyre-dir=${gyre-fonts}/share/fonts/truetype/"
+  ];
 })
diff --git a/pkgs/misc/lilypond/with-fonts.nix b/pkgs/misc/lilypond/with-fonts.nix
index 5bc74cb65ddf..829d2d4e02e4 100644
--- a/pkgs/misc/lilypond/with-fonts.nix
+++ b/pkgs/misc/lilypond/with-fonts.nix
@@ -1,35 +1,18 @@
-{ stdenv
-, lndir
-, lilypond
-, openlilylib-fonts
+{ stdenv, lndir, symlinkJoin, makeWrapper
+, lilypond, openlilylib-fonts
 , fonts ? openlilylib-fonts.all
 }:
 
-stdenv.lib.appendToName "with-fonts" (stdenv.mkDerivation {
-  inherit (lilypond) name;
-  phases = "installPhase";
-  buildInputs = fonts;
-  nativeBuildInputs = [ lndir ];
-  installPhase = ''
-    local fontsdir=$out/share/lilypond/${lilypond.version}/fonts
+stdenv.lib.appendToName "with-fonts" (symlinkJoin {
+  inherit (lilypond) meta name version ;
 
-    install -m755 -d $fontsdir/otf
-    install -m755 -d $fontsdir/svg
+  paths = [ lilypond ];
 
-    ${stdenv.lib.concatMapStrings (font: ''
-        lndir -silent ${font}/otf $fontsdir/otf
-        lndir -silent ${font}/svg $fontsdir/svg
-      '') fonts}
+  buildInputs = [ makeWrapper lndir ];
 
-      install -m755 -d $out/lib
-      lndir -silent ${lilypond}/lib $out/lib
-      install -m755 -d $out/share
-      lndir -silent ${lilypond}/share $out/share
-
-      install -m755 -Dt $out/bin ${lilypond}/bin/*
-
-      for p in $out/bin/*; do
-        substituteInPlace $p --replace "exec -a \"${lilypond}" "exec -a \"$out"
-      done
+  postBuild = ''
+    for p in $out/bin/*; do
+        wrapProgram "$p" --set LILYPOND_DATADIR "$datadir"
+    done
   '';
 })
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 8e2747514ec4..6c079b48121c 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -61,12 +61,12 @@ let
 
   ale = buildVimPluginFrom2Nix {
     pname = "ale";
-    version = "2019-06-05";
+    version = "2019-06-10";
     src = fetchFromGitHub {
       owner = "w0rp";
       repo = "ale";
-      rev = "7b78f2b846e2f3443dcb2ceacee54eb99e37f040";
-      sha256 = "1f6kldvcysa525xn6fnzg09chp39s63m7nxsq008lzykm30v00jr";
+      rev = "fea666bd27a0e2eb41868f30ae23121c72f4fe65";
+      sha256 = "1mrfwn7ri8wi8xffhsj266dw53cb9ikj6vap7535d3gg3bdhapp5";
     };
   };
 
@@ -237,12 +237,12 @@ let
 
   coc-nvim = buildVimPluginFrom2Nix {
     pname = "coc-nvim";
-    version = "2019-06-07";
+    version = "2019-06-10";
     src = fetchFromGitHub {
       owner = "neoclide";
       repo = "coc.nvim";
-      rev = "cbb5c031274f81a503ea0c0976252938de479980";
-      sha256 = "07i7fb12ai2xzknn624lvbl5qjazqx3mix390ymbscdskb726kaz";
+      rev = "910afc5579bd1342b37a5fcd536f3a32672c9fe8";
+      sha256 = "0fqndq6lr3v6g7id2x6y21ixy0vlh3bvxicidkvxdvnaql2b72nm";
     };
   };
 
@@ -414,12 +414,12 @@ let
 
   denite-nvim = buildVimPluginFrom2Nix {
     pname = "denite-nvim";
-    version = "2019-06-07";
+    version = "2019-06-09";
     src = fetchFromGitHub {
       owner = "Shougo";
       repo = "denite.nvim";
-      rev = "bfc010bfeed56681929b67e70662f8bb11977da7";
-      sha256 = "0gppzj0l83ldwxb3z41fvjlvyxalcnw90bfw4vvm6aghx0clxpkx";
+      rev = "b684541362bba929e45c4a03550ca44f31533332";
+      sha256 = "0jxhnx9m4ss502j17rh4sglrliapd8d7l3hsn68xiiryq4bfrayk";
     };
   };
 
@@ -650,12 +650,12 @@ let
 
   ferret = buildVimPluginFrom2Nix {
     pname = "ferret";
-    version = "2019-06-01";
+    version = "2019-06-10";
     src = fetchFromGitHub {
       owner = "wincent";
       repo = "ferret";
-      rev = "80c9f12cd0b7e0bce86b6b2142a8f8d1f1937519";
-      sha256 = "1w9ak71c3m588xkhqlr6alddhshmimvq0y3m1grz9s4jcv7zsgr0";
+      rev = "f72610d8b890962fb3f6ad80b902d4790e90f507";
+      sha256 = "15xyz25n8priam3s2wcvws05ry7w71v2m2j5bp0w1d5zmrw969p4";
     };
   };
 
@@ -706,12 +706,12 @@ let
 
   fzf-vim = buildVimPluginFrom2Nix {
     pname = "fzf-vim";
-    version = "2019-05-14";
+    version = "2019-06-08";
     src = fetchFromGitHub {
       owner = "junegunn";
       repo = "fzf.vim";
-      rev = "5c87ab86c0e7b0ec8a5edd39a4ce5500bb9e9333";
-      sha256 = "0ippj4xpxx8yypfp4fa66hahz9ciy2inyq9275ajpgs7gxs6yx7n";
+      rev = "91ed5f4b39b6e4a2ca50be1c8cec7e1148145fab";
+      sha256 = "1aij5xzcsi56pjns39y5ybg31qi8zaka949habakfy3jwl1wyrjf";
     };
   };
 
@@ -869,6 +869,17 @@ let
     };
   };
 
+  indentLine = buildVimPluginFrom2Nix {
+    pname = "indentLine";
+    version = "2019-02-22";
+    src = fetchFromGitHub {
+      owner = "Yggdroot";
+      repo = "indentLine";
+      rev = "47648734706fb2cd0e4d4350f12157d1e5f4c465";
+      sha256 = "0739hdvdfa1lm209q4sl75jvmf2k03cvlka7wv1gwnfl00krvszs";
+    };
+  };
+
   intero-neovim = buildVimPluginFrom2Nix {
     pname = "intero-neovim";
     version = "2018-08-07";
@@ -1180,12 +1191,12 @@ let
 
   neomake = buildVimPluginFrom2Nix {
     pname = "neomake";
-    version = "2019-06-05";
+    version = "2019-06-07";
     src = fetchFromGitHub {
       owner = "neomake";
       repo = "neomake";
-      rev = "443dcc03b79b2402bd14600c9c4377266f07d1f4";
-      sha256 = "0byqhzir1nvkir0wp8bw9ikw7z24r3csx3zbwdl1av1rmf3m7ld8";
+      rev = "3e8f7c5b2f108e5a7e1cffff37321abd06edf997";
+      sha256 = "1h0fk2097zfilbfawcg5k4j7p4ff17396pb3yfipd4ik9hfnbgk0";
     };
   };
 
@@ -1268,23 +1279,23 @@ let
 
   nerdcommenter = buildVimPluginFrom2Nix {
     pname = "nerdcommenter";
-    version = "2019-06-04";
+    version = "2019-06-08";
     src = fetchFromGitHub {
       owner = "scrooloose";
       repo = "nerdcommenter";
-      rev = "e6fd663def132bcbcd7fdb6ab34be117437b6944";
-      sha256 = "0r7qpy6m79j7vdq1p5ladfvclfly1vjxhwmj9xfcdbz2agpmkgj3";
+      rev = "17cec9747e464867676d8bee6cb7b411f17bd006";
+      sha256 = "1ph87m17liifmffaq3iizinhmq2z59jfpydlnsv6d67x5ia58dc5";
     };
   };
 
   nerdtree = buildVimPluginFrom2Nix {
     pname = "nerdtree";
-    version = "2019-05-09";
+    version = "2019-06-08";
     src = fetchFromGitHub {
       owner = "scrooloose";
       repo = "nerdtree";
-      rev = "67fa9b3116948466234978aa6287649f98e666bd";
-      sha256 = "0pzkcpqaalx3jncxfd3yf1ml7q5kkw4z1wqshilkr55nrb26chdg";
+      rev = "28eb47e2678cf629d92b4f1f00dd56cba22fc4ae";
+      sha256 = "18yj47zyiapgrxsg1hk497z6875bwqrl6jg395n91kf5cz9c269i";
     };
   };
 
@@ -2511,12 +2522,12 @@ let
 
   vim-dispatch = buildVimPluginFrom2Nix {
     pname = "vim-dispatch";
-    version = "2019-06-06";
+    version = "2019-06-09";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-dispatch";
-      rev = "eac3a56511119e3c2ca2eec2ba6e6bad72bc09a8";
-      sha256 = "1z3nh5v0kgbj3irmyx6b4l9zw8qsfzq8nvyly5v2xzbjsfyykwms";
+      rev = "597b338f3579ca6929c47465397974d366f4eccc";
+      sha256 = "0amwsncrcxv49d7yaprngsyzl5dai8ff4r1i7mlq3x1s8s5inqqg";
     };
   };
 
@@ -2687,12 +2698,12 @@ let
 
   vim-fugitive = buildVimPluginFrom2Nix {
     pname = "vim-fugitive";
-    version = "2019-06-04";
+    version = "2019-06-08";
     src = fetchFromGitHub {
       owner = "tpope";
       repo = "vim-fugitive";
-      rev = "41a734ef49c78cfdb97426cda811ee99c39e011a";
-      sha256 = "1d7nfyrjr96q8m8z9ssqx5qmv46273gimw9rm519h2271bdy1cri";
+      rev = "6d42c7df44aa20252e5dac747c3ac9fa7450b21b";
+      sha256 = "002s7jsn8m4h98hpbcblhmxywsyxgajz23wm3w96awqqz4chrp0i";
     };
   };
 
@@ -2940,12 +2951,12 @@ let
 
   vim-isort = buildVimPluginFrom2Nix {
     pname = "vim-isort";
-    version = "2019-03-12";
+    version = "2019-06-08";
     src = fetchFromGitHub {
       owner = "fisadev";
       repo = "vim-isort";
-      rev = "a0663e91cd50686f39e96f4e51d10a37e2187df8";
-      sha256 = "1vfnhms2x2flmpkd2y6s95w628raip3h95d59wms5vizmhs2d3xg";
+      rev = "b749d009075a333634dc61a039a2dc0e7f34609c";
+      sha256 = "1h8s21kwbjdg632jvd46r2va7il4f1dbgwfw8fkds0n08rbnpdjw";
     };
   };
 
@@ -3425,12 +3436,12 @@ let
 
   vim-polyglot = buildVimPluginFrom2Nix {
     pname = "vim-polyglot";
-    version = "2019-05-07";
+    version = "2019-06-08";
     src = fetchFromGitHub {
       owner = "sheerun";
       repo = "vim-polyglot";
-      rev = "aebef2c2e76b88384b1121c237c965e8cf8b3bcb";
-      sha256 = "1nb4i76y6rkznabr9nnnhaibyaig81gjvvpjv2afygllxh3cpqyx";
+      rev = "2edc785a5e21cf41960223b09bba8efc9276e777";
+      sha256 = "1fhzvmyw065zsgw4pswq95j2glzmggvqfrx8yla10bm4s2kk9r35";
     };
   };
 
@@ -3931,12 +3942,12 @@ let
 
   vim-visual-multi = buildVimPluginFrom2Nix {
     pname = "vim-visual-multi";
-    version = "2019-06-03";
+    version = "2019-06-10";
     src = fetchFromGitHub {
       owner = "mg979";
       repo = "vim-visual-multi";
-      rev = "727095b35430f0c7e4344cecfa3bf3d5aced2323";
-      sha256 = "0nchwk8v45rhsni6ccl9vz54f7hzykpq4c1argm2zcs0f1q55kwl";
+      rev = "a36e8fe95ec5327f6e53fcc09c2ede28d08f0285";
+      sha256 = "0nac508lnzcjp107l4cnx88bsqbd10f09bzm656w7w9q4xciddbd";
     };
   };
 
@@ -4085,12 +4096,12 @@ let
 
   vimtex = buildVimPluginFrom2Nix {
     pname = "vimtex";
-    version = "2019-06-05";
+    version = "2019-06-07";
     src = fetchFromGitHub {
       owner = "lervag";
       repo = "vimtex";
-      rev = "c725bf60cced15ed5b15d0162c9a56f651b3a992";
-      sha256 = "18wb76vhqy3a6yp4rzd2v9rrwqafhs1jgh67ir8sy5ga5xfwig81";
+      rev = "7ed563bc2ab1ee75396b243dd62cfc404933f63a";
+      sha256 = "01rpbh2mrsk2983hy7dzfvpaz8x0g9yqmmkr3q1844njip45xnki";
     };
   };
 
@@ -4221,8 +4232,8 @@ let
     src = fetchFromGitHub {
       owner = "HerringtonDarkholme";
       repo = "yats.vim";
-      rev = "15792ab97b69df7cf24fd160cc7eff1aac145e33";
-      sha256 = "1hsr2pcswp3nx2a8x7nnkzd966kjhy3ac0xpnh6arjsigvckw1ij";
+      rev = "6f81b702ccd0259cf3a17647ece639900e7edece";
+      sha256 = "1zyk74i0i8c4cz9hg08ka05f7gz5rr0karpqs2hr9hp8a0gb1mmy";
       fetchSubmodules = true;
     };
   };
@@ -4252,12 +4263,12 @@ let
 
   zeavim-vim = buildVimPluginFrom2Nix {
     pname = "zeavim-vim";
-    version = "2018-03-22";
+    version = "2019-06-07";
     src = fetchFromGitHub {
       owner = "KabbAmine";
       repo = "zeavim.vim";
-      rev = "6db8d84528d66ce6638db03c2864abfa8afa02aa";
-      sha256 = "1xw8d3ap6n31rh0a4413784sx4ki7wcz8qlwm2vf9in475vvznxj";
+      rev = "298e52ad683680b4aa19b53d009cf0e6b9197664";
+      sha256 = "1qj6z0vd7y89wfwh84rndl4iz6cvilncih2fc5xgmljaarg914fs";
     };
   };
 
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 3a2db91afd99..1c52f339d426 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -382,6 +382,7 @@ wincent/ferret
 xolox/vim-easytags
 xolox/vim-misc
 xuhdev/vim-latex-live-preview
+Yggdroot/indentLine
 zah/nim.vim
 zchee/deoplete-clang
 zchee/deoplete-go
diff --git a/pkgs/servers/jellyfin/default.nix b/pkgs/servers/jellyfin/default.nix
index e481c7aaa037..45f58cc7ab92 100644
--- a/pkgs/servers/jellyfin/default.nix
+++ b/pkgs/servers/jellyfin/default.nix
@@ -18,12 +18,12 @@ let
 
 in stdenv.mkDerivation rec {
   pname = "jellyfin";
-  version = "10.3.4";
+  version = "10.3.5";
 
   # Impossible to build anything offline with dotnet
   src = fetchurl {
     url = "https://github.com/jellyfin/jellyfin/releases/download/v${version}/jellyfin_${version}_portable.tar.gz";
-    sha256 = "0wc69dnc3bvzn26nw9ql814y2v7rypjlrw9iqkdganba9pkxa74j";
+    sha256 = "12asyrj2ax699gaf8402xfx049n6x0v8j5sba229vw1s66c2m8j2";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/graphics/wallutils/default.nix b/pkgs/tools/graphics/wallutils/default.nix
index 2d14c0809721..56fd53502444 100644
--- a/pkgs/tools/graphics/wallutils/default.nix
+++ b/pkgs/tools/graphics/wallutils/default.nix
@@ -4,16 +4,16 @@
 
 buildGoModule rec {
   name = "wallutils-${version}";
-  version = "5.8.0";
+  version = "5.8.1";
 
   src = fetchFromGitHub {
     owner = "xyproto";
     repo = "wallutils";
     rev = version;
-    sha256 = "1s9k2fwckpm1zpdxywckwbql38h0sp6y9ji88rxss7yjc2g12zaf";
+    sha256 = "095pgvk4yp2l6xgl63qp61rr2dij51awndwrs5ha9vpdd1jqgvfi";
   };
 
-  modSha256 = "0rfmqmm0jld7zrv192dqv7khwb2xm9i77sa1wgr7q6afdhbkrm21";
+  modSha256 = "1kbggry1qrf0nkvysnaky2nl73l5f0bnc4wx0hfr6ifyagfjzy77";
 
   patches = [ ./lscollection-Add-NixOS-paths-to-DefaultWallpaperDirectories.patch ];
 
diff --git a/pkgs/tools/system/throttled/default.nix b/pkgs/tools/system/throttled/default.nix
new file mode 100644
index 000000000000..4f52b5e09455
--- /dev/null
+++ b/pkgs/tools/system/throttled/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, python3Packages }:
+
+stdenv.mkDerivation rec {
+  pname = "throttled";
+  version = "0.6";
+
+  src = fetchFromGitHub {
+    owner = "erpalma";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1icb2288pj25vbdnd16zvisw9c01hp8vkk25ilkc74gy76xhpcs4";
+  };
+
+  nativeBuildInputs = [ python3Packages.wrapPython ];
+
+  pythonPath = with python3Packages; [ 
+    configparser
+    dbus-python
+    pygobject3
+  ];
+
+  # The upstream unit both assumes the install location, and tries to run in a virtualenv 
+  postPatch = ''sed -e 's|ExecStart=.*|ExecStart=${placeholder "out"}/bin/lenovo_fix.py|' -i systemd/lenovo_fix.service'';
+
+  installPhase = ''
+    runHook preInstall
+    install -D -m755 -t $out/bin lenovo_fix.py
+    install -D -t $out/bin lenovo_fix.py mmio.py
+    install -D -m644 -t $out/etc etc/*
+    install -D -m644 -t $out/lib/systemd/system systemd/*
+    runHook postInstall
+  '';
+
+  postFixup = ''wrapPythonPrograms'';
+
+  meta = with stdenv.lib; {
+    description = "Fix for Intel CPU throttling issues";
+    homepage = https://github.com/erpalma/throttled;
+    license = licenses.mit;
+    platforms = [ "x86_64-linux" ];
+    maintainers = with maintainers; [ michaelpj ];
+  };
+}
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index acd02e0d8f7b..71f20b4ae820 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -303,6 +303,7 @@ mapAliases ({
   shared_mime_info = shared-mime-info; # added 2018-02-25
   skrooge2 = skrooge; # added 2017-02-18
   skype = skypeforlinux; # added 2017-07-27
+  slic3r-prusa3d = prusa-slicer; # added 2019-05-21
   slurm-llnl = slurm; # renamed July 2017
   slurm-llnl-full = slurm-full; # renamed July 2017
   slurm-full = slurm; # added 2018-05-1
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 783d4f1ba3db..ee0333c2442a 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -20132,8 +20132,6 @@ in
 
   slic3r = callPackage ../applications/misc/slic3r { };
 
-  slic3r-prusa3d = callPackage ../applications/misc/slic3r/prusa3d.nix { };
-
   curaengine_stable = callPackage ../applications/misc/curaengine/stable.nix { };
   cura_stable = callPackage ../applications/misc/cura/stable.nix {
     curaengine = curaengine_stable;
@@ -20156,6 +20154,8 @@ in
 
   printrun = callPackage ../applications/misc/printrun { };
 
+  prusa-slicer = callPackage ../applications/misc/prusa-slicer { };
+
   sddm = libsForQt5.callPackage ../applications/display-managers/sddm { };
 
   skrooge = libsForQt5.callPackage ../applications/office/skrooge {};
@@ -23323,12 +23323,16 @@ in
   lguf-brightness = callPackage ../misc/lguf-brightness { };
 
   lilypond = callPackage ../misc/lilypond { guile = guile_1_8; };
+
   lilypond-unstable = callPackage ../misc/lilypond/unstable.nix { };
+
   lilypond-with-fonts = callPackage ../misc/lilypond/with-fonts.nix {
     lilypond = lilypond-unstable;
   };
 
-  openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix { };
+  openlilylib-fonts = callPackage ../misc/lilypond/fonts.nix {
+    lilypond = lilypond-unstable;
+  };
 
   loop = callPackage ../tools/misc/loop { };
 
@@ -23819,6 +23823,8 @@ in
 
   thermald = callPackage ../tools/system/thermald { };
 
+  throttled = callPackage ../tools/system/throttled { };
+
   thinkfan = callPackage ../tools/system/thinkfan { };
 
   tup = callPackage ../development/tools/build-managers/tup { };