summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--maintainers/maintainer-list.nix5
-rw-r--r--nixos/doc/manual/release-notes/rl-1903.xml10
-rw-r--r--nixos/modules/installer/tools/nixos-generate-config.pl2
-rw-r--r--nixos/modules/rename.nix3
-rw-r--r--nixos/modules/services/hardware/tlp.nix4
-rw-r--r--nixos/modules/services/networking/shairport-sync.nix2
-rw-r--r--nixos/modules/services/networking/ssh/sshd.nix5
-rw-r--r--nixos/modules/tasks/cpu-freq.nix71
-rw-r--r--pkgs/applications/altcoins/namecoin.nix4
-rw-r--r--pkgs/applications/audio/faust/faustlive.nix4
-rw-r--r--pkgs/applications/editors/neovim/default.nix4
-rw-r--r--pkgs/applications/editors/neovim/neovim-remote.nix4
-rw-r--r--pkgs/applications/editors/sublime/3/packages.nix6
-rw-r--r--pkgs/applications/graphics/wings/default.nix29
-rw-r--r--pkgs/applications/misc/digitalbitbox/default.nix4
-rw-r--r--pkgs/applications/misc/fsv/default.nix47
-rw-r--r--pkgs/applications/misc/pwsafe/default.nix4
-rw-r--r--pkgs/applications/misc/rofi/config.patch54
-rw-r--r--pkgs/applications/misc/rofi/default.nix12
-rw-r--r--pkgs/applications/misc/translate-shell/default.nix4
-rw-r--r--pkgs/applications/misc/visidata/default.nix4
-rw-r--r--pkgs/applications/misc/xterm/default.nix4
-rw-r--r--pkgs/applications/networking/instant-messengers/fractal/default.nix43
-rw-r--r--pkgs/applications/networking/instant-messengers/toxic/default.nix4
-rw-r--r--pkgs/applications/office/gnucash/2.4.nix91
-rw-r--r--pkgs/applications/office/gnucash/2.6.nix116
-rw-r--r--pkgs/applications/office/trilium/default.nix58
-rw-r--r--pkgs/applications/science/electronics/kicad/default.nix4
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix4
-rw-r--r--pkgs/applications/version-management/gitkraken/default.nix11
-rw-r--r--pkgs/data/fonts/cantarell-fonts/default.nix6
-rw-r--r--pkgs/data/fonts/cooper-hewitt/default.nix22
-rw-r--r--pkgs/data/fonts/droid/default.nix64
-rw-r--r--pkgs/data/fonts/font-awesome-5/default.nix8
-rw-r--r--pkgs/data/fonts/inter-ui/default.nix4
-rw-r--r--pkgs/data/fonts/iosevka/bin.nix4
-rw-r--r--pkgs/data/fonts/material-design-icons/default.nix4
-rw-r--r--pkgs/development/compilers/dmd/default.nix21
-rw-r--r--pkgs/development/compilers/ldc/default.nix139
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix21
-rw-r--r--pkgs/development/haskell-modules/hackage-packages.nix6
-rw-r--r--pkgs/development/interpreters/perl/default.nix9
-rw-r--r--pkgs/development/interpreters/perl/no-sys-dirs-5.29.patch251
-rw-r--r--pkgs/development/libraries/esdl/default.nix32
-rw-r--r--pkgs/development/libraries/goffice/0.8.nix38
-rw-r--r--pkgs/development/libraries/goffice/pcre_info.patch13
-rw-r--r--pkgs/development/libraries/libqrencode/default.nix35
-rw-r--r--pkgs/development/libraries/libxmlb/default.nix4
-rw-r--r--pkgs/development/libraries/qrencode/default.nix47
-rw-r--r--pkgs/development/libraries/science/math/suitesparse/default.nix11
-rw-r--r--pkgs/development/libraries/sqlcipher/default.nix4
-rw-r--r--pkgs/development/libraries/sundials/default.nix4
-rw-r--r--pkgs/development/libraries/wolfssl/default.nix4
-rw-r--r--pkgs/development/python-modules/blockdiagcontrib-cisco/default.nix25
-rw-r--r--pkgs/development/python-modules/channels/default.nix4
-rw-r--r--pkgs/development/python-modules/curve25519-donna/default.nix18
-rw-r--r--pkgs/development/python-modules/pyatv/default.nix24
-rw-r--r--pkgs/development/python-modules/pybotvac/default.nix20
-rw-r--r--pkgs/development/python-modules/pytado/default.nix21
-rw-r--r--pkgs/development/python-modules/srptools/default.nix22
-rw-r--r--pkgs/development/python-modules/stem/default.nix4
-rw-r--r--pkgs/development/python-modules/zodbpickle/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/dub/default.nix4
-rw-r--r--pkgs/development/tools/build-managers/sbt/default.nix4
-rw-r--r--pkgs/development/tools/documentation/doxygen/default.nix7
-rw-r--r--pkgs/development/tools/dtools/default.nix6
-rw-r--r--pkgs/development/tools/literate-programming/Literate/default.nix6
-rw-r--r--pkgs/development/tools/misc/cproto/default.nix32
-rw-r--r--pkgs/games/anki/default.nix16
-rw-r--r--pkgs/games/frogatto/data.nix26
-rw-r--r--pkgs/games/frogatto/default.nix43
-rw-r--r--pkgs/games/frogatto/engine.nix50
-rw-r--r--pkgs/misc/vim-plugins/generated.nix10
-rw-r--r--pkgs/misc/vim-plugins/vim-plugin-names1
-rw-r--r--pkgs/misc/vim-plugins/vim-utils.nix70
-rw-r--r--pkgs/os-specific/linux/conky/default.nix4
-rw-r--r--pkgs/os-specific/linux/google-authenticator/default.nix2
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix6
-rw-r--r--pkgs/os-specific/linux/lxc/default.nix4
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix22
-rw-r--r--pkgs/servers/sql/postgresql/default.nix6
-rw-r--r--pkgs/stdenv/linux/bootstrap-files/x86_64-musl.nix8
-rw-r--r--pkgs/stdenv/native/default.nix2
-rw-r--r--pkgs/tools/graphics/qrencode/default.nix21
-rw-r--r--pkgs/tools/misc/sdate/default.nix19
-rw-r--r--pkgs/tools/misc/woeusb/default.nix4
-rw-r--r--pkgs/tools/misc/xdaliclock/default.nix4
-rw-r--r--pkgs/tools/networking/spoofer/default.nix4
-rw-r--r--pkgs/tools/networking/tcpreplay/default.nix4
-rw-r--r--pkgs/tools/security/asc-key-to-qr-code-gif/default.nix6
-rw-r--r--pkgs/tools/system/smartmontools/default.nix17
-rw-r--r--pkgs/tools/virtualization/amazon-ecs-cli/default.nix30
-rw-r--r--pkgs/top-level/aliases.nix2
-rw-r--r--pkgs/top-level/all-packages.nix52
-rw-r--r--pkgs/top-level/emacs-packages.nix22
-rw-r--r--pkgs/top-level/python-packages.nix12
-rw-r--r--pkgs/top-level/release.nix5
97 files changed, 1185 insertions, 856 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index e7750bfc47f..71422e4ed5a 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -391,6 +391,11 @@
     github = "asppsa";
     name = "Alastair Pharo";
   };
+  astro = {
+    email = "astro@spaceboyz.net";
+    github = "astro";
+    name = "Astro";
+  };
   astsmtl = {
     email = "astsmtl@yandex.ru";
     github = "astsmtl";
diff --git a/nixos/doc/manual/release-notes/rl-1903.xml b/nixos/doc/manual/release-notes/rl-1903.xml
index 89d9f48aedd..65761c12c6a 100644
--- a/nixos/doc/manual/release-notes/rl-1903.xml
+++ b/nixos/doc/manual/release-notes/rl-1903.xml
@@ -408,6 +408,16 @@
        from nixpkgs due to the lack of maintainers.
      </para>
    </listitem>
+   <listitem>
+    <para>
+       The <option>powerManagement.cpuFreqGovernor</option> option has been
+       aliased to <option>powerManagement.cpufreq.governor</option>.  On laptops,
+       <option>powerManagement.cpuFreqGovernor</option> is sometimes set in
+       <literal>/etc/nixos/hardware-configuration.nix</literal>, so you can
+       rename it to the new name, or run
+       <literal>nixos-generate-config</literal> again.
+    </para>
+   </listitem>
   </itemizedlist>
  </section>
 </section>
diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl
index 52a129b39bc..fa01dc7bbaf 100644
--- a/nixos/modules/installer/tools/nixos-generate-config.pl
+++ b/nixos/modules/installer/tools/nixos-generate-config.pl
@@ -104,7 +104,7 @@ if (-e "/sys/devices/system/cpu/cpu0/cpufreq/scaling_available_governors") {
 
     foreach $e (@desired_governors) {
         if (index($governors, $e) != -1) {
-            last if (push @attrs, "powerManagement.cpuFreqGovernor = lib.mkDefault \"$e\";");
+            last if (push @attrs, "powerManagement.cpufreq.governor = lib.mkDefault \"$e\";");
         }
     }
 }
diff --git a/nixos/modules/rename.nix b/nixos/modules/rename.nix
index dc0a175d5bb..0ed0f4ac209 100644
--- a/nixos/modules/rename.nix
+++ b/nixos/modules/rename.nix
@@ -286,6 +286,9 @@ with lib;
     (mkRenamedOptionModule [ "hardware" "ckb" "enable" ] [ "hardware" "ckb-next" "enable" ])
     (mkRenamedOptionModule [ "hardware" "ckb" "package" ] [ "hardware" "ckb-next" "package" ])
 
+    # cpufeq
+    (mkAliasOptionModule [ "powerManagement" "cpuFreqGovernor" ] [ "powerManagement" "cpufreq" "governor" ])
+
   ] ++ (flip map [ "blackboxExporter" "collectdExporter" "fritzboxExporter"
                    "jsonExporter" "minioExporter" "nginxExporter" "nodeExporter"
                    "snmpExporter" "unifiExporter" "varnishExporter" ]
diff --git a/nixos/modules/services/hardware/tlp.nix b/nixos/modules/services/hardware/tlp.nix
index 68425822a88..bbc5b5b80a0 100644
--- a/nixos/modules/services/hardware/tlp.nix
+++ b/nixos/modules/services/hardware/tlp.nix
@@ -55,7 +55,9 @@ in
   config = mkIf cfg.enable {
 
     powerManagement.scsiLinkPolicy = null;
-    powerManagement.cpuFreqGovernor = null;
+    powerManagement.cpufreq.governor = null;
+    powerManagement.cpufreq.max = null;
+    powerManagement.cpufreq.min = null;
 
     systemd.sockets."systemd-rfkill".enable = false;
 
diff --git a/nixos/modules/services/networking/shairport-sync.nix b/nixos/modules/services/networking/shairport-sync.nix
index 90c0689dc7b..68e005ab81d 100644
--- a/nixos/modules/services/networking/shairport-sync.nix
+++ b/nixos/modules/services/networking/shairport-sync.nix
@@ -27,7 +27,7 @@ in
       };
 
       arguments = mkOption {
-        default = "-v pulse";
+        default = "-v -o pa";
         description = ''
           Arguments to pass to the daemon. Defaults to a local pulseaudio
           server.
diff --git a/nixos/modules/services/networking/ssh/sshd.nix b/nixos/modules/services/networking/ssh/sshd.nix
index 5fab79f1b3d..90d08ca3131 100644
--- a/nixos/modules/services/networking/ssh/sshd.nix
+++ b/nixos/modules/services/networking/ssh/sshd.nix
@@ -352,6 +352,10 @@ in
             path = [ cfgc.package pkgs.gawk ];
             environment.LD_LIBRARY_PATH = nssModulesPath;
 
+            restartTriggers = optionals (!cfg.startWhenNeeded) [
+              config.environment.etc."ssh/sshd_config".source
+            ];
+
             preStart =
               ''
                 # Make sure we don't write to stdout, since in case of
@@ -387,6 +391,7 @@ in
                 Restart = "always";
                 Type = "simple";
               });
+
           };
       in
 
diff --git a/nixos/modules/tasks/cpu-freq.nix b/nixos/modules/tasks/cpu-freq.nix
index 5f8b5df52ac..684c43a1e90 100644
--- a/nixos/modules/tasks/cpu-freq.nix
+++ b/nixos/modules/tasks/cpu-freq.nix
@@ -4,22 +4,43 @@ with lib;
 
 let
   cpupower = config.boot.kernelPackages.cpupower;
