about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/android-studio/default.nix6
-rw-r--r--pkgs/applications/misc/guake/default.nix8
-rw-r--r--pkgs/applications/misc/pstree/default.nix38
-rw-r--r--pkgs/applications/misc/waybar/default.nix4
-rw-r--r--pkgs/applications/misc/xmind/default.nix69
-rw-r--r--pkgs/applications/misc/xmind/java-env-config-fixes.patch40
-rw-r--r--pkgs/applications/networking/Sylk/default.nix32
-rw-r--r--pkgs/applications/networking/instant-messengers/zoom-us/default.nix4
-rw-r--r--pkgs/applications/version-management/pijul/default.nix14
-rw-r--r--pkgs/applications/virtualization/cri-o/default.nix75
-rw-r--r--pkgs/data/fonts/redhat-official/default.nix22
-rw-r--r--pkgs/desktops/gnome-3/core/eog/default.nix4
-rw-r--r--pkgs/development/compilers/rust/rustc.nix4
-rw-r--r--pkgs/development/compilers/solc/default.nix50
-rw-r--r--pkgs/development/interpreters/acl2/default.nix6
-rw-r--r--pkgs/development/libraries/libfprint/default.nix29
-rw-r--r--pkgs/development/libraries/symengine/default.nix47
-rw-r--r--pkgs/development/python-modules/buildbot/default.nix19
-rw-r--r--pkgs/development/python-modules/buildbot/pkg.nix4
-rw-r--r--pkgs/development/python-modules/buildbot/plugins.nix10
-rw-r--r--pkgs/development/python-modules/buildbot/worker.nix4
-rw-r--r--pkgs/development/python-modules/cgen/default.nix34
-rw-r--r--pkgs/development/python-modules/fitbit/default.nix41
-rw-r--r--pkgs/development/python-modules/genpy/default.nix29
-rw-r--r--pkgs/development/python-modules/gphoto2/default.nix4
-rw-r--r--pkgs/development/python-modules/islpy/default.nix41
-rw-r--r--pkgs/development/python-modules/jupyterlab/default.nix4
-rw-r--r--pkgs/development/python-modules/loo-py/default.nix51
-rw-r--r--pkgs/development/python-modules/macropy/default.nix38
-rw-r--r--pkgs/development/python-modules/pyatmo/default.nix24
-rw-r--r--pkgs/development/python-modules/pymbolic/default.nix44
-rw-r--r--pkgs/development/python-modules/pysonos/default.nix38
-rw-r--r--pkgs/development/python-modules/pyxl3/default.nix35
-rw-r--r--pkgs/development/python-modules/stravalib/default.nix43
-rw-r--r--pkgs/development/python-modules/symengine/default.nix52
-rw-r--r--pkgs/development/python-modules/units/default.nix21
-rw-r--r--pkgs/development/python-modules/zxcvbn-python/default.nix24
-rw-r--r--pkgs/development/tools/analysis/hotspot/default.nix14
-rw-r--r--pkgs/development/tools/chit/default.nix4
-rw-r--r--pkgs/development/web/minify/default.nix24
-rw-r--r--pkgs/development/web/minify/deps.nix74
-rw-r--r--pkgs/games/flare/default.nix24
-rw-r--r--pkgs/games/flare/engine.nix24
-rw-r--r--pkgs/games/flare/game.nix23
-rw-r--r--pkgs/games/openra/common.nix7
-rw-r--r--pkgs/games/openra/engines.nix14
-rw-r--r--pkgs/games/openra/mod-launch-game.sh6
-rwxr-xr-xpkgs/games/openra/mod-update.sh27
-rw-r--r--pkgs/games/openra/mods.nix48
-rw-r--r--pkgs/games/steam/chrootenv.nix3
-rw-r--r--pkgs/os-specific/linux/kernel/linux-hardkernel-4.14.nix6
-rw-r--r--pkgs/os-specific/linux/kernel/linux-testing.nix8
-rw-r--r--pkgs/servers/home-assistant/component-packages.nix8
-rw-r--r--pkgs/shells/zsh/oh-my-zsh/default.nix6
-rw-r--r--pkgs/tools/X11/arandr/default.nix17
-rw-r--r--pkgs/tools/networking/ngrok-2/default.nix9
-rw-r--r--pkgs/tools/networking/ngrok-2/versions.json30
-rw-r--r--pkgs/tools/networking/openvpn/default.nix9
-rw-r--r--pkgs/tools/networking/ubridge/default.nix4
-rw-r--r--pkgs/tools/security/fprintd/default.nix12
-rw-r--r--pkgs/tools/security/monkeysphere/default.nix12
-rw-r--r--pkgs/tools/security/monkeysphere/monkeysphere.patch21
-rw-r--r--pkgs/top-level/aliases.nix1
-rw-r--r--pkgs/top-level/all-packages.nix20
-rw-r--r--pkgs/top-level/php-packages.nix4
-rw-r--r--pkgs/top-level/python-packages.nix28
66 files changed, 1178 insertions, 321 deletions
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index d53ccb1fdbd1..af5adca20ed8 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -14,9 +14,9 @@ let
   };
   betaVersion = latestVersion;
   latestVersion = { # canary & dev
-    version = "3.5.0.13"; # "Android Studio 3.5 Beta 1"
-    build = "191.5529924";
-    sha256Hash = "0i710n2wr0a8lvxf1mg6a5pmdh1l72wa0hwyricyixi0mylwwc6l";
+    version = "3.5.0.14"; # "Android Studio 3.5 Beta 2"
+    build = "191.5549111";
+    sha256Hash = "1zy2x0m1nsx3yy64cp1jvgb9aqkribwm64mv50g9355sdz7qjhcf";
   };
 in rec {
   # Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/misc/guake/default.nix b/pkgs/applications/misc/guake/default.nix
index 0d7f460fb062..37352915cb84 100644
--- a/pkgs/applications/misc/guake/default.nix
+++ b/pkgs/applications/misc/guake/default.nix
@@ -1,8 +1,8 @@
 { stdenv, fetchFromGitHub, python3, gettext, gobject-introspection, wrapGAppsHook, glibcLocales
-, gtk3, keybinder3, libnotify, libutempter, vte }:
+, gtk3, keybinder3, libnotify, libutempter, vte, libwnck3 }:
 
 let
-  version = "3.5.0";
+  version = "3.6.3";
 in python3.pkgs.buildPythonApplication rec {
   name = "guake-${version}";
   format = "other";
@@ -11,7 +11,7 @@ in python3.pkgs.buildPythonApplication rec {
     owner = "Guake";
     repo = "guake";
     rev = version;
-    sha256 = "0fz0gciw5fpxrp6yyji27l7q8c0r9ljsq6vw584mr70bcl1gzjqx";
+    sha256 = "13ipnmqcyixpa6qv83m0f91za4kar14s5jpib68b32z65x1h0j3b";
   };
 
   # Strict deps breaks guake
@@ -23,7 +23,7 @@ in python3.pkgs.buildPythonApplication rec {
 
   buildInputs = [ gtk3 keybinder3 libnotify python3 vte ];
 
-  propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 ];
+  propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 libwnck3 ];
 
   LC_ALL = "en_US.UTF-8"; # fixes weird encoding error, see https://github.com/NixOS/nixpkgs/pull/38642#issuecomment-379727699
 
