summary refs log tree commit diff
path: root/pkgs/tools
diff options
context:
space:
mode:
authorFrederik Rietdijk <fridh@fridh.nl>2019-07-22 14:15:32 +0200
committerFrederik Rietdijk <fridh@fridh.nl>2019-07-22 14:15:32 +0200
commitdb6c38a075fbac96fabcc7759aa6e6ddd5526b0c (patch)
tree77e9e366af73273bcec75e089999824a39f08496 /pkgs/tools
parent16dec3974696dd2a83865f017402ac9fdfb8cf8a (diff)
parent62cb4f72282b228a9072452448b0574170bebc06 (diff)
downloadnixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.tar
nixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.tar.gz
nixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.tar.bz2
nixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.tar.lz
nixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.tar.xz
nixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.tar.zst
nixpkgs-db6c38a075fbac96fabcc7759aa6e6ddd5526b0c.zip
Merge master into staging-next
Diffstat (limited to 'pkgs/tools')
-rw-r--r--pkgs/tools/admin/awscli/default.nix6
-rw-r--r--pkgs/tools/admin/fastlane/default.nix5
-rwxr-xr-xpkgs/tools/admin/fastlane/update10
-rw-r--r--pkgs/tools/admin/oxidized/default.nix6
-rw-r--r--pkgs/tools/audio/video2midi/default.nix18
-rw-r--r--pkgs/tools/backup/dar/default.nix4
-rw-r--r--pkgs/tools/backup/lvmsync/default.nix6
-rw-r--r--pkgs/tools/filesystems/s3backer/default.nix4
-rw-r--r--pkgs/tools/filesystems/yandex-disk/default.nix4
-rw-r--r--pkgs/tools/inputmethods/fusuma/default.nix6
-rw-r--r--pkgs/tools/misc/docker-sync/default.nix6
-rw-r--r--pkgs/tools/misc/fluentd/default.nix6
-rw-r--r--pkgs/tools/misc/fxlinuxprintutil/default.nix59
-rw-r--r--pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch18
-rw-r--r--pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch28
-rw-r--r--pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch21
-rw-r--r--pkgs/tools/misc/homesick/default.nix8
-rw-r--r--pkgs/tools/misc/lolcat/default.nix6
-rw-r--r--pkgs/tools/misc/mimeo/default.nix4
-rw-r--r--pkgs/tools/misc/pws/default.nix8
-rw-r--r--pkgs/tools/misc/riemann-tools/default.nix6
-rw-r--r--pkgs/tools/misc/rrdtool/default.nix4
-rw-r--r--pkgs/tools/misc/t/default.nix6
-rw-r--r--pkgs/tools/misc/td/default.nix6
-rw-r--r--pkgs/tools/misc/teamocil/default.nix5
-rwxr-xr-xpkgs/tools/misc/teamocil/update10
-rw-r--r--pkgs/tools/networking/hue-cli/default.nix6
-rw-r--r--pkgs/tools/networking/maphosts/default.nix6
-rw-r--r--pkgs/tools/networking/p2p/libtorrent/default.nix10
-rw-r--r--pkgs/tools/networking/p2p/rtorrent/default.nix8
-rw-r--r--pkgs/tools/package-management/conda/default.nix3
-rw-r--r--pkgs/tools/package-management/elm-github-install/default.nix8
-rw-r--r--pkgs/tools/package-management/fpm/default.nix6
-rwxr-xr-xpkgs/tools/package-management/fpm/update10
-rw-r--r--pkgs/tools/package-management/protontricks/default.nix40
-rw-r--r--pkgs/tools/security/bundler-audit/default.nix6
-rw-r--r--pkgs/tools/system/colorls/default.nix6
-rw-r--r--pkgs/tools/system/hiera-eyaml/default.nix6
-rw-r--r--pkgs/tools/system/procodile/default.nix6
-rw-r--r--pkgs/tools/system/r10k/default.nix6
-rw-r--r--pkgs/tools/system/stress-ng/default.nix4
-rw-r--r--pkgs/tools/system/systemd-journal2gelf/default.nix16
-rw-r--r--pkgs/tools/system/systemd-journal2gelf/deps.nix11
-rw-r--r--pkgs/tools/text/bcat/default.nix6
-rw-r--r--pkgs/tools/text/kytea/default.nix4
-rw-r--r--pkgs/tools/text/papertrail/default.nix13
-rw-r--r--pkgs/tools/text/papertrail/shell.nix19
-rw-r--r--pkgs/tools/text/reckon/default.nix7
-rw-r--r--pkgs/tools/text/ripgrep/default.nix2
-rw-r--r--pkgs/tools/text/ruby-zoom/default.nix6
-rw-r--r--pkgs/tools/typesetting/asciidoctor/default.nix12
-rwxr-xr-xpkgs/tools/typesetting/asciidoctor/update.sh6
52 files changed, 334 insertions, 169 deletions
diff --git a/pkgs/tools/admin/awscli/default.nix b/pkgs/tools/admin/awscli/default.nix
index 44eb3731d37..f8a68bc6f64 100644
--- a/pkgs/tools/admin/awscli/default.nix
+++ b/pkgs/tools/admin/awscli/default.nix
@@ -2,6 +2,7 @@
 , python
 , groff
 , less
+, fetchpatch
 }:
 
 let
@@ -27,6 +28,11 @@ let
           inherit version;
           sha256 = "3ef3092145e9b70e3ddd2c7ad59bdd0252a94dfe3949721633e41344de00a6bf";
         };
+        # https://github.com/yaml/pyyaml/issues/298#issuecomment-511990948
+        patches = lib.singleton (fetchpatch {
+          url = "https://github.com/yaml/pyyaml/commit/c5b135fe39d41cffbdc006f28ccb2032df6005e0.patch";
+          sha256 = "0x1v45rkmj194c41d1nqi3ihj9z4rsy8zvpfcd8p960g1fia7fhn";
+        });
       });
     };
   };