-  cfg = config.powerManagement;
+  cfg = config.powerManagement.cpufreq;
 in
 
 {
   ###### interface
 
-  options = {
+  options.powerManagement.cpufreq = {
 
-    powerManagement.cpuFreqGovernor = mkOption {
+    governor = mkOption {
       type = types.nullOr types.str;
       default = null;
       example = "ondemand";
       description = ''
         Configure the governor used to regulate the frequence of the
         available CPUs. By default, the kernel configures the
-        performance governor.
+        performance governor, although this may be overwriten in your
+        hardware-configuration.nix file.
+
+        Often used values: "ondemand", "powersave", "performance"
+      '';
+    };
+
+    max = mkOption {
+      type = types.nullOr types.ints.unsigned;
+      default = null;
+      example = 2200000;
+      description = ''
+        The maximum frequency the CPU will use.  Defaults to the maximum possible.
+      '';
+    };
+
+    min = mkOption {
+      type = types.nullOr types.ints.unsigned;
+      default = null;
+      example = 800000;
+      description = ''
+        The minimum frequency the CPU will use.
       '';
     };
 
@@ -28,25 +49,37 @@ in
 
   ###### implementation
 
-  config = mkIf (!config.boot.isContainer && config.powerManagement.cpuFreqGovernor != null) {
+  config =
+    let
+      governorEnable = cfg.governor != null;
+      maxEnable = cfg.max != null;
+      minEnable = cfg.min != null;
+      enable =
+        !config.boot.isContainer &&
+        (governorEnable || maxEnable || minEnable);
+    in
+    mkIf enable {
 
-    boot.kernelModules = [ "cpufreq_${cfg.cpuFreqGovernor}" ];
+      boot.kernelModules = optional governorEnable "cpufreq_${cfg.governor}";
 
-    environment.systemPackages = [ cpupower ];
+      environment.systemPackages = [ cpupower ];
 
-    systemd.services.cpufreq = {
-      description = "CPU Frequency Governor Setup";
-      after = [ "systemd-modules-load.service" ];
-      wantedBy = [ "multi-user.target" ];
-      path = [ cpupower pkgs.kmod ];
-      unitConfig.ConditionVirtualization = false;
-      serviceConfig = {
-        Type = "oneshot";
-        RemainAfterExit = "yes";
-        ExecStart = "${cpupower}/bin/cpupower frequency-set -g ${cfg.cpuFreqGovernor}";
-        SuccessExitStatus = "0 237";
+      systemd.services.cpufreq = {
+        description = "CPU Frequency Setup";
+        after = [ "systemd-modules-load.service" ];
+        wantedBy = [ "multi-user.target" ];
+        path = [ cpupower pkgs.kmod ];
+        unitConfig.ConditionVirtualization = false;
+        serviceConfig = {
+          Type = "oneshot";
+          RemainAfterExit = "yes";
+          ExecStart = "${cpupower}/bin/cpupower frequency-set " +
+            optionalString governorEnable "--governor ${cfg.governor} " +
+            optionalString maxEnable "--max ${toString cfg.max} " +
+            optionalString minEnable "--min ${toString cfg.min} ";
+          SuccessExitStatus = "0 237";
+        };
       };
-    };
 
   };
 }
diff --git a/pkgs/applications/altcoins/namecoin.nix b/pkgs/applications/altcoins/namecoin.nix
index 93f9faf833a..4b8dc5525dc 100644
--- a/pkgs/applications/altcoins/namecoin.nix
+++ b/pkgs/applications/altcoins/namecoin.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, libqrencode, hexdump
+{ stdenv, fetchFromGitHub, openssl, boost, libevent, autoreconfHook, db4, miniupnpc, eject, pkgconfig, qt4, protobuf, qrencode, hexdump
 , withGui }:
 
 with stdenv.lib;
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
   ] ++ optionals withGui [
     qt4
     protobuf
-    libqrencode
+    qrencode
   ];
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/faust/faustlive.nix b/pkgs/applications/audio/faust/faustlive.nix
index b8ff73f2cb3..754c4807060 100644
--- a/pkgs/applications/audio/faust/faustlive.nix
+++ b/pkgs/applications/audio/faust/faustlive.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub
-, llvm, qt48Full, libqrencode, libmicrohttpd, libjack2, alsaLib, faust, curl
+, llvm, qt48Full, qrencode, libmicrohttpd, libjack2, alsaLib, faust, curl
 , bc, coreutils, which
 }:
 
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
   };
 
   buildInputs = [
-    llvm qt48Full libqrencode libmicrohttpd libjack2 alsaLib faust curl
+    llvm qt48Full qrencode libmicrohttpd libjack2 alsaLib faust curl
     bc coreutils which
   ];
 
diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix
index 26fc44cc6b1..99c3c62663c 100644
--- a/pkgs/applications/editors/neovim/default.nix
+++ b/pkgs/applications/editors/neovim/default.nix
@@ -11,13 +11,13 @@ let
 
   neovim = stdenv.mkDerivation rec {
     name = "neovim-unwrapped-${version}";
-    version = "0.3.1";
+    version = "0.3.2";
 
     src = fetchFromGitHub {
       owner = "neovim";
       repo = "neovim";
       rev = "v${version}";
-      sha256 = "19jy9nr2ffscli6wsysqkdvqvh7sgkkwhzkw3yypfrvg4pj9rl56";
+      sha256 = "0gniick8jbra1xz5nmg9jyxr7dsnbh9n9bcbp7fq3acb2qnrd22y";
     };
 
     enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix
index 11566293c49..d9b928f111a 100644
--- a/pkgs/applications/editors/neovim/neovim-remote.nix
+++ b/pkgs/applications/editors/neovim/neovim-remote.nix
@@ -4,14 +4,14 @@ with stdenv.lib;
 
 pythonPackages.buildPythonPackage rec {
   pname = "neovim-remote";
-  version = "2.1.1";
+  version = "2.1.3";
   disabled = !pythonPackages.isPy3k;
 
   src = fetchFromGitHub {
     owner = "mhinz";
     repo = "neovim-remote";
     rev = "v${version}";
-    sha256 = "1hkzcc141imjin03wpfykw50k0vs7vj1lr09czb2hsyf937gyjqn";
+    sha256 = "0nx987af29ajlpwnwfc3z8gplxv69gj53s4bzm6pwwsfbhfakdah";
   };
 
   propagatedBuildInputs = with pythonPackages; [ pynvim psutil ];
diff --git a/pkgs/applications/editors/sublime/3/packages.nix b/pkgs/applications/editors/sublime/3/packages.nix
index f9a6f1cb6dc..2d214f18e9f 100644
--- a/pkgs/applications/editors/sublime/3/packages.nix
+++ b/pkgs/applications/editors/sublime/3/packages.nix
@@ -5,9 +5,9 @@ let
 in
   rec {
     sublime3-dev = common {
-      buildVersion = "3183";
-      x32sha256 = "0rgah7iq9y3afbawcb723d2b7m56lz0ji5l8klxvkp59c9rphqxh";
-      x64sha256 = "1n3zarkhs22p2vi32fswb0fvcn9fzivmziw6zcvjy02c0rmxmdkz";
+      buildVersion = "3184";
+      x32sha256 = "1b6f1fid75g5z247dbnyyj276lrlv99scrdk1vvfcr6vyws77vzr";
+      x64sha256 = "03127jhfjr17ai96p3axh5b5940fds8jcw6vkid8y6dmvd2dpylz";
     } {};
 
     sublime3 = common {
diff --git a/pkgs/applications/graphics/wings/default.nix b/pkgs/applications/graphics/wings/default.nix
index 9ecf94e21c0..ed3220d2bf9 100644
--- a/pkgs/applications/graphics/wings/default.nix
+++ b/pkgs/applications/graphics/wings/default.nix
@@ -1,34 +1,35 @@
-{ fetchurl, stdenv, erlang, esdl, cl }:
+{ fetchurl, stdenv, erlang, cl, libGL, libGLU }:
 
 stdenv.mkDerivation rec {
-  name = "wings-1.5.4";
+  name = "wings-2.2.1";
   src = fetchurl {
     url = "mirror://sourceforge/wings/${name}.tar.bz2";
-    sha256 = "0qz6rmmkqgk3p0d3v2ikkf22n511bq0m7xp3kkradwrp28fcl15x";
+    sha256 = "1adlq3wd9bz0hjznpzsgilxgsbhr0kk01f06872mq37v4cbw76bh";
   };
 
-  ERL_LIBS = "${esdl}/lib/erlang/lib:${cl}/lib/erlang/lib";
+  ERL_LIBS = "${cl}/lib/erlang/lib";
 
   patchPhase = ''
-    sed -i 's,include("sdl_keyboard.hrl"),include_lib("esdl/include/sdl_keyboard.hrl"),' \
-      src/wings_body.erl plugins_src/commands/wpc_constraints.erl
-
-    # Fix reference
-    sed -i 's,wings/e3d/,,' plugins_src/import_export/wpc_lwo.erl
+    sed -i 's,-Werror ,,' e3d/Makefile
+    sed -i 's,../../wings/,../,' icons/Makefile
+    find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../../src/,' {} \;
+    find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../../e3d/,' {} \;
+    find plugins_src -mindepth 2 -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../../intl_tools/,' {} \;
+    find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/src/,../src/,' {} \;
+    find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/e3d/,../e3d/,' {} \;
+    find . -type f -name "*.[eh]rl" -exec sed -i 's,wings/intl_tools/,../intl_tools/,' {} \;
   '';
 
-  buildInputs = [ erlang esdl cl ];
+  buildInputs = [ erlang cl libGL libGLU ];
 
   # I did not test the *cl* part. I added the -pa just by imitation.
   installPhase = ''
     mkdir -p $out/bin $out/lib/${name}/ebin
     cp ebin/* $out/lib/${name}/ebin
-    cp -R fonts textures shaders plugins $out/lib/$name
+    cp -R textures shaders plugins $out/lib/$name
     cat << EOF > $out/bin/wings
     #!/bin/sh
-    ${erlang}/bin/erl -smp disable \
-      -pa ${esdl}/lib/erlang/lib/${cl.name}/ebin \
-      -pa ${esdl}/lib/erlang/lib/${esdl.name}/ebin \
+    ${erlang}/bin/erl \
       -pa $out/lib/${name}/ebin -run wings_start start_halt "$@"
     EOF
     chmod +x $out/bin/wings
diff --git a/pkgs/applications/misc/digitalbitbox/default.nix b/pkgs/applications/misc/digitalbitbox/default.nix
index 3e6a6ab53f7..939e2e9fc16 100644
--- a/pkgs/applications/misc/digitalbitbox/default.nix
+++ b/pkgs/applications/misc/digitalbitbox/default.nix
@@ -6,7 +6,7 @@
 , libcap
 , libevent
 , libtool
-, libqrencode
+, qrencode
 , udev
 , libusb
 , makeWrapper
@@ -74,7 +74,7 @@ in stdenv.mkDerivation rec {
     libtool
     udev
     libusb
-    libqrencode
+    qrencode
 
     qtbase
     qtwebsockets
diff --git a/pkgs/applications/misc/fsv/default.nix b/pkgs/applications/misc/fsv/default.nix
new file mode 100644
index 00000000000..782a37040d8
--- /dev/null
+++ b/pkgs/applications/misc/fsv/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, fetchFromGitHub, autoreconfHook
+, libtool, pkgconfig, gtk2, libGLU, file
+}:
+
+let
+  gtkglarea = stdenv.mkDerivation rec {
+    name    = "gtkglarea-${version}";
+    version = "2.1.0";
+    src = fetchurl {
+      url    = "mirror://gnome/sources/gtkglarea/2.1/${name}.tar.xz";
+      sha256 = "1pl2vdj6l64j864ilhkq1bcggb3hrlxjwk5m029i7xfjfxc587lf";
+    };
+    nativeBuildInputs = [ pkgconfig ];
+    buildInputs       = [ gtk2 libGLU ];
+    hardeningDisable  = [ "format" ];
+  };
+
+in stdenv.mkDerivation rec {
+  name    = "fsv-${version}";
+  version = "0.9-1";
+
+  src = fetchFromGitHub {
+    owner  = "mcuelenaere"; 
+    repo   = "fsv";
+    rev    = name;
+    sha256 = "0n09jd7yqj18mx6zqbg7kab4idg5llr15g6avafj74fpg1h7iimj";
+  };
+
+  nativeBuildInputs = [ autoreconfHook libtool pkgconfig ];
+  buildInputs       = [ file gtk2 libGLU gtkglarea ];
+
+  meta = with stdenv.lib; {
+    description     = "fsv is a file system visualizer in cyberspace";
+    longDescription = ''
+      fsv (pronounced eff-ess-vee) is a file system visualizer in cyberspace.
+      It lays out files and directories in three dimensions, geometrically
+      representing the file system hierarchy to allow visual overview
+      and analysis. fsv can visualize a modest home directory, a workstation's
+      hard drive, or any arbitrarily large collection of files, limited only
+      by the host computer's memory and graphics hardware.
+    '';
+    homepage    = https://github.com/mcuelenaere/fsv;
+    license     = licenses.lgpl2;
+    platforms   = platforms.mesaPlatforms;
+    maintainers = with maintainers; [ rnhmjoj ];
+  };
+}
diff --git a/pkgs/applications/misc/pwsafe/default.nix b/pkgs/applications/misc/pwsafe/default.nix
index 7b0e299924c..a0b702fa145 100644
--- a/pkgs/applications/misc/pwsafe/default.nix
+++ b/pkgs/applications/misc/pwsafe/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, cmake, pkgconfig, zip, gettext, perl
 , wxGTK31, libXi, libXt, libXtst, xercesc, xextproto
-, libqrencode, libuuid, libyubikey, yubikey-personalization
+, qrencode, libuuid, libyubikey, yubikey-personalization
 }:
 
 stdenv.mkDerivation rec {
@@ -17,7 +17,7 @@ stdenv.mkDerivation rec {
 
   nativeBuildInputs = [ cmake pkgconfig zip ];
   buildInputs = [
-    gettext perl libqrencode libuuid
+    gettext perl qrencode libuuid
     libXi libXt libXtst wxGTK31 xercesc xextproto
     libyubikey yubikey-personalization
   ];
diff --git a/pkgs/applications/misc/rofi/config.patch b/pkgs/applications/misc/rofi/config.patch
deleted file mode 100644
index 46982d51e00..00000000000
--- a/pkgs/applications/misc/rofi/config.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-diff --git a/script/rofi-theme-selector b/script/rofi-theme-selector
-index 0646e4bc..f827dbfe 100755
---- a/script/rofi-theme-selector
-+++ b/script/rofi-theme-selector
-@@ -42,34 +42,7 @@ function find_themes()
-     DIRS=${XDG_DATA_DIRS}
-     OLDIFS=${IFS}
-     IFS=:
--    if [ -z "${XDG_DATA_DIRS}" ]
--    then
--        echo "XDG_DATA_DIRS needs to be set for this script to function correctly."
--        echo -n "Using dirs from \$PATH: "
--        DIRS=
--        # Iterate over items in $PATH
--        for p in ${PATH}; do
--            # Remove trailing / if exists.
--            x=${p%/}
--            # remove both /bin and /sbin and /games from end
--            x=${x%/bin}
--            x=${x%/sbin}
--            x=${x%/games}
--            # Add /share
--            x=${x}/share
--            # Check if entry exists Prepend : so :${x}: matches nicely
--            case ":${DIRS}" in
--                *$x:*);;
--                *) DIRS+="$x:";;
--            esac
--        done
--        # Remove trailing :
--        DIRS=${DIRS%:}
--        echo "${DIRS}"
--    fi
--    # Add user dir.
--    DIRS+=":${HOME}/.local/share/"
--    DIRS+=":${HOME}/.config/"
-+    DIRS+=":%ROFIOUT%/"
-     for p in ${DIRS}; do 
-     	p=${p%/}
-         TD=${p}/rofi/themes
-@@ -164,7 +137,12 @@ Current theme: <b>${CUR}</b>"""
- ###
- function set_theme()
- {
--    CDIR="${HOME}/.config/rofi/"
-+    if [ -d "${XDG_CONFIG_HOME}" ]; then
-+      CDIR="${XDG_CONFIG_HOME}/rofi/"
-+    else
-+      CDIR="${HOME}/.config/rofi/"
-+    fi
-+
-     if [ ! -d "${CDIR}" ]
-     then
-         mkdir -p ${CDIR}
diff --git a/pkgs/applications/misc/rofi/default.nix b/pkgs/applications/misc/rofi/default.nix
index 63b047976b3..0edcde12e34 100644
--- a/pkgs/applications/misc/rofi/default.nix
+++ b/pkgs/applications/misc/rofi/default.nix
@@ -4,28 +4,20 @@
 }:
 
 stdenv.mkDerivation rec {
-  version = "1.5.1";
+  version = "1.5.2";
   name = "rofi-unwrapped-${version}";
 
   src = fetchurl {
     url = "https://github.com/DaveDavenport/rofi/releases/download/${version}/rofi-${version}.tar.gz";
-    sha256 = "1dc33zf33z38jcxb0lxpyd31waalpf6d4cd9z5f9m5qphdk1g679";
+    sha256 = "1rczxz6l32vnclarzga1sm1d5iq9rfscb9j7f8ih185n59hf0517";
   };
 
-  # config.patch may be removed in the future - https://github.com/DaveDavenport/rofi/pull/781
-  patches = [ ./config.patch ];
-
   preConfigure = ''
     patchShebangs "script"
     # root not present in build /etc/passwd
     sed -i 's/~root/~nobody/g' test/helper-expand.c
   '';
 
-  postFixup = ''
-    substituteInPlace "$out"/bin/rofi-theme-selector \
-        --replace "%ROFIOUT%" "$out/share"
-  '';
-
   nativeBuildInputs = [ autoreconfHook pkgconfig ];
   buildInputs = [ libxkbcommon pango cairo git bison flex librsvg check
     libstartup_notification libxcb xcbutil xcbutilwm xcbutilxrm which
diff --git a/pkgs/applications/misc/translate-shell/default.nix b/pkgs/applications/misc/translate-shell/default.nix
index 15c4b8185a2..5d50238a9f0 100644
--- a/pkgs/applications/misc/translate-shell/default.nix
+++ b/pkgs/applications/misc/translate-shell/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
   pname = "translate-shell";
-  version = "0.9.6.8";
+  version = "0.9.6.9";
 
   src = fetchFromGitHub {
     owner = "soimort";
     repo = "translate-shell";
     rev = "v${version}";
-    sha256 = "17fc5nlc594lvmihx39h4ddmi8ja3qqsyswzxadbaz7l3zm356b8";
+    sha256 = "1xyf0vdxmbgqcgsr1gvgwh1q4fh080h68radkim6pfcwzffliszm";
   };
 
   buildInputs = [ makeWrapper ];
diff --git a/pkgs/applications/misc/visidata/default.nix b/pkgs/applications/misc/visidata/default.nix
index 20e3c3daccb..68e3de4b341 100644
--- a/pkgs/applications/misc/visidata/default.nix
+++ b/pkgs/applications/misc/visidata/default.nix
@@ -4,13 +4,13 @@
 buildPythonApplication rec {
   name = "${pname}-${version}";
   pname = "visidata";
-  version = "1.5";
+  version = "1.5.1";
 
   src = fetchFromGitHub {
     owner = "saulpw";
     repo = "visidata";
     rev = "v${version}";
-    sha256 = "0schpfksxddbsv0s54pv1jrf151nw9kr51m41fp0ycnw7z2jqirm";
+    sha256 = "1pflv7nnv9nyfhynrdbh5pgvjxzj53hgqd972dis9rwwwkla26ng";
   };
 
   propagatedBuildInputs = [dateutil pyyaml openpyxl xlrd h5py fonttools
diff --git a/pkgs/applications/misc/xterm/default.nix b/pkgs/applications/misc/xterm/default.nix
index 3a3025e7d69..e29bdd46e26 100644
--- a/pkgs/applications/misc/xterm/default.nix
+++ b/pkgs/applications/misc/xterm/default.nix
@@ -3,14 +3,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "xterm-339";
+  name = "xterm-341";
 
   src = fetchurl {
     urls = [
      "ftp://ftp.invisible-island.net/xterm/${name}.tgz"
      "https://invisible-mirror.net/archives/xterm/${name}.tgz"
    ];
-    sha256 = "1kigkl4va1jxycqcf5dkg4d74j1fgrxhfbp8ib367crn6fqnprk5";
+    sha256 = "0i6b6gpr5qzbgv3jfl86q8d47bgppxr5gq503ng1ll2x5gx7v833";
   };
 
   buildInputs =
diff --git a/pkgs/applications/networking/instant-messengers/fractal/default.nix b/pkgs/applications/networking/instant-messengers/fractal/default.nix
new file mode 100644
index 00000000000..45137aafcae
--- /dev/null
+++ b/pkgs/applications/networking/instant-messengers/fractal/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchurl, fetchFromGitLab, meson, ninja, gettext, cargo, rustc, python3, rustPlatform, pkgconfig, gtksourceview
+, hicolor-icon-theme, glib, libhandy, gtk3, libsecret, dbus, openssl, sqlite, gst_all_1, wrapGAppsHook }:
+
+rustPlatform.buildRustPackage rec {
+  version = "4.0.0";
+  name = "fractal-${version}";
+
+  src = fetchFromGitLab {
+    domain = "gitlab.gnome.org";
+    owner = "GNOME";
+    repo = "fractal";
+    rev = version;
+    sha256 = "05q47jdgbi5jz01280msb8gxnbsrgf2jvglfm6k40f1xw4wxkrzy";
+  };
+
+  nativeBuildInputs = [
+    meson ninja pkgconfig gettext cargo rustc python3 wrapGAppsHook
+  ];
+  buildInputs = [
+    glib gtk3 libhandy dbus openssl sqlite gst_all_1.gstreamer gst_all_1.gst-plugins-base gst_all_1.gst-plugins-bad
+    gtksourceview hicolor-icon-theme libsecret
+  ];
+
+  postPatch = ''
+    patchShebangs scripts/meson_post_install.py
+  '';
+
+  # Don't use buildRustPackage phases, only use it for rust deps setup
+  configurePhase = null;
+  buildPhase = null;
+  checkPhase = null;
+  installPhase = null;
+
+  cargoSha256 = "0hlvdcdzkggc2adggmlxz0yxigwp3320wfav77gddlvfip1f90sw";
+
+  meta = with stdenv.lib; {
+    description = "Matrix group messaging app";
+    homepage = https://gitlab.gnome.org/GNOME/fractal;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
+
diff --git a/pkgs/applications/networking/instant-messengers/toxic/default.nix b/pkgs/applications/networking/instant-messengers/toxic/default.nix
index cbf2dd7d99a..c8cd91f0727 100644
--- a/pkgs/applications/networking/instant-messengers/toxic/default.nix
+++ b/pkgs/applications/networking/instant-messengers/toxic/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, libsodium, ncurses, curl
 , libtoxcore, openal, libvpx, freealut, libconfig, pkgconfig, libopus
-, libqrencode, gdk_pixbuf, libnotify }:
+, qrencode, gdk_pixbuf, libnotify }:
 
 stdenv.mkDerivation rec {
   name = "toxic-${version}";
@@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
   buildInputs = [
     libtoxcore libsodium ncurses curl gdk_pixbuf libnotify
   ] ++ stdenv.lib.optionals (!stdenv.isAarch32) [
-    openal libopus libvpx freealut libqrencode
+    openal libopus libvpx freealut qrencode
   ];
   nativeBuildInputs = [ pkgconfig libconfig ];
 
diff --git a/pkgs/applications/office/gnucash/2.4.nix b/pkgs/applications/office/gnucash/2.4.nix
deleted file mode 100644
index 40c91d6488d..00000000000
--- a/pkgs/applications/office/gnucash/2.4.nix
+++ /dev/null
@@ -1,91 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, libxml2, gconf, glib, gtk2, libgnomeui, libofx
-, libgtkhtml, gtkhtml, libgnomeprint, goffice, enchant, gettext, libbonoboui
-, intltool, perl, guile, slibGuile, swig, isocodes, bzip2, makeWrapper, libglade
-, libgsf, libart_lgpl, perlPackages, aqbanking, gwenhywfar, hicolor-icon-theme
-, pcre
-}:
-
-/* If you experience GConf errors when running GnuCash on NixOS, see
- * http://wiki.nixos.org/wiki/Solve_GConf_errors_when_running_GNOME_applications
- * for a possible solution.
- */
-
-stdenv.mkDerivation rec {
-  name = "gnucash-2.4.15";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
-    sha256 = "058mgfwic6a2g7jq6iip5hv45md1qaxy25dj4lvlzjjr141wm4gx";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    libxml2 gconf glib gtk2 libgnomeui libgtkhtml gtkhtml
-    libgnomeprint goffice enchant gettext intltool perl guile slibGuile
-    swig isocodes bzip2 makeWrapper libofx libglade libgsf libart_lgpl
-    perlPackages.DateManip perlPackages.FinanceQuote aqbanking gwenhywfar
-    hicolor-icon-theme pcre
-  ];
-  propagatedUserEnvPkgs = [ gconf ];
-
-  configureFlags = [
-    "CFLAGS=-O3"
-    "CXXFLAGS=-O3"
-    "--disable-dbi"
-    "--enable-ofx"
-    "--enable-aqbanking"
-  ];
-
-  postInstall = ''
-    # Auto-updaters don't make sense in Nix.
-    rm $out/bin/gnc-fq-update
-
-    sed -i $out/bin/update-gnucash-gconf \
-       -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
-
-    for prog in $(echo "$out/bin/"*)
-    do
-      # Don't wrap the gnc-fq-* scripts, since gnucash calls them as
-      # "perl <script>', i.e. they must be Perl scripts.
-      if [[ $prog =~ gnc-fq ]]; then continue; fi
-      wrapProgram "$prog"                                               \
-        --set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH"                \
-        --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH"                 \
-        --prefix LD_LIBRARY_PATH ":" "${libgnomeui}/lib/libglade/2.0"   \
-        --prefix LD_LIBRARY_PATH ":" "${libbonoboui}/lib/libglade/2.0"  \
-        --prefix PERL5LIB ":" "$PERL5LIB"                               \
-        --set GCONF_CONFIG_SOURCE 'xml::~/.gconf'                       \
-        --prefix PATH ":" "$out/bin:${stdenv.lib.makeBinPath [ perl gconf ]}"
-    done
-  '';
-
-  # The following settings fix failures in the test suite. It's not required otherwise.
-  NIX_LDFLAGS = "-rpath=${guile}/lib -rpath=${glib.out}/lib";
-  preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
-
-  doCheck = false;      # https://github.com/NixOS/nixpkgs/issues/11084
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Personal and small-business financial-accounting application";
-
-    longDescription = ''
-      GnuCash is personal and small-business financial-accounting software,
-      freely licensed under the GNU GPL and available for GNU/Linux, BSD,
-      Solaris, macOS and Microsoft Windows.
-
-      Designed to be easy to use, yet powerful and flexible, GnuCash allows
-      you to track bank accounts, stocks, income and expenses.  As quick and
-      intuitive to use as a checkbook register, it is based on professional
-      accounting principles to ensure balanced books and accurate reports.
-    '';
-
-    license = stdenv.lib.licenses.gpl2Plus;
-
-    homepage = http://www.gnucash.org/;
-
-    maintainers = [ stdenv.lib.maintainers.peti stdenv.lib.maintainers.domenkozar ];
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/office/gnucash/2.6.nix b/pkgs/applications/office/gnucash/2.6.nix
deleted file mode 100644
index 471d2d757d9..00000000000
--- a/pkgs/applications/office/gnucash/2.6.nix
+++ /dev/null
@@ -1,116 +0,0 @@
-{ fetchurl, fetchpatch, stdenv, intltool, pkgconfig, file, makeWrapper
-, libxml2, libxslt, perl, perlPackages, gconf, guile
-, glib, gtk2, libofx, aqbanking, gwenhywfar, libgnomecanvas, goffice
-, webkit, glibcLocales, gsettings-desktop-schemas, dconf
-, gettext, swig, slibGuile, enchant, bzip2, isocodes, libdbi, libdbiDrivers
-, pango, gdk_pixbuf, hicolor-icon-theme
-}:
-
-/*
-Two cave-ats right now:
-  1. HTML reports are broken
-  2. You need to have dconf installed (GNOME3 should have it automatically,
-     otherwise put it in environment.systemPackages), for settings
-*/
-
-stdenv.mkDerivation rec {
-  name = "gnucash-2.6.18-1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
-    sha256 = "1794qi7lkn1kbnhzk08wawacfcphbln3ngdl3q0qax5drv7hnwv8";
-  };
-
-  patches = [
-    (fetchpatch {
-     sha256 = "11nlf9j7jm1i37mfcmmnkplxr3nlf257fxd01095vd65i2rn1m8h";
-     name = "fix-brittle-test.patch";
-     url = "https://github.com/Gnucash/gnucash/commit/42ac55e03a1a84739f4a5b7a247c31d91c0adc4a.patch";
-    })
-  ];
-
-  nativeBuildInputs = [ intltool pkgconfig file makeWrapper ];
-
-  buildInputs = [
-    # general
-    libxml2 libxslt glibcLocales gettext swig enchant
-    bzip2 isocodes
-    # glib, gtk...
-    glib gtk2 goffice webkit hicolor-icon-theme
-    # gnome...
-    dconf gconf libgnomecanvas gsettings-desktop-schemas
-    # financial
-    libofx aqbanking gwenhywfar
-    # perl
-    perl perlPackages.FinanceQuote perlPackages.DateManip
-    # guile
-    guile slibGuile
-    # database backends
-    libdbi libdbiDrivers
-  ];
-
-  postPatch = ''
-    patchShebangs ./src
-  '';
-
-  configureFlags = [
-    "CFLAGS=-O3"
-    "CXXFLAGS=-O3"
-    "--enable-dbi"
-    "--with-dbi-dbd-dir=${libdbiDrivers}/lib/dbd/"
-    "--enable-ofx"
-    "--enable-aqbanking"
-  ];
-
-  postInstall = ''
-    # Auto-updaters don't make sense in Nix.
-    rm $out/bin/gnc-fq-update
-
-    #sed -i $out/bin/update-gnucash-gconf \
-    #   -e 's|--config-source=[^ ]* --install-schema-file|--makefile-install-rule|'
-
-    for prog in $(echo "$out/bin/"*)
-    do
-      # Don't wrap the gnc-fq-* scripts, since gnucash calls them as
-      # "perl <script>', i.e. they must be Perl scripts.
-      if [[ $prog =~ gnc-fq ]]; then continue; fi
-      wrapProgram "$prog"                                               \
-        --set SCHEME_LIBRARY_PATH "$SCHEME_LIBRARY_PATH"                \
-        --prefix GUILE_LOAD_PATH ":" "$GUILE_LOAD_PATH"                 \
-        --prefix PERL5LIB ":" "$PERL5LIB"                               \
-        --set GCONF_CONFIG_SOURCE 'xml::~/.gconf'                       \
-        --prefix XDG_DATA_DIRS : "$GSETTINGS_SCHEMAS_PATH:$out/share/gsettings-schemas/${name}" \
-        --prefix GIO_EXTRA_MODULES : "${stdenv.lib.getLib dconf}/lib/gio/modules"  \
-        --prefix PATH ":" "$out/bin:${stdenv.lib.makeBinPath [ perl gconf ]}"
-    done
-  '';
-
-  # The following settings fix failures in the test suite. It's not required otherwise.
-  LD_LIBRARY_PATH = stdenv.lib.makeLibraryPath [ guile glib gtk2 pango gdk_pixbuf ];
-  preCheck = "export GNC_DOT_DIR=$PWD/dot-gnucash";
-  doCheck = true;
-
-  enableParallelBuilding = true;
-
-  meta = {
-    description = "Personal and small-business financial-accounting application";
-
-    longDescription = ''
-      GnuCash is personal and small-business financial-accounting software,
-      freely licensed under the GNU GPL and available for GNU/Linux, BSD,
-      Solaris, macOS and Microsoft Windows.
-
-      Designed to be easy to use, yet powerful and flexible, GnuCash allows
-      you to track bank accounts, stocks, income and expenses.  As quick and
-      intuitive to use as a checkbook register, it is based on professional
-      accounting principles to ensure balanced books and accurate reports.
-    '';
-
-    license = stdenv.lib.licenses.gpl2Plus;
-
-    homepage = http://www.gnucash.org/;
-
-    maintainers = [ stdenv.lib.maintainers.peti stdenv.lib.maintainers.domenkozar ];
-    platforms = stdenv.lib.platforms.gnu ++ stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/applications/office/trilium/default.nix b/pkgs/applications/office/trilium/default.nix
new file mode 100644
index 00000000000..c274ef0440d
--- /dev/null
+++ b/pkgs/applications/office/trilium/default.nix
@@ -0,0 +1,58 @@
+{ stdenv, fetchurl, p7zip, autoPatchelfHook, atomEnv, makeWrapper, makeDesktopItem }:
+
+let
+  description = "Trilium Notes is a hierarchical note taking application with focus on building large personal knowledge bases.";
+  desktopItem = makeDesktopItem {
+    name = "Trilium";
+    exec = "trilium";
+    icon = "trilium";
+    comment = description;
+    desktopName = "Trilium Notes";
+    categories = "Office";
+  };
+
+in stdenv.mkDerivation rec {
+  name = "trilium-${version}";
+  version = "0.26.1";
+
+  src = fetchurl {
+    url = "https://github.com/zadam/trilium/releases/download/v${version}/trilium-linux-x64-${version}.7z";
+    sha256 = "184b0b0s8q32h1mpkrin8x1q0kjvard7r7xqrclziwwxg4khp3cz";
+  };
+
+  nativeBuildInputs = [
+    p7zip /* for unpacking */
+    autoPatchelfHook
+    makeWrapper
+  ];
+
+  buildInputs = atomEnv.packages;
+
+  installPhase = ''
+    mkdir -p $out/bin
+    mkdir -p $out/share/trilium
+    mkdir -p $out/share/{applications,icons/hicolor/scalable/apps}
+
+    cp -r ./* $out/share/trilium
+    ln -s $out/share/trilium/trilium $out/bin/trilium
+
+    ln -s $out/share/trilium/resources/app/src/public/images/trilium.svg $out/share/icons/hicolor/scalable/apps/trilium.svg
+    cp ${desktopItem}/share/applications/* $out/share/applications
+  '';
+
+
+  # This "shouldn't" be needed, remove when possible :)
+  preFixup = ''
+    wrapProgram $out/bin/trilium --prefix LD_LIBRARY_PATH : "${atomEnv.libPath}"
+  '';
+
+  dontStrip = true;
+
+  meta = with stdenv.lib; {
+    inherit description;
+    homepage = https://github.com/zadam/trilium;
+    license = licenses.agpl3;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ emmanuelrosa dtzWill ];
+  };
+}
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index 5d0165eb6dd..e77f4a603a8 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -13,11 +13,11 @@ with lib;
 stdenv.mkDerivation rec {
   name = "kicad-${version}";
   series = "5.0";
-  version = "5.0.1";
+  version = "5.0.2";
 
   src = fetchurl {
     url = "https://launchpad.net/kicad/${series}/${version}/+download/kicad-${version}.tar.xz";
-    sha256 = "0skig2wdxxc2677m8a8m1xrg3pkhqiqnmkcyr2hv0b2j30rzdr2z";
+    sha256 = "10605rr10x0353n6yk2z095ydnkd1i6j1ncbq64pfxdn5vkhcd1g";
   };
 
   postPatch = ''
diff --git a/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix b/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
index adfdb9a541c..a8df4846bf5 100644
--- a/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-remote-gcrypt/default.nix
@@ -2,14 +2,14 @@
 
 stdenv.mkDerivation rec {
   name = "git-remote-gcrypt-${version}";
-  version = "1.1";
+  version = "1.2";
   rev = version;
 
   src = fetchFromGitHub {
     inherit rev;
     owner = "spwhitton";
     repo = "git-remote-gcrypt";
-    sha256 = "0mhz5mqnr35rk7j4wyhp7hzmqgv8r554n9qlm4iw565bz7acvq24";
+    sha256 = "0isfg0vlmcphxzj4jm32dycprhym26ina1b28jgc4j57kiqqrdcy";
   };
 
   outputs = [ "out" "man" ];
diff --git a/pkgs/applications/version-management/gitkraken/default.nix b/pkgs/applications/version-management/gitkraken/default.nix
index 0fcbe54be17..dfc2484b1a5 100644
--- a/pkgs/applications/version-management/gitkraken/default.nix
+++ b/pkgs/applications/version-management/gitkraken/default.nix
@@ -1,8 +1,8 @@
 { stdenv, libXcomposite, libgnome-keyring, makeWrapper, udev, curl, alsaLib
-, libXfixes, atk, gtk2, libXrender, pango, gnome2, cairo, freetype, fontconfig
+, libXfixes, atk, gtk3, libXrender, pango, gnome2, cairo, freetype, fontconfig
 , libX11, libXi, libxcb, libXext, libXcursor, glib, libXScrnSaver, libxkbfile, libXtst
 , nss, nspr, cups, fetchurl, expat, gdk_pixbuf, libXdamage, libXrandr, dbus
-, dpkg, makeDesktopItem
+, dpkg, makeDesktopItem, openssl
 }:
 
 with stdenv.lib;
@@ -12,11 +12,11 @@ let
 in
 stdenv.mkDerivation rec {
   name = "gitkraken-${version}";
-  version = "4.0.5";
+  version = "4.1.1";
 
   src = fetchurl {
     url = "https://release.axocdn.com/linux/GitKraken-v${version}.deb";
-    sha256 = "15wxcahlnz2k3331wqv30d5gq38fqh178hv87xky9b9vyh8qpcvz";
+    sha256 = "188k6vaafv6szzhslsfabnnn68ispsv54d98rcm3m0bmp8kg5p7f";
   };
 
   libPath = makeLibraryPath [
@@ -49,9 +49,10 @@ stdenv.mkDerivation rec {
     libXcomposite
     libXfixes
     libXrender
-    gtk2
+    gtk3
     gnome2.GConf
     libgnome-keyring
+    openssl
   ];
 
   desktopItem = makeDesktopItem {
diff --git a/pkgs/data/fonts/cantarell-fonts/default.nix b/pkgs/data/fonts/cantarell-fonts/default.nix
index 03d2e85d6af..4403d690a16 100644
--- a/pkgs/data/fonts/cantarell-fonts/default.nix
+++ b/pkgs/data/fonts/cantarell-fonts/default.nix
@@ -2,13 +2,13 @@
 
 let
   pname = "cantarell-fonts";
-  version = "0.110";
+  version = "0.111";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "19rll0h4xjn83lqm0zc4088y0vkrx1wxg8jz9imvgd8snmfxfm54";
+    sha256 = "05hpnhihwm9sxlq1qn993g03pwkmpjbn0dvnba71r1gfjv0jp2w5";
   };
 
   nativeBuildInputs = [ meson ninja gettext appstream-glib ];
@@ -21,7 +21,7 @@ in stdenv.mkDerivation rec {
 
   outputHashAlgo = "sha256";
   outputHashMode = "recursive";
-  outputHash = "052nxmhw2j8yvcj90r8xhjf0mzim8h6syip7winxb28vavj6jnba";
+  outputHash = "12ps2gjv1lmzbmkv16vgjmaahl3ayadpniyrx0z31sqn443r57hq";
 
   passthru = {
     updateScript = gnome3.updateScript {
diff --git a/pkgs/data/fonts/cooper-hewitt/default.nix b/pkgs/data/fonts/cooper-hewitt/default.nix
new file mode 100644
index 00000000000..1fa5cff7604
--- /dev/null
+++ b/pkgs/data/fonts/cooper-hewitt/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchzip }:
+
+fetchzip rec {
+  name = "cooper-hewitt-2014-06-09";
+
+  url = https://www.cooperhewitt.org/wp-content/uploads/fonts/CooperHewitt-OTF-public.zip;
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype/
+  '';
+
+  sha256 = "01iwqmjvqkc6fmc2r0486vk06s6f51n9wxzl1pf9z48n0igj4gqd";
+
+  meta = with stdenv.lib; {
+    homepage = https://www.cooperhewitt.org/open-source-at-cooper-hewitt/cooper-hewitt-the-typeface-by-chester-jenkins/;
+    description = "A contemporary sans serif, with characters composed of modified-geometric curves and arches";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/data/fonts/droid/default.nix b/pkgs/data/fonts/droid/default.nix
deleted file mode 100644
index c2a4868a091..00000000000
--- a/pkgs/data/fonts/droid/default.nix
+++ /dev/null
@@ -1,64 +0,0 @@
-{ stdenv, fetchurl }:
-
-stdenv.mkDerivation rec {
-  name = "font-droid-${version}";
-  version = "2015-12-09";
-  at = "2776afefa9e0829076cd15fdc41e7950e2ffab82";
-
-  srcs = [
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidsans/DroidSans.ttf";
-      sha256 = "1yml18dm86rrkihb2zz0ng8b1j2bb14hxc1d3hp0998vsr9s1w4h";
-    })
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidsans/DroidSans-Bold.ttf";
-      sha256 = "1z61hz92d3l1pawmbc6iwi689v8rr0xlkx59pl89m1g9aampdrmh";
-    })
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidsansmono/DroidSansMono.ttf";
-      sha256 = "0rzspxg457q4f4cp2wz93py13lbnqbhf12q4mzgy6j30njnjwl9h";
-    })
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif.ttf";
-      sha256 = "1y7jzi7dz8j1yp8dxbmbvd6dpsck2grk3q1kd5rl7f31vlq5prj1";
-    })
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif-Bold.ttf";
-      sha256 = "1c61b423sn5nnr2966jdzq6fy8pw4kg79cr3nbby83jsly389f9b";
-    })
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif-Italic.ttf";
-      sha256 = "1bvrilgi0s72hiiv32hlxnzazslh3rbz8wgmsln0i9mnk7jr9bs0";
-    })
-    (fetchurl {
-      url = "https://github.com/google/fonts/raw/${at}/apache/droidserif/DroidSerif-BoldItalic.ttf";
-      sha256 = "052vlkmhy9c5nyk4byvhzya3y57fb09lqxd6spar6adf9ajbylgi";
-    })
-  ];
-
-  phases = [ "unpackPhase" "installPhase" ];
-
-  sourceRoot = "./";
-
-  unpackCmd = ''
-    ttfName=$(basename $(stripHash $curSrc))
-    cp $curSrc ./$ttfName
-  '';
-
-  installPhase = ''
-    mkdir -p $out/share/fonts/droid
-    cp *.ttf $out/share/fonts/droid
-  '';
-
-  outputHashAlgo = "sha256";
-  outputHashMode = "recursive";
-  outputHash = "1l3lqfdr9pm05b1py9yr3cf65gi1my7jrrlvikqpqg2zr066n6c3";
-
-  meta = {
-    description = "Droid Family fonts by Google Android";
-    homepage = https://github.com/google/fonts;
-    license = stdenv.lib.licenses.asl20;
-    platforms = stdenv.lib.platforms.all;
-    maintainers = [];
-  };
-}
diff --git a/pkgs/data/fonts/font-awesome-5/default.nix b/pkgs/data/fonts/font-awesome-5/default.nix
index aea809c04ec..c1eda7e6a56 100644
--- a/pkgs/data/fonts/font-awesome-5/default.nix
+++ b/pkgs/data/fonts/font-awesome-5/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "5.5.0";
+  version = "5.6.3";
 in fetchzip rec {
   name = "font-awesome-${version}";
 
@@ -9,12 +9,10 @@ in fetchzip rec {
 
   postFetch = ''
     mkdir -p $out/share/fonts
-    unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Brands-Regular-400.otf" -d $out/share/fonts/opentype
-    unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Regular-400.otf" -d $out/share/fonts/opentype
-    unzip -j $downloadedFile "Font-Awesome-${version}/use-on-desktop/Font Awesome 5 Free-Solid-900.otf" -d $out/share/fonts/opentype
+    unzip -j $downloadedFile "Font-Awesome-${version}/otfs/*.otf" -d $out/share/fonts/opentype
   '';
 
-  sha256 = "1drjc40glfqhwmfn3s4gz8hz1x0ncrwdr9n1i25m1l7pvsk26f5f";
+  sha256 = "0y3zar7hyx5pj8rpyk2kz3sx6zgrfif2ka2h4rg0b8h8qbja0al6";
 
   meta = with stdenv.lib; {
     description = "Font Awesome - OTF font";
diff --git a/pkgs/data/fonts/inter-ui/default.nix b/pkgs/data/fonts/inter-ui/default.nix
index dcce90aaef5..4d9973aa2a2 100644
--- a/pkgs/data/fonts/inter-ui/default.nix
+++ b/pkgs/data/fonts/inter-ui/default.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "3.0";
+  version = "3.1";
 in fetchzip {
   name = "inter-ui-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip {
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
 
-  sha256 = "16qmb8farkh41i56f0vvbxcg32rbg7my64amwz5y8gyy73i3320q";
+  sha256 = "0cdjpwylynwmab0x5z5lw43k39vis74xj1ciqg8nw12ccprbmj60";
 
   meta = with stdenv.lib; {
     homepage = https://rsms.me/inter/;
diff --git a/pkgs/data/fonts/iosevka/bin.nix b/pkgs/data/fonts/iosevka/bin.nix
index 9bf5b40a78d..529a727d6c0 100644
--- a/pkgs/data/fonts/iosevka/bin.nix
+++ b/pkgs/data/fonts/iosevka/bin.nix
@@ -1,7 +1,7 @@
 { stdenv, fetchzip }:
 
 let
-  version = "2.0.1";
+  version = "2.0.2";
 in fetchzip rec {
   name = "iosevka-bin-${version}";
 
@@ -12,7 +12,7 @@ in fetchzip rec {
     unzip -j $downloadedFile \*.ttc -d $out/share/fonts/iosevka
   '';
 
-  sha256 = "1i21ja348k22rlf8z9jp90cidpmcnwqsw12vdrmm556sdwdkrkpc";
+  sha256 = "0jr9d02dk4zbq3kyhpfs6gyynwss60210pc1dfxn0qbw3j9ch2l4";
 
   meta = with stdenv.lib; {
     homepage = https://be5invis.github.io/Iosevka/;
diff --git a/pkgs/data/fonts/material-design-icons/default.nix b/pkgs/data/fonts/material-design-icons/default.nix
index c6e48cccb8c..432bbaa78db 100644
--- a/pkgs/data/fonts/material-design-icons/default.nix
+++ b/pkgs/data/fonts/material-design-icons/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "material-design-icons-${version}";
-  version = "3.2.89";
+  version = "3.3.92";
 
   src = fetchFromGitHub {
     owner  = "Templarian";
     repo   = "MaterialDesign-Webfont";
     rev    = "v${version}";
-    sha256 = "1rxaiiij96kqncsrlkyp109m36v28cgxild7z04k4jh79fvmhjvn";
+    sha256 = "0k8pv2nsp3al4i4awx5mv7cscpm8akjn567jl9dwzangcsai0l53";
   };
 
   installPhase = ''
diff --git a/pkgs/development/compilers/dmd/default.nix b/pkgs/development/compilers/dmd/default.nix
index 90e5cfe7411..8d68a6d4d3f 100644
--- a/pkgs/development/compilers/dmd/default.nix
+++ b/pkgs/development/compilers/dmd/default.nix
@@ -2,10 +2,10 @@
 , makeWrapper, unzip, which
 , curl, tzdata, gdb, darwin
 , callPackage, targetPackages, ldc
-, version ? "2.081.2"
-, dmdSha256 ? "1wwk4shqldvgyczv1ihmljpfj3yidq7mxcj69i9kjl7jqx54hw62"
-, druntimeSha256 ? "0dqfsy34q2q7mk2gsi4ix3vgqg7szg3m067fghgx53vnvrzlpsc0"
-, phobosSha256 ? "1dan59lc4wggsrv5aax7jsxnzg7fz37xah84k1cbwjb3xxhhkd9n"
+, version ? "2.083.1"
+, dmdSha256 ? "0b52yq7slgbrawb22kib9bk2x9xjiy6axwz1317fck5axl093d90"
+, druntimeSha256 ? "1hm9p59ih21yv8x7cqjhkyy94677q4f8wk9fs9i1rybx8x19njyn"
+, phobosSha256 ? "1zmz0f1wj0dgxy2cy63ljjc1sl2sgb7ij8bamlxw9nxrchwi3l43"
 }:
 
 let
@@ -48,12 +48,15 @@ let
         # Remove cppa test for now because it doesn't work.
         rm dmd/test/runnable/cppa.d
         rm dmd/test/runnable/extra-files/cppb.cpp
+    ''
+
+    + stdenv.lib.optionalString (stdenv.hostPlatform.isDarwin) ''
+        rm dmd/test/runnable/test16096.sh
     '';
 
     # Compile with PIC to prevent colliding modules with binutils 2.28.
     # https://issues.dlang.org/show_bug.cgi?id=17375
     usePIC = "-fPIC";
-    ROOT_HOME_DIR = "$(echo ~root)";
 
     phobosPatches = ''
         # Ugly hack so the dlopen call has a chance to succeed.
@@ -105,13 +108,14 @@ let
         cd ../druntime
         make -j$NIX_BUILD_CORES -f posix.mak BUILD=release ENABLE_RELEASE=1 PIC=1 INSTALL_DIR=$out DMD=${pathToDmd}
         cd ../phobos
-        make -j$NIX_BUILD_CORES -f posix.mak BUILD=release ENABLE_RELEASE=1 PIC=1 INSTALL_DIR=$out DMD=${pathToDmd} TZ_DATABASE_DIR=${tzdata}/share/zoneinfo/
+        echo ${tzdata}/share/zoneinfo/ > TZDatabaseDirFile
+        make -j$NIX_BUILD_CORES -f posix.mak BUILD=release ENABLE_RELEASE=1 PIC=1 INSTALL_DIR=$out DMD=${pathToDmd} DFLAGS="-version=TZDatabaseDir -J$(pwd)"
         cd ..
     '';
 
     # Disable tests on Darwin for now because of
     # https://github.com/NixOS/nixpkgs/issues/41099
-    doCheck = !stdenv.hostPlatform.isDarwin;
+    doCheck = true;
 
     checkPhase = ''
         cd dmd
@@ -197,7 +201,8 @@ let
 
       buildPhase = ''
           cd phobos
-          make -j$NIX_BUILD_CORES -f posix.mak unittest BUILD=release ENABLE_RELEASE=1 PIC=1 DMD=${dmdBuild}/bin/dmd TZ_DATABASE_DIR=${tzdata}/share/zoneinfo/
+          echo ${tzdata}/share/zoneinfo/ > TZDatabaseDirFile
+          make -j$NIX_BUILD_CORES -f posix.mak unittest BUILD=release ENABLE_RELEASE=1 PIC=1 DMD=${dmdBuild}/bin/dmd DFLAGS="-version=TZDatabaseDir -J$(pwd)"
       '';
 
       installPhase = ''
diff --git a/pkgs/development/compilers/ldc/default.nix b/pkgs/development/compilers/ldc/default.nix
index e39d6ae8e20..80ccb0dbbd3 100644
--- a/pkgs/development/compilers/ldc/default.nix
+++ b/pkgs/development/compilers/ldc/default.nix
@@ -2,19 +2,18 @@
 , python, libconfig, lit, gdb, unzip, darwin, bash
 , callPackage, makeWrapper, targetPackages
 , bootstrapVersion ? false
-, version ? "1.11.0"
-, ldcSha256 ? "0w4z261gzji31hn1xdnmi9dfkbyydpy6rz8aj4456q5w8yp4yil5"
+, version ? "1.12.0"
+, ldcSha256 ? "1fdma1w8j37wkr0pqdar11slkk36qymamxnk6d9k8ybhjmxaaawm"
 }:
 
 let
-
   bootstrapLdc = if !bootstrapVersion then
     # LDC 0.17.x is the last version which doesn't need a working D compiler to
     # build so we use that version to bootstrap the actual build.
     callPackage ./default.nix {
       bootstrapVersion = true;
-      version = "0.17.5";
-      ldcSha256 = "0200r5y8hs5yv2cx24csgyh00dlg18877b9cfblixypr6nhl19bs";
+      version = "0.17.6";
+      ldcSha256 = "0qf5kbxddgmg3kqzi0kf4bgv8vdrnv16y07hcpm0cwv9mc3qr2w6";
     }
   else
     "";
@@ -31,97 +30,52 @@ let
 
     postUnpack = ''
         patchShebangs .
-
-        # Remove cppa test for now because it doesn't work.
-        rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/cppa.d
-        rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/extra-files/cppb.cpp
     ''
 
-    + stdenv.lib.optionalString (bootstrapVersion) ''
-        # ... runnable/variadic.d            ()
-        #Test failed.  The logged output:
-        #/tmp/nix-build-ldcBuild-0.17.5.drv-0/ldc-0.17.5-src/build/bin/ldmd2 -conf= -m64 -Irunnable   -od/tmp/nix-build-ldcBuild-0.17.5.drv-0/ldc-0.17.5-src/build/dmd-testsuite/runnable -of/tmp/nix-build-ldcBuild-0.17.5.drv-0/ldc-0.17.5-src/build/dmd-testsuite/runnable/variadic_0 runnable/variadic.d
-        #Error: integer constant expression expected instead of <cant>
-        #Error: integer constant expression expected instead of <cant>
-        #Error: integer constant expression expected instead of <cant>
-        #Error: integer constant expression expected instead of <cant>
-        #Error: integer constant expression expected instead of <cant>
-        #runnable/variadic.d(84): Error: template instance variadic.Foo3!(int, int, int) error instantiating
-        #
-        #
-        #==============================
-        #Test failed: expected rc == 0, exited with rc == 1
-        rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/variadic.d
+    + stdenv.lib.optionalString (!bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
+        # http://forum.dlang.org/thread/xtbbqthxutdoyhnxjhxl@forum.dlang.org
+        rm -r ldc-${version}-src/tests/dynamiccompile
+
+        # https://github.com/NixOS/nixpkgs/issues/34817
+        rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
+
+        # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
+        rm -r ldc-${version}-src/tests/debuginfo/classtypes_gdb.d
+        rm -r ldc-${version}-src/tests/debuginfo/nested_gdb.d
+
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/test16096.sh
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/ldc_output_filenames.sh
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/crlf.sh
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/issue15574.sh
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/compilable/test6461.sh
     ''
 
     + stdenv.lib.optionalString (!bootstrapVersion) ''
-	    # http://forum.dlang.org/thread/xtbbqthxutdoyhnxjhxl@forum.dlang.org
-	    rm -r ldc-${version}-src/tests/dynamiccompile
+        echo ${tzdata}/share/zoneinfo/ > ldc-${version}-src/TZDatabaseDirFile
 
-            # https://github.com/NixOS/nixpkgs/issues/34817
-	    rm -r ldc-${version}-src/tests/plugins/addFuncEntryCall
+        # Remove cppa test for now because it doesn't work.
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/cppa.d
+        rm ldc-${version}-src/tests/d2/dmd-testsuite/runnable/extra-files/cppb.cpp
     '';
 
-    ROOT_HOME_DIR = "$(echo ~root)";
-
     datetimePath = if bootstrapVersion then
       "phobos/std/datetime.d"
     else
       "phobos/std/datetime/timezone.d";
 
     postPatch = ''
-        substituteInPlace runtime/${datetimePath} \
-            --replace "import core.time;" "import core.time;import std.path;"
-
-        substituteInPlace runtime/${datetimePath} \
-            --replace "tzName == \"leapseconds\"" "baseName(tzName) == \"leapseconds\""
-
+        # https://issues.dlang.org/show_bug.cgi?id=15391
         substituteInPlace runtime/phobos/std/net/curl.d \
             --replace libcurl.so ${curl.out}/lib/libcurl.so
 
-        # Ugly hack to fix the hardcoded path to zoneinfo in the source file.
-        # https://issues.dlang.org/show_bug.cgi?id=15391
-        substituteInPlace runtime/${datetimePath} \
-            --replace /usr/share/zoneinfo/ ${tzdata}/share/zoneinfo/
-
         substituteInPlace tests/d2/dmd-testsuite/Makefile \
             --replace "SHELL=/bin/bash" "SHELL=${bash}/bin/bash"
     ''
 
-    + stdenv.lib.optionalString stdenv.hostPlatform.isLinux ''
-        # See https://github.com/NixOS/nixpkgs/issues/29443
-        substituteInPlace runtime/phobos/std/path.d \
-            --replace "\"/root" "\"${ROOT_HOME_DIR}"
-
-        # Can be remove with front end version >= 2.078.0
-        substituteInPlace runtime/druntime/src/core/memory.d \
-            --replace "assert(z is null);" "//assert(z is null);"
-    ''
-
     + stdenv.lib.optionalString (bootstrapVersion && stdenv.hostPlatform.isDarwin) ''
-        # https://github.com/ldc-developers/ldc/pull/2306
-        # Can be removed on bootstrap version > 0.17.5
-        substituteInPlace gen/programs.cpp \
-            --replace "gcc" "clang"
-
         # Was not able to compile on darwin due to "__inline_isnanl"
         # being undefined.
         substituteInPlace dmd2/root/port.c --replace __inline_isnanl __inline_isnan
-    ''
-
-    + stdenv.lib.optionalString (!bootstrapVersion) ''
-        # TODO Can be removed with the next ldc version > 1.7.0
-        # https://github.com/ldc-developers/ldc/issues/2493
-        substituteInPlace tests/d2/dmd-testsuite/Makefile \
-            --replace "# disable tests based on arch" "DISABLED_TESTS += test_cdvecfill"
-    ''
-
-    + stdenv.lib.optionalString (bootstrapVersion) ''
-        substituteInPlace runtime/${datetimePath} \
-            --replace "import std.traits;" "import std.traits;import std.path;"
-
-        substituteInPlace runtime/${datetimePath} \
-            --replace "tzName == \"+VERSION\"" "baseName(tzName) == \"leapseconds\" || tzName == \"+VERSION\""
     '';
 
     nativeBuildInputs = [ cmake makeWrapper llvm bootstrapLdc python lit gdb unzip ]
@@ -137,17 +91,24 @@ let
 
     buildInputs = [ curl tzdata ];
 
-    preConfigure = ''
-      cmakeFlagsArray=("-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
-                       "-DCMAKE_BUILD_TYPE=Release"
-                       "-DCMAKE_SKIP_RPATH=ON"
-                       "-DBUILD_SHARED_LIBS=OFF"
-                       "-DLDC_WITH_LLD=OFF"
-                       # Xcode 9.0.1 fixes that bug according to ldc release notes
-                       "-DRT_ARCHIVE_WITH_LDC=OFF"
-                      )
+    #"-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
+    # Xcode 9.0.1 fixes that bug according to ldc release notes
+    #"-DRT_ARCHIVE_WITH_LDC=OFF"
+      #"-DD_FLAGS=TZ_DATABASE_DIR=${tzdata}/share/zoneinfo/"
+      #"-DCMAKE_BUILD_TYPE=Release"
+      #"-DCMAKE_SKIP_RPATH=ON"
+
+      #-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc
+      #
+    cmakeFlagsString = stdenv.lib.optionalString (!bootstrapVersion) ''
+      "-DD_FLAGS=-d-version=TZDatabaseDir;-J$PWD"
     '';
 
+    preConfigure = stdenv.lib.optionalString (!bootstrapVersion) ''
+      cmakeFlagsArray=(
+        ${cmakeFlagsString}
+      )
+    '';
 
     postConfigure = ''
       export DMD=$PWD/bin/ldmd2
@@ -155,10 +116,7 @@ let
 
     makeFlags = [ "DMD=$DMD" ];
 
-    # Disable tests on Darwin for now because of
-    # https://github.com/NixOS/nixpkgs/issues/41099
-    # https://github.com/NixOS/nixpkgs/pull/36378#issuecomment-385034818
-    doCheck = !bootstrapVersion && !stdenv.hostPlatform.isDarwin;
+    doCheck = !bootstrapVersion;
 
     checkPhase = ''
       # Build and run LDC D unittests.
@@ -216,15 +174,10 @@ let
       buildInputs = ldcBuild.buildInputs;
 
       preConfigure = ''
-        cmakeFlagsArray=( "-DINCLUDE_INSTALL_DIR=$out/include/dlang/ldc"
-                          "-DCMAKE_BUILD_TYPE=Release"
-                          "-DCMAKE_SKIP_RPATH=ON"
-                          "-DBUILD_SHARED_LIBS=OFF"
-                          "-DLDC_WITH_LLD=OFF"
-                          # Xcode 9.0.1 fixes that bug according to ldc release notes
-                          "-DRT_ARCHIVE_WITH_LDC=OFF"
-                          "-DD_COMPILER=${ldcBuild.out}/bin/ldmd2"
-                        )
+        cmakeFlagsArray=(
+          ${ldcBuild.cmakeFlagsString}
+          "-DD_COMPILER=${ldcBuild.out}/bin/ldmd2"
+        )
       '';
 
       postConfigure = ldcBuild.postConfigure;
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 9e0dd0758b0..7bd540c8578 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -173,12 +173,14 @@ self: super: {
 
   inline-c-cpp = if !pkgs.stdenv.isDarwin
     then super.inline-c-cpp
-    else addExtraLibrary (overrideCabal super.inline-c-cpp (drv:
-      {
-        postPatch = ''
-          substituteInPlace inline-c-cpp.cabal --replace stdc++ c++
-        '';
-      })) pkgs.libcxx;
+    else
+      let drv = addExtraLibrary (overrideCabal super.inline-c-cpp (drv: {
+          postPatch = ''
+            substituteInPlace inline-c-cpp.cabal --replace  stdc++ c++
+          '';
+        })) pkgs.libcxx;
+      in # https://github.com/fpco/inline-c/issues/75
+         dontCheck drv;
 
   inline-java = addBuildDepend super.inline-java pkgs.jdk;
 
@@ -688,6 +690,13 @@ self: super: {
     sha256 = "1m2d47ni4jbrpvxry50imj91qahr3r7zkqm157clrzlmw6gzpgnq";
   });
 
+  # Djinn's last release was 2014, incompatible with Semigroup-Monoid Proposal
+  # https://github.com/augustss/djinn/pull/8
+  djinn = appendPatch super.djinn (pkgs.fetchpatch {
+    url = https://github.com/augustss/djinn/commit/6cb9433a137fb6b5194afe41d616bd8b62b95630.patch;
+    sha256 = "0s021y5nzrh74gfp8xpxpxm11ivzfs3jwg6mkrlyry3iy584xqil";
+  });
+
   # We cannot build this package w/o the C library from <http://www.phash.org/>.
   phash = markBroken super.phash;
 
diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix
index a6deacf7015..574c29f76da 100644
--- a/pkgs/development/haskell-modules/hackage-packages.nix
+++ b/pkgs/development/haskell-modules/hackage-packages.nix
@@ -171338,7 +171338,7 @@ self: {
 
   "qr-imager" = callPackage
     ({ mkDerivation, base, binary, bytestring, cryptonite, directory
-     , haskell-qrencode, hspec, jose-jwt, JuicyPixels, libqrencode
+     , haskell-qrencode, hspec, jose-jwt, JuicyPixels, qrencode
      , microlens, process, split, vector
      }:
      mkDerivation {
@@ -171349,12 +171349,12 @@ self: {
          base binary bytestring cryptonite directory haskell-qrencode
          jose-jwt JuicyPixels microlens process split vector
        ];
-       libraryPkgconfigDepends = [ libqrencode ];
+       libraryPkgconfigDepends = [ qrencode ];
        testHaskellDepends = [ base hspec ];
        description = "Library to generate images";
        license = stdenv.lib.licenses.bsd3;
        hydraPlatforms = stdenv.lib.platforms.none;
-     }) {inherit (pkgs) libqrencode;};
+     }) {inherit (pkgs) qrencode;};
 
   "qr-repa" = callPackage
     ({ mkDerivation, aeson, base, bytestring, cryptonite, directory
diff --git a/pkgs/development/interpreters/perl/default.nix b/pkgs/development/interpreters/perl/default.nix
index 4e1028184aa..5e8f5e2d59b 100644
--- a/pkgs/development/interpreters/perl/default.nix
+++ b/pkgs/development/interpreters/perl/default.nix
@@ -42,13 +42,14 @@ let
     patches =
       [
         # Do not look in /usr etc. for dependencies.
-        ./no-sys-dirs-5.26.patch
+        (if (versionOlder version "5.29.6") then ./no-sys-dirs-5.26.patch else ./no-sys-dirs-5.29.patch)
+      ]
+      ++ optional (versionOlder version "5.29.6")
         # Fix parallel building: https://rt.perl.org/Public/Bug/Display.html?id=132360
         (fetchurlBoot {
           url = "https://rt.perl.org/Public/Ticket/Attachment/1502646/807252/0001-Fix-missing-build-dependency-for-pods.patch";
           sha256 = "1bb4mldfp8kq1scv480wm64n2jdsqa3ar46cjp1mjpby8h5dr2r0";
         })
-      ]
       ++ optional stdenv.isSunOS ./ld-shared.patch
       ++ optionals stdenv.isDarwin [ ./cpp-precomp.patch ./sw_vers.patch ]
       ++ optional crossCompiling ./MakeMaker-cross.patch;
@@ -181,7 +182,7 @@ in rec {
 
   # the latest Devel version
   perldevel = common {
-    version = "5.29.4";
-    sha256 = "153r0f6jdqrl7hxrvhfivf5g8ivhbvggfhg841q3hi3db5rc86k4";
+    version = "5.29.6";
+    sha256 = "0wj2bia8s30788f69mf5s533l72zbhqpdr85kkk97yrh1c9sgcd6";
   };
 }
diff --git a/pkgs/development/interpreters/perl/no-sys-dirs-5.29.patch b/pkgs/development/interpreters/perl/no-sys-dirs-5.29.patch
new file mode 100644
index 00000000000..0ccf6254b78
--- /dev/null
+++ b/pkgs/development/interpreters/perl/no-sys-dirs-5.29.patch
@@ -0,0 +1,251 @@
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/Configure perl-5.20.0/Configure
+--- perl-5.20.0-orig/Configure	2014-05-26 15:34:18.000000000 +0200
++++ perl-5.20.0/Configure	2014-06-25 10:43:35.368285986 +0200
+@@ -106,15 +106,7 @@
+ fi
+ 
+ : Proper PATH setting
+-paths='/bin /usr/bin /usr/local/bin /usr/ucb /usr/local /usr/lbin'
+-paths="$paths /opt/bin /opt/local/bin /opt/local /opt/lbin"
+-paths="$paths /usr/5bin /etc /usr/gnu/bin /usr/new /usr/new/bin /usr/nbin"
+-paths="$paths /opt/gnu/bin /opt/new /opt/new/bin /opt/nbin"
+-paths="$paths /sys5.3/bin /sys5.3/usr/bin /bsd4.3/bin /bsd4.3/usr/ucb"
+-paths="$paths /bsd4.3/usr/bin /usr/bsd /bsd43/bin /opt/ansic/bin /usr/ccs/bin"
+-paths="$paths /etc /usr/lib /usr/ucblib /lib /usr/ccs/lib"
+-paths="$paths /sbin /usr/sbin /usr/libexec"
+-paths="$paths /system/gnu_library/bin"
++paths=''
+ 
+ for p in $paths
+ do
+@@ -1337,8 +1329,7 @@
+ archname=''
+ : Possible local include directories to search.
+ : Set locincpth to "" in a hint file to defeat local include searches.
+-locincpth="/usr/local/include /opt/local/include /usr/gnu/include"
+-locincpth="$locincpth /opt/gnu/include /usr/GNU/include /opt/GNU/include"
++locincpth=""
+ :
+ : no include file wanted by default
+ inclwanted=''
+@@ -1349,17 +1340,12 @@
+ 
+ libnames=''
+ : change the next line if compiling for Xenix/286 on Xenix/386
+-xlibpth='/usr/lib/386 /lib/386'
++xlibpth=''
+ : Possible local library directories to search.
+-loclibpth="/usr/local/lib /opt/local/lib /usr/gnu/lib"
+-loclibpth="$loclibpth /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib"
++loclibpth=""
+ 
+ : general looking path for locating libraries
+-glibpth="/lib /usr/lib $xlibpth"
+-glibpth="$glibpth /usr/ccs/lib /usr/ucblib /usr/local/lib"
+-test -f /usr/shlib/libc.so && glibpth="/usr/shlib $glibpth"
+-test -f /shlib/libc.so     && glibpth="/shlib $glibpth"
+-test -d /usr/lib64         && glibpth="$glibpth /lib64 /usr/lib64 /usr/local/lib64"
++glibpth=""
+ 
+ : Private path used by Configure to find libraries.  Its value
+ : is prepended to libpth. This variable takes care of special
+@@ -1391,8 +1377,6 @@
+ libswanted="$libswanted m crypt sec util c cposix posix ucb bsd BSD"
+ : We probably want to search /usr/shlib before most other libraries.
+ : This is only used by the lib/ExtUtils/MakeMaker.pm routine extliblist.
+-glibpth=`echo " $glibpth " | sed -e 's! /usr/shlib ! !'`
+-glibpth="/usr/shlib $glibpth"
+ : Do not use vfork unless overridden by a hint file.
+ usevfork=false
+ 
+@@ -2446,7 +2430,6 @@
+ zip
+ "
+ pth=`echo $PATH | sed -e "s/$p_/ /g"`
+-pth="$pth $sysroot/lib $sysroot/usr/lib"
+ for file in $loclist; do
+ 	eval xxx=\$$file
+ 	case "$xxx" in
+@@ -4936,7 +4919,7 @@
+ : Set private lib path
+ case "$plibpth" in
+ '') if ./mips; then
+-	plibpth="$incpath/usr/lib $sysroot/usr/local/lib $sysroot/usr/ccs/lib"
++	plibpth="$incpath/usr/lib"
+     fi;;
+ esac
+ case "$libpth" in
+@@ -8600,13 +8583,8 @@
+ echo " "
+ case "$sysman" in
+ '')
+-	syspath='/usr/share/man/man1 /usr/man/man1'
+-	syspath="$syspath /usr/man/mann /usr/man/manl /usr/man/local/man1"
+-	syspath="$syspath /usr/man/u_man/man1"
+-	syspath="$syspath /usr/catman/u_man/man1 /usr/man/l_man/man1"
+-	syspath="$syspath /usr/local/man/u_man/man1 /usr/local/man/l_man/man1"
+-	syspath="$syspath /usr/man/man.L /local/man/man1 /usr/local/man/man1"
+-	sysman=`./loc . /usr/man/man1 $syspath`
++	syspath=''
++	sysman=''
+ 	;;
+ esac
+ if $test -d "$sysman"; then
+@@ -19900,9 +19878,10 @@
+ case "$full_ar" in
+ '') full_ar=$ar ;;
+ esac
++full_ar=ar
+ 
+ : Store the full pathname to the sed program for use in the C program
+-full_sed=$sed
++full_sed=sed
+ 
+ : see what type gids are declared as in the kernel
+ echo " "
+Only in perl-5.20.0/: Configure.orig
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/ext/Errno/Errno_pm.PL perl-5.20.0/ext/Errno/Errno_pm.PL
+--- perl-5.20.0-orig/ext/Errno/Errno_pm.PL	2014-05-26 15:34:20.000000000 +0200
++++ perl-5.20.0/ext/Errno/Errno_pm.PL	2014-06-25 10:31:24.317970047 +0200
+@@ -134,12 +126,7 @@
+ 	if ($dep =~ /(\S+errno\.h)/) {
+ 	     $file{$1} = 1;
+ 	}
+-    } elsif ($^O eq 'linux' &&
+-	      $Config{gccversion} ne '' && 
+-	      $Config{gccversion} !~ /intel/i &&
+-	      # might be using, say, Intel's icc
+-	      $linux_errno_h
+-	     ) {
++    } elsif (0) {
+	$file{$linux_errno_h} = 1;
+     } elsif ($^O eq 'haiku') {
+	# hidden in a special place
+Only in perl-5.20.0/ext/Errno: Errno_pm.PL.orig
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/freebsd.sh perl-5.20.0/hints/freebsd.sh
+--- perl-5.20.0-orig/hints/freebsd.sh	2014-01-31 22:55:51.000000000 +0100
++++ perl-5.20.0/hints/freebsd.sh	2014-06-25 10:25:53.263964680 +0200
+@@ -119,21 +119,21 @@
+         objformat=`/usr/bin/objformat`
+         if [ x$objformat = xaout ]; then
+             if [ -e /usr/lib/aout ]; then
+-                libpth="/usr/lib/aout /usr/local/lib /usr/lib"
+-                glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
++                libpth=""
++                glibpth=""
+             fi
+             lddlflags='-Bshareable'
+         else
+-            libpth="/usr/lib /usr/local/lib"
+-            glibpth="/usr/lib /usr/local/lib"
++            libpth=""
++            glibpth=""
+             ldflags="-Wl,-E "
+             lddlflags="-shared "
+         fi
+         cccdlflags='-DPIC -fPIC'
+         ;;
+ *)
+-       libpth="/usr/lib /usr/local/lib"
+-       glibpth="/usr/lib /usr/local/lib"
++       libpth=""
++       glibpth=""
+        ldflags="-Wl,-E "
+         lddlflags="-shared "
+         cccdlflags='-DPIC -fPIC'
+diff -ru -x '*~' -x '*.rej' perl-5.20.0-orig/hints/linux.sh perl-5.20.0/hints/linux.sh
+--- perl-5.20.0-orig/hints/linux.sh	2014-05-26 15:34:20.000000000 +0200
++++ perl-5.20.0/hints/linux.sh	2014-06-25 10:33:47.354883843 +0200
+@@ -150,25 +150,6 @@
+     ;;
+ esac
+ 
+-# Ubuntu 11.04 (and later, presumably) doesn't keep most libraries
+-# (such as -lm) in /lib or /usr/lib.  So we have to ask gcc to tell us
+-# where to look.  We don't want gcc's own libraries, however, so we
+-# filter those out.
+-# This could be conditional on Unbuntu, but other distributions may
+-# follow suit, and this scheme seems to work even on rather old gcc's.
+-# This unconditionally uses gcc because even if the user is using another
+-# compiler, we still need to find the math library and friends, and I don't
+-# know how other compilers will cope with that situation.
+-# Morever, if the user has their own gcc earlier in $PATH than the system gcc,
+-# we don't want its libraries. So we try to prefer the system gcc
+-# Still, as an escape hatch, allow Configure command line overrides to
+-# plibpth to bypass this check.
+-if [ -x /usr/bin/gcc ] ; then
+-    gcc=/usr/bin/gcc
+-else
+-    gcc=gcc
+-fi
+-
+ case "$plibpth" in
+ '') plibpth=`LANG=C LC_ALL=C $gcc $ccflags $ldflags -print-search-dirs | grep libraries |
+ 	cut -f2- -d= | tr ':' $trnl | grep -v 'gcc' | sed -e 's:/$::'`
+@@ -178,32 +159,6 @@
+     ;;
+ esac
+ 
+-case "$libc" in
+-'')
+-# If you have glibc, then report the version for ./myconfig bug reporting.
+-# (Configure doesn't need to know the specific version since it just uses
+-# gcc to load the library for all tests.)
+-# We don't use __GLIBC__ and  __GLIBC_MINOR__ because they
+-# are insufficiently precise to distinguish things like
+-# libc-2.0.6 and libc-2.0.7.
+-    for p in $plibpth
+-    do
+-        for trylib in libc.so.6 libc.so
+-        do
+-            if $test -e $p/$trylib; then
+-                libc=`ls -l $p/$trylib | awk '{print $NF}'`
+-                if $test "X$libc" != X; then
+-                    break
+-                fi
+-            fi
+-        done
+-        if $test "X$libc" != X; then
+-            break
+-        fi
+-    done
+-    ;;
+-esac
+-
+ if ${sh:-/bin/sh} -c exit; then
+   echo ''
+   echo 'You appear to have a working bash.  Good.'
+@@ -367,33 +322,6 @@
+ 	;;
+ esac
+ 
+-# SuSE8.2 has /usr/lib/libndbm* which are ld scripts rather than
+-# true libraries. The scripts cause binding against static
+-# version of -lgdbm which is a bad idea. So if we have 'nm'
+-# make sure it can read the file
+-# NI-S 2003/08/07
+-case "$nm" in
+-    '') ;;
+-    *)
+-    for p in $plibpth
+-    do
+-        if $test -r $p/libndbm.so; then
+-            if $nm $p/libndbm.so >/dev/null 2>&1 ; then
+-                echo 'Your shared -lndbm seems to be a real library.'
+-                _libndbm_real=1
+-                break
+-            fi
+-        fi
+-    done
+-    if $test "X$_libndbm_real" = X; then
+-        echo 'Your shared -lndbm is not a real library.'
+-        set `echo X "$libswanted "| sed -e 's/ ndbm / /'`
+-        shift
+-        libswanted="$*"
+-    fi
+-    ;;
+-esac
+-
+ # Linux on Synology.
+ if [ -f /etc/synoinfo.conf -a -d /usr/syno ]; then
+     # Tested on Synology DS213 and DS413
diff --git a/pkgs/development/libraries/esdl/default.nix b/pkgs/development/libraries/esdl/default.nix
deleted file mode 100644
index 7b40359837a..00000000000
--- a/pkgs/development/libraries/esdl/default.nix
+++ /dev/null
@@ -1,32 +0,0 @@
-{stdenv, fetchurl, SDL, libGLU_combined, rebar, erlang}:
-
-stdenv.mkDerivation rec {
-  name = "esdl-1.3.1";
-
-  src = fetchurl {
-    url = "mirror://sourceforge/esdl/${name}.src.tgz";
-    sha256 = "0f5ad519600qarsa2anmnaxh6b7djzx1dnwxzi4l36pxsq896y01";
-  };
-
-  buildInputs = [ erlang rebar ];
-  propagatedBuildInputs = [ SDL libGLU_combined ];
-
-  buildPhase = ''
-    rebar compile
-  '';
-
-  # 'cp' line taken from Arch recipe
-  # https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/erlang-sdl
-  installPhase = ''
-    DIR=$out/lib/erlang/lib/${name}
-    mkdir -p $DIR
-    cp -ruv c_src doc ebin include priv src $DIR
-  '';
-
-  meta = {
-    homepage = http://esdl.sourceforge.net/;
-    description = "Erlang binding to SDL that includes a binding to OpenGL";
-    license = "BSD";
-    platforms = stdenv.lib.platforms.linux;
-  };
-}
diff --git a/pkgs/development/libraries/goffice/0.8.nix b/pkgs/development/libraries/goffice/0.8.nix
deleted file mode 100644
index e050a615dd1..00000000000
--- a/pkgs/development/libraries/goffice/0.8.nix
+++ /dev/null
@@ -1,38 +0,0 @@
-{ fetchurl, stdenv, pkgconfig, glib, gtk2, libglade, bzip2
-, pango, libgsf, libxml2, libart, intltool, gettext
-, cairo, gconf, libgnomeui, pcre, goffice/*just meta*/ }:
-
-stdenv.mkDerivation rec {
-  name = "goffice-0.8.17";
-
-  src = fetchurl {
-    url = "mirror://gnome/sources/goffice/0.8/${name}.tar.xz";
-    sha256 = "165070beb67b84580afe80a8a100b674a81d553ab791acd72ac0c655f4fadb15";
-  };
-
-  # fix linking error: undefined reference to pcre_info
-  patches = [ ./pcre_info.patch ]; # inspired by https://bugs.php.net/bug.php?id=60986
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [
-    libglade bzip2 libart intltool gettext
-    gconf libgnomeui pcre
-  ];
-
-  propagatedBuildInputs = [
-    # All these are in the "Requires:" field of `libgoffice-0.6.pc'.
-    glib libgsf libxml2 gtk2 libglade libart cairo pango
-  ];
-
-  postInstall =
-    ''
-      # Get GnuCash to build.  Might be unnecessary if we upgrade pkgconfig.
-      substituteInPlace $out/lib/pkgconfig/libgoffice-*.pc --replace Requires.private Requires
-    '';
-
-  doCheck = true;
-
-  meta = goffice.meta // {
-    maintainers = [ ];
-  };
-}
diff --git a/pkgs/development/libraries/goffice/pcre_info.patch b/pkgs/development/libraries/goffice/pcre_info.patch
deleted file mode 100644
index cd4ef3c9fed..00000000000
--- a/pkgs/development/libraries/goffice/pcre_info.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff --git a/goffice/utils/regutf8.c b/goffice/utils/regutf8.c
-index bc4aae4..3adb696 100644
---- a/goffice/utils/regutf8.c
-+++ b/goffice/utils/regutf8.c
-@@ -155,7 +155,7 @@ go_regcomp (GORegexp *gor, const char *pat, int cflags)
- 		default: return GO_REG_BADPAT;
- 		}
- 	} else {
--		gor->re_nsub = pcre_info (r, NULL, NULL);
-+		gor->re_nsub = pcre_fullinfo (r, NULL, NULL, NULL);
- 		gor->nosub = (cflags & GO_REG_NOSUB) != 0;
- 		return 0;
- 	}
diff --git a/pkgs/development/libraries/libqrencode/default.nix b/pkgs/development/libraries/libqrencode/default.nix
deleted file mode 100644
index 7c1844bf281..00000000000
--- a/pkgs/development/libraries/libqrencode/default.nix
+++ /dev/null
@@ -1,35 +0,0 @@
-{ stdenv, fetchurl, autoconf, automake, pkgconfig,
-  libtool, SDL2, libpng }:
-
-stdenv.mkDerivation rec {
-  name = "libqrencode-${version}";
-  version = "4.0.0";
-
-  src = fetchurl {
-    url = "https://fukuchi.org/works/qrencode/qrencode-${version}.tar.gz";
-    sha1 = "644054a76c8b593acb66a8c8b7dcf1b987c3d0b2";
-    sha256 = "10da4q5pym7pzxcv21w2kc2rxmq7sp1rg58zdklwfr0jjci1nqjv";
-  };
-
-  nativeBuildInputs = [ pkgconfig ];
-  buildInputs = [ autoconf automake libtool SDL2 libpng ];
-
-  propagatedBuildInputs = [ SDL2 libpng ];
-
-  doCheck = true;
-
-  meta = with stdenv.lib; {
-    homepage = https://fukuchi.org/works/qrencode/;
-    description = "A C library for encoding data in a QR Code symbol";
-
-    longDescription = ''
-      Libqrencode is a C library for encoding data in a QR Code symbol,
-      a kind of 2D symbology that can be scanned by handy terminals
-      such as a mobile phone with CCD.
-    '';
-
-    license = licenses.gpl2Plus;
-    maintainers = [ maintainers.adolfogc ];
-    platforms = platforms.unix;
-  };
-}
diff --git a/pkgs/development/libraries/libxmlb/default.nix b/pkgs/development/libraries/libxmlb/default.nix
index 201940f1705..cce73ba89bc 100644
--- a/pkgs/development/libraries/libxmlb/default.nix
+++ b/pkgs/development/libraries/libxmlb/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "libxmlb-${version}";
-  version = "0.1.5";
+  version = "0.1.6";
 
   outputs = [ "out" "lib" "dev" "devdoc" ];
 
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
     owner = "hughsie";
     repo = "libxmlb";
     rev = version;
-    sha256 = "037j9fwkzsy3765gl2grkrmbxrfs67wlai213qbgsa5xn6fb8y68";
+    sha256 = "194slg11lp2i8zvc4a3zkzshps7qglzmrabp5k0r92rampx4dbwa";
   };
 
   nativeBuildInputs = [ meson ninja python3 pkgconfig gobject-introspection gtk-doc shared-mime-info docbook_xsl docbook_xml_dtd_43 ];
diff --git a/pkgs/development/libraries/qrencode/default.nix b/pkgs/development/libraries/qrencode/default.nix
new file mode 100644
index 00000000000..1cbdf1ffdf8
--- /dev/null
+++ b/pkgs/development/libraries/qrencode/default.nix
@@ -0,0 +1,47 @@
+{ stdenv, fetchurl, pkgconfig, SDL2, libpng }:
+
+stdenv.mkDerivation rec {
+  pname = "qrencode";
+  version = "4.0.2";
+
+  outputs = [ "bin" "out" "man" "dev" ];
+
+  src = fetchurl {
+    url = "https://fukuchi.org/works/qrencode/qrencode-${version}.tar.gz";
+    sha256 = "079v3a15ydpr67zdi3xbgvic8n2kxvi0m32dyz8jaik10yffgayv";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ SDL2 libpng ];
+
+  configureFlags = [
+    "--with-tests"
+  ];
+
+  doCheck = true;
+
+  checkPhase = ''
+    runHook preCheck
+
+    pushd tests
+    ./test_basic.sh
+    popd
+
+    runHook postCheck
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://fukuchi.org/works/qrencode/;
+    description = "C library for encoding data in a QR Code symbol";
+
+    longDescription = ''
+      Libqrencode is a C library for encoding data in a QR Code symbol,
+      a kind of 2D symbology that can be scanned by handy terminals
+      such as a mobile phone with CCD.
+    '';
+
+    license = licenses.lgpl21Plus;
+    maintainers = with maintainers; [ adolfogc yegortimoshenko ];
+    platforms = platforms.all;
+  };
+}
diff --git a/pkgs/development/libraries/science/math/suitesparse/default.nix b/pkgs/development/libraries/science/math/suitesparse/default.nix
index ce3b048e764..a6c803be260 100644
--- a/pkgs/development/libraries/science/math/suitesparse/default.nix
+++ b/pkgs/development/libraries/science/math/suitesparse/default.nix
@@ -1,9 +1,10 @@
 { stdenv, fetchurl, gfortran, openblas, cmake, fixDarwinDylibNames
+, gnum4
 , enableCuda  ? false, cudatoolkit
 }:
 
 let
-  version = "5.3.0";
+  version = "5.4.0";
   name = "suitesparse-${version}";
 
   SHLIB_EXT = stdenv.hostPlatform.extensions.sharedLibrary;
@@ -13,7 +14,7 @@ stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "http://faculty.cse.tamu.edu/davis/SuiteSparse/SuiteSparse-${version}.tar.gz";
-    sha256 = "0gcn1xj3z87wpp26gxn11k8073bxv6jswfd8jmddlm64v09rgrlh";
+    sha256 = "1lfvjj787yqyhk25w7brlrkrl7dnnn5dq4ijxws3wrbcd4vd2k9p";
   };
 
   dontUseCmakeConfigure = true;
@@ -119,8 +120,10 @@ stdenv.mkDerivation rec {
     runHook postInstall
     '';
 
-  nativeBuildInputs = [ cmake ]
-    ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
+  nativeBuildInputs = [
+    cmake
+    gnum4
+  ] ++ stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
 
   buildInputs = [ openblas gfortran.cc.lib ]
     ++ stdenv.lib.optional enableCuda cudatoolkit;
diff --git a/pkgs/development/libraries/sqlcipher/default.nix b/pkgs/development/libraries/sqlcipher/default.nix
index 0d31b294e1c..46c006df935 100644
--- a/pkgs/development/libraries/sqlcipher/default.nix
+++ b/pkgs/development/libraries/sqlcipher/default.nix
@@ -4,13 +4,13 @@ assert readline != null -> ncurses != null;
 
 stdenv.mkDerivation rec {
   name = "sqlcipher-${version}";
-  version = "4.0.0";
+  version = "4.0.1";
 
   src = fetchFromGitHub {
     owner = "sqlcipher";
     repo = "sqlcipher";
     rev = "v${version}";
-    sha256 = "0faadjr4qnm1pvm5yx37jfqqxqwii02nzlmmi2h91z6371888m7g";
+    sha256 = "08iqj80qlcsnid2s3m6gcryhvcfc0f136frv0md2gp3rz9g3l63d";
   };
 
   buildInputs = [ readline ncurses openssl tcl ];
diff --git a/pkgs/development/libraries/sundials/default.nix b/pkgs/development/libraries/sundials/default.nix
index 2a5acc31382..8fe2431d142 100644
--- a/pkgs/development/libraries/sundials/default.nix
+++ b/pkgs/development/libraries/sundials/default.nix
@@ -3,12 +3,12 @@
 stdenv.mkDerivation rec {
 
   pname = "sundials";
-  version = "4.0.0";
+  version = "4.0.1";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://computation.llnl.gov/projects/${pname}/download/${pname}-${version}.tar.gz";
-    sha256 = "06cspmhx9qn7x722lmy9q2jr80hnnv2h7n54da7y5m951p1xfgcm";
+    sha256 = "1m5f2glxmgc6imjr0yqqp448r8q3kvsfp8dxxn83k00fcb40kr19";
   };
 
   preConfigure = ''
diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix
index 8f57a0bf1b7..8f3808bffcb 100644
--- a/pkgs/development/libraries/wolfssl/default.nix
+++ b/pkgs/development/libraries/wolfssl/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "wolfssl-${version}";
-  version = "3.15.3";
+  version = "3.15.7";
 
   src = fetchFromGitHub {
     owner = "wolfSSL";
     repo = "wolfssl";
     rev = "v${version}-stable";
-    sha256 = "00mpq1z8j37a873dbk9knb835m3qlwqnd1rslirqkc44hpz1i64j";
+    sha256 = "128z1f7nry278kdjzq950cr81bml8p17fgdchmpvy0awhh7r20y9";
   };
 
   configureFlags = [ "--enable-all" ];
diff --git a/pkgs/development/python-modules/blockdiagcontrib-cisco/default.nix b/pkgs/development/python-modules/blockdiagcontrib-cisco/default.nix
new file mode 100644
index 00000000000..6190adcba5f
--- /dev/null
+++ b/pkgs/development/python-modules/blockdiagcontrib-cisco/default.nix
@@ -0,0 +1,25 @@
+{ stdenv
+, buildPythonPackage
+, fetchPypi
+, blockdiag
+}:
+
+buildPythonPackage rec {
+  pname = "blockdiagcontrib-cisco";
+  version = "0.1.8";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "06iw3q1w4g3lbgcmyz8m93rv0pfnk2gp8k83rs9ir671ym99gwr2";
+  };
+
+  buildInputs = [ blockdiag ];
+
+  meta = with stdenv.lib; {
+    description = "Noderenderer plugin for blockdiag containing Cisco networking symbols";
+    homepage = "https://bitbucket.org/blockdiag/blockdiag-contrib/";
+    maintainers = [ maintainers.bjornfor ];
+    license = licenses.psfl;
+  };
+
+}
diff --git a/pkgs/development/python-modules/channels/default.nix b/pkgs/development/python-modules/channels/default.nix
index 74994154f2e..6719c666902 100644
--- a/pkgs/development/python-modules/channels/default.nix
+++ b/pkgs/development/python-modules/channels/default.nix
@@ -3,11 +3,11 @@
 }:
 buildPythonPackage rec {
   pname = "channels";
-  version = "2.1.5";
+  version = "2.1.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "48f97f1801e0a8da6d01430d16d4ed8bd460d4ec3130c66075fb94b12bb30a67";
+    sha256 = "15qmwkpmia9y32amg7dqx3ph81b6m3fa0pawhq8gshvdfjdvhfjd";
   };
 
   # Files are missing in the distribution
diff --git a/pkgs/development/python-modules/curve25519-donna/default.nix b/pkgs/development/python-modules/curve25519-donna/default.nix
new file mode 100644
index 00000000000..789fc7488fa
--- /dev/null
+++ b/pkgs/development/python-modules/curve25519-donna/default.nix
@@ -0,0 +1,18 @@
+{ stdenv, buildPythonPackage, fetchPypi }:
+
+buildPythonPackage rec {
+  pname = "curve25519-donna";
+  version = "1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1w0vkjyh4ki9n98lr2hg09f1lr1g3pz48kshrlic01ba6pasj60q";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Python wrapper for the portable curve25519-donna implementation";
+    homepage = http://code.google.com/p/curve25519-donna/;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ elseym ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyatv/default.nix b/pkgs/development/python-modules/pyatv/default.nix
new file mode 100644
index 00000000000..783a36dd2de
--- /dev/null
+++ b/pkgs/development/python-modules/pyatv/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, buildPythonPackage, fetchPypi, srptools, aiohttp, zeroconf
+, ed25519, cryptography, curve25519-donna, pytest, pytestrunner
+, netifaces, asynctest, virtualenv, toml, filelock, tox }:
+
+buildPythonPackage rec {
+  pname = "pyatv";
+  version = "0.3.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "135xvy1nn0x5knc7l05amfs837xkx2gcg3lpp69ya9kqs8j6brgp";
+  };
+
+  propagatedBuildInputs = [ srptools aiohttp zeroconf ed25519 cryptography curve25519-donna tox ];
+
+  checkInputs = [ pytest pytestrunner netifaces asynctest virtualenv toml filelock ];
+
+  meta = with stdenv.lib; {
+    description = "A python client library for the Apple TV";
+    homepage = https://github.com/postlund/pyatv;
+    license = licenses.mit;
+    maintainers = with maintainers; [ elseym ];
+  };
+}
diff --git a/pkgs/development/python-modules/pybotvac/default.nix b/pkgs/development/python-modules/pybotvac/default.nix
new file mode 100644
index 00000000000..8bfd7668114
--- /dev/null
+++ b/pkgs/development/python-modules/pybotvac/default.nix
@@ -0,0 +1,20 @@
+{ stdenv, buildPythonPackage, fetchPypi, requests }:
+
+buildPythonPackage rec {
+  pname = "pybotvac";
+  version = "0.0.12";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "12qm4w883nb6fwff6sch5l133g3irqjcrgkjhh4mz1mmz7n6xzjh";
+  };
+
+  propagatedBuildInputs = [ requests ];
+
+  meta = with stdenv.lib; {
+    description = "Python package for controlling Neato pybotvac Connected vacuum robot";
+    homepage = https://github.com/stianaske/pybotvac;
+    license = licenses.mit;
+    maintainers = with maintainers; [ elseym ];
+  };
+}
diff --git a/pkgs/development/python-modules/pytado/default.nix b/pkgs/development/python-modules/pytado/default.nix
new file mode 100644
index 00000000000..a1c70b4c205
--- /dev/null
+++ b/pkgs/development/python-modules/pytado/default.nix
@@ -0,0 +1,21 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub }:
+
+buildPythonPackage rec {
+  pname = "PyTado";
+  version = "0.2.7";
+
+  src = fetchFromGitHub {
+    owner = "wmalgadey";
+    repo = pname;
+    # Upstream hasn't tagged this release yet. This commit fixes the build.
+    rev = "79a5dfdf75cd9a3e1a1ee8a8ff0d08923aebda7b";
+    sha256 = "14xdfw4913g4j4h576hjbigm7fiw8k0dc8s98gh2ag9xrc2ifgr0";
+  };
+
+  meta = with stdenv.lib; {
+    description = "Python binding for Tado web API. Pythonize your central heating!";
+    homepage = https://github.com/wmalgadey/PyTado;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ elseym ];
+  };
+}
diff --git a/pkgs/development/python-modules/srptools/default.nix b/pkgs/development/python-modules/srptools/default.nix
new file mode 100644
index 00000000000..2df3397f625
--- /dev/null
+++ b/pkgs/development/python-modules/srptools/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi, six, pytest, pytestrunner }:
+
+buildPythonPackage rec {
+  pname = "srptools";
+  version = "0.2.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0g0jdkblnd3wv5xgb33g6sfgqnhdcs8a3gqzp5gshq2vawdh8p37";
+  };
+
+  propagatedBuildInputs = [ six ];
+
+  checkInputs = [ pytest pytestrunner ];
+
+  meta = with stdenv.lib; {
+    description = "Python-Tools to implement Secure Remote Password (SRP) authentication";
+    homepage = https://github.com/idlesign/srptools;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ elseym ];
+  };
+}
diff --git a/pkgs/development/python-modules/stem/default.nix b/pkgs/development/python-modules/stem/default.nix
index d867f94a310..69931a46007 100644
--- a/pkgs/development/python-modules/stem/default.nix
+++ b/pkgs/development/python-modules/stem/default.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "stem";
-  version = "1.7.0";
+  version = "1.7.1";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1awiglfiajnx2hva9aqpj3fmdvdb4qg7cwnlfyih827m68y3cq8v";
+    sha256 = "18lc95pmc7i089nlsb06dsxyjl5wbhxfqgdxbjcia35ndh8z7sn9";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/zodbpickle/default.nix b/pkgs/development/python-modules/zodbpickle/default.nix
index 746099368fb..a9d99274afe 100644
--- a/pkgs/development/python-modules/zodbpickle/default.nix
+++ b/pkgs/development/python-modules/zodbpickle/default.nix
@@ -5,12 +5,12 @@
 
 buildPythonPackage rec {
   pname = "zodbpickle";
-  version = "1.0.2";
+  version = "1.0.3";
   disabled = isPyPy; # https://github.com/zopefoundation/zodbpickle/issues/10
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "f26e6eba6550ff1575ef2f2831fc8bc0b465f17f9757d0b6c7db55fab5702061";
+    sha256 = "0avr63rka9lrqngjfmny7hdds4klmg1nriwc7n3kgyrp44z2lk7c";
   };
 
   # fails..