diff --git a/pkgs/applications/misc/pstree/default.nix b/pkgs/applications/misc/pstree/default.nix
new file mode 100644
index 000000000000..7aaa8a8c38d2
--- /dev/null
+++ b/pkgs/applications/misc/pstree/default.nix
@@ -0,0 +1,38 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  pname = "pstree";
+  version = "2.39";
+
+  src = fetchurl {
+    urls = [
+      "https://distfiles.macports.org/${pname}/${pname}-${version}.tar.gz"
+      "https://fossies.org/linux/misc/${pname}-${version}.tar.gz"
+      "ftp://ftp.thp.uni-duisburg.de/pub/source/${pname}-${version}.tar.gz"
+    ];
+    sha256 = "17s7v15c4gryjpi11y1xq75022nkg4ggzvjlq2dkmyg67ssc76vw";
+  };
+
+  sourceRoot = ".";
+  buildPhase = ''
+    runHook preBuild
+    $CC $NIX_CFLAGS -o pstree pstree.c
+    runHook postBuild
+  '';
+
+  installPhase = ''
+    runHook preInstall
+    install -Dm0555 ${pname} -t $out/bin
+    install -Dm0444 ${pname}.1 -t $out/share/man/man1
+    runHook postInstall
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Show the set of running processes as a tree";
+    homepage = "http://www.thp.uni-duisburg.de/pstree/";
+    license = licenses.gpl2;
+    maintainers = [ maintainers.c0bw3b ];
+    platforms = platforms.unix;
+    priority = 5; # Lower than psmisc also providing pstree on Linux platforms
+  };
+}
diff --git a/pkgs/applications/misc/waybar/default.nix b/pkgs/applications/misc/waybar/default.nix
index 776ba8f081e3..cdd78866cdcb 100644
--- a/pkgs/applications/misc/waybar/default.nix
+++ b/pkgs/applications/misc/waybar/default.nix
@@ -9,13 +9,13 @@
 }:
   stdenv.mkDerivation rec {
     name = "waybar-${version}";
-    version = "0.6.1";
+    version = "0.6.5";
 
     src = fetchFromGitHub {
       owner = "Alexays";
       repo = "Waybar";
       rev = version;
-      sha256 = "1hzwqg22sjiirx6743512271p3jlakrw0155av1phrv5b7p3ws8a";
+      sha256 = "1k3ynx5ssq7ji0nlx0n7zrgrshxv5abj8fa8c5lcyxr2wxffna9z";
     };
 
     nativeBuildInputs = [
diff --git a/pkgs/applications/misc/xmind/default.nix b/pkgs/applications/misc/xmind/default.nix
index a12f3dc304ba..fc5abf109894 100644
--- a/pkgs/applications/misc/xmind/default.nix
+++ b/pkgs/applications/misc/xmind/default.nix
@@ -1,20 +1,23 @@
-{ stdenv, lib, dpkg, fetchurl, gtk2, jre, libXtst, makeWrapper }:
+{ stdenv, lib, fetchzip, fetchurl, gtk2, jre, libXtst, makeWrapper, makeDesktopItem, runtimeShell }:
 
 stdenv.mkDerivation rec {
   name = "xmind-${version}";
-  version = "7.5-update1";
+  version = "8-update8";
 
-  src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl {
-    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_i386.deb";
-    sha256 = "04kr6pw0kwy715bp9wcnqnw1k5wl65xa87lhljrskm291p402jy1";
-  } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl {
-    url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_amd64.deb";
-    sha256 = "1j2ynhk7p3m3vd6c4mjwpnlzqgfj5c4q3zydab3nfwncwx6gaqj9";
-  } else throw "platform ${stdenv.hostPlatform.system} not supported!";
+  src = fetchzip {
+    url = "https://xmind.net/xmind/downloads/${name}-linux.zip";
+    stripRoot = false;
+    sha256 = "1p68z0b4brgiyybz190alqv716ncql49vsksm41y90mcjd8s4jhn";
+  };
+
+  srcIcon = fetchurl {
+    url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind";
+    sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f";
+  };
 
-  nativeBuildInputs = [ dpkg makeWrapper ];
+  patches = [ ./java-env-config-fixes.patch ];
 
-  unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root";
+  nativeBuildInputs = [ makeWrapper ];
 
   dontBuild = true;
   dontPatchELF = true;
@@ -22,12 +25,27 @@ stdenv.mkDerivation rec {
 
   libPath = lib.makeLibraryPath [ gtk2 libXtst ];
 
-  installPhase = ''
-    mkdir -p $out
-    cp -r usr/lib/xmind $out/libexec
-    cp -r usr/bin usr/share $out
-    rm $out/libexec/XMind.ini
-    mv etc/XMind.ini $out/libexec
+  desktopItem = makeDesktopItem {
+    name = "XMind";
+    exec = "XMind";
+    icon = "xmind";
+    desktopName = "XMind";
+    comment = meta.description;
+    categories = "Office;";
+    mimeType = "application/xmind;xscheme-handler/xmind";
+  };
+
+  installPhase = let
+    targetDir = if stdenv.hostPlatform.system == "i686-linux"
+      then "XMind_i386"
+      else "XMind_amd64";
+  in ''
+    mkdir -p $out/{bin,libexec/configuration/,share/{applications/,fonts/,icons/hicolor/scalable/apps/}}
+    cp -r ${targetDir}/{configuration,p2,XMind{,.ini}} $out/libexec
+    cp -r {plugins,features} $out/libexec/
+    cp -r fonts $out/share/fonts/
+    cp "${desktopItem}/share/applications/XMind.desktop" $out/share/applications/XMind.desktop
+    cp ${srcIcon} $out/share/icons/hicolor/scalable/apps/xmind.png
 
     patchelf --set-interpreter $(cat ${stdenv.cc}/nix-support/dynamic-linker) \
       $out/libexec/XMind
@@ -35,8 +53,17 @@ stdenv.mkDerivation rec {
     wrapProgram $out/libexec/XMind \
       --prefix LD_LIBRARY_PATH : "${libPath}"
 
-    substituteInPlace "$out/bin/XMind" \
-       --replace '/usr/lib/xmind' "$out/libexec"
+    # Inspired by https://aur.archlinux.org/cgit/aur.git/tree/?h=xmind
+    cat >$out/bin/XMind <<EOF
+      #! ${runtimeShell}
+      if [ ! -d "\$HOME/.xmind" ]; then
+        mkdir -p "\$HOME/.xmind/configuration-cathy/"
+        cp -r $out/libexec/configuration/ \$HOME/.xmind/configuration-cathy/
+      fi
+
+      exec "$out/libexec/XMind" "$@"
+    EOF
+    chmod +x $out/bin/XMind
 
     ln -s ${jre} $out/libexec/jre
   '';
@@ -55,9 +82,9 @@ stdenv.mkDerivation rec {
       GTD. Meanwhile, XMind can read FreeMind and MindManager files,
       and save to Evernote.
     '';
-    homepage = http://www.xmind.net/;
+    homepage = https://www.xmind.net/;
     license = licenses.unfree;
     platforms = platforms.linux;
-    maintainers = with maintainers; [ michalrus ];
+    maintainers = with maintainers; [ michalrus ma27 ];
   };
 }
diff --git a/pkgs/applications/misc/xmind/java-env-config-fixes.patch b/pkgs/applications/misc/xmind/java-env-config-fixes.patch
new file mode 100644
index 000000000000..f359a9c2ba46
--- /dev/null
+++ b/pkgs/applications/misc/xmind/java-env-config-fixes.patch
@@ -0,0 +1,40 @@
+diff --git a/XMind_amd64/XMind.ini b/XMind_amd64/XMind.ini
+index bdd8a37..5f35daf 100644
+--- a/XMind_amd64/XMind.ini
++++ b/XMind_amd64/XMind.ini
+@@ -1,11 +1,11 @@
+ -configuration
+-./configuration
++@user.home/.xmind/configuration-cathy_linux_64
+ -data
+-../workspace
++@user.home/.xmind/workspace-cathy
+ -startup
+-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
+ --launcher.library
+-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444
+ --launcher.defaultAction
+ openFile
+ --launcher.GTK_version
+diff --git a/XMind_i386/XMind.ini b/XMind_i386/XMind.ini
+index 4ed3225..1d74258 100644
+--- a/XMind_i386/XMind.ini
++++ b/XMind_i386/XMind.ini
+@@ -1,11 +1,11 @@
+ -configuration
+-./configuration
++@user.home/.xmind/configuration-cathy_linux_64
+ -data
+-../workspace
++@user.home/.xmind/workspace-cathy
+ -startup
+-../plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
++plugins/org.eclipse.equinox.launcher_1.3.200.v20160318-1642.jar
+ --launcher.library
+-../plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444
++plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.1.400.v20160518-1444
+ --launcher.defaultAction
+ openFile
+ --launcher.GTK_version
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
new file mode 100644
index 000000000000..36f6279c2092
--- /dev/null
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -0,0 +1,32 @@
+{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }:
+
+let
+  pname = "Sylk";
+  version = "2.1.0";
+in
+
+appimageTools.wrapType2 rec {
+  name = "${pname}-${version}";
+
+  src = fetchurl {
+    url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
+    sha256 = "1ifi8qr6f84dcssxhv5ar1s48nsqxiv2j1blc82248hmq5is24mf";
+  };
+
+  profile = ''
+    export LC_ALL=C.UTF-8
+    export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS
+  '';
+
+  multiPkgs = null; # no 32bit needed
+  extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs;
+  extraInstallCommands = "mv $out/bin/{${name},${pname}}";
+
+  meta = with lib; {
+    description = "Sylk WebRTC client";
+    homepage = "http://sylkserver.com/";
+    license = licenses.agpl3Plus;
+    maintainers = with maintainers; [ zimbatm ];
+    platforms = [ "i386-linux" "x86_64-linux" ];
+  };
+}
diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
index 45d0dadbe902..b477a194faf1 100644
--- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
+++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix
@@ -13,11 +13,11 @@ assert pulseaudioSupport -> libpulseaudio != null;
 let
   inherit (stdenv.lib) concatStringsSep makeBinPath optional;
 
-  version = "2.8.183302.0415";
+  version = "2.8.222599.0519";
   srcs = {
     x86_64-linux = fetchurl {
       url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz";
-      sha256 = "07afq614fy09mjymmv3cf8vwa8ps78s2s4909g1a2rwvgkj8bw2x";
+      sha256 = "0bmrqxz41pxcz41dcdbwd2b0hjv8fvix09jwxrnca4d50jq9fx7j";
     };
   };
 
diff --git a/pkgs/applications/version-management/pijul/default.nix b/pkgs/applications/version-management/pijul/default.nix
index b97123926eb5..4f716251153c 100644
--- a/pkgs/applications/version-management/pijul/default.nix
+++ b/pkgs/applications/version-management/pijul/default.nix
@@ -1,17 +1,17 @@
-{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, pkgconfig }:
+{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, nettle, clang, libclang, pkgconfig }:
 
 with rustPlatform;
 
 buildRustPackage rec {
   name = "pijul-${version}";
-  version = "0.11.0";
+  version = "0.12.0";
 
   src = fetchurl {
     url = "https://pijul.org/releases/${name}.tar.gz";
-    sha256 = "e60793ab124e9054c1d5509698acbae507ebb2fab5364d964067bc9ae8b6b5e5";
+    sha256 = "1rm787kkh3ya8ix0rjvj7sbrg9armm0rnpkga6gjmsbg5bx20y4q";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig clang ];
 
   postInstall = ''
     mkdir -p $out/share/{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d}
@@ -20,12 +20,14 @@ buildRustPackage rec {
     $out/bin/pijul generate-completions --fish > $out/share/fish/vendor_completions.d/pijul.fish
   '';
 
-  buildInputs = [ openssl libsodium ] ++ stdenv.lib.optionals stdenv.isDarwin
+  LIBCLANG_PATH = libclang + "/lib";
+
+  buildInputs = [ openssl libsodium nettle libclang ] ++ stdenv.lib.optionals stdenv.isDarwin
     (with darwin.apple_sdk.frameworks; [ Security ]);
 
   doCheck = false;
 
-  cargoSha256 = "1r76azmka1d76ff0ddfhzr24b0ry496qrp13945i3vs0fgzk2sdz";
+  cargoSha256 = "1w77s5q18yr1gqqif15wmrfdvv2chq8rq3w4dnmxg2gn0r7bmz2k";
 
   meta = with stdenv.lib; {
     description = "A distributed version control system";
diff --git a/pkgs/applications/virtualization/cri-o/default.nix b/pkgs/applications/virtualization/cri-o/default.nix
new file mode 100644
index 000000000000..6e2790ef8590
--- /dev/null
+++ b/pkgs/applications/virtualization/cri-o/default.nix
@@ -0,0 +1,75 @@
+{ flavor ? ""
+, ldflags ? ""
+, stdenv
+, btrfs-progs
+, buildGoPackage
+, fetchFromGitHub
+, glibc
+, gpgme
+, libapparmor
+, libassuan
+, libgpgerror
+, libseccomp
+, libselinux
+, lvm2
+, pkgconfig
+}:
+
+buildGoPackage rec {
+  project = "cri-o";
+  version = "1.14.1";
+  name = "${project}-${version}${flavor}";
+
+  goPackagePath = "github.com/${project}/${project}";
+
+  src = fetchFromGitHub {
+    owner = "cri-o";
+    repo = "cri-o";
+    rev = "v${version}";
+    sha256 = "1cclxarwabk5zlqysm2dzgsm6qkxyzbnlylr0gs57ppn4ibky3nk";
+  };
+
+  outputs = [ "bin" "out" ];
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ btrfs-progs gpgme libapparmor libassuan libgpgerror
+                 libseccomp libselinux lvm2 ]
+                ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ];
+
+  makeFlags = ''BUILDTAGS="apparmor seccomp selinux
+    containers_image_ostree_stub"'';
+
+  buildPhase = ''
+    pushd go/src/${goPackagePath}
+
+    # Build conmon and pause
+    go build -tags ${makeFlags} -o bin/crio-config -buildmode=pie \
+      -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio-config
+
+    pushd conmon
+    ../bin/crio-config
+    popd
+
+    make -C conmon
+    make -C pause
+
+    # Build the crio binary
+    go build -tags ${makeFlags} -o bin/crio -buildmode=pie \
+      -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio
+  '';
+  installPhase = ''
+    install -Dm755 bin/crio $bin/bin/crio${flavor}
+
+    mkdir -p $bin/libexec/crio
+    install -Dm755 bin/conmon $bin/libexec/crio/conmon${flavor}
+    install -Dm755 bin/pause $bin/libexec/crio/pause${flavor}
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = https://cri-o.io;
+    description = ''Open Container Initiative-based implementation of the
+                    Kubernetes Container Runtime Interface'';
+    license = licenses.asl20;
+    maintainers = with maintainers; [ saschagrunert ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/data/fonts/redhat-official/default.nix b/pkgs/data/fonts/redhat-official/default.nix
new file mode 100644
index 000000000000..c05b9c69aef5
--- /dev/null
+++ b/pkgs/data/fonts/redhat-official/default.nix
@@ -0,0 +1,22 @@
+{ lib, fetchzip }:
+
+let version = "2.2.0"; in
+fetchzip rec {
+  name = "redhat-official-${version}";
+  url = "https://github.com/RedHatOfficial/RedHatFont/archive/${version}.zip";
+
+  postFetch = ''
+    mkdir -p $out/share/fonts/opentype
+    unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+  '';
+
+  sha256 = "0yb6shgq6jrv3kq9faky66qpdbv4g580c3jl942844grwyngymyj";
+
+  meta = with lib; {
+    homepage = https://github.com/RedHatOfficial/RedHatFont;
+    description = "Red Hat's Open Source Fonts - Red Hat Display and Red Hat Text";
+    license = licenses.ofl;
+    platforms = platforms.all;
+    maintainers = with maintainers; [ dtzWill ];
+  };
+}
diff --git a/pkgs/desktops/gnome-3/core/eog/default.nix b/pkgs/desktops/gnome-3/core/eog/default.nix
index 7fd092c1efa4..5c896ec01fc0 100644
--- a/pkgs/desktops/gnome-3/core/eog/default.nix
+++ b/pkgs/desktops/gnome-3/core/eog/default.nix
@@ -4,13 +4,13 @@
 
 let
   pname = "eog";
-  version = "3.32.1";
+  version = "3.32.2";
 in stdenv.mkDerivation rec {
   name = "${pname}-${version}";
 
   src = fetchurl {
     url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
-    sha256 = "165axw63c2l5qk5k2xs7g9d97xnxf5a4br0hdb8s3bpv7lf5nw8q";
+    sha256 = "1bcxpqgzlk2cy4wfb3b5h66mhpj2fhrk1rrb5qqcv5xrr62ik5xy";
   };
 
   nativeBuildInputs = [ meson ninja pkgconfig gettext itstool wrapGAppsHook libxml2 gobject-introspection python3 ];
diff --git a/pkgs/development/compilers/rust/rustc.nix b/pkgs/development/compilers/rust/rustc.nix
index 9b9800431005..59264ca6efad 100644
--- a/pkgs/development/compilers/rust/rustc.nix
+++ b/pkgs/development/compilers/rust/rustc.nix
@@ -17,11 +17,11 @@ let
   llvmShared = llvm_7.override { enableSharedLibraries = true; };
 in stdenv.mkDerivation rec {
   pname = "rustc";
-  version = "1.34.0";
+  version = "1.34.2";
 
   src = fetchurl {
     url = "https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz";
-    sha256 = "0n8z1wngkxab1rvixqg6w8b727hzpnm9wp9h8iy3mpbrzp7mmj3s";
+    sha256 = "0mig0prkmlnpbba1cmi17vlsl88ikv5pi26zjy2kcr64l62lm6n6";
   };
 
   __darwinAllowLocalNetworking = true;
diff --git a/pkgs/development/compilers/solc/default.nix b/pkgs/development/compilers/solc/default.nix
index 8f005d475dc7..a4fb9b6c6d81 100644
--- a/pkgs/development/compilers/solc/default.nix
+++ b/pkgs/development/compilers/solc/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchzip, fetchFromGitHub, boost, cmake
+{ stdenv, fetchzip, fetchFromGitHub, boost, cmake, ncurses, python2
 , z3Support ? true, z3 ? null
 }:
 
@@ -6,14 +6,15 @@ assert z3Support -> z3 != null;
 assert z3Support -> stdenv.lib.versionAtLeast z3.version "4.6.0";
 
 let
-  version = "0.5.7";
-  rev = "6da8b019e4a155d1f70abe7a3acc0f9765480a9e";
-  sha256 = "0ii868r0ra6brjnn453kxqvw76p4bwjbvdyqfcn6v1bl2h4s60ir";
+  version = "0.5.8";
+  rev = "23d335f28e4055e67c3b22466ac7c4e41dc48344";
+  sha256 = "10fa4qwfr3gfvxkzzjfs0w2fyij67cczklpj2x5hghcg08amkq37";
   jsoncppURL = https://github.com/open-source-parsers/jsoncpp/archive/1.8.4.tar.gz;
   jsoncpp = fetchzip {
     url = jsoncppURL;
     sha256 = "1z0gj7a6jypkijmpknis04qybs1hkd04d1arr3gy89lnxmp6qzlm";
   };
+  buildSharedLibs = stdenv.hostPlatform.isLinux;
 in
 stdenv.mkDerivation {
   name = "solc-${version}";
@@ -24,9 +25,7 @@ stdenv.mkDerivation {
     inherit rev sha256;
   };
 
-  patches = [
-    ./patches/shared-libs-install.patch
-  ];
+  patches = stdenv.lib.optionals buildSharedLibs [ ./patches/shared-libs-install.patch ];
 
   postPatch = ''
     touch prerelease.txt
@@ -37,18 +36,41 @@ stdenv.mkDerivation {
 
   cmakeFlags = [
     "-DBoost_USE_STATIC_LIBS=OFF"
+  ] ++ stdenv.lib.optionals buildSharedLibs [
     "-DBUILD_SHARED_LIBS=ON"
   ] ++ stdenv.lib.optionals (!z3Support) [
     "-DUSE_Z3=OFF"
   ];
 
-  doCheck = stdenv.hostPlatform.isLinux && stdenv.hostPlatform == stdenv.buildPlatform;
-  checkPhase = "LD_LIBRARY_PATH=./libsolc:./libsolidity:./libevmasm:./libdevcore:./libyul:./liblangutil:./test/tools/yulInterpreter:$LD_LIBRARY_PATH " +
-               "./test/soltest -p true -- --no-ipc --no-smt --testpath ../test";
-
   nativeBuildInputs = [ cmake ];
-  buildInputs = [ boost ]
-    ++ stdenv.lib.optionals z3Support [ z3 ];
+  buildInputs = [ boost ] ++ stdenv.lib.optionals z3Support [ z3 ];
+  checkInputs = [ ncurses python2 ];
+
+  # Test fails on darwin for unclear reason
+  doCheck = stdenv.hostPlatform.isLinux;
+
+  checkPhase = ''
+    while IFS= read -r -d ''' dir
+    do
+      LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$(pwd)/$dir
+      export LD_LIBRARY_PATH
+    done <   <(find . -type d -print0)
+
+    pushd ..
+    # IPC tests need aleth avaliable, so we disable it
+    sed -i "s/IPC_ENABLED=true/IPC_ENABLED=false\nIPC_FLAGS=\"--no-ipc\"/" ./scripts/tests.sh
+    for i in ./scripts/*.sh; do
+      patchShebangs "$i"
+    done
+    for i in ./scripts/*.py; do
+      patchShebangs "$i"
+    done
+    for i in ./test/*.sh; do
+      patchShebangs "$i"
+    done
+    TERM=xterm ./scripts/tests.sh
+    popd
+  '';
 
   outputs = [ "out" "dev" ];
 
@@ -57,7 +79,7 @@ stdenv.mkDerivation {
     homepage = https://github.com/ethereum/solidity;
     license = licenses.gpl3;
     platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ dbrock akru lionello ];
+    maintainers = with maintainers; [ dbrock akru lionello sifmelcara ];
     inherit version;
   };
 }
diff --git a/pkgs/development/interpreters/acl2/default.nix b/pkgs/development/interpreters/acl2/default.nix
index cc88b32119e7..a88d07d1655f 100644
--- a/pkgs/development/interpreters/acl2/default.nix
+++ b/pkgs/development/interpreters/acl2/default.nix
@@ -4,15 +4,15 @@
 
 let hashes = {
   "8.0" = "1x1giy2c1y6krg3kf8pf9wrmvk981shv0pxcwi483yjqm90xng4r";
-  "8.1" = "0isi75j94q79x4341rhd94c60228iwvccy71ssnyvh1025m93xcd";
+  "8.2" = "1x33kv6w9cbqzvyrihn61pzmqlvnk3drm8ksd5v0arg38i95awi3";
 };
 revs = {
   "8.0" = "8.0";
-  "8.1" = "8.1";
+  "8.2" = "8.2";
 };
 in stdenv.mkDerivation rec {
   name = "acl2-${version}";
-  version = "8.1";
+  version = "8.2";
 
   src = fetchFromGitHub {
     owner = "acl2-devel";
diff --git a/pkgs/development/libraries/libfprint/default.nix b/pkgs/development/libraries/libfprint/default.nix
index 3f3062e3c081..410496a7bb77 100644
--- a/pkgs/development/libraries/libfprint/default.nix
+++ b/pkgs/development/libraries/libfprint/default.nix
@@ -1,16 +1,29 @@
-{ stdenv, fetchurl, pkgconfig, meson, ninja, libusb, pixman, glib, nss, gtk3
-, coreutils, gtk-doc, docbook_xsl, docbook_xml_dtd_43 }:
+{ thinkpad ? false, stdenv, fetchFromGitHub, fetchurl, pkgconfig, meson, ninja, libusb, pixman, glib, nss, gtk3
+, coreutils, gtk-doc, docbook_xsl, docbook_xml_dtd_43, openssl ? null }:
+
+assert thinkpad -> openssl != null;
 
 stdenv.mkDerivation rec {
-  name = "libfprint-${version}";
+  pname = "libfprint" + stdenv.lib.optionalString thinkpad "-thinkpad";
   version = "0.99.0";
 
-  src = fetchurl {
-    url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/82ba3cef5bdf72997df711eacdb13c0f/libfprint-${version}.tar.xz";
-    sha256 = "16r4nl40y0jri57jiqmdz4s87byblx22lbhyvqpljd6mqm5rg187";
-  };
+  src = {
+    libfprint-thinkpad =
+      fetchFromGitHub {
+        owner = "3v1n0";
+        repo = "libfprint";
+        rev = "2e2e3821717e9042e93a995bdbd3d00f2df0be9c";
+        sha256 = "1vps1wrp7hskf13f7jrv0dwry2fcid76x2w463wplngp63cj7b3b";
+      };
+    libfprint = fetchurl {
+      url = "https://gitlab.freedesktop.org/libfprint/libfprint/uploads/82ba3cef5bdf72997df711eacdb13c0f/libfprint-${version}.tar.xz";
+      sha256 = "16r4nl40y0jri57jiqmdz4s87byblx22lbhyvqpljd6mqm5rg187";
+    };
+  }.${pname};
+
+  buildInputs = [ libusb pixman glib nss gtk3 ]
+    ++ stdenv.lib.optional thinkpad openssl;
 
-  buildInputs = [ libusb pixman glib nss gtk3 ];
   nativeBuildInputs = [ pkgconfig meson ninja gtk-doc docbook_xsl docbook_xml_dtd_43 ];
 
   mesonFlags = [ "-Dudev_rules_dir=lib/udev/rules.d" "-Dx11-examples=false" ];
diff --git a/pkgs/development/libraries/symengine/default.nix b/pkgs/development/libraries/symengine/default.nix
new file mode 100644
index 000000000000..40e1a280aa24
--- /dev/null
+++ b/pkgs/development/libraries/symengine/default.nix
@@ -0,0 +1,47 @@
+{ stdenv
+, fetchFromGitHub
+, cmake
+, gmp
+, flint
+, mpfr
+, libmpc
+}:
+
+stdenv.mkDerivation rec {
+  name = "symengine-${version}";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "symengine";
+    repo = "symengine";
+    rev = "v${version}";
+    sha256 = "1kz893p3pmsw3gfwickk2nliw8p63yp89xriad7kpw4kmhvgr8gb";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  buildInputs = [ gmp flint mpfr libmpc ];
+
+  cmakeFlags = [
+    "-DWITH_FLINT=ON"
+    "-DINTEGER_CLASS=flint"
+    "-DWITH_SYMENGINE_THREAD_SAFE=yes"
+    "-DWITH_MPC=yes"
+    "-DBUILD_FOR_DISTRIBUTION=yes"
+  ];
+
+  doCheck = true;
+
+  checkPhase = ''
+    ctest
+  '';
+
+  meta = with stdenv.lib; {
+    description = "SymEngine is a fast symbolic manipulation library";
+    homepage = https://github.com/symengine/symengine;
+    platforms = platforms.unix ++ platforms.windows;
+    license = licenses.bsd3;
+    maintainers = [ maintainers.costrouc ];
+  };
+
+}
diff --git a/pkgs/development/python-modules/buildbot/default.nix b/pkgs/development/python-modules/buildbot/default.nix
index 268c08ced848..066d7058fed5 100644
--- a/pkgs/development/python-modules/buildbot/default.nix
+++ b/pkgs/development/python-modules/buildbot/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, buildPythonPackage, /*fetchPypi,*/ fetchFromGitHub, makeWrapper, isPy3k,
+{ stdenv, lib, buildPythonPackage, fetchPypi, makeWrapper, isPy3k,
   python, twisted, jinja2, zope_interface, future, sqlalchemy,
   sqlalchemy_migrate, dateutil, txaio, autobahn, pyjwt, pyyaml, treq,
   txrequests, txgithub, pyjade, boto3, moto, mock, python-lz4, setuptoolsTrial,
@@ -25,21 +25,12 @@ let
 
   package = buildPythonPackage rec {
     pname = "buildbot";
-    version = "2.1.0";
+    version = "2.3.0";
 
-    /*src = fetchPypi {
+    src = fetchPypi {
       inherit pname version;
-      sha256 = "1745hj9s0c0fcdjv6w05bma76xqg1fv42v0dslmi4d8yz9phf37w";
-    };*/
-    # Temporarily use GitHub source because PyPi archive is missing some files
-    # needed for the tests to pass. This has been fixed upstream.
-    # See: https://github.com/buildbot/buildbot/commit/30f5927cf9a80f98ed909241a149469dec3ce68d
-    src = fetchFromGitHub {
-      owner = "buildbot";
-      repo = "buildbot";
-      rev = "v${version}";
-      sha256 = "022ybhdvp0hp2z0cwgx7n41jyh56bpxj3fwm4z7ppzj1qhm7lb65";
-    } + "/master";
+      sha256 = "1fdahbpihs93pj640y2079yilca6w7vlwirfcz221885ih148257";
+    };
 
     propagatedBuildInputs = [
       # core
diff --git a/pkgs/development/python-modules/buildbot/pkg.nix b/pkgs/development/python-modules/buildbot/pkg.nix
index 35524040da99..f95d71dc2903 100644
--- a/pkgs/development/python-modules/buildbot/pkg.nix
+++ b/pkgs/development/python-modules/buildbot/pkg.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage rec {
   pname = "buildbot-pkg";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "03lv97q4pp2izjfbwfv4zmf2fyiz7jyp537bi3gc6rhfbrfgib1i";
+    sha256 = "1ajgvnhwvryi10q9bklpfazi7vxw2my9jlqgwnjccycbr6yznzsw";
   };
 
   postPatch = ''
diff --git a/pkgs/development/python-modules/buildbot/plugins.nix b/pkgs/development/python-modules/buildbot/plugins.nix
index 2f73fbc81a4f..d15b33912aed 100644
--- a/pkgs/development/python-modules/buildbot/plugins.nix
+++ b/pkgs/development/python-modules/buildbot/plugins.nix
@@ -11,7 +11,7 @@
     src = fetchPypi {
       inherit pname version format;
       python = "py3";
-      sha256 = "011sagw8zp1z12vzkxi44w3w2lbxncz5yahkrbxj8hp6iwfzfm5v";
+      sha256 = "134b8y498bq5fp4863hj9058wr7mcw0xgl74br0f1dy9n7jdcl39";
     };
 
     meta = with lib; {
@@ -28,7 +28,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "11gz4ry1law3l64ii383cj5fnbw9409czp2ybzkqafr4xi1qbk9h";
+      sha256 = "1yh8xij3wizz0f88chjpdijm7i35ql87g84ph3f76sqyr6aj6ckw";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -48,7 +48,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0w4iwpj1rg20fbli0ppqz70l1mc9ilg0crq8g3xrf29f9z8d1w27";
+      sha256 = "04iihy1s9r4n5jlk57pdjy3yvp6zym2iv2bgqjhw6fy0hff5j8ys";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -68,7 +68,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "0xyvxamw45qhnfml3x5hfg9nai1jhdwbmq4pm8csf3ad0cw6vqya";
+      sha256 = "0bcilhcz9xnr8799d5j4sm6qz8pdjlckdck7a282nfs64liajsrh";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
@@ -88,7 +88,7 @@
 
     src = fetchPypi {
       inherit pname version;
-      sha256 = "1szcrx8vslskifzxaq7lrfg2arilaq1w1aqr0nc8pjclj7idp92c";
+      sha256 = "13lr7lzi9sv0s6xrfalq0dkcys6fp7hn0787rjhnz9gc7x83aqjv";
     };
 
     propagatedBuildInputs = [ buildbot-pkg ];
diff --git a/pkgs/development/python-modules/buildbot/worker.nix b/pkgs/development/python-modules/buildbot/worker.nix
index f888448db218..c8ebdf34b868 100644
--- a/pkgs/development/python-modules/buildbot/worker.nix
+++ b/pkgs/development/python-modules/buildbot/worker.nix
@@ -2,11 +2,11 @@
 
 buildPythonPackage (rec {
   pname = "buildbot-worker";
-  version = "2.1.0";
+  version = "2.3.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "14qimaf513h2hklcpix8vscrawvr1qiyn1vy88ycpsbz9mcqbhps";
+    sha256 = "0nldf4ws1nrkhbapxiy2s8j9fjfbkhp17c5912p6qy3ximfcfa93";
   };
 
   propagatedBuildInputs = [ twisted future ];
diff --git a/pkgs/development/python-modules/cgen/default.nix b/pkgs/development/python-modules/cgen/default.nix
new file mode 100644
index 000000000000..e0317249fe9f
--- /dev/null
+++ b/pkgs/development/python-modules/cgen/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytools
+, numpy
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "cgen";
+  version = "2017.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a04525d51ee975d37d590d6d82bf80a46e77f75187cccfd2248a89616a778795";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    pytools
+    numpy
+  ];
+
+  checkPhase = ''
+    pytest
+  '';
+
+  meta = with lib; {
+    description = "C/C++ source generation from an AST";
+    homepage = https://github.com/inducer/cgen;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/fitbit/default.nix b/pkgs/development/python-modules/fitbit/default.nix
new file mode 100644
index 000000000000..93bf4716073f
--- /dev/null
+++ b/pkgs/development/python-modules/fitbit/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, coverage
+, dateutil
+, freezegun
+, mock
+, requests-mock
+, requests_oauthlib
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "fitbit";
+  version = "0.3.0";
+
+  checkInputs = [ coverage freezegun mock requests-mock sphinx ];
+  propagatedBuildInputs = [ dateutil requests_oauthlib ];
+
+  # The source package on PyPi is missing files required for unit testing.
+  # https://github.com/orcasgit/python-fitbit/issues/148
+  src = fetchFromGitHub {
+    rev = version;
+    owner = "orcasgit";
+    repo = "python-fitbit";
+    sha256 = "0s1kp4qcxvxghqf9nb71843slm4r5lhl2rlvj3yvhbby3cqs4g84";
+  };
+
+  postPatch = ''
+    substituteInPlace requirements/test.txt \
+      --replace 'Sphinx>=1.2,<1.4' 'Sphinx' \
+      --replace 'coverage>=3.7,<4.0' 'coverage'
+  '';
+
+  meta = with lib; {
+    description = "Fitbit API Python Client Implementation";
+    license = licenses.asl20;
+    homepage = https://github.com/orcasgit/python-fitbit;
+    maintainers = with maintainers; [ delroth ];
+  };
+}
diff --git a/pkgs/development/python-modules/genpy/default.nix b/pkgs/development/python-modules/genpy/default.nix
new file mode 100644
index 000000000000..0a8344f8b924
--- /dev/null
+++ b/pkgs/development/python-modules/genpy/default.nix
@@ -0,0 +1,29 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytools
+, numpy
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "genpy";
+  version = "2016.1.3";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "1c11726f1e8ace8bbdfc87816403c9a59f53a8c3d45c99187ae17c9725d87a91";
+  };
+
+  propagatedBuildInputs = [
+    pytools
+    numpy
+  ];
+
+  meta = with lib; {
+    description = "C/C++ source generation from an AST";
+    homepage = https://github.com/inducer/genpy;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/gphoto2/default.nix b/pkgs/development/python-modules/gphoto2/default.nix
index 199f568322ac..9d760b37d379 100644
--- a/pkgs/development/python-modules/gphoto2/default.nix
+++ b/pkgs/development/python-modules/gphoto2/default.nix
@@ -4,11 +4,11 @@
 
 buildPythonPackage rec {
   pname = "gphoto2";
-  version = "1.9.0";
+  version = "2.0.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9c8e0c3ca22c0a2bfd0f27d24be6e4da5fe315d39d51f5af7bb5da416dbfa4b7";
+    sha256 = "01vcbjsy5zpfd9rzshk2d6150vhb66m5n420j0wd0k0i0p74ya98";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/islpy/default.nix b/pkgs/development/python-modules/islpy/default.nix
new file mode 100644
index 000000000000..6274da95b32f
--- /dev/null
+++ b/pkgs/development/python-modules/islpy/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isl
+, pytest
+, cffi
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "islpy";
+  version = "2018.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "be422a53b576210a0bb9775866abb6580b1e568222fc3e4e39d9e82f6d1d7253";
+  };
+
+  postConfigure = ''
+    substituteInPlace setup.py \
+      --replace "\"pytest>=2\"," ""
+  '';
+
+  buildInputs = [ isl ];
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    cffi
+    six
+  ];
+
+  checkPhase = ''
+    pytest test
+  '';
+
+  meta = with lib; {
+    description = "Python wrapper around isl, an integer set library";
+    homepage = https://github.com/inducer/islpy;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/jupyterlab/default.nix b/pkgs/development/python-modules/jupyterlab/default.nix
index 6d9d2a6b309f..db8c5b774e41 100644
--- a/pkgs/development/python-modules/jupyterlab/default.nix
+++ b/pkgs/development/python-modules/jupyterlab/default.nix
@@ -9,12 +9,12 @@
 
 buildPythonPackage rec {
   pname = "jupyterlab";
-  version = "0.35.4";
+  version = "0.35.6";
   disabled = pythonOlder "3.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "deba0b2803640fcad72c61366bff11d5945173015961586d5e3b2f629ffeb455";
+    sha256 = "2ec845845d51221e39d0d753884a19342c953f39febf3148a68631bf57ecb774";
   };
 
   propagatedBuildInputs = [ jupyterlab_server notebook ];
diff --git a/pkgs/development/python-modules/loo-py/default.nix b/pkgs/development/python-modules/loo-py/default.nix
new file mode 100644
index 000000000000..fe765f5ff0a8
--- /dev/null
+++ b/pkgs/development/python-modules/loo-py/default.nix
@@ -0,0 +1,51 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytools
+, pymbolic
+, genpy
+, cgen
+, islpy
+, six
+, colorama
+, mako
+, pyopencl
+, pytest
+}:
+
+buildPythonPackage rec {
+  pname = "loo-py";
+  version = "2017.2";
+
+  src = fetchPypi {
+    pname = "loo.py";
+    inherit version;
+    sha256 = "c656992de48b328cdaccd7d1f14eb522b9dd5a1d0d15f54623f4ab18fd219abc";
+  };
+
+  checkInputs = [ pytest ];
+  propagatedBuildInputs = [
+    pytools
+    pymbolic
+    genpy
+    cgen
+    islpy
+    six
+    colorama
+    mako
+    pyopencl
+  ];
+
+  # pyopencl._cl.LogicError: clGetPlatformIDs failed: PLATFORM_NOT_FOUND_KHR
+  doCheck = false;
+  checkPhase = ''
+    HOME=$(mktemp -d) pytest test
+  '';
+
+  meta = with lib; {
+    description = "A code generator for array-based code on CPUs and GPUs";
+    homepage = https://mathema.tician.de/software/loopy;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/macropy/default.nix b/pkgs/development/python-modules/macropy/default.nix
new file mode 100644
index 000000000000..952740d78376
--- /dev/null
+++ b/pkgs/development/python-modules/macropy/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, python
+, isPy27
+, pinqSupport ? false, sqlalchemy
+, pyxlSupport ? false, pyxl3
+}:
+
+buildPythonPackage rec {
+  # https://github.com/lihaoyi/macropy/issues/94
+  version = "1.1.0b2";
+  pname = "macropy";
+  disabled = isPy27;
+
+  src = fetchFromGitHub {
+    owner = "lihaoyi";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1bd2fzpa30ddva3f8lw2sbixxf069idwib8srd64s5v46ricm2cf";
+  };
+
+  # js_snippets extra only works with python2
+  propagatedBuildInputs = [ ]
+    ++ lib.optional pinqSupport sqlalchemy
+    ++ lib.optional pyxlSupport pyxl3;
+
+  checkPhase = ''
+    ${python.interpreter} run_tests.py
+  '';
+
+  meta = with lib; {
+    homepage = https://github.com/lihaoyi/macropy;
+    description = "Macros in Python: quasiquotes, case classes, LINQ and more";
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyatmo/default.nix b/pkgs/development/python-modules/pyatmo/default.nix
new file mode 100644
index 000000000000..13f8efbb5813
--- /dev/null
+++ b/pkgs/development/python-modules/pyatmo/default.nix
@@ -0,0 +1,24 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "pyatmo";
+  version = "1.10";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "13ca794416707b8cefcb7584bbfff65a4640fcc2510ad73e818fef94d424fca6";
+  };
+
+  # Upstream provides no unit tests.
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Simple API to access Netatmo weather station data";
+    license = licenses.mit;
+    homepage = https://github.com/jabesq/netatmo-api-python;
+    maintainers = with maintainers; [ delroth ];
+  };
+}
diff --git a/pkgs/development/python-modules/pymbolic/default.nix b/pkgs/development/python-modules/pymbolic/default.nix
new file mode 100644
index 000000000000..0d13b377b13e
--- /dev/null
+++ b/pkgs/development/python-modules/pymbolic/default.nix
@@ -0,0 +1,44 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, pytools
+, pytest
+, six
+, sympy
+, pexpect
+, symengine
+}:
+
+buildPythonPackage rec {
+  pname = "pymbolic";
+  version = "2018.1";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "a47d5524d6a3cdc8a028079ce632eeb45ceea7243272d234f250622087688207";
+  };
+
+  postConfigure = ''
+    substituteInPlace setup.py \
+      --replace "\"pytest>=2.3\"," ""
+  '';
+
+  checkInputs = [ sympy pexpect symengine pytest ];
+  propagatedBuildInputs = [
+    pytools
+    six
+  ];
+
+  # too many tests fail
+  doCheck = false;
+  checkPhase = ''
+    pytest test
+  '';
+
+  meta = with lib; {
+    description = "A package for symbolic computation";
+    homepage = https://mathema.tician.de/software/pymbolic;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/pysonos/default.nix b/pkgs/development/python-modules/pysonos/default.nix
new file mode 100644
index 000000000000..7e9414d5207c
--- /dev/null
+++ b/pkgs/development/python-modules/pysonos/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, xmltodict
+, requests
+, ifaddr
+
+# Test dependencies
+, pytest_3, pylint, flake8, graphviz
+, mock, sphinx, sphinx_rtd_theme
+}:
+
+buildPythonPackage rec {
+  pname = "pysonos";
+  version = "0.0.13";
+
+  disabled = !isPy3k;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "0azkbd20qdzdilv5pi4qngw7pjjcsv269dim7xh3qv7s9bp0xik8";
+  };
+
+  propagatedBuildInputs = [ xmltodict requests ifaddr ];
+
+  checkInputs = [
+    pytest_3 pylint flake8 graphviz
+    mock sphinx sphinx_rtd_theme
+  ];
+
+  meta = {
+    homepage = https://github.com/amelchio/pysonos;
+    description = "A SoCo fork with fixes for Home Assistant";
+    license = lib.licenses.mit;
+    maintainers = with lib.maintainers; [ juaningan ];
+  };
+}
diff --git a/pkgs/development/python-modules/pyxl3/default.nix b/pkgs/development/python-modules/pyxl3/default.nix
new file mode 100644
index 000000000000..159645c425eb
--- /dev/null
+++ b/pkgs/development/python-modules/pyxl3/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, unittest2
+, python
+, isPy27
+}:
+
+buildPythonPackage rec {
+  pname = "pyxl3";
+  version = "1.0";
+  disabled = isPy27;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "df413d86664e2d261f67749beffff07eb830ab8c7bbe631d11d4c42f3a5e5fde";
+  };
+
+  checkInputs = [ unittest2 ];
+
+  checkPhase = ''
+     ${python.interpreter} tests/test_basic.py
+  '';
+
+  # tests require weird codec installation
+  # which is not necessary for major use of package
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python 3 port of pyxl for writing structured and reusable inline HTML";
+    homepage = https://github.com/gvanrossum/pyxl3;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/stravalib/default.nix b/pkgs/development/python-modules/stravalib/default.nix
new file mode 100644
index 000000000000..e8e4eb4bf35b
--- /dev/null
+++ b/pkgs/development/python-modules/stravalib/default.nix
@@ -0,0 +1,43 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, arrow
+, requests
+, units
+, pytz
+, six
+}:
+
+buildPythonPackage rec {
+  pname = "stravalib";
+  version = "0.10.2";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "76db248b24cbd6c51cf93b475d8a8df04ec4b6c6287dca244e47f37a433276d7";
+  };
+
+  checkInputs = [
+    nose
+  ];
+
+  propagatedBuildInputs = [
+    arrow
+    requests
+    units
+    pytz
+    six
+  ];
+
+  # tests require network access
+  # testing strava api
+  doCheck = false;
+
+  meta = with lib; {
+    description = "Python library for interacting with Strava v3 REST API";
+    homepage = https://github.com/hozn/stravalib;
+    license = licenses.asl20;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/symengine/default.nix b/pkgs/development/python-modules/symengine/default.nix
new file mode 100644
index 000000000000..a2c0578f0c7f
--- /dev/null
+++ b/pkgs/development/python-modules/symengine/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, buildPythonPackage
+, fetchFromGitHub
+, cython
+, cmake
+, symengine
+, pytest
+, sympy
+, python
+}:
+
+buildPythonPackage rec {
+  pname = "symengine";
+  version = "0.4.0";
+
+  src = fetchFromGitHub {
+    owner = "symengine";
+    repo = "symengine.py";
+    rev = "v${version}";
+    sha256 = "07i9rwxphi4zgwc7y6f6qvq73iym2cx4k1bpd7rmd3wkpgrrfxqx";
+  };
+
+  postConfigure = ''
+    substituteInPlace setup.py \
+      --replace "\"cmake\"" "\"${cmake}/bin/cmake\""
+
+    substituteInPlace cmake/FindCython.cmake \
+      --replace "SET(CYTHON_BIN cython" "SET(CYTHON_BIN ${cython}/bin/cython"
+  '';
+
+  buildInputs = [ cython cmake ];
+
+  checkInputs = [ pytest sympy ];
+
+  setupPyBuildFlags = [
+    "--symengine-dir=${symengine}/"
+    "--define=\"CYTHON_BIN=${cython}/bin/cython\""
+  ];
+
+  checkPhase = ''
+    mkdir empty
+    cd empty
+    ${python.interpreter} ../bin/test_python.py
+  '';
+
+  meta = with lib; {
+    description = "Python library providing wrappers to SymEngine";
+    homepage = https://github.com/symengine/symengine.py;
+    license = licenses.mit;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/units/default.nix b/pkgs/development/python-modules/units/default.nix
new file mode 100644
index 000000000000..02a3fc940aee
--- /dev/null
+++ b/pkgs/development/python-modules/units/default.nix
@@ -0,0 +1,21 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+  pname = "units";
+  version = "0.07";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "43eb3e073e1b11289df7b1c3f184b5b917ccad178b717b03933298716f200e14";
+  };
+
+  meta = with lib; {
+    description = "Python support for quantities with units";
+    homepage = https://bitbucket.org/adonohue/units/;
+    license = licenses.psfl;
+    maintainers = [ maintainers.costrouc ];
+  };
+}
diff --git a/pkgs/development/python-modules/zxcvbn-python/default.nix b/pkgs/development/python-modules/zxcvbn-python/default.nix
index 8287c05f743b..94e8fc977e06 100644
--- a/pkgs/development/python-modules/zxcvbn-python/default.nix
+++ b/pkgs/development/python-modules/zxcvbn-python/default.nix
@@ -1,24 +1,24 @@
-{ lib
-, buildPythonPackage
-, fetchPypi
-}:
+{ lib, buildPythonPackage, fetchFromGitHub
+, pytest_3 }:
 
 buildPythonPackage rec {
   pname = "zxcvbn-python";
-  version = "4.4.24";
+  version = "4.4.27";
 
-
-  src = fetchPypi {
-    inherit pname version;
-    sha256 = "900b28cc5e96be4091d8778f19f222832890264e338765a1c1c09fca2db64b2d";
+  src = fetchFromGitHub {
+    owner = "dwolfhub";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0w0sx9ssjks8da973cdv5xi87yjsf038jqxmzj2y26xvpyjsg2v2";
   };
 
-  # No tests in archive
-  doCheck = false;
+  checkInputs = [
+    pytest_3
+  ];
 
   meta = {
     description = "Python implementation of Dropbox's realistic password strength estimator, zxcvbn";
     homepage = https://github.com/dwolfhub/zxcvbn-python;
     license = with lib.licenses; [ mit ];
   };
-}
\ No newline at end of file
+}
diff --git a/pkgs/development/tools/analysis/hotspot/default.nix b/pkgs/development/tools/analysis/hotspot/default.nix
index 6544046b16d2..89ffbff3db71 100644
--- a/pkgs/development/tools/analysis/hotspot/default.nix
+++ b/pkgs/development/tools/analysis/hotspot/default.nix
@@ -5,24 +5,24 @@
   fetchFromGitHub,
   kconfigwidgets,
   ki18n,
+  kio,
   kitemmodels,
   kitemviews,
+  kwindowsystem,
   libelf,
   qtbase,
   threadweaver,
 }:
 
 stdenv.mkDerivation rec {
-  name = "hotspot-${version}";
-  version = "1.0.0"; # don't forget to bump `rev` below when you change this
+  pname = "hotspot";
+  version = "1.2.0";
 
   src = fetchFromGitHub {
     owner = "KDAB";
     repo = "hotspot";
-    # TODO: For some reason, `fetchSubmodules` doesn't work when using `rev = "v${version}";`,
-    #       so using an explicit commit instead. See #15559
-    rev = "352687bf620529e9887616651f123f922cb421a4";
-    sha256 = "09ly15yafpk31p3w7h2xixf1xdmx803w9fyb2aq7mhmc7pcxqjsx";
+    rev = "v${version}";
+    sha256 = "05rkzrvak93z8mzcpm4mcjxb933l8pjsxr9a595wfn1gn2ihmada";
     fetchSubmodules = true;
   };
 
@@ -32,8 +32,10 @@ stdenv.mkDerivation rec {
     extra-cmake-modules
     kconfigwidgets
     ki18n
+    kio
     kitemmodels
     kitemviews
+    kwindowsystem
     libelf
     qtbase
     threadweaver
diff --git a/pkgs/development/tools/chit/default.nix b/pkgs/development/tools/chit/default.nix
index c0fa754e1e9d..b312b888e908 100644
--- a/pkgs/development/tools/chit/default.nix
+++ b/pkgs/development/tools/chit/default.nix
@@ -6,13 +6,13 @@ with rustPlatform;
 
 buildRustPackage rec {
   pname = "chit";
-  version = "0.1.13";
+  version = "0.1.14";
 
   src = fetchFromGitHub {
     owner = "peterheesterman";
     repo = pname;
     rev = version;
-    sha256 = "1qp5ad83lvfz9l4ihz1l500p8bgf7q0z1k4f3i13nd5n7i3ksdjc";
+    sha256 = "1rzy15xwlf87c8kpy9pwvir6s9z3qc8d9iz4pk0gfdj2il3vmjwv";
   };
 
   cargoSha256 = "1jqnnf4jgjpm1i310hda15423nxfw9frgpmc2kbrs66qcsj7avaw";
diff --git a/pkgs/development/web/minify/default.nix b/pkgs/development/web/minify/default.nix
index e63f609fc2b6..76434809cb52 100644
--- a/pkgs/development/web/minify/default.nix
+++ b/pkgs/development/web/minify/default.nix
@@ -1,18 +1,24 @@
-{ buildGoPackage, fetchFromGitHub }:
+{ buildGoModule, fetchFromGitHub, lib }:
 
-buildGoPackage rec {
-  name = "minify-${version}";
-  version = "v2.0.0";
-  rev = "41f3effd65817bac8acea89d49b3982211803a4d";
+buildGoModule rec {
+  pname = "minify";
+  version = "2.5.0";
 
   goPackagePath = "github.com/tdewolff/minify";
 
   src = fetchFromGitHub {
-    inherit rev;
     owner = "tdewolff";
-    repo = "minify";
-    sha256 = "15d9ivg1a9v9c2n0a9pfw74952xhd4vqgx8d60dhvif9lx1d8wlq";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1ja26fs7klzggmfqvz5nzj9icaa8r8h4a91qg8rj4gx5cnvwx38d";
   };
 
-  goDeps = ./deps.nix;
+  modSha256 = "0kff2nj66bifbfi8srcvcsipbddw43mvjdwlq0lz04qak524pbvr";
+
+  meta = with lib; {
+    description = "Minifiers for web formats";
+    license = licenses.mit;
+    homepage = https://go.tacodewolff.nl/minify;
+    platforms = platforms.all;
+  };
 }
diff --git a/pkgs/development/web/minify/deps.nix b/pkgs/development/web/minify/deps.nix
deleted file mode 100644
index 4efaec46d571..000000000000
--- a/pkgs/development/web/minify/deps.nix
+++ /dev/null
@@ -1,74 +0,0 @@
-[
-  {
-    goPackagePath = "golang.org/x/sys";
-    fetch = {
-      type = "git";
-      url = "https://go.googlesource.com/sys";
-      rev = "d9157a9621b69ad1d8d77a1933590c416593f24f";
-      sha256 = "1asdbp7rj1j1m1aar1a022wpcwbml6zih6cpbxaw7b2m8v8is931";
-    };
-  }
-  {
-    goPackagePath = "github.com/dustin/go-humanize";
-    fetch = {
-      type = "git";
-      url = "https://github.com/dustin/go-humanize";
-      rev = "8929fe90cee4b2cb9deb468b51fb34eba64d1bf0";
-      sha256 = "1g155kxjh6hd3ibx41nbpj6f7h5bh54zgl9dr53xzg2xlxljgjy0";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/buffer";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/buffer";
-      rev = "0edfcb7b750146ff879e95831de2ef53605a5cb5";
-      sha256 = "1mdd4k9byp22mw0a399j3w73zjb5g0vn58g76rjy7ajb0dzm80vl";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/parse";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/parse";
-      rev = "34d5c1160d4503da4b456e5094609f2331d6dde3";
-      sha256 = "0hxf65fgkrc1q4p99p33xxxy1s6wxpn1vfsnqf9p846awwbqsy0v";
-    };
-  }
-  {
-    goPackagePath = "github.com/tdewolff/strconv";
-    fetch = {
-      type = "git";
-      url = "https://github.com/tdewolff/strconv";
-      rev = "3e8091f4417ebaaa3910da63a45ea394ebbfb0e3";
-      sha256 = "00w2mryfjhz3vaqzxvbwvyhi1vgpc1s4xfv1r9hxn8hwa078q5gp";
-    };
-  }
-  {
-    goPackagePath = "github.com/matryer/try";
-    fetch = {
-      type = "git";
-      url = "https://github.com/matryer/try";
-      rev = "93d30e50512f879b73829eb79867df38084bcd31";
-      sha256 = "0dmc8iar9685ks1ba3vnycjsx8qxwyqv51jb7677dvwnzbqhgw6f";
-    };
-  }
-  {
-    goPackagePath = "github.com/fsnotify/fsnotify";
-    fetch = {
-      type = "git";
-      url = "https://github.com/fsnotify/fsnotify";
-      rev = "30411dbcefb7a1da7e84f75530ad3abe4011b4f8";
-      sha256 = "0kbpvyi6p9942k0vmcw5z13mja47f7hq7nqd332pn2zydss6kddm";
-    };
-  }
-  {
-    goPackagePath = "github.com/ogier/pflag";
-    fetch = {
-      type = "git";
-      url = "https://github.com/ogier/pflag";
-      rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
-      sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
-    };
-  }
-]
diff --git a/pkgs/games/flare/default.nix b/pkgs/games/flare/default.nix
new file mode 100644
index 000000000000..5ae656d1fc18
--- /dev/null
+++ b/pkgs/games/flare/default.nix
@@ -0,0 +1,24 @@
+{ lib, buildEnv, callPackage, makeWrapper }:
+
+buildEnv {
+  name = "flare-1.10";
+
+  paths = [
+    (callPackage ./engine.nix {})
+    (callPackage ./game.nix {})
+  ];
+
+  buildInputs = [ makeWrapper ];
+  postBuild = ''
+    mkdir -p $out/bin
+    makeWrapper $out/games/flare $out/bin/flare --run "cd $out/share/games/flare"
+  '';
+
+  meta = with lib; {
+    description = "Fantasy action RPG using the FLARE engine";
+    homepage = "http://flarerpg.org/";
+    maintainers = [ maintainers.aanderse ];
+    license = [ licenses.gpl3 licenses.cc-by-sa-30 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/flare/engine.nix b/pkgs/games/flare/engine.nix
new file mode 100644
index 000000000000..8b620835f857
--- /dev/null
+++ b/pkgs/games/flare/engine.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake, SDL2, SDL2_image, SDL2_mixer, SDL2_ttf }:
+
+stdenv.mkDerivation rec {
+  pname = "flare-engine";
+  version = "1.10";
+
+  src = fetchFromGitHub {
+    owner = "flareteam";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "0fm7jmxl86h8199nazdi9ivsrhcv9gcymhz1l5c6l2f4d0aqdqiq";
+  };
+
+  nativeBuildInputs = [ cmake ];
+  buildInputs = [ SDL2 SDL2_image SDL2_mixer SDL2_ttf ];
+
+  meta = with stdenv.lib; {
+    description = "Free/Libre Action Roleplaying Engine";
+    homepage = "https://github.com/flareteam/flare-engine";
+    maintainers = [ maintainers.aanderse ];
+    license = [ licenses.gpl3 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/flare/game.nix b/pkgs/games/flare/game.nix
new file mode 100644
index 000000000000..b10d7dfedb0f
--- /dev/null
+++ b/pkgs/games/flare/game.nix
@@ -0,0 +1,23 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+  pname = "flare-game";
+  version = "1.10";
+
+  src = fetchFromGitHub {
+    owner = "flareteam";
+    repo = pname;
+    rev = "v${version}";
+    sha256 = "1lfra4ww8za08vcgza2jvh3jrwi6zryk4ljyj32lpp9v4ws9hdh4";
+  };
+
+  nativeBuildInputs = [ cmake ];
+
+  meta = with stdenv.lib; {
+    description = "Fantasy action RPG using the FLARE engine";
+    homepage = "https://github.com/flareteam/flare-game";
+    maintainers = [ maintainers.aanderse ];
+    license = [ licenses.cc-by-sa-30 ];
+    platforms = platforms.unix;
+  };
+}
diff --git a/pkgs/games/openra/common.nix b/pkgs/games/openra/common.nix
index 200b9da4a7eb..b0d1f2a5455e 100644
--- a/pkgs/games/openra/common.nix
+++ b/pkgs/games/openra/common.nix
@@ -3,7 +3,7 @@
 */
 { stdenv, makeSetupHook, curl, unzip, dos2unix, pkgconfig, makeWrapper
 , lua, mono, dotnetPackages, python
-, libGL, openal, SDL2
+, libGL, freetype, openal, SDL2
 , zenity
 }:
 
@@ -11,7 +11,7 @@ with stdenv.lib;
 
 let
   path = makeBinPath ([ mono python ] ++ optional (zenity != null) zenity);
-  rpath = makeLibraryPath [ lua openal SDL2 ];
+  rpath = makeLibraryPath [ lua freetype openal SDL2 ];
   mkdirp = makeSetupHook { } ./mkdirp.sh;
 
 in {
@@ -54,10 +54,7 @@ in {
       StyleCopMSBuild
       StyleCopPlusMSBuild
     ] ++ [
-      lua
       libGL
-      openal
-      SDL2
     ];
 
     # TODO: Test if this is correct.
diff --git a/pkgs/games/openra/engines.nix b/pkgs/games/openra/engines.nix
index 7454d32c1139..2bdbce6d939d 100644
--- a/pkgs/games/openra/engines.nix
+++ b/pkgs/games/openra/engines.nix
@@ -22,20 +22,20 @@ let
 
 in {
   release = name: (buildUpstreamOpenRAEngine rec {
-    version = "20181215";
+    version = "20190314";
     rev = "${name}-${version}";
-    sha256 = "0p0izykjnz7pz02g2khp7msqa00jhjsrzk9y0g29dirmdv75qa4r";
+    sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
   } name);
 
   playtest = name: (buildUpstreamOpenRAEngine rec {
-    version = "20190106";
+    version = "20190302";
     rev = "${name}-${version}";
-    sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+    sha256 = "1vqvfk2p2lpk3m0d3rpvj34i8cmk3mfc7w4cn4llqd9zp4kk9pya";
   } name);
 
   bleed = buildUpstreamOpenRAEngine {
-    version = "9c9cad1";
-    rev = "9c9cad1a15c3a34dc2a61b305e4a9a735381a5f8";
-    sha256 = "0100p7wrnnlvkmy581m0gbyg3cvi4i1w3lzx2gq91ndz1sbm8nd2";
+    version = "8ee1102";
+    rev = "8ee11028d72cde7556b31d45f556b40be65b4b70";
+    sha256 = "0f1fpf37ms8d7fhlh3rjzsxsk9w23iyi3phs2i7g561292d5rk3l";
   };
 }
diff --git a/pkgs/games/openra/mod-launch-game.sh b/pkgs/games/openra/mod-launch-game.sh
index c0b6feb69c88..88b53e71e1bc 100644
--- a/pkgs/games/openra/mod-launch-game.sh
+++ b/pkgs/games/openra/mod-launch-game.sh
@@ -1,4 +1,4 @@
-#!/bin/sh
+#!/usr/bin/env bash
 show_error() {
   if command -v zenity > /dev/null; then
     zenity --no-wrap --no-markup --error --title "OpenRA - @title@" --text "$1" 2>/dev/null
@@ -12,7 +12,7 @@ cd "@out@/lib/openra-@name@"
 
 # Check for missing assets
 assetsError='@assetsError@'
-if [ -n "$assetsError" -a ! -d "$HOME/.openra/Content/@name@" ]; then
+if [[ -n "$assetsError" && ! -d "$HOME/.openra/Content/@name@" ]]; then
   show_error "$assetsError"
 fi
 
@@ -20,6 +20,6 @@ fi
 mono --debug OpenRA.Game.exe Game.Mod=@name@ Engine.LaunchPath="@out@/bin/openra-@name@" Engine.ModSearchPaths="@out@/lib/openra-@name@/mods" "$@"
 
 # Show a crash dialog if something went wrong
-if [ $? -ne 0 -a $? -ne 1 ]; then
+if (( $? != 0 && $? != 1 )); then
   show_error $'OpenRA - @title@ has encountered a fatal error.\nPlease refer to the crash logs for more information.\n\nLog files are located in ~/.openra/Logs'
 fi
diff --git a/pkgs/games/openra/mod-update.sh b/pkgs/games/openra/mod-update.sh
index 52bcada8f9a1..8489d5a97a7c 100755
--- a/pkgs/games/openra/mod-update.sh
+++ b/pkgs/games/openra/mod-update.sh
@@ -1,4 +1,5 @@
 #!/usr/bin/env bash
+# shellcheck disable=SC2034
 
 # for mod in $(nix eval --raw '(
 #   with import <nixpkgs> { };
@@ -9,9 +10,7 @@
 #   ./mod-update.sh "$mod"
 # done
 
-# Uses:
-# https://github.com/msteen/nix-prefetch
-# https://github.com/msteen/nix-update-fetch
+# Uses: https://github.com/msteen/nix-upfetch
 
 mod=$1
 commit_count=$2
@@ -19,7 +18,7 @@ token=
 nixpkgs='<nixpkgs>'
 
 die() {
-  ret=$?
+  local ret=$?
   echo "$*" >&2
   exit $ret
 }
@@ -34,13 +33,16 @@ get_sha1() {
   curl -H "Authorization: token $token" -H 'Accept: application/vnd.github.VERSION.sha' "https://api.github.com/repos/$owner/$repo/commits/$ref"
 }
 
+[[ -n $mod ]] || die "The first argument of this script has to be a mod identifier."
+
 [[ -n $token ]] || die "Please edit this script to include a GitHub API access token, which is required for API v4:
 https://help.github.com/articles/creating-a-personal-access-token-for-the-command-line/"
 
 # Get current mod_owner and mod_repo.
-vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --skip-hash > >(
+vars=$(nix-prefetch --file "$nixpkgs" "openraPackages.mods.$mod" --index 0 --quiet --output json --no-compute-hash > >(
   jq --raw-output 'with_entries(select(.value | contains("\n") | not)) | to_entries | .[] | .key + "=" + .value')) || exit
 
+mod_owner=; mod_repo=; mod_rev=
 while IFS='=' read -r key val; do
   declare "mod_${key}=${val}"
 done <<< "$vars"
@@ -65,11 +67,12 @@ else
 }'
 fi
 
-query='query {
-  repository(owner: \"'"$mod_owner"'\", name: \"'"$mod_repo"'\") {
+# shellcheck disable=SC2089
+query='{
+  repository(owner: "'$mod_owner'", name: "'$mod_repo'") {
     defaultBranchRef {
       target {
-        ... on Commit '"$query_on_commit"'
+        ... on Commit '$query_on_commit'
       }
     }
     licenseInfo {
@@ -80,7 +83,9 @@ query='query {
 
 # Newlines are not allowed in a query.
 # https://developer.github.com/v4/guides/forming-calls/#communicating-with-graphql
+# shellcheck disable=SC2086 disable=SC2090 disable=SC2116
 query=$(echo $query)
+query=${query//\"/\\\"}
 
 # https://developer.github.com/v4/guides/using-the-explorer/#configuring-graphiql
 json=$(curl -H "Authorization: bearer $token" -X POST -d '{ "query": "'"$query"'" }' https://api.github.com/graphql) || exit
@@ -99,12 +104,14 @@ vars=$(jq --raw-output '.data.repository | {
   rev: .oid,
 }) | to_entries | .[] | .key + "=" + (.value | tostring)' <<< "$json") || exit
 
+mod_license_key=; mod_version=; mod_rev=
 while IFS='=' read -r key val; do
   declare "mod_${key}=${val}"
 done <<< "$vars"
 
 mod_config=$(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/mod.config") || exit
 
+mod_id=; engine_version=; automatic_engine_management=; automatic_engine_source=
 while IFS='=' read -r key val; do
   declare "${key,,}=$(jq --raw-output . <<< "$val")"
 done < <(grep '^\(MOD_ID\|ENGINE_VERSION\|AUTOMATIC_ENGINE_MANAGEMENT\|AUTOMATIC_ENGINE_SOURCE\)=' <<< "$mod_config")
@@ -116,6 +123,7 @@ echo >&2
 
 [[ $mod_id == "$mod" ]] ||
   die "The mod '$mod' reports being mod '$mod_id' instead."
+# shellcheck disable=SC2005 disable=SC2046
 [[ $mod_license_key == gpl-3.0 ]] ||
 [[ $(echo $(head -2 <(curl "https://raw.githubusercontent.com/$mod_owner/$mod_repo/$mod_rev/COPYING"))) == 'GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007' ]] ||
   die "The mod '$mod' is licensed under '$mod_license_key' while expecting 'gpl-3.0'."
@@ -126,6 +134,7 @@ echo >&2
 
 engine_owner=${BASH_REMATCH[1]}
 engine_repo=${BASH_REMATCH[2]}
+# shellcheck disable=SC2016
 [[ ${BASH_REMATCH[3]} == '${ENGINE_VERSION}' ]] || engine_version=${BASH_REMATCH[3]}
 engine_rev=$(get_sha1 "$engine_owner" "$engine_repo" "$engine_version")
 
@@ -146,6 +155,6 @@ for type in mod engine; do
   done
   var="${type}_version"
   version=${!var}
-  nix-update-fetch --yes --version "$version" "$(nix-prefetch --quiet --file "$nixpkgs" "openraPackages.mods.$mod" --index $i --output json --with-position --diff -- "${fetcher_args[@]}")"
+  nix-upfetch --yes --version "$version" "$(nix-preupfetch --file "$nixpkgs" "openraPackages.mods.$mod" --index $i -- "${fetcher_args[@]}")"
   (( i++ ))
 done
diff --git a/pkgs/games/openra/mods.nix b/pkgs/games/openra/mods.nix
index ddc34dbda8f6..1e81e02e59f1 100644
--- a/pkgs/games/openra/mods.nix
+++ b/pkgs/games/openra/mods.nix
@@ -60,23 +60,23 @@ in {
   };
 
   dr = buildOpenRAMod rec {
-    version = "266.git.920b476";
+    version = "324.git.ffcd6ba";
     title = "Dark Reign";
     description = "A re-imagination of the original Command & Conquer: ${title} game";
     homepage = https://github.com/drogoganor/DarkReign;
     src = fetchFromGitHub {
       owner = "drogoganor";
       repo = "DarkReign";
-      rev = "920b476be1b7751db087f1f7acd504b8a048d1e2";
-      sha256 = "11ir4pnichrnv4z9532fp9g166jl8fvy5kk03a2fgxssp3g40zz2";
+      rev = "ffcd6ba72979e5f77508136ed7b0efc13e4b100e";
+      sha256 = "07g4qw909649s3i1yhw75613mpwfka05jana5mpp5smhnf0pkack";
     };
     engine = {
       version = "DarkReign";
       src = fetchFromGitHub {
         owner = "drogoganor";
         repo = "OpenRA" ;
-        rev = "e08b75c2add30439228ea3dd61d6be60d1800329";
-        sha256 = "125vf962p69ajrh5pxgfwsi0ksczqwvlw5kn2fvffiwvh8d5in23";
+        rev = "f91d3f2603bbf51afaa89357e4defcdc36138102";
+        sha256 = "05g900ri6q0zrkrk8rmjaz576vjggmi2y6jm0xz3cwli54prn11w";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -161,15 +161,15 @@ in {
   };
 
   ra2 = buildOpenRAMod rec {
-    version = "881.git.b37f4f9";
+    version = "903.git.2f7c700";
     title = "Red Alert 2";
     description = "Re-imagination of the original Command & Conquer: ${title} game";
     homepage = https://github.com/OpenRA/ra2;
     src = fetchFromGitHub {
       owner = "OpenRA";
       repo = "ra2";
-      rev = "b37f4f9f07404127062d9061966e9cc89dd86445";
-      sha256 = "1jiww66ma3qdk9hzyvhbcaa5h4p2mxxk22kvrw92ckpxy0bqba3h";
+      rev = "2f7c700d6d63c0625e7158ef3098221fa6741569";
+      sha256 = "11vnzwczn47wjfrq6y7z9q234p27ihdrcl5p87i6h2xnrpwi8b6m";
     };
     engine = rec {
       version = "release-20180923";
@@ -189,23 +189,23 @@ in {
   };
 
   raclassic = buildOpenRAMod {
-    version = "181.git.8240890";
+    version = "183.git.c76c13e";
     title = "Red Alert Classic";
     description = "A modernization of the original Command & Conquer: Red Alert game";
     homepage = https://github.com/OpenRA/raclassic;
     src = fetchFromGitHub {
       owner = "OpenRA";
       repo = "raclassic";
-      rev = "8240890b32191ce34241c22158b8a79e8c380879";
-      sha256 = "0dznyb6qa4n3ab87g1c4bihfc2nx53k6z0kajc7ynjdnwzvx69ww";
+      rev = "c76c13e9f0912a66ddebae8d05573632b19736b2";
+      sha256 = "1cnr3ccvrkjlv8kkdcglcfh133yy0fkva9agwgvc7wlj9n5ydl4g";
     };
     engine = rec {
-      version = "playtest-20190106";
+      version = "release-20190314";
       src = fetchFromGitHub {
         owner = "OpenRA";
         repo = "OpenRA" ;
         rev = version;
-        sha256 = "0ps9x379plrrj1hnj4fpr26lc46mzgxknv5imxi0bmrh5y4781ql";
+        sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -242,24 +242,24 @@ in {
   };
 
   sp = unsafeBuildOpenRAMod {
-    version = "176.git.fc89ae8";
+    version = "221.git.ac000cc";
     title = "Shattered Paradise";
     description = "Re-imagination of the original Command & Conquer: Tiberian Sun game";
     homepage = https://github.com/ABrandau/OpenRAModSDK;
     src = fetchFromGitHub {
       owner = "ABrandau";
       repo = "OpenRAModSDK";
-      rev = "fc89ae8a10e0f765ac735f923e01aa24dd20e8d2";
-      sha256 = "0xyxhipmjlld0kp23fwsdwnspr7fci0mdnjd60gcsh34c7m0341p";
+      rev = "ac000cc15377cdf6d3c2b72c737d692aa0ed8bcd";
+      sha256 = "16mzs5wcxj9nlpcyx2c87idsqpbm40lx0rznsccclnlb3hiwqas9";
     };
     engine = {
-      version = "SP-Bleed-Branch";
+      version = "SP-22-04-19";
       mods = [ "as" "ts" ];
       src = fetchFromGitHub {
         owner = "ABrandau";
         repo = "OpenRA" ;
-        rev = "d3545c0b751aea2105748eddaab5919313e35314";
-        sha256 = "1jsldl6vnf3r9dzppdm4z7kqbrzkidda5k74wc809i8c4jjnq9rq";
+        rev = "bb0930008a57c07f3002421023f6b446e3e3af69";
+        sha256 = "1jvgpbf56hd02ikhklv49br4d1jiv5hphc5kl79qnjlaacnj222x";
         name = "engine";
         inherit extraPostFetch;
       };
@@ -315,23 +315,23 @@ in {
   };
 
   yr = unsafeBuildOpenRAMod rec {
-    version = "118.git.c26bf14";
+    version = "199.git.5b8b952";
     homepage = https://github.com/cookgreen/yr;
     title = "Yuri's Revenge";
     description = "Re-imagination of the original Command & Conquer: ${title} game";
     src = fetchFromGitHub {
       owner = "cookgreen";
       repo = "yr";
-      rev = "c26bf14155d040edf33c6c5eb3677517d07b39f8";
-      sha256 = "15k6gv4rx3490n0cs9q7ah7q31z89v0pddsw6nqv0fhcahhvq1bc";
+      rev = "5b8b952dbe21f194a6d00485f20e215ce8362712";
+      sha256 = "0hxzrqnz5d7qj1jjr20imiyih62x1cnmndf75nnil4c4sj82f9a6";
     };
     engine = rec {
-      version = "release-20180923";
+      version = "release-20190314";
       src = fetchFromGitHub {
         owner = "OpenRA";
         repo = "OpenRA" ;
         rev = version;
-        sha256 = "1pgi3zaq9fwwdq6yh19bwxscslqgabjxkvl9bcn1a5agy4bfbqk5";
+        sha256 = "15pvn5cx3g0nzbrgpsfz8dngad5wkzp5dz25ydzn8bmxafiijvcr";
         name = "engine";
         inherit extraPostFetch;
       };
diff --git a/pkgs/games/steam/chrootenv.nix b/pkgs/games/steam/chrootenv.nix
index 598ddc485630..0082b97eb22d 100644
--- a/pkgs/games/steam/chrootenv.nix
+++ b/pkgs/games/steam/chrootenv.nix
@@ -28,6 +28,9 @@ let
       iana-etc
       # Steam Play / Proton
       python3
+      # Steam VR
+      procps
+      usbutils
     ] ++ lib.optional withJava jdk
       ++ lib.optional withPrimus primus
       ++ extraPkgs pkgs;
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 3fcb2fcbb24a..df741d9a029b 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.102-156";
+  version = "4.14.120-160";
 
   # modDirVersion needs to be x.y.z.
-  modDirVersion = "4.14.102";
+  modDirVersion = "4.14.120";
 
   # branchVersion needs to be x.y.
   extraMeta.branch = "4.14";
@@ -13,7 +13,7 @@ buildLinux (args // rec {
     owner = "hardkernel";
     repo = "linux";
     rev = version;
-    sha256 = "12af0n1lg2w2qm9aq1v8w3x8npaka60ks9xp6jwaw0l06j23ryyv";
+    sha256 = "0sb7k8kpbm4h98jsqjnjmj0ysp55n9cpczpw0jsg0x0sj9qp73nr";
   };
 
   defconfig = "odroidxu4_defconfig";
diff --git a/pkgs/os-specific/linux/kernel/linux-testing.nix b/pkgs/os-specific/linux/kernel/linux-testing.nix
index 7888ac6af44c..e9cc370f4e7b 100644
--- a/pkgs/os-specific/linux/kernel/linux-testing.nix
+++ b/pkgs/os-specific/linux/kernel/linux-testing.nix
@@ -1,13 +1,13 @@
 { stdenv, buildPackages, fetchurl, perl, buildLinux, libelf, utillinux, ... } @ args:
 
 buildLinux (args // rec {
-  version = "5.1-rc7";
-  modDirVersion = "5.1.0-rc7";
-  extraMeta.branch = "5.1";
+  version = "5.2-rc1";
+  modDirVersion = "5.2.0-rc1";
+  extraMeta.branch = "5.2";
 
   src = fetchurl {
     url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
-    sha256 = "05085j84kn3mf5s2hy8i9jgvnglpr9v918kmc9lmpn5vq7frh9s1";
+    sha256 = "169gjmciijgmwwfyz3n7pvf2x18pmfvgdk73s8jlx30ggwzgac1l";
   };
 
   # Should the testing kernels ever be built on Hydra?
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index 12240320979c..c7f1bb475c1b 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -209,7 +209,7 @@
     "filesize" = ps: with ps; [  ];
     "filter" = ps: with ps; [  ];
     "fints" = ps: with ps; [ fints ];
-    "fitbit" = ps: with ps; [ aiohttp-cors ];
+    "fitbit" = ps: with ps; [ aiohttp-cors fitbit ];
     "fixer" = ps: with ps; [  ];
     "flexit" = ps: with ps; [  ];
     "flic" = ps: with ps; [  ];
@@ -455,8 +455,8 @@
     "nello" = ps: with ps; [  ];
     "ness_alarm" = ps: with ps; [  ];
     "nest" = ps: with ps; [  ];
-    "netatmo" = ps: with ps; [ aiohttp-cors ];
-    "netatmo_public" = ps: with ps; [ aiohttp-cors ];
+    "netatmo" = ps: with ps; [ aiohttp-cors pyatmo ];
+    "netatmo_public" = ps: with ps; [ aiohttp-cors pyatmo ];
     "netdata" = ps: with ps; [  ];
     "netgear" = ps: with ps; [  ];
     "netgear_lte" = ps: with ps; [  ];
@@ -637,7 +637,7 @@
     "somfy_mylink" = ps: with ps; [  ];
     "sonarr" = ps: with ps; [  ];
     "songpal" = ps: with ps; [  ];
-    "sonos" = ps: with ps; [  ];
+    "sonos" = ps: with ps; [ pysonos ];
     "sony_projector" = ps: with ps; [  ];
     "soundtouch" = ps: with ps; [ libsoundtouch ];
     "spaceapi" = ps: with ps; [ aiohttp-cors ];
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 01fdfb7d1f4b..4a705d52cd11 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
 { stdenv, fetchgit }:
 
 stdenv.mkDerivation rec {
-  version = "2019-05-17";
+  version = "2019-05-19";
   name = "oh-my-zsh-${version}";
-  rev = "5aa62461d91546ce1fd5dcc6531569d0e6e6f17f";
+  rev = "f960e2be6f01abe5f185d668be661b57051322ac";
 
   src = fetchgit { inherit rev;
     url = "https://github.com/robbyrussell/oh-my-zsh";
-    sha256 = "0mg308h9k9lcv9flqwnynq2iiicl7b89arn7m97wwjijww1isdg6";
+    sha256 = "1amn72cx9ay4kd707y8kxfvgq5mlqhvlvha28aai2gxcravb95vn";
   };
 
   pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/pkgs/tools/X11/arandr/default.nix b/pkgs/tools/X11/arandr/default.nix
index 5baba1171571..51f2f5ec2494 100644
--- a/pkgs/tools/X11/arandr/default.nix
+++ b/pkgs/tools/X11/arandr/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, gobject-introspection, gtk3, xrandr, python3Packages }:
+{ stdenv, fetchurl, python3Packages
+, gobject-introspection, gsettings-desktop-schemas, gtk3
+, wrapGAppsHook, xrandr
+}:
 
 let
   inherit (python3Packages) buildPythonApplication docutils pygobject3;
@@ -17,13 +20,13 @@ in buildPythonApplication rec {
   # no tests
   doCheck = false;
 
-  buildInputs = [ docutils ];
-  nativeBuildInputs = [ gobject-introspection gtk3 ];
-  propagatedBuildInputs = [ xrandr pygobject3 ];
+  # hook for gobject-introspection doesn't like strictDeps
+  # https://github.com/NixOS/nixpkgs/issues/56943
+  strictDeps = false;
 
-  makeWrapperArgs = [
-    "--set GI_TYPELIB_PATH $GI_TYPELIB_PATH"
-  ];
+  buildInputs = [ docutils gsettings-desktop-schemas gtk3 ];
+  nativeBuildInputs = [ gobject-introspection wrapGAppsHook ];
+  propagatedBuildInputs = [ xrandr pygobject3 ];
 
   meta = {
     homepage = http://christian.amsuess.com/tools/arandr/;
diff --git a/pkgs/tools/networking/ngrok-2/default.nix b/pkgs/tools/networking/ngrok-2/default.nix
index 89d6a9b454da..686bb1d7ebf3 100644
--- a/pkgs/tools/networking/ngrok-2/default.nix
+++ b/pkgs/tools/networking/ngrok-2/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl }:
+{ stdenv, fetchurl, patchelfUnstable }:
 
 with stdenv.lib;
 
@@ -24,13 +24,18 @@ stdenv.mkDerivation {
 
   sourceRoot = ".";
 
+  nativeBuildInputs = [ patchelfUnstable ];
+
   unpackPhase = "cp $src ngrok";
 
   buildPhase = "chmod a+x ngrok";
 
   installPhase = ''
     install -D ngrok $out/bin/ngrok
-  '';
+
+    patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \
+              $out/bin/ngrok
+    '';
 
   passthru.updateScript = ./update.sh;
 
diff --git a/pkgs/tools/networking/ngrok-2/versions.json b/pkgs/tools/networking/ngrok-2/versions.json
index 3d7aa8a56b6c..591e54a6f815 100644
--- a/pkgs/tools/networking/ngrok-2/versions.json
+++ b/pkgs/tools/networking/ngrok-2/versions.json
@@ -1,32 +1,32 @@
 {
   "linux-386": {
     "sys": "linux-386",
-    "url": "https://bin.equinox.io/a/jqJ2Vvh67gW/ngrok-2.3.18-linux-386",
-    "sha256": "2bebb8f39a3c19ca03eaf786b97c92876216d2297046e85271478edef2cd6404",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/6i2VnqLBZqg/ngrok-2.3.29-linux-386",
+    "sha256": "c0859f783e66a661dc1490e0cec95dfcce0ae77deaf0aa1838613afcbd8f9451",
+    "version": "2.3.29"
   },
   "linux-amd64": {
     "sys": "linux-amd64",
-    "url": "https://bin.equinox.io/a/ik4d9aurG9/ngrok-2.3.18-linux-amd64",
-    "sha256": "75e19c343a208bf0e2d3b613d2fa3ce67abbf25c04a1d6be670598a4c25c1694",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/6ws4BqFTLXR/ngrok-2.3.29-linux-amd64",
+    "sha256": "625e85af6d366be4cc54ba296a6e66d3311b99db36e6ea5fe7f88941874daabb",
+    "version": "2.3.29"
   },
   "linux-arm": {
     "sys": "linux-arm",
-    "url": "https://bin.equinox.io/a/c2KRZoJ5cb6/ngrok-2.3.18-linux-arm",
-    "sha256": "af4cdb9f116104921d7fbeeac9124e545a45495b3623b2b46da996400c305d9c",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/3Qx4EX7AtXt/ngrok-2.3.29-linux-arm",
+    "sha256": "8a2ec453b407bb0983d22819f3b76044100870888cc976fbf76ced18e6f66fa7",
+    "version": "2.3.29"
   },
   "linux-arm64": {
     "sys": "linux-arm64",
-    "url": "https://bin.equinox.io/a/b2NBP9tpq2E/ngrok-2.3.18-linux-arm64",
-    "sha256": "9e5fa5b83dc65803291b59867c664085de248a4adb3d415c4dbba1dae90a0aaf",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/7qbe9PkG69E/ngrok-2.3.29-linux-arm64",
+    "sha256": "c49a9c95dc0128e8129f9b7291b5049a45d13f27bb309ca8af59e498f98b97d0",
+    "version": "2.3.29"
   },
   "darwin-amd64": {
     "sys": "darwin-amd64",
-    "url": "https://bin.equinox.io/a/879TXbRQQRV/ngrok-2.3.18-darwin-amd64",
-    "sha256": "abb643bdba7ade5dabd60488b866804d814a41d4d7144fa09e01c9260e93659d",
-    "version": "2.3.18"
+    "url": "https://bin.equinox.io/a/eqL9fYWPxoV/ngrok-2.3.29-darwin-amd64",
+    "sha256": "916ad7b4706e4c770eb58667c5beabf227daa1ad35bbbee41883eb2bce3f254b",
+    "version": "2.3.29"
   }
 }
diff --git a/pkgs/tools/networking/openvpn/default.nix b/pkgs/tools/networking/openvpn/default.nix
index 3bcb1460a700..732687ecfa15 100644
--- a/pkgs/tools/networking/openvpn/default.nix
+++ b/pkgs/tools/networking/openvpn/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig
+{ stdenv, fetchurl, fetchpatch, pkgconfig
 , iproute, lzo, openssl, pam
 , useSystemd ? stdenv.isLinux, systemd ? null, utillinux ? null
 , pkcs11Support ? false, pkcs11helper ? null,
@@ -33,6 +33,13 @@ in stdenv.mkDerivation rec {
                   ++ optional useSystemd systemd
                   ++ optional pkcs11Support pkcs11helper;
 
+  patches = [
+    ( fetchpatch {
+      url = "https://sources.debian.org/data/main/o/openvpn/2.4.7-1/debian/patches/fix-pkcs11-helper-hang.patch";
+      sha256 = "0c8jzbfsmb0mm9f7kkjxac1hk8q6igm267s687vx3mdqs1wys6bm";
+    })
+  ];
+
   configureFlags = optionals stdenv.isLinux [
     "--enable-iproute2"
     "IPROUTE=${iproute}/sbin/ip" ]
diff --git a/pkgs/tools/networking/ubridge/default.nix b/pkgs/tools/networking/ubridge/default.nix
index 715a480e28dd..f6afddaba381 100644
--- a/pkgs/tools/networking/ubridge/default.nix
+++ b/pkgs/tools/networking/ubridge/default.nix
@@ -4,13 +4,13 @@
 
 stdenv.mkDerivation rec {
   name = "ubridge-${version}";
-  version = "0.9.15";
+  version = "0.9.16";
 
   src = fetchFromGitHub {
     owner = "GNS3";
     repo = "ubridge";
     rev = "v${version}";
-    sha256 = "0fl07zyall04map6v2l1bclqh8y3rrhsx61s2v0sr8b00j201jg4";
+    sha256 = "1bind7ylgxs743vfdmpdrpp4iamy461bc3i7nxza91kj7hyyjz6h";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/security/fprintd/default.nix b/pkgs/tools/security/fprintd/default.nix
index 65eec89a09fc..b43be1a69240 100644
--- a/pkgs/tools/security/fprintd/default.nix
+++ b/pkgs/tools/security/fprintd/default.nix
@@ -1,8 +1,9 @@
-{ stdenv, fetchurl, pkgconfig, intltool
-, libfprint, glib, dbus-glib, polkit, nss, pam, systemd }:
+{ thinkpad ? false
+, stdenv, fetchurl, pkgconfig, intltool, libfprint-thinkpad ? null
+, libfprint ? null, glib, dbus-glib, polkit, nss, pam, systemd }:
 
 stdenv.mkDerivation rec {
-  name = "fprintd-${version}";
+  pname = "fprintd" + stdenv.lib.optionalString thinkpad "-thinkpad";
   version = "0.8.1";
 
   src = fetchurl {
@@ -10,7 +11,10 @@ stdenv.mkDerivation rec {
     sha256 = "124s0g9syvglgsmqnavp2a8c0zcq8cyaph8p8iyvbla11vfizs9l";
   };
 
-  buildInputs = [ libfprint glib dbus-glib polkit nss pam systemd ];
+  buildInputs = [ glib dbus-glib polkit nss pam systemd ]
+    ++ stdenv.lib.optional thinkpad libfprint-thinkpad
+    ++ stdenv.lib.optional (!thinkpad) libfprint;
+
   nativeBuildInputs = [ pkgconfig intltool ];
 
   configureFlags = [ "--with-systemdsystemunitdir=$(out)/lib/systemd/system" "--localstatedir=/var" ];
diff --git a/pkgs/tools/security/monkeysphere/default.nix b/pkgs/tools/security/monkeysphere/default.nix
index af507dbf993b..ed1cda8030f2 100644
--- a/pkgs/tools/security/monkeysphere/default.nix
+++ b/pkgs/tools/security/monkeysphere/default.nix
@@ -2,7 +2,7 @@
 , perl, libassuan, libgcrypt
 , perlPackages, lockfileProgs, gnupg, coreutils
 # For the tests:
-, bash, openssh, which, socat, cpio, hexdump, openssl
+, bash, openssh, which, socat, cpio, hexdump, procps, openssl
 }:
 
 let
@@ -14,14 +14,14 @@ let
   });
 in stdenv.mkDerivation rec {
   name = "monkeysphere-${version}";
-  version = "0.43";
+  version = "0.44";
 
   # The patched OpenSSH binary MUST NOT be used (except in the check phase):
   disallowedRequisites = [ opensshUnsafe ];
 
   src = fetchurl {
     url = "http://archive.monkeysphere.info/debian/pool/monkeysphere/m/monkeysphere/monkeysphere_${version}.orig.tar.gz";
-    sha256 = "18i7qpvp5qb7mmd0z5rqai550rya9l3nbsq2hamwkl3smqsjdqc0";
+    sha256 = "1ah7hy8r9gj96pni8azzjb85454qky5l17m3pqn37854l6grgika";
   };
 
   patches = [ ./monkeysphere.patch ];
@@ -33,7 +33,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ makeWrapper ];
   buildInputs = [ perl libassuan libgcrypt ]
     ++ stdenv.lib.optional doCheck
-      ([ gnupg opensshUnsafe which socat cpio hexdump lockfileProgs ] ++
+      ([ gnupg opensshUnsafe which socat cpio hexdump procps lockfileProgs ] ++
       (with perlPackages; [ CryptOpenSSLRSA CryptOpenSSLBignum ]));
 
   makeFlags = ''
@@ -60,7 +60,7 @@ in stdenv.mkDerivation rec {
   postFixup =
     let wrapperArgs = runtimeDeps:
           "--prefix PERL5LIB : "
-          + (with perlPackages; makePerlPath [
+          + (with perlPackages; makePerlPath [ # Optional (only required for keytrans)
               CryptOpenSSLRSA
               CryptOpenSSLBignum
             ])
@@ -73,7 +73,7 @@ in stdenv.mkDerivation rec {
           (wrapMonkeysphere runtimeDeps)
           programs;
     in wrapPrograms [ gnupg ] [ "monkeysphere-authentication" "monkeysphere-host" ]
-      + wrapPrograms [ lockfileProgs ] [ "monkeysphere" ]
+      + wrapPrograms [ gnupg lockfileProgs ] [ "monkeysphere" ]
       + ''
         # These 4 programs depend on the program name ($0):
         for program in openpgp2pem openpgp2spki openpgp2ssh pem2openpgp; do
diff --git a/pkgs/tools/security/monkeysphere/monkeysphere.patch b/pkgs/tools/security/monkeysphere/monkeysphere.patch
index 0a05635d6a80..8cdd85017b93 100644
--- a/pkgs/tools/security/monkeysphere/monkeysphere.patch
+++ b/pkgs/tools/security/monkeysphere/monkeysphere.patch
@@ -10,15 +10,6 @@ diff --git a/Makefile b/Makefile
  	-e 's:__SYSCONFDIR_PREFIX__:$(ETCPREFIX):' \
  	-e 's:__SYSDATADIR_PREFIX__:$(LOCALSTATEDIR):'
  
-diff --git a/src/share/checkperms b/src/share/checkperms
---- a/src/share/checkperms
-+++ b/src/share/checkperms
-@@ -1,4 +1,4 @@
--#!/usr/bin/perl -T
-+#!/usr/bin/perl
- 
- # checkperms: ensure as best we can that a given file can only be
- # modified by the given user (or the superuser, naturally).  This
 diff --git a/src/share/keytrans b/src/share/keytrans
 --- a/src/share/keytrans
 +++ b/src/share/keytrans
@@ -28,17 +19,5 @@ diff --git a/src/share/keytrans b/src/share/keytrans
  
  # keytrans: this is an RSA key translation utility; it is capable of
  # transforming RSA keys (both public keys and secret keys) between
-diff --git a/tests/basic b/tests/basic
---- a/tests/basic
-+++ b/tests/basic
-@@ -343,7 +340,7 @@ if [ "$MONKEYSPHERE_TEST_USE_ED25519" = true ]; then
-     echo "### generating ed25519 key for testuser..."
-     # from the imported secret key
-     USER_FPR=8A4B353B4CBA6F30625498BAE00B5EEEBA79B482
--    gpg --quick-add-key "$USER_FPR" ed25519 auth 2d
-+    gpg --no-tty --quick-add-key "$USER_FPR" ed25519 auth 2d
- else
-     echo "### generating standard monkeysphere key for testuser..."
-     monkeysphere gen-subkey
 -- 
 2.16.3
diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix
index 52464121ee54..628e19ce82b5 100644
--- a/pkgs/top-level/aliases.nix
+++ b/pkgs/top-level/aliases.nix
@@ -256,7 +256,6 @@ mapAliases ({
   # end
   ppl-address-book = throw "deprecated in 2019-05-02: abandoned by upstream.";
   procps-ng = procps; # added 2018-06-08
-  pstree = psmisc; # added 2019-05-05
   pulseaudioLight = pulseaudio; # added 2018-04-25
   qca-qt5 = libsForQt5.qca-qt5;  # added 2015-12-19
   qt_gstreamer = qt-gstreamer;  # added 2017-02
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 532f809c678d..34391a10257c 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -2867,6 +2867,8 @@ in
 
   flannel = callPackage ../tools/networking/flannel { };
 
+  flare = callPackage ../games/flare { };
+
   flashbench = callPackage ../os-specific/linux/flashbench { };
 
   flatpak = callPackage ../development/libraries/flatpak { };
@@ -2985,6 +2987,9 @@ in
   fprot = callPackage ../tools/security/fprot { };
 
   fprintd = callPackage ../tools/security/fprintd { };
+  fprintd-thinkpad = fprintd.override {
+    thinkpad = true;
+  };
 
   franz = callPackage ../applications/networking/instant-messengers/franz { };
 
@@ -6013,6 +6018,8 @@ in
 
   svtplay-dl = callPackage ../tools/misc/svtplay-dl { };
 
+  symengine = callPackage ../development/libraries/symengine { };
+
   sysbench = callPackage ../development/tools/misc/sysbench {};
 
   system-config-printer = callPackage ../tools/misc/system-config-printer {
@@ -6026,6 +6033,8 @@ in
 
   systrayhelper = callPackage ../tools/misc/systrayhelper {};
 
+  Sylk = callPackage ../applications/networking/Sylk {};
+
   otter-browser = qt5.callPackage ../applications/networking/browsers/otter {};
 
   privoxy = callPackage ../tools/networking/privoxy {
@@ -11301,6 +11310,9 @@ in
   };
 
   libfprint = callPackage ../development/libraries/libfprint { };
+  libfprint-thinkpad = libfprint.override {
+    thinkpad = true;
+  };
 
   libfpx = callPackage ../development/libraries/libfpx { };
 
@@ -16418,6 +16430,8 @@ in
 
   qogir-theme = callPackage ../data/themes/qogir { };
 
+  redhat-official-fonts = callPackage ../data/fonts/redhat-official { };
+
   route159 = callPackage ../data/fonts/route159 { };
 
   sampradaya = callPackage ../data/fonts/sampradaya { };
@@ -19108,7 +19122,9 @@ in
 
   pig = callPackage ../applications/networking/cluster/pig { };
 
-  pijul = callPackage ../applications/version-management/pijul {};
+  pijul = callPackage ../applications/version-management/pijul {
+    inherit (llvmPackages) clang libclang;
+  };
 
   ping = callPackage ../applications/networking/ping { };
 
@@ -19558,6 +19574,8 @@ in
 
   psol = callPackage ../development/libraries/psol { };
 
+  pstree = callPackage ../applications/misc/pstree { };
+
   ptask = callPackage ../applications/misc/ptask { };
 
   pulseaudio-ctl = callPackage ../applications/audio/pulseaudio-ctl { };
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index f07f3d692389..f680f0952753 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -367,12 +367,12 @@ let
   };
 
   phpstan = mkDerivation rec {
-    version = "0.11.6";
+    version = "0.11.7";
     pname = "phpstan";
 
     src = pkgs.fetchurl {
       url = "https://github.com/phpstan/phpstan/releases/download/${version}/phpstan.phar";
-      sha256 = "016zm9ynh0zi40kclvzql7zxs3pl69cacln2c7n3gsicpswr0qa4";
+      sha256 = "0148ygnmj8wwal432isfq3zhf7qw902sfd2llwl6nw4wf0a6kf73";
     };
 
     phases = [ "installPhase" ];
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index cc281887d8bc..fe2fc7eff36e 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -511,6 +511,8 @@ in {
 
   logzero = callPackage ../development/python-modules/logzero { };
 
+  macropy = callPackage ../development/python-modules/macropy { };
+
   mail-parser = callPackage ../development/python-modules/mail-parser { };
 
   manhole = callPackage ../development/python-modules/manhole { };
@@ -1231,6 +1233,8 @@ in {
 
   cement = callPackage ../development/python-modules/cement {};
 
+  cgen = callPackage ../development/python-modules/cgen { };
+
   cgroup-utils = callPackage ../development/python-modules/cgroup-utils {};
 
   chainer = callPackage ../development/python-modules/chainer {
@@ -1779,6 +1783,8 @@ in {
 
   locket = callPackage ../development/python-modules/locket { };
 
+  loo-py = callPackage ../development/python-modules/loo-py { };
+
   tblib = callPackage ../development/python-modules/tblib { };
 
   s3fs = callPackage ../development/python-modules/s3fs { };
@@ -2079,6 +2085,8 @@ in {
 
   isbnlib = callPackage ../development/python-modules/isbnlib { };
 
+  islpy = callPackage ../development/python-modules/islpy { };
+
   itsdangerous = callPackage ../development/python-modules/itsdangerous { };
 
   iniparse = callPackage ../development/python-modules/iniparse { };
@@ -2281,6 +2289,8 @@ in {
 
   pylama = callPackage ../development/python-modules/pylama { };
 
+  pymbolic = callPackage ../development/python-modules/pymbolic { };
+
   pymediainfo = callPackage ../development/python-modules/pymediainfo { };
 
   pyphen = callPackage ../development/python-modules/pyphen {};
@@ -2608,6 +2618,8 @@ in {
 
   fiona = callPackage ../development/python-modules/fiona { gdal = pkgs.gdal; };
 
+  fitbit = callPackage ../development/python-modules/fitbit { };
+
   flake8 = callPackage ../development/python-modules/flake8 { };
 
   flake8-blind-except = callPackage ../development/python-modules/flake8-blind-except { };
@@ -3802,6 +3814,8 @@ in {
 
   pyasn1-modules = callPackage ../development/python-modules/pyasn1-modules { };
 
+  pyatmo = callPackage ../development/python-modules/pyatmo { };
+
   pyaudio = callPackage ../development/python-modules/pyaudio { };
 
   pysam = callPackage ../development/python-modules/pysam { };
@@ -4055,6 +4069,8 @@ in {
 
   pyserial = callPackage ../development/python-modules/pyserial {};
 
+  pysonos = callPackage ../development/python-modules/pysonos {};
+
   pymongo = callPackage ../development/python-modules/pymongo {};
 
   pyperclip = callPackage ../development/python-modules/pyperclip { };
@@ -4372,6 +4388,8 @@ in {
 
   statsmodels = callPackage ../development/python-modules/statsmodels { };
 
+  stravalib = callPackage ../development/python-modules/stravalib { };
+
   streamz = callPackage ../development/python-modules/streamz { };
 
   structlog = callPackage ../development/python-modules/structlog { };
@@ -4565,6 +4583,8 @@ in {
 
   pysendfile = callPackage ../development/python-modules/pysendfile { };
 
+  pyxl3 = callPackage ../development/python-modules/pyxl3 { };
+
   qpid-python = callPackage ../development/python-modules/qpid-python { };
 
   xattr = callPackage ../development/python-modules/xattr { };
@@ -4654,6 +4674,10 @@ in {
 
   python-vagrant = callPackage ../development/python-modules/python-vagrant { };
 
+  symengine = callPackage ../development/python-modules/symengine {
+    symengine = pkgs.symengine;
+  };
+
   sympy = callPackage ../development/python-modules/sympy { };
 
   pilkit = callPackage ../development/python-modules/pilkit { };
@@ -4794,6 +4818,8 @@ in {
 
   unidiff = callPackage ../development/python-modules/unidiff { };
 
+  units = callPackage ../development/python-modules/units { };
+
   unittest2 = callPackage ../development/python-modules/unittest2 { };
 
   unittest-xml-reporting = callPackage ../development/python-modules/unittest-xml-reporting { };
@@ -5429,6 +5455,8 @@ in {
 
   gensim = callPackage  ../development/python-modules/gensim { };
 
+  genpy = callPackage ../development/python-modules/genpy { };
+
   cymem = callPackage ../development/python-modules/cymem { };
 
   ftfy = callPackage ../development/python-modules/ftfy { };