diff --git a/pkgs/tools/admin/fastlane/default.nix b/pkgs/tools/admin/fastlane/default.nix
index 8aba7524008..3dbc8eea87b 100644
--- a/pkgs/tools/admin/fastlane/default.nix
+++ b/pkgs/tools/admin/fastlane/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, bundlerEnv, ruby, makeWrapper }:
+{ stdenv, bundlerEnv, ruby, bundlerUpdateScript, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "${pname}-${version}";
@@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
      --set FASTLANE_SKIP_UPDATE_CHECK 1
   '';
 
+  passthru.updateScript = bundlerUpdateScript "fastlane";
+
   meta = with stdenv.lib; {
     description     = "A tool to automate building and releasing iOS and Android apps";
     longDescription = "fastlane is a tool for iOS and Android developers to automate tedious tasks like generating screenshots, dealing with provisioning profiles, and releasing your application.";
@@ -28,6 +30,7 @@ stdenv.mkDerivation rec {
     license         = licenses.mit;
     maintainers     = with maintainers; [
       peterromfeldhk
+      nicknovitski
     ];
   };
 }
diff --git a/pkgs/tools/admin/fastlane/update b/pkgs/tools/admin/fastlane/update
deleted file mode 100755
index 22d1e52e297..00000000000
--- a/pkgs/tools/admin/fastlane/update
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -i bash -p bash ruby bundler bundix
-
-rm Gemfile.lock
-bundler install
-bundix
-
-if [ "clean" == "$1" ]; then
-  rm -r ~/.gem
-fi
diff --git a/pkgs/tools/admin/oxidized/default.nix b/pkgs/tools/admin/oxidized/default.nix
index 25b8bdb6585..e49d3957659 100644
--- a/pkgs/tools/admin/oxidized/default.nix
+++ b/pkgs/tools/admin/oxidized/default.nix
@@ -1,4 +1,4 @@
-{ lib, ruby, bundlerApp }:
+{ lib, ruby, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp rec {
   pname = "oxidized";
@@ -8,11 +8,13 @@ bundlerApp rec {
 
   exes = [ "oxidized" "oxidized-web" "oxidized-script" ];
 
+  passthru.updateScript = bundlerUpdateScript "oxidized";
+
   meta = with lib; {
     description = "Oxidized is a network device configuration backup tool. It's a RANCID replacement!";
     homepage    = https://github.com/ytti/oxidized;
     license     = licenses.asl20;
-    maintainers = [ maintainers.willibutz ];
+    maintainers = with maintainers; [ willibutz nicknovitski ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/tools/audio/video2midi/default.nix b/pkgs/tools/audio/video2midi/default.nix
index 4452aea280a..1ed5e48077b 100644
--- a/pkgs/tools/audio/video2midi/default.nix
+++ b/pkgs/tools/audio/video2midi/default.nix
@@ -1,28 +1,28 @@
-{ stdenv, fetchFromGitHub, python2Packages, opencv3 }:
+{ stdenv, fetchFromGitHub, pythonPackages, opencv3 }:
 
 let
-  opencv3_ = python2Packages.toPythonModule (opencv3.override {
+  opencv3_ = pythonPackages.toPythonModule (opencv3.override {
+    inherit pythonPackages;
     enablePython = true;
-    pythonPackages = python2Packages;
     enableFfmpeg = true;
   });
-in stdenv.mkDerivation rec {
+in pythonPackages.buildPythonApplication rec {
   pname = "video2midi";
-  version = "0.3.7";
+  version = "0.3.9.1";
+
+  format = "other";
 
   src = fetchFromGitHub {
     owner = "svsdval";
     repo = pname;
     rev = version;
-    sha256 = "00ms9iqam3ml6fxf8djki3gyifn8sfzfkkfrdgrvs0sq47wrkc39";
+    sha256 = "1ndzhfng8z5080n1xkcavw21dm6rjz0x1954v9llifsdmf4cpn8y";
   };
 
-  pythonPath = with python2Packages; [ opencv3_ midiutil pygame pyopengl ];
-  nativeBuildInputs = with python2Packages; [ python wrapPython ];
+  propagatedBuildInputs = with pythonPackages; [ opencv3_ midiutil pygame pyopengl ];
 
   installPhase = ''
     install -Dm755 v2m.py $out/bin/v2m.py
-    wrapPythonPrograms
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/tools/backup/dar/default.nix b/pkgs/tools/backup/dar/default.nix
index 196e15a0133..ac01dc6022b 100644
--- a/pkgs/tools/backup/dar/default.nix
+++ b/pkgs/tools/backup/dar/default.nix
@@ -3,12 +3,12 @@
 with stdenv.lib;
 
 stdenv.mkDerivation rec {
-  version = "2.6.4";
+  version = "2.6.5";
   name = "dar-${version}";
 
   src = fetchurl {
     url = "mirror://sourceforge/dar/${name}.tar.gz";
-    sha256 = "10djjpdv27kzjaa1saf1gq1g1yy4gj8qzjscyjh63r1kycflwnw5";
+    sha256 = "1x2zr5nw3qq1vmbs4bva6mx1cx0180dri5i2971ynzcxybn75znd";
   };
 
   buildInputs = [ zlib bzip2 openssl lzo libgcrypt gpgme xz ]
diff --git a/pkgs/tools/backup/lvmsync/default.nix b/pkgs/tools/backup/lvmsync/default.nix
index dc589316a58..0ed70ade829 100644
--- a/pkgs/tools/backup/lvmsync/default.nix
+++ b/pkgs/tools/backup/lvmsync/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, bundlerEnv, ruby, makeWrapper }:
+{ stdenv, bundlerEnv, ruby, bundlerUpdateScript, makeWrapper }:
 
 let
 
@@ -26,12 +26,14 @@ in stdenv.mkDerivation rec {
     makeWrapper ${env}/bin/lvmsync $out/bin/lvmsync
   '';
 
+  passthru.updateScript = bundlerUpdateScript "lvmsync";
+
   meta = with stdenv.lib; {
     description = "Optimised synchronisation of LVM snapshots over a network";
     homepage = http://theshed.hezmatt.org/lvmsync/;
     license = licenses.gpl3;
     platforms = platforms.all;
-    maintainers = with maintainers; [ jluttine ];
+    maintainers = with maintainers; [ jluttine nicknovitski ];
   };
 
 }
diff --git a/pkgs/tools/filesystems/s3backer/default.nix b/pkgs/tools/filesystems/s3backer/default.nix
index 033db7c18c2..8fb002b2d7f 100644
--- a/pkgs/tools/filesystems/s3backer/default.nix
+++ b/pkgs/tools/filesystems/s3backer/default.nix
@@ -4,10 +4,10 @@
 
 stdenv.mkDerivation rec {
   name = "s3backer-${version}";
-  version = "1.5.1";
+  version = "1.5.2";
 
   src = fetchFromGitHub {
-    sha256 = "0rfbylahnhv8sy9a8zkkfpyavf07dq3sdq060wrxnxbpad6qf91q";
+    sha256 = "1axxnhhf335xckwn43csqmvf1454izbk9dglc3r7isrk0lz1ricc";
     rev = version;
     repo = "s3backer";
     owner = "archiecobbs";
diff --git a/pkgs/tools/filesystems/yandex-disk/default.nix b/pkgs/tools/filesystems/yandex-disk/default.nix
index 3b9e4a02108..61fd5f26e30 100644
--- a/pkgs/tools/filesystems/yandex-disk/default.nix
+++ b/pkgs/tools/filesystems/yandex-disk/default.nix
@@ -4,7 +4,7 @@ let
   p = if stdenv.is64bit then {
       arch = "x86_64";
       gcclib = "${stdenv.cc.cc.lib}/lib64";
-      sha256 = "1hxsizk3hm1465wkxwdbbcffgi3r64y3r0zsfzsvhvnzx4y5dadm";
+      sha256 = "14bpc5ddhxvgfxkxhj5q9z443s7z4nn1zf4k1hxj7rbf13rcpg00";
     }
     else {
       arch = "i386";
@@ -15,7 +15,7 @@ in
 stdenv.mkDerivation rec {
 
   name = "yandex-disk-${version}";
-  version = "0.1.5.1010";
+  version = "0.1.5.1039";
 
   src = fetchurl {
     url = "https://repo.yandex.ru/yandex-disk/rpm/stable/${p.arch}/${name}-1.fedora.${p.arch}.rpm";
diff --git a/pkgs/tools/inputmethods/fusuma/default.nix b/pkgs/tools/inputmethods/fusuma/default.nix
index 2630ab0fc81..b410a21cd6b 100644
--- a/pkgs/tools/inputmethods/fusuma/default.nix
+++ b/pkgs/tools/inputmethods/fusuma/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerApp, makeWrapper, libinput }:
+{ lib, bundlerApp, bundlerUpdateScript, makeWrapper, libinput }:
 
 bundlerApp {
   pname = "fusuma";
@@ -12,11 +12,13 @@ bundlerApp {
       --prefix PATH : ${lib.makeBinPath [ libinput ]}
   '';
 
+  passthru.updateScript = bundlerUpdateScript "fusuma";
+
   meta = with lib; {
     description = "Multitouch gestures with libinput driver on X11, Linux";
     homepage    = https://github.com/iberianpig/fusuma;
     license     = licenses.mit;
-    maintainers = with maintainers; [ jfrankenau ];
+    maintainers = with maintainers; [ jfrankenau nicknovitski ];
     platforms   = platforms.linux;
   };
 }
diff --git a/pkgs/tools/misc/docker-sync/default.nix b/pkgs/tools/misc/docker-sync/default.nix
index e541fc0f0d4..e75b8347568 100644
--- a/pkgs/tools/misc/docker-sync/default.nix
+++ b/pkgs/tools/misc/docker-sync/default.nix
@@ -1,4 +1,4 @@
-{ lib, ruby, bundlerApp }:
+{ lib, ruby, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "docker-sync";
@@ -8,11 +8,13 @@ bundlerApp {
 
   exes = ["docker-sync"];
 
+  passthru.updateScript = bundlerUpdateScript "docker-sync";
+
   meta = with lib; {
     description = "Run your application at full speed while syncing your code for development";
     homepage = http://docker-sync.io;
     license = licenses.gpl3;
-    maintainers = [ maintainers.manveru ];
+    maintainers = with maintainers; [ manveru nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/fluentd/default.nix b/pkgs/tools/misc/fluentd/default.nix
index c9ee511ff83..18d03982f37 100644
--- a/pkgs/tools/misc/fluentd/default.nix
+++ b/pkgs/tools/misc/fluentd/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerEnv, ruby }:
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
 
 bundlerEnv {
   inherit ruby;
@@ -6,11 +6,13 @@ bundlerEnv {
   pname = "fluentd";
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript "fluentd";
+
   meta = with lib; {
     description = "A data collector";
     homepage    = https://www.fluentd.org/;
     license     = licenses.asl20;
-    maintainers = with maintainers; [ offline ];
+    maintainers = with maintainers; [ offline nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/fxlinuxprintutil/default.nix b/pkgs/tools/misc/fxlinuxprintutil/default.nix
new file mode 100644
index 00000000000..7965b591afb
--- /dev/null
+++ b/pkgs/tools/misc/fxlinuxprintutil/default.nix
@@ -0,0 +1,59 @@
+{ stdenv, lib, fetchzip, substituteAll, dpkg, autoPatchelfHook, cups, tcl, tk, xorg, makeWrapper }:
+let
+  debPlatform =
+    if stdenv.hostPlatform.system == "x86_64-linux" then "amd64"
+    else if stdenv.hostPlatform.system == "i686-linux" then "i386"
+         else throw "Unsupported system: ${stdenv.hostPlatform.system}";
+in
+stdenv.mkDerivation rec {
+  pname = "fxlinuxprintutil";
+  version = "1.1.1-1";
+
+  src = fetchzip {
+    url = "https://onlinesupport.fujixerox.com/driver_downloads/fxlinuxpdf112119031.zip";
+    sha256 = "1mv07ch6ysk9bknfmjqsgxb803sj6vfin29s9knaqv17jvgyh0n3";
+    curlOpts = "--user-agent Mozilla/5.0";  # HTTP 410 otherwise
+  };
+
+  patches = [
+    # replaces references to “path/to/fxlputil” via $0 that are broken by our wrapProgram
+    # with /nix/store/fxlinuxprintutil/bin/fxlputil
+    ./fxlputil.patch
+
+    # replaces the code that looks for Tcl packages in the working directory and /usr/lib
+    # or /usr/lib64 with /nix/store/fxlinuxprintutil/lib
+    ./fxlputil.tcl.patch
+
+    # replaces the code that looks for X11’s locale.alias in /usr/share/X11/locale or
+    # /usr/lib/X11/locale with /nix/store/libX11/share/X11/locale
+    (substituteAll {
+      src = ./fxlocalechk.tcl.patch;
+      inherit (xorg) libX11;
+    })
+  ];
+
+  nativeBuildInputs = [ dpkg autoPatchelfHook makeWrapper ];
+  buildInputs = [ cups tcl tk ];
+
+  sourceRoot = ".";
+  unpackCmd = "dpkg-deb -x $curSrc/${pname}_${version}_${debPlatform}.deb .";
+
+  dontConfigure = true;
+  dontBuild = true;
+
+  installPhase = ''
+    mkdir -p $out
+    mv usr/bin $out
+    mv usr/lib $out
+
+    wrapProgram $out/bin/fxlputil --prefix PATH : ${lib.makeBinPath [ tcl tk ]}
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Optional configuration tool for fxlinuxprint";
+    homepage = https://onlinesupport.fujixerox.com;
+    license = licenses.unfree;
+    maintainers = with maintainers; [ delan ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch b/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch
new file mode 100644
index 00000000000..fbf211065e9
--- /dev/null
+++ b/pkgs/tools/misc/fxlinuxprintutil/fxlocalechk.tcl.patch
@@ -0,0 +1,18 @@
+diff --git a/usr/bin/fxlocalechk.tcl b/usr/bin/fxlocalechk.tcl
+index f0ebc6c..c3486fe 100755
+--- a/usr/bin/fxlocalechk.tcl
++++ b/usr/bin/fxlocalechk.tcl
+@@ -12,12 +12,7 @@
+ #THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ 
+ #i18N
+-#---- check locale with environment variable
+-set locale_alias_path  /usr/share/X11/locale
+-
+-if {[file exists $locale_alias_path/locale.alias] != 1} {
+-    set locale_alias_path /usr/lib/X11/locale
+-}
++set locale_alias_path @libX11@/share/X11/locale
+ 
+ proc conv_locale {alias} {
+     global env envL locale_alias_path
diff --git a/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch b/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch
new file mode 100644
index 00000000000..972152b2cc3
--- /dev/null
+++ b/pkgs/tools/misc/fxlinuxprintutil/fxlputil.patch
@@ -0,0 +1,28 @@
+diff --git a/usr/bin/fxlputil b/usr/bin/fxlputil
+index cdac66d..aa86d02 100755
+--- a/usr/bin/fxlputil
++++ b/usr/bin/fxlputil
+@@ -7,17 +7,19 @@
+ #	TCL=`which fxlputil`
+ #fi
+ 
++wrapper=$(dirname $0)/fxlputil
++
+ #set LC_ALL
+-locale=`tclsh $0lo.tcl`
++locale=`tclsh ${wrapper}lo.tcl`
+ 
+ case $locale in
+ 	"ja")
+-		env LC_ALL=ja_JP.UTF-8 wish $0.tcl $1
++		env LC_ALL=ja_JP.UTF-8 wish ${wrapper}.tcl $1
+ 		;;
+ 	"en")
+-		env LC_ALL=en_US.ISO8859-1 wish $0.tcl $1
++		env LC_ALL=en_US.ISO8859-1 wish ${wrapper}.tcl $1
+ 		;;
+ 	*)
+-		env LC_ALL=C wish $0.tcl $1
++		env LC_ALL=C wish ${wrapper}.tcl $1
+ 		;;
+ esac
diff --git a/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch b/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch
new file mode 100644
index 00000000000..2bfbab450cb
--- /dev/null
+++ b/pkgs/tools/misc/fxlinuxprintutil/fxlputil.tcl.patch
@@ -0,0 +1,21 @@
+diff --git a/usr/bin/fxlputil.tcl b/usr/bin/fxlputil.tcl
+index 02eeaf6..788ed5a 100755
+--- a/usr/bin/fxlputil.tcl
++++ b/usr/bin/fxlputil.tcl
+@@ -25,14 +25,8 @@ catch {namespace import combobox::*}
+ 
+ 
+ 
+-lappend auto_path $cwd
+-
+-if {[lsearch $auto_path /usr/lib] == -1} {
+-	lappend auto_path /usr/lib
+-}
+-if {[lsearch $auto_path /usr/lib64] == -1} {
+-	lappend auto_path /usr/lib64
+-}
++# https://stackoverflow.com/a/23287132
++lappend auto_path [file join [file dirname [file dirname [info script]]] lib]
+ 
+ package require fxlputil
+ 
diff --git a/pkgs/tools/misc/homesick/default.nix b/pkgs/tools/misc/homesick/default.nix
index d35267fae27..00a9bf85650 100644
--- a/pkgs/tools/misc/homesick/default.nix
+++ b/pkgs/tools/misc/homesick/default.nix
@@ -1,6 +1,6 @@
-{ lib, bundlerEnv, git}:
+{ lib, bundlerEnv, bundlerUpdateScript, git }:
 bundlerEnv {
-  name = "homesick-1.1.6";
+  pname = "homesick";
 
   gemdir = ./.;
 
@@ -10,6 +10,8 @@ bundlerEnv {
     sed 1a'ENV["PATH"] = "${git}/bin:#{ENV["PATH"] ? ":#{ENV["PATH"]}" : "" }"' -i $out/bin/homesick
   '';
 
+  passthru.updateScript = bundlerUpdateScript "homesick";
+
   meta = with lib; {
     description = "Your home directory is your castle. Don't leave your dotfiles behind";
     longDescription =
@@ -20,7 +22,7 @@ bundlerEnv {
       '';
     homepage = https://github.com/technicalpickles/homesick;
     license = licenses.mit;
-    maintainers = with maintainers; [ aaronschif ];
+    maintainers = with maintainers; [ aaronschif nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/lolcat/default.nix b/pkgs/tools/misc/lolcat/default.nix
index 5b9466426bd..25efcdf3461 100644
--- a/pkgs/tools/misc/lolcat/default.nix
+++ b/pkgs/tools/misc/lolcat/default.nix
@@ -1,14 +1,16 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "lolcat";
   gemdir = ./.;
   exes = [ "lolcat" ];
 
+  passthru.updateScript = bundlerUpdateScript "lolcat";
+
   meta = with lib; {
     description = "A rainbow version of cat";
     homepage    = https://github.com/busyloop/lolcat;
     license     = licenses.bsd3;
-    maintainers = with maintainers; [ StillerHarpo manveru ];
+    maintainers = with maintainers; [ StillerHarpo manveru nicknovitski ];
   };
 }
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
index 03f9354445b..ea596a94213 100644
--- a/pkgs/tools/misc/mimeo/default.nix
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -2,11 +2,11 @@
 
 python3Packages.buildPythonApplication rec {
   name = "mimeo-${version}";
-  version = "2019.3";
+  version = "2019.7";
 
   src = fetchurl {
     url = "https://xyne.archlinux.ca/projects/mimeo/src/${name}.tar.xz";
-    sha256 = "1ry9f08584vngznbja76z53as12q2i06ncfnf52dxyidfgw5mx65";
+    sha256 = "0nzn7qvmpbb17d6q16llnhz1qdmyg718q59ic4gw2rq23cd6q47r";
   };
 
   buildInputs = [ file desktop-file-utils ];
diff --git a/pkgs/tools/misc/pws/default.nix b/pkgs/tools/misc/pws/default.nix
index 7294c61da8f..d5f2fd4afd4 100644
--- a/pkgs/tools/misc/pws/default.nix
+++ b/pkgs/tools/misc/pws/default.nix
@@ -1,7 +1,7 @@
-{ stdenv, lib, bundlerEnv, ruby, xsel, makeWrapper }:
+{ stdenv, lib, bundlerEnv, ruby, bundlerUpdateScript, xsel, makeWrapper }:
 
 stdenv.mkDerivation rec {
-  name = "pws-1.0.6";
+  name = "pws-${(import ./gemset.nix).pws.version}";
 
   env = bundlerEnv {
     name = "${name}-gems";
@@ -21,11 +21,13 @@ stdenv.mkDerivation rec {
       --set PATH '"${xsel}/bin/:$PATH"'
   '';
 
+  passthru.updateScript = bundlerUpdateScript "pws";
+
   meta = with lib; {
     description = "Command-line password safe";
     homepage    = https://github.com/janlelis/pws;
     license     = licenses.mit;
-    maintainers = [ maintainers.swistak35 ];
+    maintainers = with maintainers; [ swistak35 nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/riemann-tools/default.nix b/pkgs/tools/misc/riemann-tools/default.nix
index 6a3e1f3deb1..a9977aefd66 100644
--- a/pkgs/tools/misc/riemann-tools/default.nix
+++ b/pkgs/tools/misc/riemann-tools/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "riemann-tools";
@@ -26,10 +26,12 @@ bundlerApp {
     "riemann-zookeeper"
   ];
 
+  passthru.updateScript = bundlerUpdateScript "riemann-tools";
+
   meta = with lib; {
     description = "Tools to submit data to Riemann";
     homepage = "https://riemann.io";
-    maintainers = with maintainers; [ manveru ];
+    maintainers = with maintainers; [ manveru nicknovitski ];
     license = licenses.mit;
   };
 }
diff --git a/pkgs/tools/misc/rrdtool/default.nix b/pkgs/tools/misc/rrdtool/default.nix
index 2ea93319935..8365a47830a 100644
--- a/pkgs/tools/misc/rrdtool/default.nix
+++ b/pkgs/tools/misc/rrdtool/default.nix
@@ -2,11 +2,11 @@
 , tcl-8_5, darwin }:
 
 stdenv.mkDerivation rec {
-  name = "rrdtool-1.7.1";
+  name = "rrdtool-1.7.2";
 
   src = fetchurl {
     url = "https://oss.oetiker.ch/rrdtool/pub/${name}.tar.gz";
-    sha256 = "1bhsg119j94xwykp2sbp01hhxcg78gzblfn7j98slrv9va77g6wq";
+    sha256 = "1nsqra0g2nja19akmf9x5y9hhgc35ml3w9dcdz2ayz7zgvmzm6d1";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/misc/t/default.nix b/pkgs/tools/misc/t/default.nix
index 53e8471fb53..aa34b98bbe2 100644
--- a/pkgs/tools/misc/t/default.nix
+++ b/pkgs/tools/misc/t/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "t";
   gemdir = ./.;
   exes = [ "t" ];
 
+  passthru.updateScript = bundlerUpdateScript "t";
+
   meta = with lib; {
     description = "A command-line power tool for Twitter";
     homepage    = http://sferik.github.io/t/;
     license     = licenses.asl20;
-    maintainers = with maintainers; [ offline manveru ];
+    maintainers = with maintainers; [ offline manveru nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/td/default.nix b/pkgs/tools/misc/td/default.nix
index 121eff450b5..437bdb0373f 100644
--- a/pkgs/tools/misc/td/default.nix
+++ b/pkgs/tools/misc/td/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "td";
   gemdir = ./.;
   exes = [ "td" ];
 
+  passthru.updateScript = bundlerUpdateScript "td";
+
   meta = with lib; {
     description = "CLI to manage data on Treasure Data, the Hadoop-based cloud data warehousing.";
     homepage    = https://github.com/treasure-data/td;
     license     = licenses.asl20;
-    maintainers =  with maintainers; [ groodt ];
+    maintainers =  with maintainers; [ groodt nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/misc/teamocil/default.nix b/pkgs/tools/misc/teamocil/default.nix
index 2215e4d4fee..82aba612699 100644
--- a/pkgs/tools/misc/teamocil/default.nix
+++ b/pkgs/tools/misc/teamocil/default.nix
@@ -1,10 +1,12 @@
-{ lib, bundlerEnv, ruby }:
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
 
 bundlerEnv rec {
   inherit ruby;
   pname = "teamocil";
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript "teamocil";
+
   meta = with lib; {
     description     = "A simple tool used to automatically create windows and panes in tmux with YAML files";
     homepage        = https://github.com/remiprev/teamocil;
@@ -12,6 +14,7 @@ bundlerEnv rec {
     platforms       = platforms.all;
     maintainers     = with maintainers; [
       zachcoyle 
+      nicknovitski
     ];
   };
 }
diff --git a/pkgs/tools/misc/teamocil/update b/pkgs/tools/misc/teamocil/update
deleted file mode 100755
index 58a7bd4a453..00000000000
--- a/pkgs/tools/misc/teamocil/update
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -i bash -p bash ruby bundler bundix
-
-rm Gemfile.lock
-bundler install
-bundix
-
-if [ "clean" == "$1" ]; then
-  rm -rf ~/.gem
-fi
diff --git a/pkgs/tools/networking/hue-cli/default.nix b/pkgs/tools/networking/hue-cli/default.nix
index ae51bb69bda..b9b4a8eac9d 100644
--- a/pkgs/tools/networking/hue-cli/default.nix
+++ b/pkgs/tools/networking/hue-cli/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "hue-cli";
   gemdir = ./.;
   exes = [ "hue" ];
 
+  passthru.updateScript = bundlerUpdateScript "hue-cli";
+
   meta = with lib; {
     description = "Command line interface for controlling Philips Hue system's lights and bridge";
     homepage =  https://github.com/birkirb/hue-cli;
     license = licenses.mit;
     platforms = platforms.unix;
-    maintainers = with maintainers; [ manveru ];
+    maintainers = with maintainers; [ manveru nicknovitski ];
   };
 }
diff --git a/pkgs/tools/networking/maphosts/default.nix b/pkgs/tools/networking/maphosts/default.nix
index 3a48814928e..e54a2b21d9f 100644
--- a/pkgs/tools/networking/maphosts/default.nix
+++ b/pkgs/tools/networking/maphosts/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, bundlerEnv, ruby }:
+{ stdenv, lib, bundlerEnv, ruby, bundlerUpdateScript }:
 
 stdenv.mkDerivation rec {
   name = "maphosts-${env.gems.maphosts.version}";
@@ -16,11 +16,13 @@ stdenv.mkDerivation rec {
     ln -s "${env}/bin/maphosts" "$out/bin/maphosts"
   '';
 
+  passthru.updateScript = bundlerUpdateScript "maphosts";
+
   meta = with lib; {
     description = "Small command line application for keeping your project hostnames in sync with /etc/hosts";
     homepage    = https://github.com/mpscholten/maphosts;
     license     = licenses.mit;
-    maintainers = with maintainers; [ mpscholten ];
+    maintainers = with maintainers; [ mpscholten nicknovitski ];
     platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/networking/p2p/libtorrent/default.nix b/pkgs/tools/networking/p2p/libtorrent/default.nix
index 9c6f5eec11b..524b75d5582 100644
--- a/pkgs/tools/networking/p2p/libtorrent/default.nix
+++ b/pkgs/tools/networking/p2p/libtorrent/default.nix
@@ -5,14 +5,14 @@
 , openssl, libsigcxx, zlib }:
 
 stdenv.mkDerivation rec {
-  name = "libtorrent-${version}";
-  version = "0.13.7";
+  pname = "libtorrent";
+  version = "0.13.8";
 
   src = fetchFromGitHub {
     owner = "rakshasa";
-    repo = "libtorrent";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "027qanwcisxhx0bq8dn8cpg8563q0k2pm8ls278f04n7jqvvwkp0";
+    sha256 = "1h5y6ab3gs20yyprdfwcw8fh1c6czs4yrdj0kf54d2vp9qwz685r";
   };
 
   nativeBuildInputs = [ pkgconfig ];
@@ -21,7 +21,7 @@ stdenv.mkDerivation rec {
   preConfigure = "./autogen.sh";
 
   meta = with stdenv.lib; {
-    inherit (src.meta) homepage;
+    homepage = "https://github.com/rakshasa/libtorrent";
     description = "A BitTorrent library written in C++ for *nix, with focus on high performance and good code";
 
     platforms = platforms.unix;
diff --git a/pkgs/tools/networking/p2p/rtorrent/default.nix b/pkgs/tools/networking/p2p/rtorrent/default.nix
index 63652557efa..2ca31a6a1e7 100644
--- a/pkgs/tools/networking/p2p/rtorrent/default.nix
+++ b/pkgs/tools/networking/p2p/rtorrent/default.nix
@@ -8,14 +8,14 @@
 }:
 
 stdenv.mkDerivation rec {
-  name = "rtorrent-${version}";
-  version = "0.9.7";
+  pname = "rtorrent";
+  version = "0.9.8";
 
   src = fetchFromGitHub {
     owner = "rakshasa";
-    repo = "rtorrent";
+    repo = pname;
     rev = "v${version}";
-    sha256 = "0a9dk3cz56f7gad8ghsma79iy900rwdvzngs6k6x08nlwaqid8ga";
+    sha256 = "0hcaf1brk402caa7hhlb2r1c93mjzxkm8gb19xfl33gkp3jpf372";
   };
 
   nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/tools/package-management/conda/default.nix b/pkgs/tools/package-management/conda/default.nix
index 71dd7861808..92d0e254312 100644
--- a/pkgs/tools/package-management/conda/default.nix
+++ b/pkgs/tools/package-management/conda/default.nix
@@ -6,11 +6,12 @@
 , buildFHSUserEnv
 , libselinux
 , libarchive
+, libGL
 , xorg
 # Conda installs its packages and environments under this directory
 , installationPath ? "~/.conda"
 # Conda manages most pkgs itself, but expects a few to be on the system.
-, condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libXrender libselinux ]
+, condaDeps ? [ stdenv.cc xorg.libSM xorg.libICE xorg.libX11 xorg.libXau xorg.libXi xorg.libXrender libselinux libGL ]
 # Any extra nixpkgs you'd like available in the FHS env for Conda to use
 , extraPkgs ? [ ]
 }:
diff --git a/pkgs/tools/package-management/elm-github-install/default.nix b/pkgs/tools/package-management/elm-github-install/default.nix
index 1f70dc1c8c8..5703a13745b 100644
--- a/pkgs/tools/package-management/elm-github-install/default.nix
+++ b/pkgs/tools/package-management/elm-github-install/default.nix
@@ -1,17 +1,21 @@
-{ lib, bundlerEnv, ruby }:
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
 
 bundlerEnv rec {
+  pname = "elm_install";
   name = "elm-github-install-${version}";
 
   version = (import ./gemset.nix).elm_install.version;
+
   inherit ruby;
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript "elm-github-install";
+
   meta = with lib; {
     description = "Install Elm packages from git repositories.";
     homepage    = https://github.com/gdotdesign/elm-github-install;
     license     = licenses.unfree;
-    maintainers = [ maintainers.roberth ];
+    maintainers = with maintainers; [ roberth nicknovitski ];
     platforms   = platforms.all;
   };
 }
diff --git a/pkgs/tools/package-management/fpm/default.nix b/pkgs/tools/package-management/fpm/default.nix
index 905c686fede..ccb50717acc 100644
--- a/pkgs/tools/package-management/fpm/default.nix
+++ b/pkgs/tools/package-management/fpm/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "fpm";
   gemdir = ./.;
   exes = [ "fpm" ];
 
+  passthru.updateScript = bundlerUpdateScript "fpm";
+
   meta = with lib; {
     description = "Tool to build packages for multiple platforms with ease";
     homepage    = https://github.com/jordansissel/fpm;
     license     = licenses.mit;
-    maintainers = with maintainers; [ manveru ];
+    maintainers = with maintainers; [ manveru nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/package-management/fpm/update b/pkgs/tools/package-management/fpm/update
deleted file mode 100755
index 22d1e52e297..00000000000
--- a/pkgs/tools/package-management/fpm/update
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/usr/bin/env nix-shell
-#! nix-shell -i bash -p bash ruby bundler bundix
-
-rm Gemfile.lock
-bundler install
-bundix
-
-if [ "clean" == "$1" ]; then
-  rm -r ~/.gem
-fi
diff --git a/pkgs/tools/package-management/protontricks/default.nix b/pkgs/tools/package-management/protontricks/default.nix
new file mode 100644
index 00000000000..ae8dfc59075
--- /dev/null
+++ b/pkgs/tools/package-management/protontricks/default.nix
@@ -0,0 +1,40 @@
+{ stdenv, lib, buildPythonApplication, fetchFromGitHub
+, vdf, wine, winetricks, zenity
+}:
+
+buildPythonApplication rec {
+  pname = "protontricks";
+  version = "1.2.3";
+
+  src = fetchFromGitHub {
+    owner = "Matoking";
+    repo = pname;
+    rev = version;
+    sha256 = "1v7bgr1rkm8j99s5bv45cslw01qcx8i8zb6ysfrb53qz86zgkgsn";
+  };
+
+  propagatedBuildInputs = [ vdf ];
+
+  # The wine install shipped with Proton must run under steam's
+  # chrootenv, but winetricks and zenity break when running under
+  # it. See https://github.com/NixOS/nix/issues/902.
+  #
+  # The current workaround is to use wine from nixpkgs
+  makeWrapperArgs = [
+    "--set STEAM_RUNTIME 0"
+    "--set-default WINE ${wine}/bin/wine"
+    "--set-default WINESERVER ${wine}/bin/wineserver"
+    "--prefix PATH : ${lib.makeBinPath [
+      (winetricks.override { inherit wine; })
+      zenity
+    ]}"
+  ];
+
+  meta = with stdenv.lib; {
+    description = "A simple wrapper for running Winetricks commands for Proton-enabled games";
+    homepage = https://github.com/Matoking/protontricks;
+    license = licenses.gpl3;
+    platforms = with platforms; linux;
+    maintainers = with maintainers; [ metadark ];
+  };
+}
diff --git a/pkgs/tools/security/bundler-audit/default.nix b/pkgs/tools/security/bundler-audit/default.nix
index 8b19b6103d4..3712c129cf6 100644
--- a/pkgs/tools/security/bundler-audit/default.nix
+++ b/pkgs/tools/security/bundler-audit/default.nix
@@ -1,4 +1,4 @@
-{ bundlerEnv, ruby, lib }:
+{ bundlerEnv, ruby, lib, bundlerUpdateScript }:
 
 bundlerEnv rec {
   name = "${pname}-${version}";
@@ -8,6 +8,8 @@ bundlerEnv rec {
   inherit ruby;
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript "bundler-audit";
+
   meta = with lib; {
     description = "Patch-level verification for Bundler";
     longDescription = ''
@@ -20,7 +22,7 @@ bundlerEnv rec {
     '';
     homepage    = https://github.com/rubysec/bundler-audit;
     license     = licenses.gpl3Plus;
-    maintainers = with maintainers; [ primeos ];
+    maintainers = with maintainers; [ primeos nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/colorls/default.nix b/pkgs/tools/system/colorls/default.nix
index 45c3bdf1f40..62670fa11a0 100644
--- a/pkgs/tools/system/colorls/default.nix
+++ b/pkgs/tools/system/colorls/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerApp, ruby, ... }:
+{ lib, bundlerApp, ruby, bundlerUpdateScript }:
 
 bundlerApp rec {
   pname = "colorls";
@@ -6,11 +6,13 @@ bundlerApp rec {
   gemdir = ./.;
   exes = [ "colorls" ];
 
+  passthru.updateScript = bundlerUpdateScript "colorls";
+
   meta = with lib; {
     description = "Prettified LS";
     homepage    = https://github.com/athityakumar/colorls;
     license     = with licenses; mit;
-    maintainers = with maintainers; [ lukebfox ];
+    maintainers = with maintainers; [ lukebfox nicknovitski ];
     platforms   = ruby.meta.platforms;
   };
 }
diff --git a/pkgs/tools/system/hiera-eyaml/default.nix b/pkgs/tools/system/hiera-eyaml/default.nix
index e0ff7d5ca8b..33d97aa7d6b 100644
--- a/pkgs/tools/system/hiera-eyaml/default.nix
+++ b/pkgs/tools/system/hiera-eyaml/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerEnv, ruby }:
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
 
 bundlerEnv {
   inherit ruby;
   pname = "hiera-eyaml";
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript "hiera-eyaml";
+
   meta = with lib; {
     description = "Per-value asymmetric encryption of sensitive data for Hiera";
     homepage = https://github.com/TomPoulton/hiera-eyaml;
     license = licenses.mit;
-    maintainers = [ maintainers.benley ];
+    maintainers = with maintainers; [ benley nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/procodile/default.nix b/pkgs/tools/system/procodile/default.nix
index 22dc59a9e8e..3ae80a312ed 100644
--- a/pkgs/tools/system/procodile/default.nix
+++ b/pkgs/tools/system/procodile/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "procodile";
   gemdir = ./.;
   exes = [ "procodile" ];
 
+  passthru.updateScript = bundlerUpdateScript "procodile";
+
   meta = with lib; {
     description = "Run processes in the background (and foreground) on Mac & Linux from a Procfile (for production and/or development environments)";
     homepage    = https://adam.ac/procodile;
     license     = with licenses; mit;
-    maintainers = with maintainers; [ ravloony manveru ];
+    maintainers = with maintainers; [ ravloony manveru nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/r10k/default.nix b/pkgs/tools/system/r10k/default.nix
index 43d35410760..56e4e4f94fa 100644
--- a/pkgs/tools/system/r10k/default.nix
+++ b/pkgs/tools/system/r10k/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerApp, makeWrapper, git, gnutar, gzip }:
+{ lib, bundlerApp, bundlerUpdateScript, makeWrapper, git, gnutar, gzip }:
 
 bundlerApp {
   pname = "r10k";
@@ -11,11 +11,13 @@ bundlerApp {
     wrapProgram $out/bin/r10k --prefix PATH : ${lib.makeBinPath [ git gnutar gzip ]}
   '';
 
+  passthru.updateScript = bundlerUpdateScript "r10k";
+
   meta = with lib; {
     description = "Puppet environment and module deployment";
     homepage    = https://github.com/puppetlabs/r10k;
     license     = licenses.asl20;
-    maintainers = with maintainers; [ zimbatm manveru ];
+    maintainers = with maintainers; [ zimbatm manveru nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/system/stress-ng/default.nix b/pkgs/tools/system/stress-ng/default.nix
index 08f7f3039fb..5d5d3b1939d 100644
--- a/pkgs/tools/system/stress-ng/default.nix
+++ b/pkgs/tools/system/stress-ng/default.nix
@@ -4,11 +4,11 @@
 
 stdenv.mkDerivation rec {
   pname = "stress-ng";
-  version = "0.09.59.1";
+  version = "0.10.00";
 
   src = fetchurl {
     url = "https://kernel.ubuntu.com/~cking/tarballs/${pname}/${pname}-${version}.tar.xz";
-    sha256 = "0f3a6ki9v8lw4m9cwzlxsy7ykzmckgydnj2vypvwlr7rxcs19hxl";
+    sha256 = "0x602d9alilxxx2v59ryyg6s81l9nf8bxyavk5wf8jd5mshx57fh";
   };
 
   # All platforms inputs then Linux-only ones
diff --git a/pkgs/tools/system/systemd-journal2gelf/default.nix b/pkgs/tools/system/systemd-journal2gelf/default.nix
index 7230f55d309..2219d623a03 100644
--- a/pkgs/tools/system/systemd-journal2gelf/default.nix
+++ b/pkgs/tools/system/systemd-journal2gelf/default.nix
@@ -1,19 +1,17 @@
-{ stdenv, buildGoPackage, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
 
-buildGoPackage rec {
-  name = "SystemdJournal2Gelf-${version}";
-  version = "20170413";
-
-  goPackagePath = "github.com/parse-nl/SystemdJournal2Gelf";
+buildGoModule rec {
+  pname = "SystemdJournal2Gelf-unstable";
+  version = "20190702";
 
   src = fetchFromGitHub {
-    rev = "862b1d60d2ba12cd8480304ca95041066cc8bdd0";
+    rev = "b1aa5ff31307d11a3c9b4dd08c3cd6230d935ec5";
     owner = "parse-nl";
     repo = "SystemdJournal2Gelf";
-    sha256 = "0xvvc7w2sxkhb33nkq5v626l673d5j2z0yc75wvmqzncwfkkv94v";
+    sha256 = "0i2pv817fjm2xazxb01dk2gg1xb4d9b6743gqrbsyghbkm7krx29";
   };
 
-  goDeps = ./deps.nix;
+  modSha256 = "0f66bjij3bkjs09xhhp26arivlqrd66z1j5ziy4lq4krg82krsdp";
 
   meta = with stdenv.lib; {
     description = "Export entries from systemd's journal and send them to a graylog server using gelf";
diff --git a/pkgs/tools/system/systemd-journal2gelf/deps.nix b/pkgs/tools/system/systemd-journal2gelf/deps.nix
deleted file mode 100644
index 2e0988e8105..00000000000
--- a/pkgs/tools/system/systemd-journal2gelf/deps.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-[
-{
-  goPackagePath = "github.com/DECK36/go-gelf";
-  fetch = {
-    type = "git";
-    url = "https://github.com/DECK36/go-gelf";
-    rev = "4bc6123df0946a1c23fd54e0c1d0ed68b44fd99f";
-    sha256 = "071zdwcl8ld05gv88yym1p7xq72igd6jj05n5d7v01hn6rvj48ay";
-  };
-}
-]
diff --git a/pkgs/tools/text/bcat/default.nix b/pkgs/tools/text/bcat/default.nix
index 72fb8aa8e2e..e8000f17cde 100644
--- a/pkgs/tools/text/bcat/default.nix
+++ b/pkgs/tools/text/bcat/default.nix
@@ -1,15 +1,17 @@
-{ lib, bundlerApp }:
+{ lib, bundlerApp, bundlerUpdateScript }:
 
 bundlerApp {
   pname = "bcat";
   gemdir = ./.;
   exes = [ "bcat" "btee" "a2h" ];
 
+  passthru.updateScript = bundlerUpdateScript "bcat";
+
   meta = with lib; {
     description = "Pipe to browser utility";
     homepage    = http://rtomayko.github.com/bcat/;
     license     = licenses.mit;
-    maintainers = [ maintainers.jraygauthier ];
+    maintainers = with maintainers; [ jraygauthier nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/text/kytea/default.nix b/pkgs/tools/text/kytea/default.nix
index eb537c67a63..7254660cb1a 100644
--- a/pkgs/tools/text/kytea/default.nix
+++ b/pkgs/tools/text/kytea/default.nix
@@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
 
   patches = [ ./gcc-O3.patch ];
 
+  NIX_CFLAGS_COMPILE = stdenv.lib.optionalString stdenv.cc.isClang "-Wno-error=c++11-narrowing";
+
   meta = with stdenv.lib; {
     homepage = http://www.phontron.com/kytea/;
     description = "General toolkit developed for analyzing text";
@@ -24,7 +26,7 @@ stdenv.mkDerivation rec {
     license = licenses.asl20;
 
     maintainers = with maintainers; [ ericsagnes ndowens ];
-    platforms = platforms.linux;
+    platforms = platforms.unix;
   };
 
 }
diff --git a/pkgs/tools/text/papertrail/default.nix b/pkgs/tools/text/papertrail/default.nix
index a02ca1cd3dd..05213ff1a87 100644
--- a/pkgs/tools/text/papertrail/default.nix
+++ b/pkgs/tools/text/papertrail/default.nix
@@ -1,7 +1,6 @@
-{ stdenv, bundlerEnv, ruby}:
+{ stdenv, bundlerEnv, ruby, bundlerUpdateScript }:
 
 let
-  # To update, just run `nix-shell` in this directory.
   papertrail-env = bundlerEnv rec {
     name = "papertrail-env";
     inherit ruby;
@@ -18,4 +17,14 @@ in stdenv.mkDerivation {
     mkdir -p $out/bin
     ln -s ${papertrail-env}/bin/papertrail $out/bin/papertrail
   '';
+
+  passthru.updateScript = bundlerUpdateScript "papertrail";
+
+  meta = with stdenv.lib; {
+    description = "Command-line client for Papertrail log management service";
+    homepage    = http://github.com/papertrail/papertrail-cli/;
+    license     = licenses.mit;
+    maintainers = with maintainers; [ nicknovitski ];
+    platforms   = ruby.meta.platforms;
+  };
 }
diff --git a/pkgs/tools/text/papertrail/shell.nix b/pkgs/tools/text/papertrail/shell.nix
deleted file mode 100644
index 55a7a18f57b..00000000000
--- a/pkgs/tools/text/papertrail/shell.nix
+++ /dev/null
@@ -1,19 +0,0 @@
-{ pkgs ? import <nixpkgs> {} }:
-
-pkgs.stdenv.mkDerivation {
-  name = "papertrail";
-  src = ./.;
-
-  buildInputs = with pkgs; [
-    bundix
-    bundler
-    ruby
-  ];
-
-  shellHook = ''
-    truncate --size 0 Gemfile.lock
-    bundle install --path=vendor/bundle
-    rm -rf vendor .bundle
-    bundix
-  '';
-}
diff --git a/pkgs/tools/text/reckon/default.nix b/pkgs/tools/text/reckon/default.nix
index b97ffc7c58a..9e3e4d5b41d 100644
--- a/pkgs/tools/text/reckon/default.nix
+++ b/pkgs/tools/text/reckon/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, lib, bundlerEnv, makeWrapper }:
+{ stdenv, lib, bundlerEnv, bundlerUpdateScript, makeWrapper }:
 
 stdenv.mkDerivation rec {
   name = "reckon-${version}";
-  version = "0.4.4";
+  version = (import ./gemset.nix).reckon.version;
 
   env = bundlerEnv {
     name = "${name}-gems";
@@ -19,9 +19,12 @@ stdenv.mkDerivation rec {
     makeWrapper ${env}/bin/reckon $out/bin/reckon
   '';
 
+  passthru.updateScript = bundlerUpdateScript "reckon";
+
   meta = with lib; {
     description = "Flexibly import bank account CSV files into Ledger for command line accounting";
     license = licenses.mit;
+    maintainers = with maintainers; [ nicknovitski ];
     platforms = platforms.unix;
   };
 }
diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix
index 1563fe744ef..311767a786f 100644
--- a/pkgs/tools/text/ripgrep/default.nix
+++ b/pkgs/tools/text/ripgrep/default.nix
@@ -1,6 +1,6 @@
 { stdenv, fetchFromGitHub, rustPlatform, asciidoc, docbook_xsl, libxslt
 , Security
-, withPCRE2 ? false, pcre2 ? null
+, withPCRE2 ? true, pcre2 ? null
 }:
 
 rustPlatform.buildRustPackage rec {
diff --git a/pkgs/tools/text/ruby-zoom/default.nix b/pkgs/tools/text/ruby-zoom/default.nix
index b939e1500e4..c3953840836 100644
--- a/pkgs/tools/text/ruby-zoom/default.nix
+++ b/pkgs/tools/text/ruby-zoom/default.nix
@@ -1,4 +1,4 @@
-{ lib, bundlerEnv, ruby, stdenv }:
+{ lib, bundlerEnv, ruby, bundlerUpdateScript }:
 
 bundlerEnv {
   pname = "ruby-zoom";
@@ -6,11 +6,13 @@ bundlerEnv {
   inherit ruby;
   gemdir = ./.;
 
+  passthru.updateScript = bundlerUpdateScript "ruby-zoom";
+
   meta = with lib; {
     description = "Quickly open CLI search results in your favorite editor!";
     homepage    = https://gitlab.com/mjwhitta/zoom;
     license     = with licenses; gpl3;
-    maintainers = with stdenv.lib.maintainers; [ vmandela ];
+    maintainers = with maintainers; [ vmandela nicknovitski ];
     platforms   = platforms.unix;
   };
 }
diff --git a/pkgs/tools/typesetting/asciidoctor/default.nix b/pkgs/tools/typesetting/asciidoctor/default.nix
index 2f1c7e46154..20bbe782d91 100644
--- a/pkgs/tools/typesetting/asciidoctor/default.nix
+++ b/pkgs/tools/typesetting/asciidoctor/default.nix
@@ -1,8 +1,7 @@
 { lib, bundlerApp, makeWrapper,
   # Optional dependencies, can be null
   epubcheck, kindlegen,
-  # For the update shell
-  mkShell, bundix
+  bundlerUpdateScript
 }:
 
 let
@@ -26,21 +25,16 @@ let
       '';
 
     passthru = {
-      inherit updateShell;
+      updateScript = bundlerUpdateScript "asciidoctor";
     };
 
     meta = with lib; {
       description = "A faster Asciidoc processor written in Ruby";
       homepage = https://asciidoctor.org/;
       license = licenses.mit;
-      maintainers = with maintainers; [ gpyh ];
+      maintainers = with maintainers; [ gpyh nicknovitski ];
       platforms = platforms.unix;
     };
   };
-
-  updateShell = mkShell {
-    inputsFrom = lib.attrValues app.gems;
-    buildInputs = [ bundix ];
-  };
 in
   app
diff --git a/pkgs/tools/typesetting/asciidoctor/update.sh b/pkgs/tools/typesetting/asciidoctor/update.sh
deleted file mode 100755
index 1f7e5541cee..00000000000
--- a/pkgs/tools/typesetting/asciidoctor/update.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/usr/bin/env bash
-nix-shell ../../../.. -A asciidoctor.updateShell --run '
-  rm gemset.nix Gemfile.lock
-  bundix -m --bundle-pack-path $TMPDIR/asciidoctor-ruby-bundle
-  rm -r .bundle
-'