diff --git a/pkgs/development/tools/build-managers/dub/default.nix b/pkgs/development/tools/build-managers/dub/default.nix
index 11461fc6952..cce34b17040 100644
--- a/pkgs/development/tools/build-managers/dub/default.nix
+++ b/pkgs/development/tools/build-managers/dub/default.nix
@@ -4,7 +4,7 @@ let
 
   dubBuild = stdenv.mkDerivation rec {
     name = "dubBuild-${version}";
-    version = "1.10.0";
+    version = "1.12.1";
 
     enableParallelBuilding = true;
 
@@ -12,7 +12,7 @@ let
       owner = "dlang";
       repo = "dub";
       rev = "v${version}";
-      sha256 = "02xxpfcjs427jqbwz0vh5vl3bh62ys65zmi9gpa3svzqffyx13n4";
+      sha256 = "0q4968vxgfxhq6ywhdvj6sqddwf7aadqmmpfqc6nl65r7jyga52a";
     };
 
     postUnpack = ''
diff --git a/pkgs/development/tools/build-managers/sbt/default.nix b/pkgs/development/tools/build-managers/sbt/default.nix
index d6eed35e30a..8110027b6cf 100644
--- a/pkgs/development/tools/build-managers/sbt/default.nix
+++ b/pkgs/development/tools/build-managers/sbt/default.nix
@@ -2,7 +2,7 @@
 
 stdenv.mkDerivation rec {
   name = "sbt-${version}";
-  version = "1.2.7";
+  version = "1.2.8";
 
   src = fetchurl {
     urls = [
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
       "https://github.com/sbt/sbt/releases/download/v${version}/sbt-${version}.tgz"
       "https://cocl.us/sbt-${version}.tgz"
     ];
-    sha256 = "10g7a1j2knbqmnbpvfhy1rqdg2pflmasz879ax59pv3mvgccn996";
+    sha256 = "0n7yghnb1q3lyjpv721znvslk5lwib7y84mxwz66yv8p84jj3fcv";
   };
 
   patchPhase = ''
diff --git a/pkgs/development/tools/documentation/doxygen/default.nix b/pkgs/development/tools/documentation/doxygen/default.nix
index d25f00276f6..f590c3e5988 100644
--- a/pkgs/development/tools/documentation/doxygen/default.nix
+++ b/pkgs/development/tools/documentation/doxygen/default.nix
@@ -5,7 +5,10 @@ stdenv.mkDerivation rec {
   name = "doxygen-1.8.14";
 
   src = fetchurl {
-    url = "ftp://ftp.stack.nl/pub/users/dimitri/${name}.src.tar.gz";
+    urls = [
+      "mirror://sourceforge/doxygen/${name}.src.tar.gz" # faster, with https, etc.
+      "http://doxygen.nl/files/${name}.src.tar.gz"
+    ];
     sha256 = "d1757e02755ef6f56fd45f1f4398598b920381948d6fcfa58f5ca6aa56f59d4d";
   };
 
@@ -29,7 +32,7 @@ stdenv.mkDerivation rec {
 
   meta = {
     license = stdenv.lib.licenses.gpl2Plus;
-    homepage = http://doxygen.org/;
+    homepage = http://doxygen.nl/;
     description = "Source code documentation generator tool";
 
     longDescription = ''
diff --git a/pkgs/development/tools/dtools/default.nix b/pkgs/development/tools/dtools/default.nix
index b1703cd45dd..9fc1a682c60 100644
--- a/pkgs/development/tools/dtools/default.nix
+++ b/pkgs/development/tools/dtools/default.nix
@@ -2,21 +2,21 @@
 
 stdenv.mkDerivation rec {
   name = "dtools-${version}";
-  version = "2.081.2";
+  version = "2.083.1";
 
   srcs = [
     (fetchFromGitHub {
       owner = "dlang";
       repo = "dmd";
       rev = "v${version}";
-      sha256 = "1wwk4shqldvgyczv1ihmljpfj3yidq7mxcj69i9kjl7jqx54hw62";
+      sha256 = "0b52yq7slgbrawb22kib9bk2x9xjiy6axwz1317fck5axl093d90";
       name = "dmd";
     })
     (fetchFromGitHub {
       owner = "dlang";
       repo = "tools";
       rev = "v${version}";
-      sha256 = "1sbcfj8r1nvy7ynh9dy55q9bvfvxwf1z3llpxckvi8p6yvf35qn2";
+      sha256 = "0z3xkv9s1pdx8zdhsb92mwax2q5xhwjgh6g3iv53xip1nsxygn48";
       name = "dtools";
     })
   ];
diff --git a/pkgs/development/tools/literate-programming/Literate/default.nix b/pkgs/development/tools/literate-programming/Literate/default.nix
index 8fbbcdb6e5f..d8afdf54a93 100644
--- a/pkgs/development/tools/literate-programming/Literate/default.nix
+++ b/pkgs/development/tools/literate-programming/Literate/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchgit, dmd, dub }:
 
 stdenv.mkDerivation {
-  name = "Literate-2018-08-20";
+  name = "Literate-2018-12-23";
 
   src = fetchgit {
     url = "https://github.com/zyedidia/Literate.git";
-    rev = "737567e49c9e12ac56222c147191da58ea1521e2";
-    sha256 = "19v8v66lv8ayg3irqkbk7ln5lkmgwpx4wgz8h3yr81arl40bbzqs";
+    rev = "99a0b7dd1ac451c2386094be06364df9386c3862";
+    sha256 = "0jvciajr33iz049m0yal41mz9p8nxmwkpq2mrfhg1ysx2zv3q3pm";
   };
 
   buildInputs = [ dmd dub ];
diff --git a/pkgs/development/tools/misc/cproto/default.nix b/pkgs/development/tools/misc/cproto/default.nix
index e79326eeba4..8a0cb095d44 100644
--- a/pkgs/development/tools/misc/cproto/default.nix
+++ b/pkgs/development/tools/misc/cproto/default.nix
@@ -1,22 +1,34 @@
 { stdenv, fetchurl, flex, bison }:
 
-stdenv.mkDerivation {
-  name = "cproto-4.6";
+stdenv.mkDerivation rec {
+  name = "cproto-${version}";
+  version = "4.7o";
 
   src = fetchurl {
-    url = mirror://sourceforge/cproto/cproto-4.6.tar.gz;
-    sha256 = "0ilhkx9iwc5bh65q47mf68p39iyk07d52fv00z431nl6qcb9hp9j";
+    urls = [
+      "mirror://debian/pool/main/c/cproto/cproto_${version}.orig.tar.gz"
+      # No version listings and apparently no versioned tarball over http(s).
+      "ftp://ftp.invisible-island.net/cproto/cproto-${version}.tgz"
+    ];
+    sha256 = "0kxlrhhgm84v2q6n3wp7bb77g7wjxkb7azdvb6a70naf0rr0nsy7";
   };
 
-  buildInputs = [flex bison];
-
   # patch made by Joe Khoobyar copied from gentoo bugs
   patches = ./cproto_patch;
 
-  meta = {
+  nativeBuildInputs = [ flex bison ];
+
+  doCheck = true;
+
+  doInstallCheck = true;
+  installCheckPhase = ''
+    [ "$("$out/bin/cproto" -V 2>&1)" = '${version}' ]
+  '';
+
+  meta = with stdenv.lib; {
     description = "Tool to generate C function prototypes from C source code";
-    homepage = http://cproto.sourceforge.net/;
-    license = stdenv.lib.licenses.publicDomain;
-    platforms = stdenv.lib.platforms.linux;
+    homepage = https://invisible-island.net/cproto/;
+    license = licenses.publicDomain;
+    platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/anki/default.nix b/pkgs/games/anki/default.nix
index 3f837886116..b662b5b8e3b 100644
--- a/pkgs/games/anki/default.nix
+++ b/pkgs/games/anki/default.nix
@@ -26,17 +26,17 @@
 }:
 
 buildPythonApplication rec {
-    version = "2.1.6-beta2";
+    version = "2.1.7";
     name = "anki-${version}";
 
     src = fetchurl {
       urls = [
-        "https://apps.ankiweb.net/downloads/beta/${name}-source.tgz"
+        "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
         # "https://apps.ankiweb.net/downloads/current/${name}-source.tgz"
         # "http://ankisrs.net/download/mirror/${name}.tgz"
         # "http://ankisrs.net/download/mirror/archive/${name}.tgz"
       ];
-      sha256 = "0h71s1j1269x0b8481z8xf019caqglcjs32xlpzk72087ps169fa";
+      sha256 = "0cvlimfxb7kficlf20hg7a345pahvr093b7yqvssww15h4y4va9d";
     };
 
     propagatedBuildInputs = [ pyqt5 sqlalchemy
@@ -54,16 +54,6 @@ buildPythonApplication rec {
     patches = [
       # Disable updated version check.
       ./no-version-check.patch
-
-      # This is needed to fix python 3.7 compatibilty, where the
-      # behaviour of `re.escape()` was changed in a way that it no
-      # longer escapes `%`. This patch detects this difference at
-      # runtime and makes anki work with any python version.
-      # Upstream PR: https://github.com/dae/anki/pull/266
-      (fetchpatch {
-        url = "https://github.com/dae/anki/commit/3d69aa9ce454a151ba75deafd7de117af2c7307d.patch";
-        sha256 = "0kf9gajhy0wcajp24xfia71z6gn1mc4vl37svvq4sqbhj3gigd0h";
-      })
     ];
 
     buildPhase = ''
diff --git a/pkgs/games/frogatto/data.nix b/pkgs/games/frogatto/data.nix
new file mode 100644
index 00000000000..ec2cb941666
--- /dev/null
+++ b/pkgs/games/frogatto/data.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+  
+stdenv.mkDerivation rec {
+  pname = "frogatto-data";
+  version = "unstable-2018-12-18";
+  
+  src = fetchFromGitHub {
+    owner = "frogatto";
+    repo = "frogatto";
+    # master branch as of 2018-12-18
+    rev = "8f261b5d3fca3c88e6a534316a28378cf687d3e5";
+    sha256 = "0nyfwfyy5gxp61ydna299nq9p5wra9mk0bf1drdngg6bwws1hrqx";
+  };
+
+  installPhase = ''
+    mkdir -p $out/share/frogatto/modules
+    cp -ar . $out/share/frogatto/modules/frogatto
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/frogatto/frogatto;
+    description = "Data files to the frogatto game";
+    license = with licenses; [ cc-by-30 unfree ];
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/pkgs/games/frogatto/default.nix b/pkgs/games/frogatto/default.nix
new file mode 100644
index 00000000000..53be638e753
--- /dev/null
+++ b/pkgs/games/frogatto/default.nix
@@ -0,0 +1,43 @@
+{ lib, buildEnv, stdenv, callPackage, makeWrapper, makeDesktopItem }:
+
+let
+  description = "Action-adventure game, starring a certain quixotic frog";
+  engine = callPackage ./engine.nix { };
+  data = callPackage ./data.nix { };
+  desktopItem = makeDesktopItem {
+    name = "frogatto";
+    exec = "frogatto";
+    startupNotify = "true";
+    icon = "${data}/share/frogatto/modules/frogatto/images/os/frogatto-icon.png";
+    comment = description;
+    desktopName = "Frogatto";
+    genericName = "frogatto";
+    categories = "Application;Game;ArcadeGame;";
+  };
+  version = "unstable-2018-12-18";
+in buildEnv rec {
+  name = "frogatto-${version}";
+
+  buildInputs = [ makeWrapper ];
+  paths = [ engine data desktopItem ];
+  pathsToLink = [
+    "/bin"
+    "/share/frogatto/data"
+    "/share/frogatto/images"
+    "/share/frogatto/modules"
+    "/share/applications"
+  ];
+
+  postBuild = ''
+    wrapProgram $out/bin/frogatto \
+      --run "cd $out/share/frogatto"
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://frogatto.com;
+    description = description;
+    license = with licenses; [ cc-by-30 unfree ];
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/pkgs/games/frogatto/engine.nix b/pkgs/games/frogatto/engine.nix
new file mode 100644
index 00000000000..b49224d258d
--- /dev/null
+++ b/pkgs/games/frogatto/engine.nix
@@ -0,0 +1,50 @@
+{ stdenv, fetchFromGitHub, bash, which
+, boost, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf
+, glew, zlib, icu, pkgconfig, cairo, libvpx }:
+
+stdenv.mkDerivation rec {
+  pname = "anura-engine";
+  version = "unstable-2018-11-28";
+
+  src = fetchFromGitHub {
+    owner = "anura-engine";
+    repo = "anura";
+    # trunk branch as of 2018-11-28
+    rev = "8070111467802dc772c0a6c7806ecd16b0bcdaa9";
+    sha256 = "0xbqwfmws69n7iiz17n93h4jiw39cwyf7hxw0qi2c8cccr37b1nr";
+    fetchSubmodules = true;
+  };
+
+  nativeBuildInputs = [
+    which pkgconfig
+  ];
+
+  buildInputs = [
+    boost
+    SDL2
+    SDL2_image
+    SDL2_mixer
+    SDL2_ttf
+    glew
+    zlib
+    icu
+    cairo
+    libvpx
+  ];
+
+  enableParallelBuilding = true;
+
+  installPhase = ''
+    mkdir -p $out/bin $out/share/frogatto
+    cp -ar data images modules $out/share/frogatto/
+    cp -a anura $out/bin/frogatto
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://github.com/anura-engine/anura;
+    description = "Game engine used by Frogatto";
+    license = licenses.zlib;
+    platforms = platforms.linux;
+    maintainers = with maintainers; [ astro ];
+  };
+}
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index b8573a9367a..00d07ef9236 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -3115,6 +3115,16 @@ let
     };
   };
 
+  vim-parinfer = buildVimPluginFrom2Nix {
+    name = "vim-parinfer-2018-08-31";
+    src = fetchFromGitHub {
+      owner = "bhurlow";
+      repo = "vim-parinfer";
+      rev = "d599e41dd1b9034059524af8156dcbebe68d96d2";
+      sha256 = "0h4zw1yfnrbb3w5brcsy2l43jk7569dhslpkahczqxj6wr6hsxcc";
+    };
+  };
+
   vim-pathogen = buildVimPluginFrom2Nix {
     pname = "vim-pathogen";
     version = "2018-12-13";
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index 119a996b5bd..49a0230de93 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -16,6 +16,7 @@ bazelbuild/vim-bazel
 bbchung/clighter8
 benekastah/neomake
 benmills/vimux
+bhurlow/vim-parinfer
 bitc/vim-hdevtools
 bling/vim-bufferline
 bronson/vim-trailing-whitespace
diff --git a/pkgs/misc/vim-plugins/vim-utils.nix b/pkgs/misc/vim-plugins/vim-utils.nix
index 61e89521c8c..6e867dfc966 100644
--- a/pkgs/misc/vim-plugins/vim-utils.nix
+++ b/pkgs/misc/vim-plugins/vim-utils.nix
@@ -1,5 +1,7 @@
-{stdenv, vim, vimPlugins, vim_configurable, neovim, buildEnv, writeText, writeScriptBin
-, nix-prefetch-hg, nix-prefetch-git }:
+{ stdenv, vim, vimPlugins, vim_configurable, neovim, buildEnv, writeText, writeScriptBin
+, nix-prefetch-hg, nix-prefetch-git
+, fetchFromGitHub
+}:
 
 /*
 
@@ -150,20 +152,23 @@ vim_with_plugins can be installed like any other application within Nix.
 let
   inherit (stdenv) lib;
 
-  # transitive closure of plugin dependencies
-  transitiveClosure = knownPlugins: plugin:
-  let
-    # vam puts out a list of strings as the dependency list, we need to be able to deal with that.
-    # Because of that, "plugin" may be a string or a derivation. If it is a string, it is resolved
-    # using `knownPlugins`. Otherwise `knownPlugins` can be null.
-    knownPlugins' = if knownPlugins == null then vimPlugins else knownPlugins;
-    pluginDrv = if builtins.isString plugin then knownPlugins'.${plugin} else plugin;
-  in
-    [ pluginDrv ] ++ (
-      lib.unique (builtins.concatLists (map (transitiveClosure knownPlugins) pluginDrv.dependencies or []))
+  # make sure a plugin is a derivation. If plugin already is a derivation, this
+  # is a no-op. If it is a string, it is looked up in knownPlugins.
+  pluginToDrv = knownPlugins: plugin:
+    if builtins.isString plugin then
+      # make sure `pname` is set to that we are able to convert the derivation
+      # back to a string.
+      ( knownPlugins.${plugin} // { pname = plugin; })
+    else
+      plugin;
+
+  # transitive closure of plugin dependencies (plugin needs to be a derivation)
+  transitiveClosure = plugin:
+    [ plugin ] ++ (
+      lib.unique (builtins.concatLists (map transitiveClosure plugin.dependencies or []))
     );
 
-  findDependenciesRecursively = knownPlugins: plugins: lib.concatMap (transitiveClosure knownPlugins) plugins;
+  findDependenciesRecursively = plugins: lib.concatMap transitiveClosure plugins;
 
   attrnamesToPlugins = { knownPlugins, names }:
     map (name: if builtins.isString name then knownPlugins.${name} else name) knownPlugins;
@@ -195,7 +200,7 @@ let
       (let
         knownPlugins = pathogen.knownPlugins or vimPlugins;
 
-        plugins = findDependenciesRecursively knownPlugins pathogen.pluginNames;
+        plugins = findDependenciesRecursively (map (pluginToDrv knownPlugins) pathogen.pluginNames);
 
         pluginsEnv = buildEnv {
           name = "pathogen-plugin-env";
@@ -240,7 +245,10 @@ let
       (let
         knownPlugins = vam.knownPlugins or vimPlugins;
 
-        plugins = findDependenciesRecursively knownPlugins (lib.concatMap vamDictToNames vam.pluginDictionaries);
+        # plugins specified by the user
+        specifiedPlugins = map (pluginToDrv knownPlugins) (lib.concatMap vamDictToNames vam.pluginDictionaries);
+        # plugins with dependencies
+        plugins = findDependenciesRecursively specifiedPlugins;
 
         # Vim almost reads JSON, so eventually JSON support should be added to Nix
         # TODO: proper quoting
@@ -298,8 +306,8 @@ let
           # opposed to older implementations that have to maintain backwards
           # compatibility). Therefore we don't need to deal with "knownPlugins"
           # and can simply pass `null`.
-          depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively null opt);
-          startWithDeps = findDependenciesRecursively null start;
+          depsOfOptionalPlugins = lib.subtractLists opt (findDependenciesRecursively opt);
+          startWithDeps = findDependenciesRecursively start;
         in
           ["mkdir -p $out/pack/${packageName}/start"]
           # To avoid confusion, even dependencies of optional plugins are added
@@ -421,8 +429,8 @@ rec {
                      if vam != null && vam ? knownPlugins then vam.knownPlugins else
                      if pathogen != null && pathogen ? knownPlugins then pathogen.knownPlugins else
                      vimPlugins;
-      pathogenPlugins = findDependenciesRecursively knownPlugins pathogen.pluginNames;
-      vamPlugins = findDependenciesRecursively knownPlugins (lib.concatMap vamDictToNames vam.pluginDictionaries);
+      pathogenPlugins = findDependenciesRecursively ((map pluginToDrv knownPlugins) pathogen.pluginNames);
+      vamPlugins = findDependenciesRecursively (map (pluginToDrv knownPlugins) (lib.concatMap vamDictToNames vam.pluginDictionaries));
       nonNativePlugins = (lib.optionals (pathogen != null) pathogenPlugins)
                       ++ (lib.optionals (vam != null) vamPlugins)
                       ++ (lib.optionals (plug != null) plug.plugins);
@@ -457,4 +465,26 @@ rec {
   test_nvim_with_vim_nix_using_pathogen = neovim.override {
     configure.pathogen.pluginNames = [ "vim-nix" ];
   };
+
+  # regression test for https://github.com/NixOS/nixpkgs/issues/53112
+  # The user may have specified their own plugins which may not be formatted
+  # exactly as the generated ones. In particular, they may not have the `pname`
+  # attribute.
+  test_vim_with_custom_plugin = vim_configurable.customize {
+    name = "vim_with_custom_plugin";
+    vimrcConfig.vam.knownPlugins =
+      vimPlugins // ({
+        "vim-trailing-whitespace" = buildVimPluginFrom2Nix {
+          name = "vim-trailing-whitespace";
+          src = fetchFromGitHub {
+            owner = "bronson";
+            repo = "vim-trailing-whitespace";
+            rev = "4c596548216b7c19971f8fc94e38ef1a2b55fee6";
+            sha256 = "0f1cpnp1nxb4i5hgymjn2yn3k1jwkqmlgw1g02sq270lavp2dzs9";
+          };
+          dependencies = [];
+        };
+      });
+    vimrcConfig.vam.pluginDictionaries = [ { names = [ "vim-trailing-whitespace" ]; } ];
+  };
 }
diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix
index 34a3e0a1287..654e565140d 100644
--- a/pkgs/os-specific/linux/conky/default.nix
+++ b/pkgs/os-specific/linux/conky/default.nix
@@ -66,13 +66,13 @@ with stdenv.lib;
 
 stdenv.mkDerivation rec {
   name = "conky-${version}";
-  version = "1.11.0";
+  version = "1.11.1";
 
   src = fetchFromGitHub {
     owner = "brndnmtthws";
     repo = "conky";
     rev = "v${version}";
-    sha256 = "164xa6s90zakkvwivl296z6v7w8xchgxap7ib6yx4g1bxa0143mi";
+    sha256 = "00ghxzg78mp7w2y9cxhsdmkab2n7vfg76p6zihiglb2x3h2gjm5x";
   };
 
   postPatch = ''
diff --git a/pkgs/os-specific/linux/google-authenticator/default.nix b/pkgs/os-specific/linux/google-authenticator/default.nix
index 4e04c16d70b..8ae5785eea8 100644
--- a/pkgs/os-specific/linux/google-authenticator/default.nix
+++ b/pkgs/os-specific/linux/google-authenticator/default.nix
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
   buildInputs = [ pam ];
 
   preConfigure = ''
-    sed -i "s|libqrencode.so.4|${qrencode}/lib/libqrencode.so.4|" src/google-authenticator.c
+    sed -i "s|libqrencode.so.4|${qrencode.out}/lib/libqrencode.so.4|" src/google-authenticator.c
   '';
 
   installPhase = ''
diff --git a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
index 863455f29ab..6655845efe5 100644
--- a/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix
@@ -1,10 +1,10 @@
 { stdenv, buildPackages, fetchFromGitHub, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "4.14.85-152";
+  version = "4.14.87-153";
 
   # modDirVersion needs to be x.y.z.
-  modDirVersion = "4.14.85";
+  modDirVersion = "4.14.87";
 
   # branchVersion needs to be x.y.
   extraMeta.branch = "4.14";
@@ -13,7 +13,7 @@ buildLinux (args // rec {
     owner = "hardkernel";
     repo = "linux";
     rev = version;
-    sha256 = "1bpsxrbsdygnk2414ajf2za7rnb6xxnjngkzrg060c4i3bcrwrzf";
+    sha256 = "1aj3l8pf3nl0mm4m5z4z4iqd72b0nqip4cajmhpfjmq8vkygcw5c";
   };
 
   defconfig = "odroidxu4_defconfig";
diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix
index ab84c4d9bf9..3af8ceab80e 100644
--- a/pkgs/os-specific/linux/lxc/default.nix
+++ b/pkgs/os-specific/linux/lxc/default.nix
@@ -9,11 +9,11 @@
 with stdenv.lib;
 stdenv.mkDerivation rec {
   name = "lxc-${version}";
-  version = "3.0.2";
+  version = "3.0.3";
 
   src = fetchurl {
     url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz";
-    sha256 = "0p1gy553cm4mhwxi85fl6qiwz61rjmvysm8c8pd20qh62xxi3dva";
+    sha256 = "0hcql4srcs2dlf2f67i8v92y2i352zv7nr9hsgs3pih2rhrbh332";
   };
 
   nativeBuildInputs = [
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index fbea4ceff6a..c9f0c4964cc 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -44,7 +44,7 @@
     "android_ip_webcam" = ps: with ps; [  ];
     "apcupsd" = ps: with ps; [  ];
     "api" = ps: with ps; [ aiohttp-cors ];
-    "apple_tv" = ps: with ps; [  ];
+    "apple_tv" = ps: with ps; [ pyatv ];
     "aqualogic" = ps: with ps; [  ];
     "arduino" = ps: with ps; [  ];
     "arlo" = ps: with ps; [  ];
@@ -198,7 +198,7 @@
     "camera.logi_circle" = ps: with ps; [  ];
     "camera.mjpeg" = ps: with ps; [  ];
     "camera.mqtt" = ps: with ps; [ paho-mqtt ];
-    "camera.neato" = ps: with ps; [  ];
+    "camera.neato" = ps: with ps; [ pybotvac ];
     "camera.nest" = ps: with ps; [  ];
     "camera.netatmo" = ps: with ps; [  ];
     "camera.onvif" = ps: with ps; [ ha-ffmpeg ];
@@ -251,7 +251,7 @@
     "climate.radiotherm" = ps: with ps; [  ];
     "climate.sensibo" = ps: with ps; [  ];
     "climate.spider" = ps: with ps; [  ];
-    "climate.tado" = ps: with ps; [  ];
+    "climate.tado" = ps: with ps; [ pytado ];
     "climate.tesla" = ps: with ps; [  ];
     "climate.toon" = ps: with ps; [  ];
     "climate.touchline" = ps: with ps; [  ];
@@ -375,7 +375,7 @@
     "device_tracker.sky_hub" = ps: with ps; [  ];
     "device_tracker.snmp" = ps: with ps; [ pysnmp ];
     "device_tracker.swisscom" = ps: with ps; [  ];
-    "device_tracker.tado" = ps: with ps; [  ];
+    "device_tracker.tado" = ps: with ps; [ pytado ];
     "device_tracker.tesla" = ps: with ps; [  ];
     "device_tracker.thomson" = ps: with ps; [  ];
     "device_tracker.tile" = ps: with ps; [  ];
@@ -658,7 +658,7 @@
     "media_extractor" = ps: with ps; [ aiohttp-cors youtube-dl-light ];
     "media_player" = ps: with ps; [ aiohttp-cors ];
     "media_player.anthemav" = ps: with ps; [  ];
-    "media_player.apple_tv" = ps: with ps; [  ];
+    "media_player.apple_tv" = ps: with ps; [ pyatv ];
     "media_player.aquostv" = ps: with ps; [  ];
     "media_player.blackbird" = ps: with ps; [  ];
     "media_player.bluesound" = ps: with ps; [ xmltodict ];
@@ -743,7 +743,7 @@
     "mysensors.handler" = ps: with ps; [  ];
     "mysensors.helpers" = ps: with ps; [  ];
     "namecheapdns" = ps: with ps; [  ];
-    "neato" = ps: with ps; [  ];
+    "neato" = ps: with ps; [ pybotvac ];
     "nest" = ps: with ps; [  ];
     "nest.config_flow" = ps: with ps; [  ];
     "nest.const" = ps: with ps; [  ];
@@ -850,7 +850,7 @@
     "recorder.util" = ps: with ps; [  ];
     "remember_the_milk" = ps: with ps; [ httplib2 ];
     "remote" = ps: with ps; [  ];
-    "remote.apple_tv" = ps: with ps; [  ];
+    "remote.apple_tv" = ps: with ps; [ pyatv ];
     "remote.demo" = ps: with ps; [  ];
     "remote.harmony" = ps: with ps; [  ];
     "remote.itach" = ps: with ps; [  ];
@@ -1124,7 +1124,7 @@
     "sensor.synologydsm" = ps: with ps; [  ];
     "sensor.systemmonitor" = ps: with ps; [ psutil ];
     "sensor.sytadin" = ps: with ps; [ beautifulsoup4 ];
-    "sensor.tado" = ps: with ps; [  ];
+    "sensor.tado" = ps: with ps; [ pytado ];
     "sensor.tahoma" = ps: with ps; [  ];
     "sensor.tank_utility" = ps: with ps; [  ];
     "sensor.tautulli" = ps: with ps; [  ];
@@ -1265,7 +1265,7 @@
     "switch.mqtt" = ps: with ps; [ paho-mqtt ];
     "switch.mysensors" = ps: with ps; [  ];
     "switch.mystrom" = ps: with ps; [  ];
-    "switch.neato" = ps: with ps; [  ];
+    "switch.neato" = ps: with ps; [ pybotvac ];
     "switch.netio" = ps: with ps; [ aiohttp-cors ];
     "switch.orvibo" = ps: with ps; [  ];
     "switch.pilight" = ps: with ps; [  ];
@@ -1321,7 +1321,7 @@
     "switch.zoneminder" = ps: with ps; [  ];
     "switch.zwave" = ps: with ps; [  ];
     "system_log" = ps: with ps; [ aiohttp-cors ];
-    "tado" = ps: with ps; [  ];
+    "tado" = ps: with ps; [ pytado ];
     "tahoma" = ps: with ps; [  ];
     "telegram_bot" = ps: with ps; [ python-telegram-bot ];
     "telegram_bot.broadcast" = ps: with ps; [  ];
@@ -1369,7 +1369,7 @@
     "vacuum.dyson" = ps: with ps; [  ];
     "vacuum.ecovacs" = ps: with ps; [  ];
     "vacuum.mqtt" = ps: with ps; [ paho-mqtt ];
-    "vacuum.neato" = ps: with ps; [  ];
+    "vacuum.neato" = ps: with ps; [ pybotvac ];
     "vacuum.roomba" = ps: with ps; [  ];
     "vacuum.xiaomi_miio" = ps: with ps; [ construct ];
     "velbus" = ps: with ps; [  ];
diff --git a/pkgs/servers/sql/postgresql/default.nix b/pkgs/servers/sql/postgresql/default.nix
index 2b56c32d635..b8c06d5ec2f 100644
--- a/pkgs/servers/sql/postgresql/default.nix
+++ b/pkgs/servers/sql/postgresql/default.nix
@@ -113,12 +113,6 @@ let
 
 in {
 
-  postgresql_9_3 = common {
-    version = "9.3.25";
-    psqlSchema = "9.3";
-    sha256 = "1nxn0hjrg4y5v5n2jgzrbicgv4504r2yfjyk6g6rq0sx8603x5g4";
-  };
-
   postgresql_9_4 = common {
     version = "9.4.20";
     psqlSchema = "9.4";
diff --git a/pkgs/stdenv/linux/bootstrap-files/x86_64-musl.nix b/pkgs/stdenv/linux/bootstrap-files/x86_64-musl.nix
index 12093f34000..543c1c83849 100644
--- a/pkgs/stdenv/linux/bootstrap-files/x86_64-musl.nix
+++ b/pkgs/stdenv/linux/bootstrap-files/x86_64-musl.nix
@@ -1,11 +1,11 @@
 {
   busybox = import <nix/fetchurl.nix> {
-    url = https://wdtz.org/files/030q34q7fk6jdfxkgcqp5rzr4yhw3pgx-stdenv-bootstrap-tools-x86_64-unknown-linux-musl/on-server/busybox;
-    sha256 = "16lzrwwvdk6q3g08gs45pldz0rh6xpln2343xr444960h6wqxl5v";
+    url = https://wdtz.org/files/gywxhjgl70sxippa0pxs0vj5qcgz1wi8-stdenv-bootstrap-tools/on-server/busybox;
+    sha256 = "0779c2wn00467h76xpqil678gfi1y2p57c7zq2d917jsv2qj5009";
     executable = true;
   };
   bootstrapTools = import <nix/fetchurl.nix> {
-    url = https://wdtz.org/files/030q34q7fk6jdfxkgcqp5rzr4yhw3pgx-stdenv-bootstrap-tools-x86_64-unknown-linux-musl/on-server/bootstrap-tools.tar.xz;
-    sha256 = "0ly0wj8wzbikn2j8sn727vikk90bq36drh98qvfx1kkh5k5azm2j";
+    url = https://wdtz.org/files/gywxhjgl70sxippa0pxs0vj5qcgz1wi8-stdenv-bootstrap-tools/on-server/bootstrap-tools.tar.xz;
+    sha256 = "1dwiqw4xvnm0b5fdgl89lz2qq45f6s9icwxn6n6ams71xw0dbqyi";
   };
 }
diff --git a/pkgs/stdenv/native/default.nix b/pkgs/stdenv/native/default.nix
index 810cf16301f..ba53a6f1d14 100644
--- a/pkgs/stdenv/native/default.nix
+++ b/pkgs/stdenv/native/default.nix
@@ -1,5 +1,5 @@
 { lib
-, localSystem, crossSystem, config, overlays
+, localSystem, crossSystem, config, overlays, crossOverlays ? []
 }:
 
 assert crossSystem == localSystem;
diff --git a/pkgs/tools/graphics/qrencode/default.nix b/pkgs/tools/graphics/qrencode/default.nix
deleted file mode 100644
index 7c5aed9b4e2..00000000000
--- a/pkgs/tools/graphics/qrencode/default.nix
+++ /dev/null
@@ -1,21 +0,0 @@
-{ stdenv, fetchurl, libpng, pkgconfig }:
-
-stdenv.mkDerivation rec {
-  name = "qrencode-4.0.2";
-
-  src = fetchurl {
-    url = "${meta.homepage}/${name}.tar.bz2";
-    sha256 = "1d2q5d3v8g3hsi3h5jq4n177bjhf3kawms09immw7p187f6jgjy9";
-  };
-
-  buildInputs = [ libpng ];
-  nativeBuildInputs = [ pkgconfig ];
-
-  meta = with stdenv.lib; {
-    homepage = https://fukuchi.org/works/qrencode/;
-    description = "QR code encoder";
-    platforms = platforms.all;
-    license = licenses.lgpl21Plus;
-    maintainers = with maintainers; [ yegortimoshenko ];
-  };
-}
diff --git a/pkgs/tools/misc/sdate/default.nix b/pkgs/tools/misc/sdate/default.nix
new file mode 100644
index 00000000000..23dccc0273d
--- /dev/null
+++ b/pkgs/tools/misc/sdate/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchurl, autoreconfHook }:
+stdenv.mkDerivation rec {
+  name = "sdate-${version}";
+  version = "0.5";
+  src = fetchurl {
+    url = "https://github.com/ChristophBerg/sdate/archive/${version}.tar.gz";
+    sha256 = "0gbjl1jfxjwiiwf9rz38yp6rb1mgzhawcyg0g9byl6m4kgivf0cx";
+  };
+
+  buildInputs = [ autoreconfHook ];
+
+  meta = {
+    homepage = https://www.df7cb.de/projects/sdate;
+    description = "Eternal september version of the date program";
+    license = stdenv.lib.licenses.gpl2Plus;
+    maintainers = with stdenv.lib.maintainers; [ edef ];
+    platforms = stdenv.lib.platforms.all;
+  };
+}
diff --git a/pkgs/tools/misc/woeusb/default.nix b/pkgs/tools/misc/woeusb/default.nix
index f73aa454799..c5054382507 100644
--- a/pkgs/tools/misc/woeusb/default.nix
+++ b/pkgs/tools/misc/woeusb/default.nix
@@ -3,14 +3,14 @@
 , wxGTK30 }:
 
 stdenv.mkDerivation rec {
-  version = "3.2.10";
+  version = "3.2.12";
   name = "woeusb-${version}";
 
   src = fetchFromGitHub {
     owner = "slacka";
     repo = "WoeUSB";
     rev = "v${version}";
-    sha256 = "0jzgwh9xv92yns5yi5zpl49zbp3csh6m6iclgq070awpjpsqlqi0";
+    sha256 = "14arz0g95favbl5vsngxm3xznva223x67a9as5n2mpf5bbkd9zx5";
   };
 
   nativeBuildInputs = [ autoreconfHook makeWrapper ];
diff --git a/pkgs/tools/misc/xdaliclock/default.nix b/pkgs/tools/misc/xdaliclock/default.nix
index dd3cbb33c1b..b97b562b306 100644
--- a/pkgs/tools/misc/xdaliclock/default.nix
+++ b/pkgs/tools/misc/xdaliclock/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "xdaliclock-${version}";
-  version = "2.43";
+  version = "2.44";
 
   src = fetchurl {
     url="https://www.jwz.org/xdaliclock/${name}.tar.gz";
-    sha256 = "194zzp1a989k2v8qzfr81gdknr8xiz16d6fdl63jx9r3mj5klmvb";
+    sha256 = "1gsgnsm6ql0mcg9zpdkhws3g23r3a92bc3rpg4qbgbmd02nvj3c0";
   };
 
   # Note: don't change this to set sourceRoot, or updateAutotoolsGnuConfigScriptsHook
diff --git a/pkgs/tools/networking/spoofer/default.nix b/pkgs/tools/networking/spoofer/default.nix
index 1043007e1dd..8893c5e37fe 100644
--- a/pkgs/tools/networking/spoofer/default.nix
+++ b/pkgs/tools/networking/spoofer/default.nix
@@ -6,12 +6,12 @@ in
 
 stdenv.mkDerivation rec {
   pname = "spoofer";
-  version = "1.4.0";
+  version = "1.4.2";
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "https://www.caida.org/projects/spoofer/downloads/${name}.tar.gz";
-    sha256 = "0d745w7cy83hw7j950dah4h5qzclcibj16dik2gpsjnw1zq63cna";
+    sha256 = "041piwc2r4fig5b4apm2ibq1wyd11ic8p3xv3ss2hrbn5d8inza1";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/networking/tcpreplay/default.nix b/pkgs/tools/networking/tcpreplay/default.nix
index 23f06144502..a977a83e23f 100644
--- a/pkgs/tools/networking/tcpreplay/default.nix
+++ b/pkgs/tools/networking/tcpreplay/default.nix
@@ -2,11 +2,11 @@
 
 stdenv.mkDerivation rec {
   name = "tcpreplay-${version}";
-  version = "4.3.0";
+  version = "4.3.1";
 
   src = fetchurl {
     url = "https://github.com/appneta/tcpreplay/releases/download/v${version}/tcpreplay-${version}.tar.gz";
-    sha256 = "17y7ga2r9pc0xi2lwg82r4xlmhg5gdn5n1ddlpazzw59hda9yp4k";
+    sha256 = "0d2ywaxq0iaa1kfhgsfhsk1c4w4lakxafsw90dn4m6k82486dflm";
   };
 
   buildInputs = [ libpcap ];
diff --git a/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix b/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix
index e04b4155748..ca2ea67e788 100644
--- a/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix
+++ b/pkgs/tools/security/asc-key-to-qr-code-gif/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, imagemagick, libqrencode
+{ stdenv, fetchFromGitHub, imagemagick, qrencode
 , testQR ? false, zbar ? null
 }:
 
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
     sha256 = "0yrc302a2fhbzryb10718ky4fymfcps3lk67ivis1qab5kbp6z8r";
   };
 
-  buildInputs = [ imagemagick libqrencode ] ++ stdenv.lib.optional testQR zbar;
+  buildInputs = [ imagemagick qrencode ] ++ stdenv.lib.optional testQR zbar;
   dontBuild = true;
   dontStrip = true;
   dontPatchELF = true;
@@ -23,7 +23,7 @@ stdenv.mkDerivation rec {
   preInstall = ''
     substituteInPlace asc-to-gif.sh \
       --replace "convert" "${imagemagick}/bin/convert" \
-      --replace "qrencode" "${libqrencode}/bin/qrencode"
+      --replace "qrencode" "${qrencode.bin}/bin/qrencode"
   '';
 
   installPhase = ''
diff --git a/pkgs/tools/system/smartmontools/default.nix b/pkgs/tools/system/smartmontools/default.nix
index e8fbe90acde..6c26855b956 100644
--- a/pkgs/tools/system/smartmontools/default.nix
+++ b/pkgs/tools/system/smartmontools/default.nix
@@ -2,13 +2,13 @@
 , IOKit ? null , ApplicationServices ? null }:
 
 let
-  version = "6.6";
+  version = "7.0";
 
-  dbrev = "4852";
+  dbrev = "4883";
   drivedbBranch = "RELEASE_${builtins.replaceStrings ["."] ["_"] version}_DRIVEDB";
   driverdb = fetchurl {
     url    = "https://sourceforge.net/p/smartmontools/code/${dbrev}/tree/branches/${drivedbBranch}/smartmontools/drivedb.h?format=raw";
-    sha256 = "15gbwiw38yzl3cdvys6r7wknv5zdycm7zbswa2p9vzxlc8s63rlr";
+    sha256 = "07x3haz65jyhj579h4z17v6jkw6bbyid34442gl4qddmgv2qzvwx";
     name   = "smartmontools-drivedb.h";
   };
 
@@ -17,17 +17,10 @@ in stdenv.mkDerivation rec {
 
   src = fetchurl {
     url = "mirror://sourceforge/smartmontools/${name}.tar.gz";
-    sha256 = "0m1hllbb78rr6cxkbalmz1gqkl0psgq8rrmv4gwcmz34n07kvx2i";
+    sha256 = "077nx2rn9szrg6isdh0938zbp7vr3dsyxl4jdyyzv1xwhqksrqg5";
   };
 
-  patches = [ ./smartmontools.patch ]
-    # https://www.smartmontools.org/changeset/4603
-    ++ stdenv.lib.optional stdenv.hostPlatform.isMusl (fetchpatch {
-      name = "musl-canonicalize_file_name.patch";
-      url = "https://www.smartmontools.org/changeset/4603?format=diff&new=4603";
-      sha256 = "06s9pcd95snjkrbfrsjby2lln3lnwjd21bgabmvr4p7fx19b75zp";
-      stripLen = 2;
-    });
+  patches = [ ./smartmontools.patch ];
   postPatch = "cp -v ${driverdb} drivedb.h";
 
   nativeBuildInputs = [ autoreconfHook ];
diff --git a/pkgs/tools/virtualization/amazon-ecs-cli/default.nix b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
new file mode 100644
index 00000000000..33937c7c53b
--- /dev/null
+++ b/pkgs/tools/virtualization/amazon-ecs-cli/default.nix
@@ -0,0 +1,30 @@
+{ stdenv, fetchurl}:
+
+stdenv.mkDerivation rec {
+  name = "amazon-ecs-cli-${version}";
+  version = "1.12.1";
+
+  src = fetchurl {
+    url = "https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-linux-amd64-v${version}";
+    sha256 = "100iv4cchnxl1s02higga5v3hvawi4c7sqva97x34qigr4r7fxwm";
+  };
+
+  unpackPhase = ":";
+
+  installPhase =
+    ''
+      mkdir -p $out/bin
+      cp $src $out/bin/ecs-cli
+      chmod +x $out/bin/ecs-cli
+    '';  # */
+
+  meta = with stdenv.lib; {
+    homepage = https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ECS_CLI.html;
+    description = "The Amazon ECS command line interface";
+    longDescription = "The Amazon Elastic Container Service (Amazon ECS) command line interface (CLI) provides high-level commands to simplify creating, updating, and monitoring clusters and tasks from a local development environment.";
+    license = licenses.asl20;
+    maintainers = with maintainers; [ Scriptkiddi ];
+    platforms = [ "x86_64-linux" ];
+  };
+}
+
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index b56640049d8..90136f86aca 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -171,6 +171,7 @@ mapAliases ({
   libjson_rpc_cpp = libjson-rpc-cpp; # added 2017-02-28
   liblapackWithoutAtlas = liblapack; # added 2018-11-05
   libmysql = mysql.connector-c; # added # 2017-12-28, this was a misnomer refering to libmysqlclient
+  libqrencode = qrencode;  # added 2019-01-01
   librecad2 = librecad;  # backwards compatibility alias, added 2015-10
   libsysfs = sysfsutils; # added 2018-04-25
   libtidy = html-tidy;  # added 2014-12-21
@@ -234,7 +235,6 @@ mapAliases ({
   pltScheme = racket; # just to be sure
   pmtools = acpica-tools; # added 2018-11-01
   poppler_qt5 = libsForQt5.poppler;  # added 2015-12-19
-  postgresql93 = postgresql_9_3;
   postgresql94 = postgresql_9_4;
   postgresql95 = postgresql_9_5;
   postgresql96 = postgresql_9_6;
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8acc7774537..57bb5dc5903 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -526,6 +526,8 @@ in
     inherit (darwin.apple_sdk.frameworks) AppKit CoreFoundation CoreGraphics CoreServices CoreText Foundation OpenGL;
   };
 
+  amazon-ecs-cli = callPackage ../tools/virtualization/amazon-ecs-cli { };
+
   amazon-glacier-cmd-interface = callPackage ../tools/backup/amazon-glacier-cmd-interface { };
 
   ammonite = callPackage ../development/tools/ammonite {};
@@ -3981,8 +3983,6 @@ in
 
   libqmi = callPackage ../development/libraries/libqmi { };
 
-  libqrencode = callPackage ../development/libraries/libqrencode { };
-
   libmbim = callPackage ../development/libraries/libmbim { };
 
   libmongo-client = callPackage ../development/libraries/libmongo-client { };
@@ -5344,6 +5344,8 @@ in
 
   scrypt = callPackage ../tools/security/scrypt { };
 
+  sdate = callPackage ../tools/misc/sdate { };
+
   sdcv = callPackage ../applications/misc/sdcv { };
 
   sdl-jstest = callPackage ../tools/misc/sdl-jstest { };
@@ -5855,6 +5857,8 @@ in
 
   triggerhappy = callPackage ../tools/inputmethods/triggerhappy {};
 
+  trilium = callPackage ../applications/office/trilium { };
+
   trousers = callPackage ../tools/security/trousers { };
 
   tryton = callPackage ../applications/office/tryton { };
@@ -9622,8 +9626,6 @@ in
 
   epoxy = callPackage ../development/libraries/epoxy {};
 
-  esdl = callPackage ../development/libraries/esdl { };
-
   libesmtp = callPackage ../development/libraries/libesmtp { };
 
   exiv2 = callPackage ../development/libraries/exiv2 { };
@@ -13889,7 +13891,6 @@ in
 
   pgbouncer = callPackage ../servers/sql/pgbouncer { };
 
-  pgpool93 = pgpool.override { postgresql = postgresql_9_3; };
   pgpool94 = pgpool.override { postgresql = postgresql_9_4; };
 
   pgpool = callPackage ../servers/sql/pgpool {
@@ -13902,7 +13903,6 @@ in
   postgresql = postgresql_9_6;
 
   inherit (callPackages ../servers/sql/postgresql { })
-    postgresql_9_3
     postgresql_9_4
     postgresql_9_5
     postgresql_9_6
@@ -15462,6 +15462,8 @@ in
 
   conway_polynomials = callPackage ../data/misc/conway_polynomials { };
 
+  cooper-hewitt = callPackage ../data/fonts/cooper-hewitt { };
+
   dosis = callPackage ../data/fonts/dosis { };
 
   dosemu_fonts = callPackage ../data/fonts/dosemu-fonts { };
@@ -15510,8 +15512,6 @@ in
 
   freefont_ttf = callPackage ../data/fonts/freefont-ttf { };
 
-  font-droid = callPackage ../data/fonts/droid { };
-
   freepats = callPackage ../data/misc/freepats { };
 
   gentium = callPackage ../data/fonts/gentium {};
@@ -16981,6 +16981,8 @@ in
 
   fritzing = libsForQt5.callPackage ../applications/science/electronics/fritzing { };
 
+  fsv = callPackage ../applications/misc/fsv { };
+
   fvwm = callPackage ../applications/window-managers/fvwm { };
 
   ganttproject-bin = callPackage ../applications/misc/ganttproject-bin { };
@@ -17224,6 +17226,8 @@ in
 
   fomp = callPackage ../applications/audio/fomp { };
 
+  fractal = callPackage ../applications/networking/instant-messengers/fractal { };
+
   freecad = callPackage ../applications/graphics/freecad { mpi = openmpi; };
 
   freemind = callPackage ../applications/misc/freemind { };
@@ -17313,33 +17317,8 @@ in
     inherit (gnome3) dconf;
   };
 
-  gnucash24 = callPackage ../applications/office/gnucash/2.4.nix {
-    inherit (gnome2) libgnomeui libgtkhtml gtkhtml libbonoboui libgnomeprint libglade libart_lgpl;
-    gconf = gnome2.GConf;
-    guile = guile_1_8;
-    slibGuile = slibGuile.override { scheme = guile_1_8; };
-    goffice = goffice_0_8;
-  };
-
-  gnucash26 = lowPrio (callPackage ../applications/office/gnucash/2.6.nix {
-    inherit (gnome2) libgnomecanvas;
-    inherit (gnome3) dconf;
-    gconf = gnome2.GConf;
-    goffice = goffice_0_8;
-    webkit = webkitgtk24x-gtk2;
-    guile = guile_1_8;
-    slibGuile = slibGuile.override { scheme = guile_1_8; };
-    glib = glib;
-  });
-
   goffice = callPackage ../development/libraries/goffice { };
 
-  goffice_0_8 = callPackage ../development/libraries/goffice/0.8.nix {
-    inherit (pkgs.gnome2) libglade libgnomeui;
-    gconf = pkgs.gnome2.GConf;
-    libart = pkgs.gnome2.libart_lgpl;
-  };
-
   jetbrains = (recurseIntoAttrs (callPackages ../applications/editors/jetbrains {
     jdk = jetbrains.jdk;
   }) // {
@@ -17420,7 +17399,7 @@ in
     java = if stdenv.isLinux then jre else jdk;
   };
 
-  qrencode = callPackage ../tools/graphics/qrencode { };
+  qrencode = callPackage ../development/libraries/qrencode { };
 
   geeqie = callPackage ../applications/graphics/geeqie { };
 
@@ -19965,8 +19944,7 @@ in
   winswitch = callPackage ../tools/X11/winswitch { };
 
   wings = callPackage ../applications/graphics/wings {
-    esdl = esdl.override { erlang = erlangR18; };
-    erlang = erlangR18;
+    erlang = erlangR21;
   };
 
   write_stylus = libsForQt5.callPackage ../applications/graphics/write_stylus { };
@@ -20625,6 +20603,8 @@ in
 
   frotz = callPackage ../games/frotz { };
 
+  frogatto = callPackage ../games/frogatto { };
+
   fsg = callPackage ../games/fsg {
     wxGTK = wxGTK28.override { unicode = false; };
   };
diff --git a/pkgs/top-level/emacs-packages.nix b/pkgs/top-level/emacs-packages.nix
index a83c3baaa4a..9cd38e066d3 100644
--- a/pkgs/top-level/emacs-packages.nix
+++ b/pkgs/top-level/emacs-packages.nix
@@ -361,28 +361,6 @@ let
 
   tramp = callPackage ../applications/editors/emacs-modes/tramp { };
 
-  weechat = melpaBuild rec {
-    pname   = "weechat.el";
-    version = "0.2.2";
-    src = fetchFromGitHub {
-      owner  = "the-kenny";
-      repo   = pname;
-      rev    = version;
-      sha256 = "0f90m2s40jish4wjwfpmbgw024r7n2l5b9q9wr6rd3vdcwks3mcl";
-    };
-    postPatch = lib.optionalString (!stdenv.isLinux) ''
-      rm weechat-sauron.el weechat-secrets.el
-    '';
-    packageRequires = [ s ];
-    recipe = writeText "recipe" ''
-      (weechat :repo "the-kenny/weechat" :fetcher github)
-    '';
-    meta = {
-      description = "A weechat IRC client frontend for Emacs";
-      license = gpl3Plus;
-    };
-  };
-
   yaoddmuse = callPackage ../applications/editors/emacs-modes/yaoddmuse { };
 
   zeitgeist = callPackage ../applications/editors/emacs-modes/zeitgeist { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 3d167390979..c30cb0f752a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1129,6 +1129,8 @@ in {
 
   blockdiag = callPackage ../development/python-modules/blockdiag { };
 
+  blockdiagcontrib-cisco = callPackage ../development/python-modules/blockdiagcontrib-cisco { };
+
   bpython = callPackage ../development/python-modules/bpython {};
 
   bsddb3 = callPackage ../development/python-modules/bsddb3 { };
@@ -5139,6 +5141,16 @@ in {
 
   importlib-resources = callPackage ../development/python-modules/importlib-resources {};
 
+  srptools = callPackage ../development/python-modules/srptools { };
+
+  curve25519-donna = callPackage ../development/python-modules/curve25519-donna { };
+
+  pyatv = callPackage ../development/python-modules/pyatv { };
+
+  pybotvac = callPackage ../development/python-modules/pybotvac { };
+
+  pytado = callPackage ../development/python-modules/pytado { };
+
 });
 
 in fix' (extends overrides packages)
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index 9bdad5473d4..6c2159f9bef 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -51,6 +51,7 @@ let
               jobs.nix-info-tested.x86_64-darwin
               jobs.openssh.x86_64-darwin
               jobs.openssl.x86_64-darwin
+              jobs.pandoc.x86_64-darwin
               jobs.postgresql.x86_64-darwin
               jobs.python.x86_64-darwin
               jobs.python3.x86_64-darwin
@@ -64,7 +65,7 @@ let
               jobs.firefox-unwrapped.x86_64-darwin
               jobs.qt5.qtmultimedia.x86_64-darwin
               jobs.inkscape.x86_64-darwin
-              # jobs.gimp.x86_64-darwin
+              jobs.gimp.x86_64-darwin
               jobs.emacs.x86_64-darwin
               jobs.wireshark.x86_64-darwin
               jobs.transmission-gtk.x86_64-darwin
@@ -91,6 +92,7 @@ let
               jobs.lib-tests
               jobs.stdenv.x86_64-linux
               jobs.linux.x86_64-linux
+              jobs.pandoc.x86_64-linux
               jobs.python.x86_64-linux
               jobs.python3.x86_64-linux
               # Needed by travis-ci to test PRs
@@ -100,6 +102,7 @@ let
               jobs.nix-info-tested.x86_64-linux
               # Ensure that X11/GTK+ are in order.
               jobs.thunderbird.x86_64-linux
+              jobs.unar.x86_64-linux
 
               jobs.tests.cc-wrapper.x86_64-linux
               jobs.tests.cc-wrapper-gcc7.x86_64-linux