summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/misc/1password/default.nix8
-rw-r--r--pkgs/applications/misc/mupdf/darwin.patch71
-rw-r--r--pkgs/applications/misc/mupdf/default.nix18
-rw-r--r--pkgs/applications/misc/mupdf/mupdf-1.13-shared_libs-1.patch45
-rw-r--r--pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch39
-rw-r--r--pkgs/applications/networking/feedreaders/canto-curses/default.nix6
-rw-r--r--pkgs/applications/networking/feedreaders/canto-daemon/default.nix9
-rw-r--r--pkgs/applications/networking/remote/remmina/default.nix2
-rw-r--r--pkgs/applications/science/logic/acgtk/default.nix50
-rw-r--r--pkgs/applications/science/logic/acgtk/install-emacs-to-site-lisp.patch23
-rw-r--r--pkgs/applications/science/logic/acgtk/use-nix-ocaml-byteflags.patch11
-rw-r--r--pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix6
-rw-r--r--pkgs/data/fonts/ibm-plex/default.nix4
-rw-r--r--pkgs/development/compilers/graalvm/default.nix44
-rw-r--r--pkgs/development/coq-modules/contribs/default.nix2
-rw-r--r--pkgs/development/coq-modules/mathcomp/default.nix46
-rw-r--r--pkgs/development/coq-modules/mathcomp/generic.nix42
-rw-r--r--pkgs/development/coq-modules/ssreflect/default.nix47
-rw-r--r--pkgs/development/coq-modules/ssreflect/generic.nix49
-rw-r--r--pkgs/development/dhall-modules/default.nix9
-rw-r--r--pkgs/development/dhall-modules/prelude/v3.nix25
-rw-r--r--pkgs/development/haskell-modules/configuration-common.nix3
-rw-r--r--pkgs/development/haskell-modules/generic-builder.nix1
-rw-r--r--pkgs/development/interpreters/python/cpython/3.4/default.nix214
-rw-r--r--pkgs/development/interpreters/python/cpython/3.4/ld_library_path.patch51
-rw-r--r--pkgs/development/interpreters/python/cpython/3.4/no-ldconfig.patch147
-rw-r--r--pkgs/development/interpreters/python/cpython/3.4/use-correct-tcl-tk-on-darwin.patch48
-rw-r--r--pkgs/development/libraries/http-parser/default.nix40
-rw-r--r--pkgs/development/libraries/java/lombok/default.nix4
-rw-r--r--pkgs/development/python-modules/httmock/default.nix22
-rw-r--r--pkgs/development/python-modules/imageio/default.nix32
-rw-r--r--pkgs/development/python-modules/moviepy/default.nix1
-rw-r--r--pkgs/development/python-modules/python-gitlab/default.nix22
-rw-r--r--pkgs/development/tools/asmfmt/default.nix37
-rw-r--r--pkgs/development/tools/asmfmt/deps.nix20
-rw-r--r--pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix9
-rw-r--r--pkgs/development/tools/check/default.nix30
-rw-r--r--pkgs/development/tools/check/deps.nix11
-rw-r--r--pkgs/development/tools/deadcode/default.nix31
-rw-r--r--pkgs/development/tools/errcheck/default.nix29
-rw-r--r--pkgs/development/tools/errcheck/deps.nix20
-rw-r--r--pkgs/development/tools/go-tools/default.nix29
-rw-r--r--pkgs/development/tools/go-tools/deps.nix20
-rw-r--r--pkgs/development/tools/goconst/default.nix27
-rw-r--r--pkgs/development/tools/gocyclo/default.nix28
-rw-r--r--pkgs/development/tools/gogetdoc/default.nix31
-rw-r--r--pkgs/development/tools/gogetdoc/deps.nix13
-rw-r--r--pkgs/development/tools/gometalinter/default.nix70
-rw-r--r--pkgs/development/tools/gosec/default.nix29
-rw-r--r--pkgs/development/tools/gosec/deps.nix193
-rw-r--r--pkgs/development/tools/iferr/default.nix28
-rw-r--r--pkgs/development/tools/impl/default.nix30
-rw-r--r--pkgs/development/tools/impl/deps.nix11
-rw-r--r--pkgs/development/tools/ineffassign/default.nix29
-rw-r--r--pkgs/development/tools/interfacer/default.nix31
-rw-r--r--pkgs/development/tools/interfacer/deps.nix29
-rw-r--r--pkgs/development/tools/maligned/default.nix30
-rw-r--r--pkgs/development/tools/maligned/deps.nix20
-rw-r--r--pkgs/development/tools/reftools/default.nix29
-rw-r--r--pkgs/development/tools/unconvert/default.nix31
-rw-r--r--pkgs/development/tools/unconvert/deps.nix29
-rw-r--r--pkgs/misc/brightnessctl/default.nix12
-rw-r--r--pkgs/misc/emulators/retroarch/default.nix4
-rw-r--r--pkgs/misc/vim-plugins/overrides.nix34
-rw-r--r--pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix39
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.14.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.18.nix4
-rw-r--r--pkgs/os-specific/linux/kernel/linux-4.19.nix4
-rw-r--r--pkgs/servers/matrix-synapse/default.nix51
-rw-r--r--pkgs/servers/plex/default.nix6
-rw-r--r--pkgs/tools/admin/fastlane/Gemfile.lock10
-rw-r--r--pkgs/tools/admin/fastlane/gemset.nix16
-rw-r--r--pkgs/tools/backup/bup/default.nix4
-rw-r--r--pkgs/tools/misc/svtplay-dl/default.nix12
-rw-r--r--pkgs/tools/misc/tmux/default.nix4
-rw-r--r--pkgs/top-level/all-packages.nix134
-rw-r--r--pkgs/top-level/coq-packages.nix11
-rw-r--r--pkgs/top-level/python-packages.nix4
-rw-r--r--pkgs/top-level/stage.nix4
79 files changed, 1487 insertions, 935 deletions
diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix
index 331f516c88ce..a25d40e29bd0 100644
--- a/pkgs/applications/misc/1password/default.nix
+++ b/pkgs/applications/misc/1password/default.nix
@@ -2,24 +2,24 @@
 
 stdenv.mkDerivation rec {
   name = "1password-${version}";
-  version = "0.5.3";
+  version = "0.5.4";
   src =
     if stdenv.hostPlatform.system == "i686-linux" then
       fetchzip {
         url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_386_v${version}.zip";
-        sha256 = "05s223h1yps4k9kmignl0r5sbh6w7m1hnlmafnf1kiwv7gacvxjc";
+        sha256 = "0wni2hk5b1qfr24vi24jiprpi08k3qgaw9lqp61k41a1sjp3izv0";
         stripRoot = false;
       }
     else if stdenv.hostPlatform.system == "x86_64-linux" then
       fetchzip {
         url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_amd64_v${version}.zip";
-        sha256 = "0p9x1fx0309v8dxxaf88m8x8q15zzqywfmjn6v5wb9v3scp9396v";
+        sha256 = "169d5fl3cfw3xrlpm9nlmwbnp0xgh0la9qybzf8ragp0020nlyih";
         stripRoot = false;
       }
     else if stdenv.hostPlatform.system == "x86_64-darwin" then
       fetchzip {
         url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.zip";
-        sha256 = "1z2xp9bn93gr4ha6zx65va1fb58a2xlnnmpv583y96gq3vbnqdcj";
+        sha256 = "1scikv7v33kzg9rqsrz97yklxaskvif84br13zg8annm43k5vlma";
         stripRoot = false;
       }
     else throw "Architecture not supported";
diff --git a/pkgs/applications/misc/mupdf/darwin.patch b/pkgs/applications/misc/mupdf/darwin.patch
index 7466fc2ca62b..be1b84b0012f 100644
--- a/pkgs/applications/misc/mupdf/darwin.patch
+++ b/pkgs/applications/misc/mupdf/darwin.patch
@@ -1,47 +1,30 @@
-diff --git a/Makerules b/Makerules
---- a/Makerules
-+++ b/Makerules
-@@ -81,22 +81,10 @@ HAVE_GLUT ?= yes
- SYS_GLUT_CFLAGS := -Wno-deprecated-declarations
- SYS_GLUT_LIBS := -framework GLUT -framework OpenGL
- 
--CC = xcrun cc
--AR = xcrun ar
--LD = xcrun ld
--RANLIB_CMD = xcrun ranlib $@
--
--# Linux uses pkg-config for system libraries.
--else ifeq "$(OS)" "Linux"
+diff -ruN mupdf-1.14.0-source.orig/Makerules mupdf-1.14.0-source/Makerules
+--- mupdf-1.14.0-source.orig/Makerules	2018-11-02 06:57:12.114012496 +0100
++++ mupdf-1.14.0-source/Makerules	2018-11-02 10:11:56.717232992 +0100
+@@ -80,13 +80,6 @@
+   HAVE_GLUT := yes
+   SYS_GLUT_CFLAGS := -Wno-deprecated-declarations
+   SYS_GLUT_LIBS := -framework GLUT -framework OpenGL
+-  CC = xcrun cc
+-  AR = xcrun ar
+-  LD = xcrun ld
+-  RANLIB = xcrun ranlib
 -
- HAVE_PTHREAD := yes
- SYS_PTHREAD_CFLAGS :=
- SYS_PTHREAD_LIBS := -lpthread
+-else ifeq ($(OS),Linux)
+-  HAVE_OBJCOPY := yes
  
--HAVE_GLUT := yes
--SYS_GLUT_CFLAGS :=
--SYS_GLUT_LIBS := -lglut -lGL
--
- ifeq "$(shell pkg-config --exists 'libcrypto >= 1.1.0' && echo yes)" "yes"
- HAVE_LIBCRYPTO := yes
- SYS_LIBCRYPTO_CFLAGS := -DHAVE_LIBCRYPTO $(shell pkg-config --cflags libcrypto)
-@@ -113,7 +101,7 @@ SYS_CURL_CFLAGS += $(shell pkg-config --cflags openssl)
- SYS_CURL_DEPS += $(shell pkg-config --libs openssl)
- endif
- endif
--SYS_CURL_DEPS += -lpthread -lrt
-+SYS_CURL_DEPS += -lpthread
+   ifeq ($(shell pkg-config --exists freetype2 && echo yes),yes)
+ 	SYS_FREETYPE_CFLAGS := $(shell pkg-config --cflags freetype2)
+@@ -119,12 +112,6 @@
+ 	SYS_CURL_LIBS := $(shell pkg-config --libs libcurl)
+   endif
  
- ifeq "$(shell pkg-config --exists x11 xext && echo yes)" "yes"
- HAVE_X11 := yes
-diff --git a/platform/gl/gl-main.c b/platform/gl/gl-main.c
-index d58f7ba..808af18 100644
---- a/platform/gl/gl-main.c
-+++ b/platform/gl/gl-main.c
-@@ -16,6 +16,7 @@ void glutExit(void) {}
- void glutMouseWheelFunc(void *fn) {}
- void glutInitErrorFunc(void *fn) {}
- void glutInitWarningFunc(void *fn) {}
-+#define glutSetOption(X,Y)
- #endif
- 
- enum
+-  HAVE_GLUT := yes
+-  ifeq ($(HAVE_GLUT),yes)
+-	SYS_GLUT_CFLAGS :=
+-	SYS_GLUT_LIBS := -lglut -lGL
+-  endif
+-
+   HAVE_X11 := $(shell pkg-config --exists x11 xext && echo yes)
+   ifeq ($(HAVE_X11),yes)
+ 	X11_CFLAGS := $(shell pkg-config --cflags x11 xext)
diff --git a/pkgs/applications/misc/mupdf/default.nix b/pkgs/applications/misc/mupdf/default.nix
index bce2a79cde33..d4f59272c9c9 100644
--- a/pkgs/applications/misc/mupdf/default.nix
+++ b/pkgs/applications/misc/mupdf/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchpatch, pkgconfig, freetype, harfbuzz, openjpeg
+{ stdenv, lib, fetchurl, pkgconfig, freetype, harfbuzz, openjpeg
 , jbig2dec, libjpeg , darwin
 , enableX11 ? true, libX11, libXext, libXi, libXrandr
 , enableCurl ? true, curl, openssl
@@ -14,23 +14,17 @@ let
 
 
 in stdenv.mkDerivation rec {
-  version = "1.13.0";
+  version = "1.14.0";
   name = "mupdf-${version}";
 
   src = fetchurl {
     url = "https://mupdf.com/downloads/archive/${name}-source.tar.gz";
-    sha256 = "02faww5bnjw76k6igrjzwf0lnw4xd9ckc8d6ilc3c4gfrdi6j707";
+    sha256 = "093p7lv6pgyymagn28n58fs0np928r0i5p2az9cc4gwccwx4hhy4";
   };
 
-  patches = [
-    (fetchpatch {
-      name = "CVE-2018-10289.patch";
-      url = "https://bugs.ghostscript.com/attachment.cgi?id=15230";
-      sha256 = "0jmpacxd9930g6k57kda9jrcrbk75whdlv8xwmqg5jwn848qvy4q";
-    })
-  ]
+  patches =
     # Use shared libraries to decrease size
-    ++ stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.13-shared_libs-1.patch
+       stdenv.lib.optional (!stdenv.isDarwin) ./mupdf-1.14-shared_libs.patch
     ++ stdenv.lib.optional stdenv.isDarwin ./darwin.patch
   ;
 
@@ -38,7 +32,7 @@ in stdenv.mkDerivation rec {
     sed -i "s/__OPENJPEG__VERSION__/${openJpegVersion}/" source/fitz/load-jpx.c
   '';
 
-  makeFlags = [ "prefix=$(out)" ];
+  makeFlags = [ "prefix=$(out) USE_SYSTEM_LIBS=yes" ];
   nativeBuildInputs = [ pkgconfig ];
   buildInputs = [ freetype harfbuzz openjpeg jbig2dec libjpeg freeglut libGLU ]
                 ++ lib.optionals enableX11 [ libX11 libXext libXi libXrandr ]
diff --git a/pkgs/applications/misc/mupdf/mupdf-1.13-shared_libs-1.patch b/pkgs/applications/misc/mupdf/mupdf-1.13-shared_libs-1.patch
deleted file mode 100644
index e29f1f52077c..000000000000
--- a/pkgs/applications/misc/mupdf/mupdf-1.13-shared_libs-1.patch
+++ /dev/null
@@ -1,45 +0,0 @@
---- mupdf-1.12.0-source.orig/Makefile	2017-12-13 15:00:30.000000000 +0100
-+++ mupdf-1.12.0-source/Makefile	2017-12-31 00:05:23.003277481 +0100
-@@ -14,7 +14,7 @@
- # Do not specify CFLAGS or LIBS on the make invocation line - specify
- # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that
- # set a variable that was set on the command line.
--CFLAGS += $(XCFLAGS) -Iinclude
-+CFLAGS += $(XCFLAGS) -Iinclude -fPIC
- LIBS += $(XLIBS) -lm
- 
- LIBS += $(FREETYPE_LIBS)
-@@ -312,10 +312,10 @@
- 
- # --- Library ---
- 
--MUPDF_LIB = $(OUT)/libmupdf.a
--THIRD_LIB = $(OUT)/libmupdfthird.a
--THREAD_LIB = $(OUT)/libmuthreads.a
--PKCS7_LIB = $(OUT)/libmupkcs7.a
-+MUPDF_LIB = $(OUT)/libmupdf.so
-+THIRD_LIB = $(OUT)/libmupdfthird.so
-+THREAD_LIB = $(OUT)/libmuthreads.so
-+PKCS7_LIB = $(OUT)/libmupkcs7.so
- 
- MUPDF_OBJ := \
- 	$(FITZ_OBJ) \
-@@ -343,13 +343,17 @@
- 	$(ZLIB_OBJ) \
- 	$(LCMS2_OBJ)
- 
--$(MUPDF_LIB) : $(MUPDF_OBJ)
-+$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_LIB) $(THREAD_LIB)
-+	$(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf.so -Wl,--no-undefined
- $(THIRD_LIB) : $(THIRD_OBJ)
-+	$(LINK_CMD) -shared -Wl,-soname -Wl,libmupdfthird.so -Wl,--no-undefined
- $(THREAD_LIB) : $(THREAD_OBJ)
-+	$(LINK_CMD) -shared -Wl,-soname -Wl,libmuthreads.so -Wl,--no-undefined -lpthread
- $(PKCS7_LIB) : $(PKCS7_OBJ)
-+	$(LINK_CMD) -shared -Wl,-soname -Wl,libmupkcs7.so
- 
--INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB)
-+INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB)
- 
- # --- Tools and Apps ---
- 
diff --git a/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch b/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch
new file mode 100644
index 000000000000..131a1bbbf6bd
--- /dev/null
+++ b/pkgs/applications/misc/mupdf/mupdf-1.14-shared_libs.patch
@@ -0,0 +1,39 @@
+--- mupdf-1.14.0-source.orig/Makefile	2018-11-02 06:57:12.114012496 +0100
++++ mupdf-1.14.0-source/Makefile	2018-11-02 09:57:10.067945307 +0100
+@@ -20,7 +20,7 @@
+ # Do not specify CFLAGS or LIBS on the make invocation line - specify
+ # XCFLAGS or XLIBS instead. Make ignores any lines in the makefile that
+ # set a variable that was set on the command line.
+-CFLAGS += $(XCFLAGS) -Iinclude
++CFLAGS += $(XCFLAGS) -Iinclude -fPIC
+ LIBS += $(XLIBS) -lm
+ 
+ ifneq ($(threading),no)
+@@ -190,17 +190,21 @@
+ 
+ # --- Library ---
+ 
+-MUPDF_LIB = $(OUT)/libmupdf.a
+-THIRD_LIB = $(OUT)/libmupdf-third.a
+-THREAD_LIB = $(OUT)/libmupdf-threads.a
+-PKCS7_LIB = $(OUT)/libmupdf-pkcs7.a
++MUPDF_LIB = $(OUT)/libmupdf.so
++THIRD_LIB = $(OUT)/libmupdf-third.so
++THREAD_LIB = $(OUT)/libmupdf-threads.so
++PKCS7_LIB = $(OUT)/libmupdf-pkcs7.so
+ 
+-$(MUPDF_LIB) : $(MUPDF_OBJ)
++$(MUPDF_LIB) : $(MUPDF_OBJ) $(THIRD_LIB) $(THREAD_LIB)
++	$(LINK_CMD) $(THIRD_LIBS) -shared -Wl,-soname -Wl,libmupdf.so -Wl,--no-undefined
+ $(THIRD_LIB) : $(THIRD_OBJ)
++	$(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-third.so -Wl,--no-undefined
+ $(THREAD_LIB) : $(THREAD_OBJ)
++	$(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-threads.so -Wl,--no-undefined -lpthread
+ $(PKCS7_LIB) : $(PKCS7_OBJ)
++	$(LINK_CMD) -shared -Wl,-soname -Wl,libmupdf-pkcs7.so
+ 
+-INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB)
++INSTALL_LIBS := $(MUPDF_LIB) $(THIRD_LIB) $(THREAD_LIB) $(PKCS7_LIB)
+ 
+ # --- Main tools and viewers ---
+ 
diff --git a/pkgs/applications/networking/feedreaders/canto-curses/default.nix b/pkgs/applications/networking/feedreaders/canto-curses/default.nix
index 0190d5f9798f..36b4732ca2e7 100644
--- a/pkgs/applications/networking/feedreaders/canto-curses/default.nix
+++ b/pkgs/applications/networking/feedreaders/canto-curses/default.nix
@@ -1,8 +1,8 @@
-{ stdenv, fetchFromGitHub, python34Packages, readline, ncurses, canto-daemon }:
+{ stdenv, fetchFromGitHub, python3Packages, readline, ncurses, canto-daemon }:
 
-python34Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   version = "0.9.9";
-  name = "canto-curses-${version}";
+  pname = "canto-curses";
 
   src = fetchFromGitHub {
     owner = "themoken";
diff --git a/pkgs/applications/networking/feedreaders/canto-daemon/default.nix b/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
index 4b1721278e3d..e700c5634ad6 100644
--- a/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
+++ b/pkgs/applications/networking/feedreaders/canto-daemon/default.nix
@@ -1,9 +1,8 @@
-{ stdenv, fetchFromGitHub, python34Packages, }:
+{ stdenv, fetchFromGitHub, python3Packages, }:
 
-python34Packages.buildPythonApplication rec {
+python3Packages.buildPythonApplication rec {
   version = "0.9.7";
-  name = "canto-daemon-${version}";
-  namePrefix = "";
+  pname = "canto-daemon";
 
   src = fetchFromGitHub {
     owner = "themoken";
@@ -12,7 +11,7 @@ python34Packages.buildPythonApplication rec {
     sha256 = "1si53r8cd4avfc56r315zyrghkppnjd6n125z1agfv59i7hdmk3n";
   };
 
-  propagatedBuildInputs = with python34Packages; [ feedparser ];
+  propagatedBuildInputs = with python3Packages; [ feedparser ];
 
   meta = {
     description = "Daemon for the canto Atom/RSS feed reader";
diff --git a/pkgs/applications/networking/remote/remmina/default.nix b/pkgs/applications/networking/remote/remmina/default.nix
index 81ced3e641bc..dc17ccc4a370 100644
--- a/pkgs/applications/networking/remote/remmina/default.nix
+++ b/pkgs/applications/networking/remote/remmina/default.nix
@@ -11,7 +11,7 @@
 
 with stdenv.lib;
 
-stdenv.mkDerivation {
+stdenv.mkDerivation rec {
   name = "remmina-${version}";
   version = "1.2.32";
 
diff --git a/pkgs/applications/science/logic/acgtk/default.nix b/pkgs/applications/science/logic/acgtk/default.nix
index b787a4e7a01c..729aef4e21c2 100644
--- a/pkgs/applications/science/logic/acgtk/default.nix
+++ b/pkgs/applications/science/logic/acgtk/default.nix
@@ -1,57 +1,27 @@
-{ stdenv, fetchurl, ocamlPackages,
-  buildBytecode ? true,
-  buildNative ? true,
-  installExamples ? true,
-  installEmacsMode ? true }:
-
-let inherit (stdenv.lib) versionAtLeast optionalString; in
-
-let inherit (ocamlPackages) ocaml camlp4; in
-
-assert buildBytecode || buildNative;
+{ stdenv, fetchurl, dune, ocamlPackages }:
 
 stdenv.mkDerivation {
 
-  name = "acgtk-1.3.1";
+  name = "acgtk-1.5.0";
 
   src = fetchurl {
-    url = http://calligramme.loria.fr/acg/software/acg-1.3.1-20170303.tar.gz;
-    sha256 = "1hhrf6bx2x2wbv5ldn4fnxhpr9lyrj3zh1vcnx8wf8f06ih4rzfq";
+    url = http://calligramme.loria.fr/acg/software/acg-1.5.0-20181019.tar.gz;
+    sha256 = "14n003gxzw5w79hlpw1ja4nq97jqf9zqyg00ihvpxw4bv9jlm8jm";
   };
 
-  buildInputs = with ocamlPackages; [
-    ocaml findlib camlp4 ansiterminal biniou bolt cairo2 dypgen easy-format ocf yojson
-  ];
-
-  patches = [ ./install-emacs-to-site-lisp.patch
-              ./use-nix-ocaml-byteflags.patch ];
-
-  postPatch = optionalString (camlp4 != null) ''
-    substituteInPlace src/Makefile.master.in \
-      --replace "+camlp4" "${camlp4}/lib/ocaml/${ocaml.version}/site-lib/camlp4/"
-  '' + optionalString (versionAtLeast (stdenv.lib.getVersion ocamlPackages.yojson) "1.4") ''
-    substituteInPlace src/scripting/Makefile.in --replace yojson.cmo yojson.cma
-  '';
-
-  # The bytecode executable is dependent on the dynamic library provided by
-  # ANSITerminal. We can use the -dllpath flag of ocamlc (analogous to
-  # -rpath) to make sure that ocamlrun is able to link the library at
-  # runtime and that Nix detects a runtime dependency.
-  NIX_OCAML_BYTEFLAGS = "-dllpath ${ocamlPackages.ansiterminal}/lib/ocaml/${ocaml.version}/site-lib/ANSITerminal";
+  buildInputs = [ dune ] ++ (with ocamlPackages; [
+    ocaml findlib ansiterminal cairo2 fmt logs menhir mtime ocf
+  ]);
 
-  buildFlags = optionalString buildBytecode "byte"
-             + " "
-             + optionalString buildNative "opt";
+  buildPhase = "dune build";
 
-  installTargets = "install"
-                 + " " + optionalString installExamples "install-examples"
-                 + " " + optionalString installEmacsMode "install-emacs";
+  inherit (dune) installPhase;
 
   meta = with stdenv.lib; {
     homepage = http://calligramme.loria.fr/acg/;
     description = "A toolkit for developing ACG signatures and lexicon";
     license = licenses.cecill20;
-    platforms = ocaml.meta.platforms or [];
+    inherit (ocamlPackages.ocaml.meta) platforms;
     maintainers = [ maintainers.jirkamarsik ];
   };
 }
diff --git a/pkgs/applications/science/logic/acgtk/install-emacs-to-site-lisp.patch b/pkgs/applications/science/logic/acgtk/install-emacs-to-site-lisp.patch
deleted file mode 100644
index 43ddd20b4a39..000000000000
--- a/pkgs/applications/science/logic/acgtk/install-emacs-to-site-lisp.patch
+++ /dev/null
@@ -1,23 +0,0 @@
---- acg-1.1-20140905/Makefile.in	2014-10-24 15:21:39.442287208 +0200
-+++ acg-1.1-20140905/Makefile.in.new	2014-10-24 15:24:58.557117228 +0200
-@@ -35,6 +35,7 @@
- ACGC_DIR=src/acg-data
- 
- DATA_DIR=@datarootdir@/acgtk
-+EMACS_DIR=@prefix@/share/emacs/site-lisp
- 
- 
- 
-@@ -82,10 +83,10 @@
- 	rm -r $(DATA_DIR)
- 
- install-emacs:
--	mkdir -p $(DATA_DIR) && cp -r emacs $(DATA_DIR)/.
-+	mkdir -p $(EMACS_DIR) && cp emacs/acg.el $(EMACS_DIR)
- 
- uninstall-emacs:
--	rm -rf $(DATA_DIR)/emacs
-+	rm -rf $(EMACS_DIR)/emacs
- 
- install-examples:
- 	mkdir -p $(DATA_DIR) && cp -r examples $(DATA_DIR)/.
diff --git a/pkgs/applications/science/logic/acgtk/use-nix-ocaml-byteflags.patch b/pkgs/applications/science/logic/acgtk/use-nix-ocaml-byteflags.patch
deleted file mode 100644
index 26ade37e4521..000000000000
--- a/pkgs/applications/science/logic/acgtk/use-nix-ocaml-byteflags.patch
+++ /dev/null
@@ -1,11 +0,0 @@
---- acg-1.1-20140905/src/Makefile.master.in	2014-10-27 10:59:42.263382081 +0100
-+++ acg-1.1-20140905/src/Makefile.master.in.new	2014-10-27 10:59:59.683597972 +0100
-@@ -23,7 +23,7 @@
- # All warnings are treated as errors
- WARNINGS = @OCAML09WARNINGS@ -warn-error A
- COMMONFLAGS= $(WARNINGS) @TYPES@
--BYTEFLAGS = $(COMMONFLAGS) $(DEBUGFLAG)
-+BYTEFLAGS = $(COMMONFLAGS) $(DEBUGFLAG) $(NIX_OCAML_BYTEFLAGS)
- OPTFLAGS = $(COMMONFLAGS)
- LFLAGS= -a
- 
diff --git a/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix b/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
index 6918f048eae3..7a47ed9a992d 100644
--- a/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-big-picture/default.nix
@@ -2,7 +2,7 @@
 
 python2Packages.buildPythonApplication rec {
   pname = "git-big-picture";
-  version = "0.9.0";
+  version = "0.10.1";
 
   name = "${pname}-${version}";
 
@@ -10,7 +10,7 @@ python2Packages.buildPythonApplication rec {
     owner = "esc";
     repo = pname;
     rev = "v${version}";
-    sha256 = "1h283gzs4nx8lrarmr454zza52cilmnbdrqn1n33v3cn1rayl3c9";
+    sha256 = "0b0zdq7d7k7f6p3wwc799347fraphbr20rxd1ysnc4xi1cj4wpmi";
   };
 
   buildInputs = [ git graphviz ];
@@ -21,7 +21,7 @@ python2Packages.buildPythonApplication rec {
     '';
 
   meta = {
-    description = "Tool for visualization of Git repositories.";
+    description = "Tool for visualization of Git repositories";
     homepage = https://github.com/esc/git-big-picture;
     license = stdenv.lib.licenses.gpl3;
     platforms = stdenv.lib.platforms.linux;
diff --git a/pkgs/data/fonts/ibm-plex/default.nix b/pkgs/data/fonts/ibm-plex/default.nix
index ba214dd35fd0..e5a281eebf6e 100644
--- a/pkgs/data/fonts/ibm-plex/default.nix
+++ b/pkgs/data/fonts/ibm-plex/default.nix
@@ -1,7 +1,7 @@
 { lib, fetchzip }:
 
 let
-  version = "1.1.6";
+  version = "1.2.1";
 in fetchzip rec {
   name = "ibm-plex-${version}";
   url = "https://github.com/IBM/plex/releases/download/v${version}/OpenType.zip";
@@ -9,7 +9,7 @@ in fetchzip rec {
     mkdir -p $out/share/fonts
     unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
   '';
-  sha256 = "0n9qmh6v7gvrl1mfb0knygxlbkb78hvkdrppssx64m3pk4pxw85a";
+  sha256 = "1mwlw39nbqrk08crvgm77l98yyyabwhcgsng89c9s67gq4mlxmxa";
 
   meta = with lib; {
     description = "IBM Plex Typeface";
diff --git a/pkgs/development/compilers/graalvm/default.nix b/pkgs/development/compilers/graalvm/default.nix
index 7721ce06a561..a35143b43496 100644
--- a/pkgs/development/compilers/graalvm/default.nix
+++ b/pkgs/development/compilers/graalvm/default.nix
@@ -50,6 +50,9 @@ let
     rec { sha1 = "280c265b789e041c02e5c97815793dfc283fb1e6"; name = "LIBFFI_${sha1}/libffi.tar.gz";                                                    url = https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/libffi-3.2.1.tar.gz; }
     rec { sha1 = "8819cea8bfe22c9c63f55465e296b3855ea41786"; name = "TruffleJSON_${sha1}/trufflejson.jar";                                             url = https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/trufflejson-20180130.jar; }
     rec { sha1 = "9712a8124c40298015f04a74f61b3d81a51513af"; name = "CHECKSTYLE_8.8_${sha1}/checkstyle-8.8.jar";                                       url = https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/checkstyle-8.8-all.jar; }
+    rec { sha1 = "a828a4f32caf9ac0b74f2548f87310959558c526"; name = "VISUALVM_COMMON_${sha1}/visualvm-common.tar.gz";                                  url = https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/visualvm-612.tar.gz; }
+    rec { sha1 = "7ac829f0c9a37f5cc39afd2265588a365480720d"; name = "VISUALVM_PLATFORM_SPECIFIC_${sha1}/visualvm-platform-specific.tar.gz";            url = https://lafo.ssw.uni-linz.ac.at/pub/graal-external-deps/visualvm-612-linux-amd64.tar.gz; }
+    rec { sha1 = "e6e60889b7211a80b21052a249bd7e0f88f79fee"; name = "Java-WebSocket_${sha1}/java-websocket.jar";                                       url = mirror://maven/org/java-websocket/Java-WebSocket/1.3.9/Java-WebSocket-1.3.9.jar; }
   ];
 
   findbugs = fetchzip {
@@ -61,13 +64,13 @@ let
 in rec {
 
   mx = stdenv.mkDerivation rec {
-    version = "5.176.4";
+    version = "5.192.0";
     name = "mx";
     src = fetchFromGitHub {
       owner  = "graalvm";
       repo   = "mx";
       rev    = version;
-      sha256 = "0xmx4hpnd6m9hk49lgwnvwd0q11s2m4d8axwq7zzc8wm10d692xw";
+      sha256 = "04gdf1gzlc8a6li8lcnrs2j9zicj11fs1vqqf7cmhb4pm2h72hml";
     };
     nativeBuildInputs = [ makeWrapper ];
     buildPhase = ''
@@ -79,6 +82,11 @@ in rec {
         'def download(path, urls, verbose=False, abortOnError=True, verifyOnly=False):
           print("FAKE download(path={} urls={} verbose={} abortOnError={} verifyOnly={})".format(path, urls, verbose, abortOnError, verifyOnly))
           return True'
+
+      # avoid crash with 'ValueError: ZIP does not support timestamps before 1980'
+      substituteInPlace mx.py --replace \
+        'zipfile.ZipInfo(arcname, time.localtime(os.path.getmtime(join(root, f)))[:6])' \
+        'zipfile.ZipInfo(arcname, time.strptime ("1 Jan 1980", "%d %b %Y"       )[:6])'
     '';
     installPhase = ''
       mkdir -p $out/bin
@@ -97,9 +105,9 @@ in rec {
 
   # copy of pkgs.oraclejvm8 with JVMCI interface (TODO: it should work with pkgs.openjdk8 too)
   jvmci8 = stdenv.mkDerivation rec {
-    version = "0.45";
+    version = "0.49";
     name = let
-             n = "jvmci8u171-${version}";
+             n = "jvmci${/*"8u191"*/ lib.removePrefix "oraclejdk-" oraclejdk8.name}-${version}";
            in if (lib.stringLength n) == (lib.stringLength oraclejdk8.name) then
                 n
               else
@@ -108,7 +116,7 @@ in rec {
       owner  = "graalvm";
       repo   = "graal-jvmci-8";
       rev    = "jvmci-${version}";
-      sha256 = "1nppk9dpamisiadss1iy82i3rf6igndbf1vax85w9lz310kh0d12";
+      sha256 = "1zgin0w1qa7wmfhcisx470fhnmddfxxp5nyyix31yaa7dznql82k";
     };
     buildInputs = [ mx mercurial ];
     postUnpack = ''
@@ -146,7 +154,7 @@ in rec {
   };
 
   graalvm8 = stdenv.mkDerivation rec {
-    version = "1.0.0-rc3";
+    version = "1.0.0-rc8";
     name = let
              n = "graal-${version}";
            in if (lib.stringLength n) == (lib.stringLength jvmci8.name) then
@@ -157,7 +165,7 @@ in rec {
       owner  = "oracle";
       repo   = "graal";
       rev    = "vm-${version}";
-      sha256 = "1hcs4m6ailapgi3bikav1i517vqn5pn595cyqqjfvlnkjwihbnc3";
+      sha256 = "1fada4awrr8bhw294xdiq4bagvgrlcr44mw6338gaal0ky3vkm0p";
     };
     buildInputs = [ mx zlib mercurial jvmci8 ];
     postUnpack = ''
@@ -170,6 +178,17 @@ in rec {
         hg checkout ${lib.escapeShellArg src.rev}
       )
     '';
+    postPatch = ''
+      substituteInPlace substratevm/src/com.oracle.svm.core.posix/src/com/oracle/svm/core/posix/headers/PosixDirectives.java \
+        --replace '<zlib.h>' '<${zlib.dev}/include/zlib.h>'
+      substituteInPlace substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/CCLinkerInvocation.java \
+        --replace 'cmd.add("-v");' 'cmd.add("-v"); cmd.add("-L${zlib}/lib");'
+      substituteInPlace substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/c/codegen/CCompilerInvoker.java \
+        --replace 'command.add(Platform.includedIn(Platform.WINDOWS.class) ? "CL" : "gcc");' \
+          'command.add(Platform.includedIn(Platform.WINDOWS.class) ? "CL" : "${stdenv.cc}/bin/gcc");'
+      substituteInPlace substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/image/CCLinkerInvocation.java \
+        --replace 'protected String compilerCommand = "cc";' 'protected String compilerCommand = "${stdenv.cc}/bin/cc";'
+    '';
     buildPhase = ''
       # make a copy of jvmci8
       cp -dpR ${jvmci8} $out
@@ -178,13 +197,14 @@ in rec {
 
       export MX_ALT_OUTPUT_ROOT=$NIX_BUILD_TOP/mxbuild
       export MX_CACHE_DIR=${makeMxCache graal-mxcache}
+
       ( cd substratevm
 
         mkdir -p clibraries
         mx --java-home $out build
 
         # bootstrap native-image (that was removed from mx build in https://github.com/oracle/graal/commit/140d7a7edf54ec5872a8ff45869cd1ae499efde4)
-        mx --java-home $out native-image -cp $MX_ALT_OUTPUT_ROOT/substratevm/dists/svm-driver.jar com.oracle.svm.driver.NativeImage
+        mx --java-home $out native-image -cp $MX_ALT_OUTPUT_ROOT/substratevm/dists/jdk1.8/svm-driver.jar com.oracle.svm.driver.NativeImage
       )
       ( cd tools
         mx --java-home $out build
@@ -195,17 +215,17 @@ in rec {
       mkdir -p $out/jre/tools/{profiler,chromeinspector,truffle/builder} $out/jre/lib/{graal,include,truffle/include}
       cp -vpLR substratevm/svmbuild/native-image-root/lib/*                         $out/jre/lib/           || true # ignore "same file" error when dereferencing symlinks
       cp -vp   $MX_ALT_OUTPUT_ROOT/truffle/linux-amd64/truffle-nfi-native/bin/*     $out/jre/lib/amd64/
-      cp -vp   $MX_ALT_OUTPUT_ROOT/compiler/dists/graal-*processor*.jar             $out/jre/lib/graal/
+      cp -vp   $MX_ALT_OUTPUT_ROOT/compiler/dists/jdk1.8/graal-*processor*.jar      $out/jre/lib/graal/
       cp -vp   $MX_ALT_OUTPUT_ROOT/truffle/linux-amd64/truffle-nfi-native/include/* $out/jre/lib/include/
-      cp -vp   $MX_ALT_OUTPUT_ROOT/compiler/dists/graal-management.jar              $out/jre/lib/jvmci/
+      cp -vp   $MX_ALT_OUTPUT_ROOT/compiler/dists/jdk1.8/graal-management.jar       $out/jre/lib/jvmci/
       cp -vdpR $out/jre/lib/svm/clibraries                                          $out/jre/lib/svm/builder/
-      cp -vpR  $MX_ALT_OUTPUT_ROOT/truffle/dists/*                                  $out/jre/lib/truffle/
+      cp -vpR  $MX_ALT_OUTPUT_ROOT/truffle/dists/jdk1.8/*                           $out/jre/lib/truffle/
       cp -vp   $MX_ALT_OUTPUT_ROOT/truffle/linux-amd64/truffle-nfi-native/include/* $out/jre/lib/truffle/include/
       cp -vpLR substratevm/svmbuild/native-image-root/tools/*                       $out/jre/tools/
       cp -vpR  $MX_ALT_OUTPUT_ROOT/tools/dists/chromeinspector*                     $out/jre/tools/chromeinspector/
       cp -vpR  $MX_ALT_OUTPUT_ROOT/tools/dists/truffle-profiler*                    $out/jre/tools/profiler/
       cp -vpR  $MX_ALT_OUTPUT_ROOT/truffle/linux-amd64/truffle-nfi-native/*         $out/jre/tools/truffle/
-      cp -vp   $MX_ALT_OUTPUT_ROOT/truffle/dists/truffle-nfi.jar                    $out/jre/tools/truffle/builder/
+      cp -vp   $MX_ALT_OUTPUT_ROOT/truffle/dists/jdk1.8/truffle-nfi.jar             $out/jre/tools/truffle/builder/
 
       echo "name=GraalVM ${version}"                                              > $out/jre/lib/amd64/server/vm.properties
       echo -n "graal"                                                             > $out/jre/lib/jvmci/compiler-name
diff --git a/pkgs/development/coq-modules/contribs/default.nix b/pkgs/development/coq-modules/contribs/default.nix
index d12d3fefb944..a1ecdd610a3e 100644
--- a/pkgs/development/coq-modules/contribs/default.nix
+++ b/pkgs/development/coq-modules/contribs/default.nix
@@ -1018,7 +1018,7 @@ let mkContrib = repo: revs: param:
     sha256 = "0fp3vdl79c8d759qjhk42rjfpkd0ba4pcw572f5gxn28kfwz3rrj";
   };
 
-  zfc = mkContrib "zfc" [ "8.5" "8.6" "8.7" ] {
+  zfc = mkContrib "zfc" [ "8.5" "8.6" "8.7" "8.8" ] {
     version = "v8.5.0-5-gbba3259";
     rev = "bba325933370fea64780b1afa2fad54c1b567819";
     sha256 = "0iwkpmc22nwasrk4g7ki4s5y05zjs7kmqk3j98giwp2wiavhgapn";
diff --git a/pkgs/development/coq-modules/mathcomp/default.nix b/pkgs/development/coq-modules/mathcomp/default.nix
index 92c3c87774ab..99a6fe311a01 100644
--- a/pkgs/development/coq-modules/mathcomp/default.nix
+++ b/pkgs/development/coq-modules/mathcomp/default.nix
@@ -1,6 +1,8 @@
-{ callPackage, fetchurl, coq }:
+{ stdenv, fetchurl, coq, ncurses, which
+, graphviz, withDoc ? false
+}:
 
-let param =
+let params =
 
   let param_1_7 = {
       version = "1.7.0";
@@ -16,14 +18,48 @@ let param =
     "8.6" = param_1_7;
     "8.7" = param_1_7;
     "8.8" = param_1_7;
+    "8.9" = param_1_7;
 
-  }."${coq.coq-version}"
-; in
+  };
+  param = params."${coq.coq-version}";
+in
 
-callPackage ./generic.nix {
+stdenv.mkDerivation {
   name = "coq${coq.coq-version}-mathcomp-${param.version}";
+
   src = fetchurl {
     url = "https://github.com/math-comp/math-comp/archive/mathcomp-${param.version}.tar.gz";
     inherit (param) sha256;
   };
+
+  nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ];
+  buildInputs = [ coq ncurses which ] ++ (with coq.ocamlPackages; [ ocaml findlib camlp5 ]);
+
+  enableParallelBuilding = true;
+
+  buildFlags = stdenv.lib.optionalString withDoc "doc";
+
+  preBuild = ''
+    patchShebangs etc/utils/ssrcoqdep || true
+    cd mathcomp
+    export COQBIN=${coq}/bin/
+  '';
+
+  installPhase = ''
+    make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
+  '' + stdenv.lib.optionalString withDoc ''
+    make -f Makefile.coq install-doc DOCDIR=$out/share/coq/${coq.coq-version}/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://ssr.msr-inria.inria.fr/;
+    license = licenses.cecill-b;
+    maintainers = [ maintainers.vbgl maintainers.jwiegley ];
+    platforms = coq.meta.platforms;
+  };
+
+  passthru = {
+    compatibleCoqVersions = v: builtins.hasAttr v params;
+  };
+
 }
diff --git a/pkgs/development/coq-modules/mathcomp/generic.nix b/pkgs/development/coq-modules/mathcomp/generic.nix
deleted file mode 100644
index 2a602711965f..000000000000
--- a/pkgs/development/coq-modules/mathcomp/generic.nix
+++ /dev/null
@@ -1,42 +0,0 @@
-{ stdenv, coq, ncurses, which
-, graphviz, withDoc ? false
-, src, name
-}:
-
-stdenv.mkDerivation {
-
-  inherit name;
-  inherit src;
-
-  nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ];
-  buildInputs = with coq.ocamlPackages; [ ocaml findlib camlp5 ncurses which ];
-  propagatedBuildInputs = [ coq ];
-
-  enableParallelBuilding = true;
-
-  buildFlags = stdenv.lib.optionalString withDoc "doc";
-
-  preBuild = ''
-    patchShebangs etc/utils/ssrcoqdep || true
-    cd mathcomp
-    export COQBIN=${coq}/bin/
-  '';
-
-  installPhase = ''
-    make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
-  '' + stdenv.lib.optionalString withDoc ''
-    make -f Makefile.coq install-doc DOCDIR=$out/share/coq/${coq.coq-version}/
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = http://ssr.msr-inria.inria.fr/;
-    license = licenses.cecill-b;
-    maintainers = [ maintainers.vbgl maintainers.jwiegley ];
-    platforms = coq.meta.platforms;
-  };
-
-  passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" ];
-  };
-
-}
diff --git a/pkgs/development/coq-modules/ssreflect/default.nix b/pkgs/development/coq-modules/ssreflect/default.nix
index 9e9c3c7957aa..840189e347a5 100644
--- a/pkgs/development/coq-modules/ssreflect/default.nix
+++ b/pkgs/development/coq-modules/ssreflect/default.nix
@@ -1,6 +1,8 @@
-{ callPackage, fetchurl, coq }:
+{ stdenv, fetchurl, coq, ncurses, which
+, graphviz, withDoc ? false
+}:
 
-let param =
+let params =
 
   let param_1_7 = {
     version = "1.7.0";
@@ -16,14 +18,49 @@ let param =
     "8.6" = param_1_7;
     "8.7" = param_1_7;
     "8.8" = param_1_7;
+    "8.9" = param_1_7;
 
-  }."${coq.coq-version}"
-; in
+  };
+  param = params."${coq.coq-version}";
+in
+
+stdenv.mkDerivation {
 
-callPackage ./generic.nix {
   name = "coq${coq.coq-version}-ssreflect-${param.version}";
   src = fetchurl {
     url = "https://github.com/math-comp/math-comp/archive/mathcomp-${param.version}.tar.gz";
     inherit (param) sha256;
   };
+
+  nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ];
+  buildInputs = [ coq ncurses which ] ++ (with coq.ocamlPackages; [ ocaml findlib camlp5 ]);
+
+  enableParallelBuilding = true;
+
+  preBuild = ''
+    patchShebangs etc/utils/ssrcoqdep || true
+    cd mathcomp/ssreflect
+    export COQBIN=${coq}/bin/
+  '';
+
+  installPhase = ''
+    make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
+  '';
+
+  postInstall = stdenv.lib.optionalString withDoc ''
+    mkdir -p $out/share/doc/coq/${coq.coq-version}/user-contrib/mathcomp/ssreflect/
+    cp -r html $out/share/doc/coq/${coq.coq-version}/user-contrib/mathcomp/ssreflect/
+  '';
+
+  meta = with stdenv.lib; {
+    homepage = http://ssr.msr-inria.inria.fr/;
+    license = licenses.cecill-b;
+    maintainers = with maintainers; [ vbgl jwiegley ];
+    inherit (coq.meta) platforms;
+  };
+
+  passthru = {
+    compatibleCoqVersions = v: builtins.hasAttr v params;
+  };
+
 }
diff --git a/pkgs/development/coq-modules/ssreflect/generic.nix b/pkgs/development/coq-modules/ssreflect/generic.nix
deleted file mode 100644
index 23e364cd960d..000000000000
--- a/pkgs/development/coq-modules/ssreflect/generic.nix
+++ /dev/null
@@ -1,49 +0,0 @@
-{ stdenv, coq, ncurses, which
-, graphviz, withDoc ? false
-, src, name, patches ? []
-}:
-
-stdenv.mkDerivation {
-
-  inherit name;
-  inherit src;
-
-  nativeBuildInputs = stdenv.lib.optionals withDoc [ graphviz ];
-  buildInputs = with coq.ocamlPackages; [ ocaml findlib camlp5 ncurses which ];
-  propagatedBuildInputs = [ coq ];
-
-  enableParallelBuilding = true;
-
-  inherit patches;
-
-  preBuild = ''
-    patchShebangs etc/utils/ssrcoqdep || true
-    cd mathcomp/ssreflect
-    export COQBIN=${coq}/bin/
-  '';
-
-  installPhase = ''
-    make -f Makefile.coq COQLIB=$out/lib/coq/${coq.coq-version}/ install
-  '';
-
-  postInstall = ''
-    # mkdir -p $out/bin
-    # cp -p bin/ssrcoq $out/bin
-    # cp -p bin/ssrcoq.byte $out/bin
-  '' + stdenv.lib.optionalString withDoc ''
-    mkdir -p $out/share/doc/coq/${coq.coq-version}/user-contrib/mathcomp/ssreflect/
-    cp -r html $out/share/doc/coq/${coq.coq-version}/user-contrib/mathcomp/ssreflect/
-  '';
-
-  meta = with stdenv.lib; {
-    homepage = http://ssr.msr-inria.inria.fr/;
-    license = licenses.cecill-b;
-    maintainers = with maintainers; [ vbgl jwiegley ];
-    platforms = coq.meta.platforms;
-  };
-
-  passthru = {
-    compatibleCoqVersions = v: builtins.elem v [ "8.5" "8.6" "8.7" "8.8" ];
-  };
-
-}
diff --git a/pkgs/development/dhall-modules/default.nix b/pkgs/development/dhall-modules/default.nix
new file mode 100644
index 000000000000..b6632a86f31f
--- /dev/null
+++ b/pkgs/development/dhall-modules/default.nix
@@ -0,0 +1,9 @@
+{ pkgs }:
+
+# TODO: add into the toplevel fixpoint instead of using rec
+rec {
+
+  prelude = prelude_3_0_0;
+  prelude_3_0_0 = pkgs.callPackage ./prelude/v3.nix {};
+
+}
diff --git a/pkgs/development/dhall-modules/prelude/v3.nix b/pkgs/development/dhall-modules/prelude/v3.nix
new file mode 100644
index 000000000000..ef673310ceb0
--- /dev/null
+++ b/pkgs/development/dhall-modules/prelude/v3.nix
@@ -0,0 +1,25 @@
+{ stdenv, lib, fetchFromGitHub }:
+
+stdenv.mkDerivation {
+  name = "dhall-prelude";
+
+  src = fetchFromGitHub {
+    owner = "dhall-lang";
+    repo = "dhall-lang";
+    # Commit where the v3.0.0 prelude folder was merged into dhall-lang
+    # and a LICENSE file has been added.
+    rev = "f6aa9399f1ac831d66c34104abe6856023c5b2df";
+    sha256 = "0kqjgh3y1l3cb3rj381j7c09547g1vh2dsfzpm08y1qajhhf9vgf";
+  };
+
+  phases = [ "unpackPhase" "installPhase" ];
+
+  installPhase = ''
+    cp -r Prelude $out
+  '';
+
+  meta = {
+    license = lib.licenses.bsd3;
+    maintainers = with lib.maintainers; [ Profpatsch ];
+  };
+}
diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix
index 56ffd6ee54ee..1a6d38ba5d8d 100644
--- a/pkgs/development/haskell-modules/configuration-common.nix
+++ b/pkgs/development/haskell-modules/configuration-common.nix
@@ -893,6 +893,9 @@ self: super: {
   # https://github.com/aisamanra/config-ini/issues/12
   config-ini = dontCheck super.config-ini;
 
+  # We've remove cpython 3.4 from nixpkgs
+  cpython = null;
+
   # doctest >=0.9 && <0.12
   genvalidity-property = doJailbreak super.genvalidity-property;
   path = dontCheck super.path;
diff --git a/pkgs/development/haskell-modules/generic-builder.nix b/pkgs/development/haskell-modules/generic-builder.nix
index 8f230c92aaa1..a0bf655a67b7 100644
--- a/pkgs/development/haskell-modules/generic-builder.nix
+++ b/pkgs/development/haskell-modules/generic-builder.nix
@@ -443,6 +443,7 @@ stdenv.mkDerivation ({
 
     env = shellFor {
       packages = p: [ drv ];
+      inherit shellHook;
     };
 
   };
diff --git a/pkgs/development/interpreters/python/cpython/3.4/default.nix b/pkgs/development/interpreters/python/cpython/3.4/default.nix
deleted file mode 100644
index 18b90cd1da46..000000000000
--- a/pkgs/development/interpreters/python/cpython/3.4/default.nix
+++ /dev/null
@@ -1,214 +0,0 @@
-{ stdenv, fetchurl, fetchpatch
-, bzip2
-, expat
-, libffi
-, gdbm
-, lzma
-, ncurses
-, openssl
-, readline
-, sqlite
-, tcl ? null, tk ? null, tix ? null, libX11 ? null, xproto ? null, x11Support ? false
-, zlib
-, callPackage
-, self
-, CF, configd
-, python-setup-hook
-# For the Python package set
-, packageOverrides ? (self: super: {})
-}:
-
-assert x11Support -> tcl != null
-                  && tk != null
-                  && xproto != null
-                  && libX11 != null;
-
-with stdenv.lib;
-
-let
-  majorVersion = "3.4";
-  minorVersion = "9";
-  minorVersionSuffix = "";
-  version = "${majorVersion}.${minorVersion}${minorVersionSuffix}";
-  libPrefix = "python${majorVersion}";
-  sitePackages = "lib/${libPrefix}/site-packages";
-
-  buildInputs = filter (p: p != null) [
-    zlib bzip2 expat lzma libffi gdbm sqlite readline ncurses openssl ]
-    ++ optionals x11Support [ tcl tk libX11 xproto ]
-    ++ optionals stdenv.isDarwin [ CF configd ];
-
-  hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false);
-
-in stdenv.mkDerivation {
-  name = "python3-${version}";
-  pythonVersion = majorVersion;
-  inherit majorVersion version;
-
-  inherit buildInputs;
-
-  src = fetchurl {
-    url = "http://www.python.org/ftp/python/${version}/Python-${version}.tar.xz";
-    sha256 = "1n9b1kavmw8b7rc3gkrka4fjzrbfq9iqy791yncaf09bp9v9cqjr";
-  };
-
-  NIX_LDFLAGS = optionalString stdenv.isLinux "-lgcc_s";
-
-  # Determinism: The interpreter is patched to write null timestamps when compiling python files.
-  # This way python doesn't try to update them when we freeze timestamps in nix store.
-  DETERMINISTIC_BUILD=1;
-  # Determinism: We fix the hashes of str, bytes and datetime objects.
-  PYTHONHASHSEED=0;
-
-  prePatch = optionalString stdenv.isDarwin ''
-    substituteInPlace configure --replace '`/usr/bin/arch`' '"i386"'
-    substituteInPlace configure --replace '-Wl,-stack_size,1000000' ' '
-  '';
-
-  patches = [
-    ./no-ldconfig.patch
-    ./ld_library_path.patch
-  ] ++ optionals (x11Support && stdenv.isDarwin) [
-    ./use-correct-tcl-tk-on-darwin.patch
-  ] ++ optionals hasDistutilsCxxPatch [
-    # Fix for http://bugs.python.org/issue1222585
-    # Upstream distutils is calling C compiler to compile C++ code, which
-    # only works for GCC and Apple Clang. This makes distutils to call C++
-    # compiler when needed.
-    (fetchpatch {
-      url = "https://bugs.python.org/file47046/python-3.x-distutils-C++.patch";
-      sha256 = "0dgdn9k2kmw4wh90vdnjcrnn97ylxgx7mbn9l87fwz6j501jqvk8";
-      extraPrefix = "";
-    })
-  ];
-
-  postPatch = ''
-    # Determinism
-    substituteInPlace "Lib/py_compile.py" --replace "source_stats['mtime']" "(1 if 'DETERMINISTIC_BUILD' in os.environ else source_stats['mtime'])"
-    # Determinism. This is done unconditionally
-    substituteInPlace "Lib/importlib/_bootstrap.py" --replace "source_mtime = int(source_stats['mtime'])" "source_mtime = 1"
-  '' + optionalString (x11Support && (tix != null)) ''
-    substituteInPlace "Lib/tkinter/tix.py" --replace "os.environ.get('TIX_LIBRARY')" "os.environ.get('TIX_LIBRARY') or '${tix}/lib'"
-  ''
-    # Avoid picking up getentropy() from glibc >= 2.25, as that would break
-    # on older kernels.  http://bugs.python.org/issue29157
-    + optionalString stdenv.isLinux ''
-        substituteInPlace Python/random.c --replace 'defined(HAVE_GETENTROPY)' '0'
-        cat Python/random.c
-  '';
-
-  CPPFLAGS="${concatStringsSep " " (map (p: "-I${getDev p}/include") buildInputs)}";
-  LDFLAGS="${concatStringsSep " " (map (p: "-L${getLib p}/lib") buildInputs)}";
-  LIBS="${optionalString (!stdenv.isDarwin) "-lcrypt"} ${optionalString (ncurses != null) "-lncurses"}";
-
-  configureFlags = [
-    "--enable-shared"
-    "--with-threads"
-    "--without-ensurepip"
-    "--with-system-expat"
-    "--with-system-ffi"
-  ]
-    # Never even try to use lchmod on linux,
-    # don't rely on detecting glibc-isms.
-  ++ optional stdenv.hostPlatform.isLinux "ac_cv_func_lchmod=no";
-
-  preConfigure = ''
-    for i in /usr /sw /opt /pkg; do	# improve purity
-      substituteInPlace ./setup.py --replace $i /no-such-path
-    done
-    ${optionalString stdenv.isDarwin ''
-       export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -msse2"
-       export MACOSX_DEPLOYMENT_TARGET=10.6
-     ''
-     + optionalString stdenv.hostPlatform.isMusl ''
-      export NIX_CFLAGS_COMPILE+=" -DTHREAD_STACK_SIZE=0x100000"
-     ''}
-  '';
-
-  setupHook = python-setup-hook sitePackages;
-
-  postInstall = ''
-    # needed for some packages, especially packages that backport functionality
-    # to 2.x from 3.x
-    for item in $out/lib/python${majorVersion}/test/*; do
-      if [[ "$item" != */test_support.py*
-         && "$item" != */test/support
-         && "$item" != */test/libregrtest
-         && "$item" != */test/regrtest.py* ]]; then
-        rm -rf "$item"
-      else
-        echo $item
-      fi
-    done
-    touch $out/lib/python${majorVersion}/test/__init__.py
-
-    ln -s "$out/include/python${majorVersion}m" "$out/include/python${majorVersion}"
-    paxmark E $out/bin/python${majorVersion}
-
-    # Python on Nix is not manylinux1 compatible. https://github.com/NixOS/nixpkgs/issues/18484
-    echo "manylinux1_compatible=False" >> $out/lib/${libPrefix}/_manylinux.py
-
-    # Determinism: Windows installers were not deterministic.
-    # We're also not interested in building Windows installers.
-    find "$out" -name 'wininst*.exe' | xargs -r rm -f
-
-    # Use Python3 as default python
-    ln -s "$out/bin/idle3" "$out/bin/idle"
-    ln -s "$out/bin/pydoc3" "$out/bin/pydoc"
-    ln -s "$out/bin/python3" "$out/bin/python"
-    ln -s "$out/bin/python3-config" "$out/bin/python-config"
-    ln -s "$out/lib/pkgconfig/python3.pc" "$out/lib/pkgconfig/python.pc"
-
-    # Get rid of retained dependencies on -dev packages, and remove
-    # some $TMPDIR references to improve binary reproducibility.
-    # Note that the .pyc file of _sysconfigdata.py should be regenerated!
-    for i in $out/lib/python${majorVersion}/_sysconfigdata.py $out/lib/python${majorVersion}/config-${majorVersion}m/Makefile; do
-      sed -i $i -e "s|-I/nix/store/[^ ']*||g" -e "s|-L/nix/store/[^ ']*||g" -e "s|$TMPDIR|/no-such-path|g"
-    done
-
-    # Determinism: rebuild all bytecode
-    # We exclude lib2to3 because that's Python 2 code which fails
-    # We rebuild three times, once for each optimization level
-    find $out -name "*.py" | $out/bin/python -m compileall -q -f -x "lib2to3" -i -
-    find $out -name "*.py" | $out/bin/python -O -m compileall -q -f -x "lib2to3" -i -
-    find $out -name "*.py" | $out/bin/python -OO -m compileall -q -f -x "lib2to3" -i -
-  '';
-
-  passthru = let
-    pythonPackages = callPackage ../../../../../top-level/python-packages.nix {
-      python = self;
-      overrides = packageOverrides;
-    };
-  in rec {
-    inherit libPrefix sitePackages x11Support hasDistutilsCxxPatch;
-    executable = "${libPrefix}m";
-    buildEnv = callPackage ../../wrapper.nix { python = self; inherit (pythonPackages) requiredPythonModules; };
-    withPackages = import ../../with-packages.nix { inherit buildEnv pythonPackages;};
-    pkgs = pythonPackages;
-    isPy3 = true;
-    isPy34 = true;
-    is_py3k = true;  # deprecated
-    interpreter = "${self}/bin/${executable}";
-  };
-
-  enableParallelBuilding = true;
-
-  doCheck = false; # expensive, and fails
-
-  meta = {
-    homepage = http://python.org;
-    description = "A high-level dynamically-typed programming language";
-    longDescription = ''
-      Python is a remarkably powerful dynamic programming language that
-      is used in a wide variety of application domains. Some of its key
-      distinguishing features include: clear, readable syntax; strong
-      introspection capabilities; intuitive object orientation; natural
-      expression of procedural code; full modularity, supporting
-      hierarchical packages; exception-based error handling; and very
-      high level dynamic data types.
-    '';
-    license = licenses.psfl;
-    platforms = with platforms; linux ++ darwin;
-    maintainers = with maintainers; [ fridh ];
-  };
-}
diff --git a/pkgs/development/interpreters/python/cpython/3.4/ld_library_path.patch b/pkgs/development/interpreters/python/cpython/3.4/ld_library_path.patch
deleted file mode 100644
index 3172eb6d18e4..000000000000
--- a/pkgs/development/interpreters/python/cpython/3.4/ld_library_path.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 85991e0d7f0e631240f3f6233bd65d1128a66dec Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Thu, 14 Sep 2017 10:00:31 +0200
-Subject: [PATCH] ctypes.util: support LD_LIBRARY_PATH
-
-Backports support for LD_LIBRARY_PATH from 3.6
----
- Lib/ctypes/util.py | 26 +++++++++++++++++++++++++-
- 1 file changed, 25 insertions(+), 1 deletion(-)
-
-diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
-index 780cd5d21b..d7ac15070f 100644
---- a/Lib/ctypes/util.py
-+++ b/Lib/ctypes/util.py
-@@ -181,8 +181,32 @@ elif os.name == "posix":
-         def _findSoname_ldconfig(name):
-             return None
- 
-+        def _findLib_ld(name):
-+            # See issue #9998 for why this is needed
-+            expr = r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)
-+            cmd = ['ld', '-t']
-+            libpath = os.environ.get('LD_LIBRARY_PATH')
-+            if libpath:
-+                for d in libpath.split(':'):
-+                    cmd.extend(['-L', d])
-+            cmd.extend(['-o', os.devnull, '-l%s' % name])
-+            result = None
-+            try:
-+                p = subprocess.Popen(cmd, stdout=subprocess.PIPE,
-+                                     stderr=subprocess.PIPE,
-+                                     universal_newlines=True)
-+                out, _ = p.communicate()
-+                res = re.search(expr, os.fsdecode(out))
-+                if res:
-+                    result = res.group(0)
-+            except Exception as e:
-+                pass  # result will be None
-+            return result
-+
-         def find_library(name):
--            return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name))
-+            # See issue #9998
-+            return _findSoname_ldconfig(name) or \
-+                   _get_soname(_findLib_gcc(name) or _findLib_ld(name))
- 
- ################################################################
- # test code
--- 
-2.14.1
-
diff --git a/pkgs/development/interpreters/python/cpython/3.4/no-ldconfig.patch b/pkgs/development/interpreters/python/cpython/3.4/no-ldconfig.patch
deleted file mode 100644
index 3cb77a107254..000000000000
--- a/pkgs/development/interpreters/python/cpython/3.4/no-ldconfig.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 81bd99ad9058feb1d0361bc8862e8567c21a6142 Mon Sep 17 00:00:00 2001
-From: Frederik Rietdijk <fridh@fridh.nl>
-Date: Mon, 28 Aug 2017 09:24:06 +0200
-Subject: [PATCH] Don't use ldconfig and speed up uuid load
-
----
- Lib/ctypes/util.py | 52 ++--------------------------------------------------
- Lib/uuid.py        | 50 ++------------------------------------------------
- 2 files changed, 4 insertions(+), 98 deletions(-)
-
-diff --git a/Lib/ctypes/util.py b/Lib/ctypes/util.py
-index 595113bffd..780cd5d21b 100644
---- a/Lib/ctypes/util.py
-+++ b/Lib/ctypes/util.py
-@@ -88,28 +88,7 @@ elif os.name == "posix":
-     import re, tempfile
- 
-     def _findLib_gcc(name):
--        expr = r'[^\(\)\s]*lib%s\.[^\(\)\s]*' % re.escape(name)
--        fdout, ccout = tempfile.mkstemp()
--        os.close(fdout)
--        cmd = 'if type gcc >/dev/null 2>&1; then CC=gcc; elif type cc >/dev/null 2>&1; then CC=cc;else exit 10; fi;' \
--              'LANG=C LC_ALL=C $CC -Wl,-t -o ' + ccout + ' 2>&1 -l' + name
--        try:
--            f = os.popen(cmd)
--            try:
--                trace = f.read()
--            finally:
--                rv = f.close()
--        finally:
--            try:
--                os.unlink(ccout)
--            except FileNotFoundError:
--                pass
--        if rv == 10:
--            raise OSError('gcc or cc command not found')
--        res = re.search(expr, trace)
--        if not res:
--            return None
--        return res.group(0)
-+        return None
- 
- 
-     if sys.platform == "sunos5":
-@@ -200,34 +179,7 @@ elif os.name == "posix":
-     else:
- 
-         def _findSoname_ldconfig(name):
--            import struct
--            if struct.calcsize('l') == 4:
--                machine = os.uname().machine + '-32'
--            else:
--                machine = os.uname().machine + '-64'
--            mach_map = {
--                'x86_64-64': 'libc6,x86-64',
--                'ppc64-64': 'libc6,64bit',
--                'sparc64-64': 'libc6,64bit',
--                's390x-64': 'libc6,64bit',
--                'ia64-64': 'libc6,IA-64',
--                }
--            abi_type = mach_map.get(machine, 'libc6')
--
--            # XXX assuming GLIBC's ldconfig (with option -p)
--            regex = os.fsencode(
--                '\s+(lib%s\.[^\s]+)\s+\(%s' % (re.escape(name), abi_type))
--            try:
--                with subprocess.Popen(['/sbin/ldconfig', '-p'],
--                                      stdin=subprocess.DEVNULL,
--                                      stderr=subprocess.DEVNULL,
--                                      stdout=subprocess.PIPE,
--                                      env={'LC_ALL': 'C', 'LANG': 'C'}) as p:
--                    res = re.search(regex, p.stdout.read())
--                    if res:
--                        return os.fsdecode(res.group(1))
--            except OSError:
--                pass
-+            return None
- 
-         def find_library(name):
-             return _findSoname_ldconfig(name) or _get_soname(_findLib_gcc(name))
-diff --git a/Lib/uuid.py b/Lib/uuid.py
-index 1061bffc43..846f5819f5 100644
---- a/Lib/uuid.py
-+++ b/Lib/uuid.py
-@@ -451,57 +451,11 @@ def _netbios_getnode():
-         return ((bytes[0]<<40) + (bytes[1]<<32) + (bytes[2]<<24) +
-                 (bytes[3]<<16) + (bytes[4]<<8) + bytes[5])
- 
--# Thanks to Thomas Heller for ctypes and for his help with its use here.
- 
--# If ctypes is available, use it to find system routines for UUID generation.
--# XXX This makes the module non-thread-safe!
- _uuid_generate_random = _uuid_generate_time = _UuidCreate = None
--try:
--    import ctypes, ctypes.util
- 
--    # The uuid_generate_* routines are provided by libuuid on at least
--    # Linux and FreeBSD, and provided by libc on Mac OS X.
--    for libname in ['uuid', 'c']:
--        try:
--            lib = ctypes.CDLL(ctypes.util.find_library(libname))
--        except:
--            continue
--        if hasattr(lib, 'uuid_generate_random'):
--            _uuid_generate_random = lib.uuid_generate_random
--        if hasattr(lib, 'uuid_generate_time'):
--            _uuid_generate_time = lib.uuid_generate_time
--            if _uuid_generate_random is not None:
--                break  # found everything we were looking for
--
--    # The uuid_generate_* functions are broken on MacOS X 10.5, as noted
--    # in issue #8621 the function generates the same sequence of values
--    # in the parent process and all children created using fork (unless
--    # those children use exec as well).
--    #
--    # Assume that the uuid_generate functions are broken from 10.5 onward,
--    # the test can be adjusted when a later version is fixed.
--    import sys
--    if sys.platform == 'darwin':
--        import os
--        if int(os.uname().release.split('.')[0]) >= 9:
--            _uuid_generate_random = _uuid_generate_time = None
--
--    # On Windows prior to 2000, UuidCreate gives a UUID containing the
--    # hardware address.  On Windows 2000 and later, UuidCreate makes a
--    # random UUID and UuidCreateSequential gives a UUID containing the
--    # hardware address.  These routines are provided by the RPC runtime.
--    # NOTE:  at least on Tim's WinXP Pro SP2 desktop box, while the last
--    # 6 bytes returned by UuidCreateSequential are fixed, they don't appear
--    # to bear any relationship to the MAC address of any network device
--    # on the box.
--    try:
--        lib = ctypes.windll.rpcrt4
--    except:
--        lib = None
--    _UuidCreate = getattr(lib, 'UuidCreateSequential',
--                          getattr(lib, 'UuidCreate', None))
--except:
--    pass
-+_uuid_generate_time = _UuidCreate = None
-+
- 
- def _unixdll_getnode():
-     """Get the hardware address on Unix using ctypes."""
--- 
-2.14.1
-
diff --git a/pkgs/development/interpreters/python/cpython/3.4/use-correct-tcl-tk-on-darwin.patch b/pkgs/development/interpreters/python/cpython/3.4/use-correct-tcl-tk-on-darwin.patch
deleted file mode 100644
index b73f62b97ec5..000000000000
--- a/pkgs/development/interpreters/python/cpython/3.4/use-correct-tcl-tk-on-darwin.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-diff --git a/setup.py b/setup.py
-index 2779658..902d0eb 100644
---- a/setup.py
-+++ b/setup.py
-@@ -1699,9 +1699,6 @@ class PyBuildExt(build_ext):
-         # Rather than complicate the code below, detecting and building
-         # AquaTk is a separate method. Only one Tkinter will be built on
-         # Darwin - either AquaTk, if it is found, or X11 based Tk.
--        if (host_platform == 'darwin' and
--            self.detect_tkinter_darwin(inc_dirs, lib_dirs)):
--            return
-
-         # Assume we haven't found any of the libraries or include files
-         # The versions with dots are used on Unix, and the versions without
-@@ -1747,22 +1744,6 @@ class PyBuildExt(build_ext):
-             if dir not in include_dirs:
-                 include_dirs.append(dir)
-
--        # Check for various platform-specific directories
--        if host_platform == 'sunos5':
--            include_dirs.append('/usr/openwin/include')
--            added_lib_dirs.append('/usr/openwin/lib')
--        elif os.path.exists('/usr/X11R6/include'):
--            include_dirs.append('/usr/X11R6/include')
--            added_lib_dirs.append('/usr/X11R6/lib64')
--            added_lib_dirs.append('/usr/X11R6/lib')
--        elif os.path.exists('/usr/X11R5/include'):
--            include_dirs.append('/usr/X11R5/include')
--            added_lib_dirs.append('/usr/X11R5/lib')
--        else:
--            # Assume default location for X11
--            include_dirs.append('/usr/X11/include')
--            added_lib_dirs.append('/usr/X11/lib')
--
-         # If Cygwin, then verify that X is installed before proceeding
-         if host_platform == 'cygwin':
-             x11_inc = find_file('X11/Xlib.h', [], include_dirs)
-@@ -1786,10 +1767,6 @@ class PyBuildExt(build_ext):
-         if host_platform in ['aix3', 'aix4']:
-             libs.append('ld')
-
--        # Finally, link with the X11 libraries (not appropriate on cygwin)
--        if host_platform != "cygwin":
--            libs.append('X11')
--
-         ext = Extension('_tkinter', ['_tkinter.c', 'tkappinit.c'],
-                         define_macros=[('WITH_APPINIT', 1)] + defs,
-                         include_dirs = include_dirs,
diff --git a/pkgs/development/libraries/http-parser/default.nix b/pkgs/development/libraries/http-parser/default.nix
index 5d4eae4e0639..02d767000682 100644
--- a/pkgs/development/libraries/http-parser/default.nix
+++ b/pkgs/development/libraries/http-parser/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, python2Packages, utillinux, fixDarwinDylibNames }:
+{ stdenv, fetchurl }:
 
 let
   version = "2.8.1";
@@ -10,38 +10,18 @@ in stdenv.mkDerivation {
     sha256 = "15ids8k2f0xhnnxh4m85w2f78pg5ndiwrpl24kyssznnp1l5yqai";
   };
 
+  NIX_CFLAGS_COMPILE = "-Wno-error";
   patches = [ ./build-shared.patch ];
+  makeFlags = [ "DESTDIR=" "PREFIX=$(out)" ];
+  buildFlags = "library";
+  doCheck = true;
+  checkTarget = "test";
 
-  configurePhase = "gyp -f make --depth=`pwd` http_parser.gyp";
-
-  buildFlags = [ "BUILDTYPE=Release" ];
-
-  buildInputs =
-    [ python2Packages.gyp ]
-    ++ stdenv.lib.optional stdenv.isLinux utillinux
-    ++ stdenv.lib.optionals stdenv.isDarwin [ python2Packages.python fixDarwinDylibNames ];
-
-  doCheck = !stdenv.isDarwin;
-
-  checkPhase = ''
-    out/Release/test-nonstrict
-    out/Release/test-strict
-  '';
-
-  installPhase = ''
-    mkdir -p $out/lib
-    mv out/Release/${if stdenv.isDarwin then "*.dylib" else "lib.target/*"} $out/lib
-
-    mkdir -p $out/include
-    mv http_parser.h $out/include
-  '';
-
-  meta = {
+  meta = with stdenv.lib; {
     description = "An HTTP message parser written in C";
-
     homepage = https://github.com/joyent/http-parser;
-
-    license = stdenv.lib.licenses.mit;
-    platforms = stdenv.lib.platforms.unix;
+    maintainers = with maintainers; [ matthewbauer ];
+    license = licenses.mit;
+    platforms = platforms.unix;
   };
 }
diff --git a/pkgs/development/libraries/java/lombok/default.nix b/pkgs/development/libraries/java/lombok/default.nix
index 5ec4634d6323..7f932d52dc41 100644
--- a/pkgs/development/libraries/java/lombok/default.nix
+++ b/pkgs/development/libraries/java/lombok/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "lombok-1.16.22";
+  name = "lombok-1.18.4";
 
   src = fetchurl {
     url = "https://projectlombok.org/downloads/${name}.jar";
-    sha256 = "1hr2jjlqdnxrw7ablqkf7ljc6n2q6a04ww14di06zs6i3l82zzpa";
+    sha256 = "0hlpycnmzd71ihn59hzf445dvwky2lkv57jimx91i6v7xcnr5wrr";
   };
 
   buildCommand = ''
diff --git a/pkgs/development/python-modules/httmock/default.nix b/pkgs/development/python-modules/httmock/default.nix
new file mode 100644
index 000000000000..b50753c55864
--- /dev/null
+++ b/pkgs/development/python-modules/httmock/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchFromGitHub, requests }:
+
+buildPythonPackage rec {
+  pname   = "httmock";
+  version = "1.2.6";
+
+  src = fetchFromGitHub {
+    owner = "patrys";
+    repo = "httmock";
+    rev = version;
+    sha256 = "0iya8qsb2jm03s9p6sf1yzgm1irxl3dcq0k0a9ygl0skzjz5pvab";
+  };
+
+  checkInputs = [ requests ];
+
+  meta = with stdenv.lib; {
+    description = "A mocking library for requests";
+    homepage    = https://github.com/patrys/httmock;
+    license     = licenses.asl20;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/python-modules/imageio/default.nix b/pkgs/development/python-modules/imageio/default.nix
index cdbcfee7180f..de8380280670 100644
--- a/pkgs/development/python-modules/imageio/default.nix
+++ b/pkgs/development/python-modules/imageio/default.nix
@@ -1,28 +1,42 @@
 { stdenv
 , buildPythonPackage
-, fetchurl
+, fetchPypi
+, pillow
+, psutil
 , pytest
 , numpy
+, isPy3k
+, futures
+, enum34
 }:
 
 buildPythonPackage rec {
   pname = "imageio";
-  version = "1.6";
+  version = "2.4.1";
 
-  src = fetchurl {
-    url = "https://github.com/imageio/imageio/archive/v${version}.tar.gz";
-    sha256 = "195snkk3fsbjqd5g1cfsd9alzs5q45gdbi2ka9ph4yxqb31ijrbv";
+  src = fetchPypi {
+    sha256 = "0jjiwf6wjipmykh33prjh448qv8mpgngfi77ndc7mym5r1xhgf0n";
+    inherit pname version;
   };
 
-  buildInputs = [ pytest ];
-  propagatedBuildInputs = [ numpy ];
+  checkInputs = [ pytest psutil ];
+  propagatedBuildInputs = [ numpy pillow ] ++ stdenv.lib.optionals (!isPy3k) [
+    futures
+    enum34
+  ];
 
   checkPhase = ''
+    export IMAGEIO_USERDIR="$TMP"
+    export IMAGEIO_NO_INTERNET="true"
+    export HOME="$(mktemp -d)"
     py.test
   '';
 
-  # Tries to write in /var/tmp/.imageio
-  doCheck = false;
+  # For some reason, importing imageio also imports xml on Nix, see
+  # https://github.com/imageio/imageio/issues/395
+  postPatch = ''
+    substituteInPlace tests/test_meta.py --replace '"urllib",' "\"urllib\",\"xml\""
+  '';
 
   meta = with stdenv.lib; {
     description = "Library for reading and writing a wide range of image, video, scientific, and volumetric data formats";
diff --git a/pkgs/development/python-modules/moviepy/default.nix b/pkgs/development/python-modules/moviepy/default.nix
index 63613b516868..637c014cb1ab 100644
--- a/pkgs/development/python-modules/moviepy/default.nix
+++ b/pkgs/development/python-modules/moviepy/default.nix
@@ -4,6 +4,7 @@
 , numpy
 , decorator
 , imageio
+, isPy3k
 , tqdm
 }:
 
diff --git a/pkgs/development/python-modules/python-gitlab/default.nix b/pkgs/development/python-modules/python-gitlab/default.nix
new file mode 100644
index 000000000000..24ab69f1a0bc
--- /dev/null
+++ b/pkgs/development/python-modules/python-gitlab/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, buildPythonPackage, fetchPypi, requests, six, mock, httmock }:
+
+buildPythonPackage rec {
+  pname   = "python-gitlab";
+  version = "1.6.0";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "20ceb9232f9a412ce6554056a6b5039013d0755261d57b5c8ada7035773de795";
+  };
+
+  propagatedBuildInputs = [ requests six ];
+
+  checkInputs = [ mock httmock ];
+
+  meta = with stdenv.lib; {
+    description = "Interact with GitLab API";
+    homepage    = https://github.com/python-gitlab/python-gitlab;
+    license     = licenses.lgpl3;
+    maintainers = with maintainers; [ nyanloutre ];
+  };
+}
diff --git a/pkgs/development/tools/asmfmt/default.nix b/pkgs/development/tools/asmfmt/default.nix
new file mode 100644
index 000000000000..d2cb7e807b58
--- /dev/null
+++ b/pkgs/development/tools/asmfmt/default.nix
@@ -0,0 +1,37 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+, fetchpatch
+}:
+
+buildGoPackage rec {
+  name = "asmfmt-${version}";
+  version = "1.1";
+
+  goPackagePath = "github.com/klauspost/asmfmt";
+
+  src = fetchFromGitHub {
+    owner = "klauspost";
+    repo = "asmfmt";
+    rev = "v${version}";
+    sha256 = "08mybfizcvck460axakycz9ndzcgwqilp5mmgm4bl8hfrn36mskw";
+  };
+
+  patches = [
+    (fetchpatch {
+      excludes = ["README.md"];
+      url = "https://github.com/klauspost/asmfmt/commit/39a37c8aed8095e0fdfb07f78fc8acbd465d9627.patch";
+      sha256 = "18bc77l87mf0yvqc3adlakxz6wflyqfsc2wrmh9q0nlqghlmnw5k";
+    })
+  ];
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Go Assembler Formatter";
+    homepage = https://github.com/klauspost/asmfmt;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/asmfmt/deps.nix b/pkgs/development/tools/asmfmt/deps.nix
new file mode 100644
index 000000000000..0288fc206d49
--- /dev/null
+++ b/pkgs/development/tools/asmfmt/deps.nix
@@ -0,0 +1,20 @@
+[
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
+      sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
+    };
+  }
+  {
+    goPackagePath = "sourcegraph.com/sqs/goreturns";
+    fetch = {
+      type = "git";
+      url = "https://github.com/sqs/goreturns";
+      rev = "538ac601451833c7c4449f8431d65d53c1c60e41";
+      sha256 = "0gcplch8zmcgwl6xvcffxg50g3xnf60n7dlqxgn51179qcjr354p";
+    };
+  }
+]
diff --git a/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix b/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix
index af8cd5faacde..142f729517d5 100644
--- a/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix
+++ b/pkgs/development/tools/build-managers/bazel/bazel-deps/default.nix
@@ -2,7 +2,7 @@
 
 buildBazelPackage rec {
   name = "bazel-deps-${version}";
-  version = "2018-08-16";
+  version = "2018-11-01";
 
   meta = with stdenv.lib; {
     homepage = "https://github.com/johnynek/bazel-deps";
@@ -15,8 +15,8 @@ buildBazelPackage rec {
   src = fetchFromGitHub {
     owner = "johnynek";
     repo = "bazel-deps";
-    rev = "942a0b03cbf159dd6e0f0f40787d6d8e4e832d81";
-    sha256 = "0ls2jvz9cxa169a8pbbykv2d4dik4ipf7dj1lkqx5g0ss7lgs6q5";
+    rev = "1af8921d52f053fad575f26762533a3823b4a847";
+    sha256 = "0srz0sbz4bq9n7cp4g1n3kd3j6rcjqfi25sq8aa64l27yqzbk53x";
   };
 
   bazelTarget = "//src/scala/com/github/johnynek/bazel_deps:parseproject_deploy.jar";
@@ -66,12 +66,13 @@ buildBazelPackage rec {
       find . -type d -empty -delete
     '';
 
-    sha256 = "0jkzf1hay0h8ksk9lhfvdliac6c5d7nih934i1xjbrn6zqlivy19";
+    sha256 = "1gvl4a9z8p4ch2gmcj3lpp0imrkrvy8wng949p3wlkibi14hc6ww";
   };
 
   buildAttrs = {
     installPhase = ''
       mkdir -p $out/bin/bazel-bin/src/scala/com/github/johnynek/bazel_deps
+
       cp gen_maven_deps.sh $out/bin
       wrapProgram "$out/bin/gen_maven_deps.sh" --set JAVA_HOME "${jre}" --prefix PATH : ${lib.makeBinPath [ jre ]}
       cp bazel-bin/src/scala/com/github/johnynek/bazel_deps/parseproject_deploy.jar $out/bin/bazel-bin/src/scala/com/github/johnynek/bazel_deps
diff --git a/pkgs/development/tools/check/default.nix b/pkgs/development/tools/check/default.nix
new file mode 100644
index 000000000000..dfa164e6755c
--- /dev/null
+++ b/pkgs/development/tools/check/default.nix
@@ -0,0 +1,30 @@
+{ buildGoPackage
+, lib
+, fetchFromGitLab
+}:
+
+buildGoPackage rec {
+  name = "check-unstable-${version}";
+  version = "2018-09-12";
+  rev = "88db195993f8e991ad402754accd0635490769f9";
+
+  goPackagePath = "gitlab.com/opennota/check";
+
+  src = fetchFromGitLab {
+    inherit rev;
+
+    owner = "opennota";
+    repo = "check";
+    sha256 = "1983xmdkgpqda4qz8ashc6xv1zg5jl4zly3w566grxc5sfxpgf0i";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "A set of utilities for checking Go sources.";
+    homepage = https://gitlab.com/opennota/check;
+    license = licenses.gpl3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/check/deps.nix b/pkgs/development/tools/check/deps.nix
new file mode 100644
index 000000000000..b9c50d95d117
--- /dev/null
+++ b/pkgs/development/tools/check/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "677d2ff680c1";
+      sha256 = "0vp1w1haqcjd82dxd6x9xrllbfwvm957rxwkpji96cgvhsli2bq5";
+    };
+  }
+]
diff --git a/pkgs/development/tools/deadcode/default.nix b/pkgs/development/tools/deadcode/default.nix
new file mode 100644
index 000000000000..fbed4e905cfc
--- /dev/null
+++ b/pkgs/development/tools/deadcode/default.nix
@@ -0,0 +1,31 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+# TODO(yl): should we package https://github.com/remyoudompheng/go-misc instead of
+# the standalone extract of deadcode from it?
+buildGoPackage rec {
+  name = "deadcode-unstable-${version}";
+  version = "2016-07-24";
+  rev = "210d2dc333e90c7e3eedf4f2242507a8e83ed4ab";
+
+  goPackagePath = "github.com/tsenart/deadcode";
+  excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "tsenart";
+    repo = "deadcode";
+    sha256 = "05kif593f4wygnrq2fdjhn7kkcpdmgjnykcila85d0gqlb1f36g0";
+  };
+
+  meta = with lib; {
+    description = "deadcode is a very simple utility which detects unused declarations in a Go package.";
+    homepage = https://github.com/remyoudompheng/go-misc/tree/master/deadcode;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/errcheck/default.nix b/pkgs/development/tools/errcheck/default.nix
new file mode 100644
index 000000000000..1ce49a4cbb9d
--- /dev/null
+++ b/pkgs/development/tools/errcheck/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "errcheck-${version}";
+  version = "1.1.0";
+
+  goPackagePath = "github.com/kisielk/errcheck";
+  excludedPackages = "\\(testdata\\)";
+
+  src = fetchFromGitHub {
+    owner = "kisielk";
+    repo = "errcheck";
+    rev = "v${version}";
+    sha256 = "19vd4rxmqbk5lpiav3pf7df3yjlz0l0dwx9mn0gjq5f998iyhy6y";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "errcheck is a program for checking for unchecked errors in go programs.";
+    homepage = https://github.com/kisielk/errcheck;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/errcheck/deps.nix b/pkgs/development/tools/errcheck/deps.nix
new file mode 100644
index 000000000000..8470c9e12aa6
--- /dev/null
+++ b/pkgs/development/tools/errcheck/deps.nix
@@ -0,0 +1,20 @@
+[
+  {
+    goPackagePath = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "3a10b9bf0a52df7e992a8c3eb712a86d3c896c75";
+      sha256 = "19f3dijcc54jnd7458jab2dgpd0gzccmv2qympd9wi8cc8jpnhws";
+    };
+  }
+]
diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix
new file mode 100644
index 000000000000..7e599ed8de71
--- /dev/null
+++ b/pkgs/development/tools/go-tools/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "go-tools-${version}";
+  version = "2017.2.2";
+
+  goPackagePath = "honnef.co/go/tools";
+  excludedPackages = ''\(simple\|ssa\|ssa/ssautil\|lint\|staticcheck\|unused\)/testdata'';
+
+  src = fetchFromGitHub {
+    owner = "dominikh";
+    repo = "go-tools";
+    rev = "${version}";
+    sha256 = "1khl6szjj0skkfqp234p9rf3icik7fw2pk2x0wbj3wa9q3f84hb7";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "A collection of tools and libraries for working with Go code, including linters and static analysis.";
+    homepage = https://staticcheck.io;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/go-tools/deps.nix b/pkgs/development/tools/go-tools/deps.nix
new file mode 100644
index 000000000000..afe5e50e47bd
--- /dev/null
+++ b/pkgs/development/tools/go-tools/deps.nix
@@ -0,0 +1,20 @@
+[
+  {
+    goPackagePath = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "96e9e165b75e735822645eff82850b08c377be36";
+      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+    };
+  }
+]
diff --git a/pkgs/development/tools/goconst/default.nix b/pkgs/development/tools/goconst/default.nix
new file mode 100644
index 000000000000..9ef94ffdc7fa
--- /dev/null
+++ b/pkgs/development/tools/goconst/default.nix
@@ -0,0 +1,27 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "goconst-${version}";
+  version = "1.1.0";
+
+  goPackagePath = "github.com/jgautheron/goconst";
+  excludedPackages = ''testdata'';
+
+  src = fetchFromGitHub {
+    owner = "jgautheron";
+    repo = "goconst";
+    rev = version;
+    sha256 = "0zhscvv9w54q1h2vs8xx3qkz98cf36qhxjvdq0xyz3qvn4vhnyw6";
+  };
+
+  meta = with lib; {
+    description = "Find in Go repeated strings that could be replaced by a constant";
+    homepage = https://github.com/jgautheron/goconst;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/gocyclo/default.nix b/pkgs/development/tools/gocyclo/default.nix
new file mode 100644
index 000000000000..91ebaff803eb
--- /dev/null
+++ b/pkgs/development/tools/gocyclo/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "gocyclo-unstable-${version}";
+  version = "2015-02-08";
+  rev = "aa8f8b160214d8dfccfe3e17e578dd0fcc6fede7";
+
+  goPackagePath = "github.com/alecthomas/gocyclo";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "alecthomas";
+    repo = "gocyclo";
+    sha256 = "094rj97q38j53lmn2scshrg8kws8c542yq5apih1ahm9wdkv8pxr";
+  };
+
+  meta = with lib; {
+    description = "Calculate cyclomatic complexities of functions in Go source code.";
+    homepage = https://github.com/alecthomas/gocyclo;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/gogetdoc/default.nix b/pkgs/development/tools/gogetdoc/default.nix
new file mode 100644
index 000000000000..7724ee49465c
--- /dev/null
+++ b/pkgs/development/tools/gogetdoc/default.nix
@@ -0,0 +1,31 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "gogetdoc-unstable-${version}";
+  version = "2018-10-25";
+  rev = "9098cf5fc236a5e25060730544af2ba6d65cd968";
+
+  goPackagePath = "github.com/zmb3/gogetdoc";
+  excludedPackages = "\\(testdata\\)";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "zmb3";
+    repo = "gogetdoc";
+    sha256 = "159dgkd2lz07kimbpzminli5p539l4ry0dr93r46iz3lk5q76znl";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Gets documentation for items in Go source code";
+    homepage = https://github.com/zmb3/gogetdoc;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/gogetdoc/deps.nix b/pkgs/development/tools/gogetdoc/deps.nix
new file mode 100644
index 000000000000..d770057d1d78
--- /dev/null
+++ b/pkgs/development/tools/gogetdoc/deps.nix
@@ -0,0 +1,13 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "6adeb8aab2de";
+      sha256 = "0kylkki0ksdm12ppl37fghzbma9hmgqwph0nwngv08v4blk6li6k";
+    };
+  }
+]
diff --git a/pkgs/development/tools/gometalinter/default.nix b/pkgs/development/tools/gometalinter/default.nix
new file mode 100644
index 000000000000..cce678e9d073
--- /dev/null
+++ b/pkgs/development/tools/gometalinter/default.nix
@@ -0,0 +1,70 @@
+{ buildGoPackage
+, deadcode
+, errcheck
+, fetchFromGitHub
+, go
+, go-check
+, go-tools
+, goconst
+, gocyclo
+, golint
+, gosec
+, gotools
+, ineffassign
+, maligned
+, interfacer
+, lib
+, makeWrapper
+, unconvert
+}:
+
+with lib;
+
+let
+  runtimeDeps = [
+    deadcode
+    errcheck
+    go
+    go-check
+    go-tools
+    goconst
+    gocyclo
+    golint
+    gosec
+    gotools
+    ineffassign
+    interfacer
+    maligned
+    unconvert
+  ];
+
+in buildGoPackage rec {
+  name = "gometalinter-${version}";
+  version = "2.0.11";
+
+  goPackagePath = "github.com/alecthomas/gometalinter";
+  excludedPackages = "\\(regressiontests\\)";
+
+  src = fetchFromGitHub {
+    owner = "alecthomas";
+    repo = "gometalinter";
+    rev = "v${version}";
+    sha256 = "08p7bwvhpgizif8qi59m8mm3mcny70x9msbk8m8vjpphsq55wha4";
+  };
+
+  postInstall = ''
+    wrapProgram $bin/bin/gometalinter --prefix PATH : "${makeBinPath runtimeDeps}"
+  '';
+
+  buildInputs = [ makeWrapper ];
+
+  allowGoReference = true;
+
+  meta = with lib; {
+    description = "Concurrently run Go lint tools and normalise their output";
+    homepage = https://github.com/alecthomas/gometalinter;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/gosec/default.nix b/pkgs/development/tools/gosec/default.nix
new file mode 100644
index 000000000000..2cffd86f3965
--- /dev/null
+++ b/pkgs/development/tools/gosec/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "gosec-${version}";
+  version = "1.1.0";
+
+  goPackagePath = "github.com/securego/gosec";
+  excludedPackages = ''cmd/tlsconfig'';
+
+  src = fetchFromGitHub {
+    owner = "securego";
+    repo = "gosec";
+    rev = "${version}";
+    sha256 = "0vjn3g6w4y4ayx0g766jp31vb78cipl90fcg0mccjr0a539qrpy6";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Golang security checker";
+    homepage = https://github.com/securego/gosec;
+    license = licenses.asl20 ;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/gosec/deps.nix b/pkgs/development/tools/gosec/deps.nix
new file mode 100644
index 000000000000..80a77e7fb807
--- /dev/null
+++ b/pkgs/development/tools/gosec/deps.nix
@@ -0,0 +1,193 @@
+# file generated from go.mod using vgo2nix (https://github.com/adisbladis/vgo2nix)
+[
+
+  {
+    goPackagePath = "github.com/davecgh/go-spew";
+    fetch = {
+      type = "git";
+      url = "https://github.com/davecgh/go-spew";
+      rev = "v1.1.1";
+      sha256 = "0hka6hmyvp701adzag2g26cxdj47g21x6jz4sc6jjz1mn59d474y";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/golang/protobuf";
+    fetch = {
+      type = "git";
+      url = "https://github.com/golang/protobuf";
+      rev = "v1.2.0";
+      sha256 = "0kf4b59rcbb1cchfny2dm9jyznp8ri2hsb14n8iak1q8986xa0ab";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev = "0de1eaf82fa3";
+      sha256 = "177af7bjq6clmkqshnmnwlpwvx80kpi2277q275iwq59lp48viq1";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/kr/pretty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pretty";
+      rev = "v0.1.0";
+      sha256 = "18m4pwg2abd0j9cn5v3k2ksk9ig4vlwxmlw9rrglanziv9l967qp";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/kr/pty";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/pty";
+      rev = "v1.1.1";
+      sha256 = "0383f0mb9kqjvncqrfpidsf8y6ns5zlrc91c6a74xpyxjwvzl2y6";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/kr/text";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kr/text";
+      rev = "v0.1.0";
+      sha256 = "1gm5bsl01apvc84bw06hasawyqm4q84vx1pm32wr9jnd7a8vjgj1";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/nbutton23/zxcvbn-go";
+    fetch = {
+      type = "git";
+      url = "https://github.com/nbutton23/zxcvbn-go";
+      rev = "a22cb81b2ecd";
+      sha256 = "0hm16vc7xrw0cqla6xcn59bb7n2sa0j8rkniywn5dqnbrpza12cd";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/onsi/ginkgo";
+    fetch = {
+      type = "git";
+      url = "https://github.com/onsi/ginkgo";
+      rev = "11459a886d9c";
+      sha256 = "1nswc1fnrrs792qbix05h91bilj8rr3wxmxgwi97p2gjk0r292zh";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/onsi/gomega";
+    fetch = {
+      type = "git";
+      url = "https://github.com/onsi/gomega";
+      rev = "dcabb60a477c";
+      sha256 = "1775lv5jbsgv3ghq5v2827slqlhqdadrzc1nkpq4y0hdv2qzrgkm";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/pmezard/go-difflib";
+    fetch = {
+      type = "git";
+      url = "https://github.com/pmezard/go-difflib";
+      rev = "v1.0.0";
+      sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/ryanuber/go-glob";
+    fetch = {
+      type = "git";
+      url = "https://github.com/ryanuber/go-glob";
+      rev = "256dc444b735";
+      sha256 = "07rsd7hranghwc68ib0r2zxd9d5djanzjvd84j9dgj3wqsyg5mi2";
+    };
+  }
+
+  {
+    goPackagePath = "github.com/stretchr/testify";
+    fetch = {
+      type = "git";
+      url = "https://github.com/stretchr/testify";
+      rev = "v1.2.2";
+      sha256 = "0dlszlshlxbmmfxj5hlwgv3r22x0y1af45gn1vd198nvvs3pnvfs";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/net";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/net";
+      rev = "8351a756f30f";
+      sha256 = "0b6m579i3wrx1m69mqkdng5gjfssprxx0pg45kzrdi68sh0zr5d1";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/sync";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sync";
+      rev = "1d60e4601c6f";
+      sha256 = "046jlanz2lkxq1r57x9bl6s4cvfqaic6p2xybsj8mq1120jv4rs6";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/sys";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/sys";
+      rev = "164713f0dfce";
+      sha256 = "1qn9vvyqsaaj0az0rbilzc4pfv9sl4vh78c2g37yya5gcdnarh3w";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "1cbadb444a80";
+      sha256 = "0ih9ysagh4ylj08393497sscf3yziybc6acg4mrh0wa7mld75j56";
+    };
+  }
+
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "e531a2a1c15f";
+      sha256 = "0740w56nmjqdj7ld1h3gpcpi3x8n81bdx0pp267rz9hmwkrb2s1c";
+    };
+  }
+
+  {
+    goPackagePath = "gopkg.in/check.v1";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/check.v1";
+      rev = "788fd7840127";
+      sha256 = "0v3bim0j375z81zrpr5qv42knqs0y2qv2vkjiqi5axvb78slki1a";
+    };
+  }
+
+  {
+    goPackagePath = "gopkg.in/yaml.v2";
+    fetch = {
+      type = "git";
+      url = "https://gopkg.in/yaml.v2";
+      rev = "eb3733d160e7";
+      sha256 = "1srhvcaa9db3a6xj29mkjr5kg33y71pclrlx4vcwz5m1lgb5c7q6";
+    };
+  }
+]
diff --git a/pkgs/development/tools/iferr/default.nix b/pkgs/development/tools/iferr/default.nix
new file mode 100644
index 000000000000..e2aebe9b2dc2
--- /dev/null
+++ b/pkgs/development/tools/iferr/default.nix
@@ -0,0 +1,28 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "iferr-unstable-${version}";
+  version = "2018-06-15";
+  rev = "bb332a3b1d9129b6486c7ddcb7030c11b05cfc88";
+
+  goPackagePath = "github.com/koron/iferr";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "koron";
+    repo = "iferr";
+    sha256 = "1nyqy1sgq2afiama4wy7wap8s03c0hiwwa0f6kwq3y59097rfc0c";
+  };
+
+  meta = with lib; {
+    description = ''Generate "if err != nil {" block'';
+    homepage = https://github.com/koron/iferr;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/impl/default.nix b/pkgs/development/tools/impl/default.nix
new file mode 100644
index 000000000000..69bbf8afe5ac
--- /dev/null
+++ b/pkgs/development/tools/impl/default.nix
@@ -0,0 +1,30 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "impl-unstable-${version}";
+  version = "2018-02-27";
+  rev = "3d0f908298c49598b6aa84f101c69670e15d1d03";
+
+  goPackagePath = "github.com/josharian/impl";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "josharian";
+    repo = "impl";
+    sha256 = "0xpip20x5vclrl0by1760lg73v6lj6nmkbiazlskyvpkw44h8a7c";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "impl generates method stubs for implementing an interface.";
+    homepage = https://github.com/josharian/impl;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/impl/deps.nix b/pkgs/development/tools/impl/deps.nix
new file mode 100644
index 000000000000..3477aaed6075
--- /dev/null
+++ b/pkgs/development/tools/impl/deps.nix
@@ -0,0 +1,11 @@
+[
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "96e9e165b75e735822645eff82850b08c377be36";
+      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+    };
+  }
+]
diff --git a/pkgs/development/tools/ineffassign/default.nix b/pkgs/development/tools/ineffassign/default.nix
new file mode 100644
index 000000000000..10e5c61025ab
--- /dev/null
+++ b/pkgs/development/tools/ineffassign/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "ineffassign-unstable-${version}";
+  version = "2018-09-09";
+	rev = "1003c8bd00dc2869cb5ca5282e6ce33834fed514";
+
+  goPackagePath = "github.com/gordonklaus/ineffassign";
+  excludedPackages = ''testdata'';
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "gordonklaus";
+    repo = "ineffassign";
+    sha256 = "1rkzqvd3z03vq8q8qi9cghvgggsf02ammj9wq8jvpnx6b2sd16nd";
+  };
+
+  meta = with lib; {
+    description = "Detect ineffectual assignments in Go code.";
+    homepage = https://github.com/gordonklaus/ineffassign;
+    license = licenses.mit;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/interfacer/default.nix b/pkgs/development/tools/interfacer/default.nix
new file mode 100644
index 000000000000..274ced0b37cd
--- /dev/null
+++ b/pkgs/development/tools/interfacer/default.nix
@@ -0,0 +1,31 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "interfacer-unstable-${version}";
+  version = "2018-08-31";
+  rev = "c20040233aedb03da82d460eca6130fcd91c629a";
+
+  goPackagePath = "mvdan.cc/interfacer";
+  excludedPackages = ''check/testdata'';
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "mvdan";
+    repo = "interfacer";
+    sha256 = "0cx4m74mvn200360pmsqxx4z0apk9fcknwwqh8r94zd3jfv4akq2";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "A linter that suggests interface types.";
+    homepage = https://github.com/mvdan/interfacer;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/interfacer/deps.nix b/pkgs/development/tools/interfacer/deps.nix
new file mode 100644
index 000000000000..6810950878be
--- /dev/null
+++ b/pkgs/development/tools/interfacer/deps.nix
@@ -0,0 +1,29 @@
+[
+  {
+    goPackagePath = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "96e9e165b75e735822645eff82850b08c377be36";
+      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+    };
+  }
+  {
+    goPackagePath = "mvdan.cc/lint";
+    fetch = {
+      type = "git";
+      url = "https://github.com/mvdan/lint";
+      rev = "adc824a0674b99099789b6188a058d485eaf61c0";
+      sha256 = "17mi2rvkg9kzv1shxcyawzcj4jj3v738d1j82fp4yygx859yvr8r";
+    };
+  }
+]
diff --git a/pkgs/development/tools/maligned/default.nix b/pkgs/development/tools/maligned/default.nix
new file mode 100644
index 000000000000..7e5cbaddd8b3
--- /dev/null
+++ b/pkgs/development/tools/maligned/default.nix
@@ -0,0 +1,30 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "maligned-unstable-${version}";
+  version = "2018-07-07";
+  rev = "6e39bd26a8c8b58c5a22129593044655a9e25959";
+
+  goPackagePath = "github.com/mdempsky/maligned";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "mdempsky";
+    repo = "maligned";
+    sha256 = "08inr5xjqv9flrlyhqd8ck1q26y5xb6iilz0xkb6bqa4dl5ialhi";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Tool to detect Go structs that would take less memory if their fields were sorted.";
+    homepage = https://github.com/mdempsky/maligned;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/maligned/deps.nix b/pkgs/development/tools/maligned/deps.nix
new file mode 100644
index 000000000000..afe5e50e47bd
--- /dev/null
+++ b/pkgs/development/tools/maligned/deps.nix
@@ -0,0 +1,20 @@
+[
+  {
+    goPackagePath = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "96e9e165b75e735822645eff82850b08c377be36";
+      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+    };
+  }
+]
diff --git a/pkgs/development/tools/reftools/default.nix b/pkgs/development/tools/reftools/default.nix
new file mode 100644
index 000000000000..6ef724022e8c
--- /dev/null
+++ b/pkgs/development/tools/reftools/default.nix
@@ -0,0 +1,29 @@
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "reftools-unstable-${version}";
+  version = "2018-09-14";
+  rev = "654d0ba4f96d62286ca33cd46f7674b84f76d399";
+
+  goPackagePath = "github.com/davidrjenni/reftools";
+  excludedPackages = "\\(cmd/fillswitch/test-fixtures\\)";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "davidrjenni";
+    repo = "reftools";
+    sha256 = "12y2h1h15xadc8pa3xsj11hpdxz5dss6k7xaa4h1ifkvnasjp5w2";
+  };
+
+  meta = with lib; {
+    description = "reftools - refactoring tools for Go";
+    homepage = https://github.com/davidrjenni/reftools;
+    license = licenses.bsd2;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/unconvert/default.nix b/pkgs/development/tools/unconvert/default.nix
new file mode 100644
index 000000000000..1e81c5b9f86e
--- /dev/null
+++ b/pkgs/development/tools/unconvert/default.nix
@@ -0,0 +1,31 @@
+
+{ buildGoPackage
+, lib
+, fetchFromGitHub
+}:
+
+buildGoPackage rec {
+  name = "unconvert-unstable-${version}";
+  version = "2018-07-03";
+  rev = "1a9a0a0a3594e9363e49545fb6a4e24ac4c68b7b";
+
+  goPackagePath = "github.com/mdempsky/unconvert";
+
+  src = fetchFromGitHub {
+    inherit rev;
+
+    owner = "mdempsky";
+    repo = "unconvert";
+    sha256 = "1ww5qk1cmdis4ig5mb0b0w7nzrf3734s51plmgdxqsr35y88q4p9";
+  };
+
+  goDeps = ./deps.nix;
+
+  meta = with lib; {
+    description = "Remove unnecessary type conversions from Go source";
+    homepage = https://github.com/mdempsky/unconvert;
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ kalbasit ];
+    platforms = platforms.linux ++ platforms.darwin;
+  };
+}
diff --git a/pkgs/development/tools/unconvert/deps.nix b/pkgs/development/tools/unconvert/deps.nix
new file mode 100644
index 000000000000..333ec7ca3b15
--- /dev/null
+++ b/pkgs/development/tools/unconvert/deps.nix
@@ -0,0 +1,29 @@
+[
+  {
+    goPackagePath = "github.com/kisielk/gotool";
+    fetch = {
+      type = "git";
+      url = "https://github.com/kisielk/gotool";
+      rev = "80517062f582ea3340cd4baf70e86d539ae7d84d";
+      sha256 = "14af2pa0ssyp8bp2mvdw184s5wcysk6akil3wzxmr05wwy951iwn";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/text";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/text";
+      rev = "6f44c5a2ea40ee3593d98cdcc905cc1fdaa660e2";
+      sha256 = "00mwzxly5isgf0glz7k3k2dkyqkjfc4z55qxajx4lgcp3h8xn9xj";
+    };
+  }
+  {
+    goPackagePath = "golang.org/x/tools";
+    fetch = {
+      type = "git";
+      url = "https://go.googlesource.com/tools";
+      rev = "96e9e165b75e735822645eff82850b08c377be36";
+      sha256 = "1zj9ck5sg9b0pphxybmvxf64hhcap7v7j37fx3v5aknf18crjjdg";
+    };
+  }
+]
diff --git a/pkgs/misc/brightnessctl/default.nix b/pkgs/misc/brightnessctl/default.nix
index f90baee91fcf..6292b8183b28 100644
--- a/pkgs/misc/brightnessctl/default.nix
+++ b/pkgs/misc/brightnessctl/default.nix
@@ -11,20 +11,18 @@ stdenv.mkDerivation rec {
     sha256 = "1n1gb8ldgqv3vs565yhk1w4jfvrviczp94r8wqlkv5q6ab43c8w9";
   };
 
-  makeFlags = [ "MODE=0755" "PREFIX=" "DESTDIR=$(out)" ];
-  installTargets = [ "install" "install_udev_rules" ];
+  makeFlags = [ "PREFIX=" "DESTDIR=$(out)" ];
 
   postPatch = ''
     substituteInPlace 90-brightnessctl.rules --replace /bin/ ${coreutils}/bin/
-    substituteInPlace 90-brightnessctl.rules --replace %k '*'
   '';
 
-  meta = {
+  meta = with stdenv.lib; {
     homepage = "https://github.com/Hummer12007/brightnessctl";
-    maintainers = [ stdenv.lib.maintainers.Dje4321 ];
-    license = stdenv.lib.licenses.mit;
     description = "This program allows you read and control device brightness";
-    platforms = stdenv.lib.platforms.linux;
+    license = licenses.mit;
+    maintainers = with maintainers; [ megheaiulian ];
+    platforms = platforms.linux;
   };
 
 }
diff --git a/pkgs/misc/emulators/retroarch/default.nix b/pkgs/misc/emulators/retroarch/default.nix
index a37d299fbf70..24b46c8f9caa 100644
--- a/pkgs/misc/emulators/retroarch/default.nix
+++ b/pkgs/misc/emulators/retroarch/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, which, pkgconfig, makeWrapper
-, ffmpeg, libGLU_combined, freetype, libxml2, python34
+, ffmpeg, libGLU_combined, freetype, libxml2, python3
 , libobjc, AppKit, Foundation
 , alsaLib ? null
 , libpulseaudio ? null
@@ -39,7 +39,7 @@ in stdenv.mkDerivation rec {
   nativeBuildInputs = [ pkgconfig ]
                       ++ optional withVulkan [ makeWrapper ];
 
-  buildInputs = [ ffmpeg freetype libxml2 libGLU_combined python34 SDL2 which ]
+  buildInputs = [ ffmpeg freetype libxml2 libGLU_combined python3 SDL2 which ]
                 ++ optional enableNvidiaCgToolkit nvidia_cg_toolkit
                 ++ optional withVulkan [ vulkan-loader ]
                 ++ optionals stdenv.isDarwin [ libobjc AppKit Foundation ]
diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix
index 8ed7a9446711..c1bd45a6b789 100644
--- a/pkgs/misc/vim-plugins/overrides.nix
+++ b/pkgs/misc/vim-plugins/overrides.nix
@@ -9,6 +9,12 @@
 , languagetool
 , Cocoa, CoreFoundation, CoreServices
 , buildVimPluginFrom2Nix
+
+# vim-go denpencies
+, asmfmt, delve, errcheck, godef, golint
+, gomodifytags, gotags, gotools, motion
+, gnused, reftools, gogetdoc, gometalinter
+, impl, iferr
 }:
 
 let
@@ -247,6 +253,34 @@ with generated;
     dependencies = ["vim-misc"];
   });
 
+  # change the go_bin_path to point to a path in the nix store. See the code in
+  # fatih/vim-go here
+  # https://github.com/fatih/vim-go/blob/155836d47052ea9c9bac81ba3e937f6f22c8e384/autoload/go/path.vim#L154-L159
+  vim-go = vim-go.overrideAttrs(old: let
+    binPath = lib.makeBinPath [
+      asmfmt
+      delve
+      errcheck
+      godef
+      gogetdoc
+      golint
+      gometalinter
+      gomodifytags
+      gotags
+      gotools
+      iferr
+      impl
+      motion
+      reftools
+    ];
+    in {
+    postPatch = ''
+      ${gnused}/bin/sed \
+        -Ee 's@let go_bin_path = go#path#BinPath\(\)@let go_bin_path = "${binPath}"@g' \
+        -i autoload/go/path.vim
+    '';
+  });
+
   vim-grammarous = vim-grammarous.overrideAttrs(old: {
     # use `:GrammarousCheck` to initialize checking
     # In neovim, you also want to use set
diff --git a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
index eb5b0bd294c8..89b4f70264eb 100644
--- a/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
+++ b/pkgs/os-specific/linux/firmware/raspberrypi-wireless/default.nix
@@ -1,52 +1,51 @@
-{ stdenv, fetchurl, dpkg }:
+{ stdenv, fetchurl, fetchFromGitHub, dpkg }:
 
 stdenv.mkDerivation rec {
   name = "raspberrypi-wireless-firmware-${version}";
-  version = "2018-05-30";
+  version = "2018-08-20";
 
   srcs = [
-    (fetchurl {
-      url = "https://archive.raspberrypi.org/debian/pool/main/b/bluez-firmware/bluez-firmware_1.2-3+rpt5.debian.tar.xz";
-      sha256 = "06zpyrz6frkgjy26hr3998klnhjdqxwashgjgvj9rgbcqy70nkxg";
+    (fetchFromGitHub {
+      name = "bluez-firmware";
+      owner = "RPi-Distro";
+      repo = "bluez-firmware";
+      rev = "ade2bae1aaaebede09abb8fb546f767a0e4c7804";
+      sha256 = "07gm76gxp5anv6paryvxcp34a86fkny8kdlzqhzcpfczzglkp6ag";
     })
-    (fetchurl {
-      url = "https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree/firmware-brcm80211_20161130-3+rpt3_all.deb";
-      sha256 = "10l74ac28baprnsiylf2vy4pkxgb3crixid90ngs6si9smm7rn6z";
+    (fetchFromGitHub {
+      name = "firmware-nonfree";
+      owner = "RPi-Distro";
+      repo = "firmware-nonfree";
+      rev = "b518de45ced519e8f7a499f4778100173402ae43";
+      sha256 = "1d5026ic9awji6c67irpwsxpxgsc0dhn11d3abkxi2vvra1pir4g";
     })
   ];
 
   sourceRoot = ".";
+
   dontBuild = true;
   # Firmware blobs do not need fixing and should not be modified
   dontFixup = true;
 
-
-  # Unpack the debian package
-  nativeBuildInputs = [ dpkg ];
-  unpackCmd = ''
-    if ! [[ "$curSrc" =~ \.deb$ ]]; then return 1; fi
-    dpkg -x "$curSrc" .
-  '';
-
   installPhase = ''
     mkdir -p "$out/lib/firmware/brcm"
 
     # Wifi firmware
-    for filename in lib/firmware/brcm/brcmfmac434??-sdio.*; do
+    for filename in firmware-nonfree/brcm/brcmfmac434??-sdio.*; do
       cp "$filename" "$out/lib/firmware/brcm"
     done
 
     # Bluetooth firmware
-    cp broadcom/*.hcd "$out/lib/firmware/brcm"
+    cp bluez-firmware/broadcom/*.hcd "$out/lib/firmware/brcm"
   '';
 
   outputHashMode = "recursive";
   outputHashAlgo = "sha256";
-  outputHash = "1gwzasl5w5nc0awqv3w2081ns63wd1yds0xh0dg95dc6brnqhhf8";
+  outputHash = "1s5gb00v42s5izbaw8irs1fwvhh7z9wl07czc0nkw6p91871ivb7";
 
   meta = with stdenv.lib; {
     description = "Firmware for builtin Wifi/Bluetooth devices in the Raspberry Pi 3 and Zero W";
-    homepage = https://archive.raspberrypi.org/debian/pool/main/f/firmware-nonfree/;
+    homepage = https://github.com/RPi-Distro/firmware-nonfree;
     license = licenses.unfreeRedistributableFirmware;
     platforms = platforms.linux;
     maintainers = with maintainers; [ lopsided98 ];
diff --git a/pkgs/os-specific/linux/kernel/linux-4.14.nix b/pkgs/os-specific/linux/kernel/linux-4.14.nix
index f4a728c9d25f..a5170edfa261 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.14.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.14.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.14.78";
+  version = "4.14.79";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "0v2cwykgd2hxlqja4yl4pq45nhd5x8917ixqq7hj1r3ry304vnpl";
+    sha256 = "0flkkgfjzs6z7hkr15lga8jvxgwn6wi885yf5wyr0zxjrqg0f6an";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.18.nix b/pkgs/os-specific/linux/kernel/linux-4.18.nix
index d6c4b58b980a..add98cfb2faa 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.18.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.18.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.18.16";
+  version = "4.18.17";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "1rjjkhl8lz4y4sn7icy8mp6p1x7rvapybp51p92sanbjy3i19fmy";
+    sha256 = "0353ns09i5y0fcygvly20z0qrp6gcqd453186ihm4r7ajgh43bz2";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/os-specific/linux/kernel/linux-4.19.nix b/pkgs/os-specific/linux/kernel/linux-4.19.nix
index 5aa033348d4e..d597818dab68 100644
--- a/pkgs/os-specific/linux/kernel/linux-4.19.nix
+++ b/pkgs/os-specific/linux/kernel/linux-4.19.nix
@@ -3,7 +3,7 @@
 with stdenv.lib;
 
 buildLinux (args // rec {
-  version = "4.19";
+  version = "4.19.1";
 
   # modDirVersion needs to be x.y.z, will automatically add .0 if needed
   modDirVersion = if (modDirVersionArg == null) then concatStrings (intersperse "." (take 3 (splitString "." "${version}.0"))) else modDirVersionArg;
@@ -13,6 +13,6 @@ buildLinux (args // rec {
 
   src = fetchurl {
     url = "mirror://kernel/linux/kernel/v4.x/linux-${version}.tar.xz";
-    sha256 = "18a92z17alh5kkvjv7l9z8wk5jgdb6raawdfkpwx9bi8amjzas0c";
+    sha256 = "0ac8w310p83z11ksmyad7by7cmacwg4vq68pzxchc88bbk33gmk4";
   };
 } // (args.argsOverride or {}))
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index dab58d2edd6b..e0c666b002a9 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -1,4 +1,6 @@
-{ stdenv, python2Packages, fetchurl, fetchFromGitHub }:
+{ lib, stdenv, python2Packages, fetchurl, fetchFromGitHub
+, enableSystemd ? true
+}:
 let
   matrix-angular-sdk = python2Packages.buildPythonPackage rec {
     name = "matrix-angular-sdk-${version}";
@@ -26,13 +28,13 @@ let
   };
 in python2Packages.buildPythonApplication rec {
   name = "matrix-synapse-${version}";
-  version = "0.33.6";
+  version = "0.33.8";
 
   src = fetchFromGitHub {
     owner = "matrix-org";
     repo = "synapse";
     rev = "v${version}";
-    sha256 = "0c1dr09f1msv6xvpmdlncx7yyj6qxnpihd93lqckd115fds12g5h";
+    sha256 = "122ba09xkc1x35qaajcynkjikg342259rgy81m8abz0l8mcg4mkm";
   };
 
   patches = [
@@ -40,16 +42,41 @@ in python2Packages.buildPythonApplication rec {
   ];
 
   propagatedBuildInputs = with python2Packages; [
-    blist canonicaljson daemonize dateutil frozendict pillow pyasn1
-    pydenticon pymacaroons-pynacl pynacl pyopenssl pysaml2 pytz requests
-    signedjson systemd twisted ujson unpaddedbase64 pyyaml prometheus_client
-    matrix-angular-sdk bleach netaddr jinja2 psycopg2
-    psutil msgpack-python lxml matrix-synapse-ldap3
-    phonenumbers jsonschema affinity bcrypt sortedcontainers treq
-  ];
+    bcrypt
+    bleach
+    canonicaljson
+    daemonize
+    dateutil
+    frozendict
+    jinja2
+    jsonschema
+    lxml
+    matrix-angular-sdk
+    matrix-synapse-ldap3
+    msgpack-python
+    netaddr
+    phonenumbers
+    pillow
+    prometheus_client
+    psutil
+    psycopg2
+    pyasn1
+    pydenticon
+    pymacaroons-pynacl
+    pynacl
+    pyopenssl
+    pysaml2
+    pyyaml
+    requests
+    signedjson
+    sortedcontainers
+    treq
+    twisted
+    unpaddedbase64
+  ] ++ lib.optional enableSystemd systemd;
 
-  # Checks fail because of Tox.
-  doCheck = false;
+  doCheck = true;
+  checkPhase = "python -m twisted.trial test";
 
   buildInputs = with python2Packages; [
     mock setuptoolsTrial
diff --git a/pkgs/servers/plex/default.nix b/pkgs/servers/plex/default.nix
index b562df681a06..4e783f3a507e 100644
--- a/pkgs/servers/plex/default.nix
+++ b/pkgs/servers/plex/default.nix
@@ -6,9 +6,9 @@
 let
   plexPass = throw "Plex pass has been removed at upstream's request; please unset nixpkgs.config.plex.pass";
   plexpkg = if enablePlexPass then plexPass else {
-    version = "1.13.8.5395";
-    vsnHash = "10d48da0d";
-    sha256 = "0lpsh87kcrqwi2qqkj1ccb86hif535yb45hhc41c0ixsfxbqk5cw";
+    version = "1.13.9.5456";
+    vsnHash = "ecd600442";
+    sha256 = "6d1125d4e6eaa94a84f8c600230b867c2d0764644adbc959a96433b8fc210b61";
   };
 
 in stdenv.mkDerivation rec {
diff --git a/pkgs/tools/admin/fastlane/Gemfile.lock b/pkgs/tools/admin/fastlane/Gemfile.lock
index 631d9cb9628a..88162a3432d9 100644
--- a/pkgs/tools/admin/fastlane/Gemfile.lock
+++ b/pkgs/tools/admin/fastlane/Gemfile.lock
@@ -26,7 +26,7 @@ GEM
     faraday_middleware (0.12.2)
       faraday (>= 0.7.4, < 1.0)
     fastimage (2.1.4)
-    fastlane (2.105.2)
+    fastlane (2.107.0)
       CFPropertyList (>= 2.3, < 4.0.0)
       addressable (>= 2.3, < 3.0.0)
       babosa (>= 1.0.2, < 2.0.0)
@@ -71,10 +71,10 @@ GEM
       representable (~> 3.0)
       retriable (>= 2.0, < 4.0)
       signet (~> 0.9)
-    googleauth (0.6.6)
+    googleauth (0.6.7)
       faraday (~> 0.12)
       jwt (>= 1.4, < 3.0)
-      memoist (~> 0.12)
+      memoist (~> 0.16)
       multi_json (~> 1.11)
       os (>= 0.9, < 2.0)
       signet (~> 0.7)
@@ -105,7 +105,7 @@ GEM
     rouge (2.0.7)
     rubyzip (1.2.2)
     security (0.1.3)
-    signet (0.10.0)
+    signet (0.11.0)
       addressable (~> 2.3)
       faraday (~> 0.9)
       jwt (>= 1.5, < 3.0)
@@ -127,7 +127,7 @@ GEM
     unf_ext (0.0.7.5)
     unicode-display_width (1.4.0)
     word_wrap (1.0.0)
-    xcodeproj (1.6.0)
+    xcodeproj (1.7.0)
       CFPropertyList (>= 2.3.3, < 4.0)
       atomos (~> 0.1.3)
       claide (>= 1.0.2, < 2.0)
diff --git a/pkgs/tools/admin/fastlane/gemset.nix b/pkgs/tools/admin/fastlane/gemset.nix
index c2133c7c8c9c..5afad1683c99 100644
--- a/pkgs/tools/admin/fastlane/gemset.nix
+++ b/pkgs/tools/admin/fastlane/gemset.nix
@@ -153,10 +153,10 @@
     dependencies = ["CFPropertyList" "addressable" "babosa" "colored" "commander-fastlane" "dotenv" "emoji_regex" "excon" "faraday" "faraday-cookie_jar" "faraday_middleware" "fastimage" "gh_inspector" "google-api-client" "highline" "json" "mini_magick" "multi_json" "multi_xml" "multipart-post" "plist" "public_suffix" "rubyzip" "security" "simctl" "slack-notifier" "terminal-notifier" "terminal-table" "tty-screen" "tty-spinner" "word_wrap" "xcodeproj" "xcpretty" "xcpretty-travis-formatter"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1fq1zqvwim939klkx2893cbm1v4gi3a991qrj8933l3qg1y41fx2";
+      sha256 = "1d3jv7ik3rivmhxzcapia2lzf9xjmjgi4yxkl60ly6pcbbvhl48w";
       type = "gem";
     };
-    version = "2.105.2";
+    version = "2.107.0";
   };
   gh_inspector = {
     source = {
@@ -179,10 +179,10 @@
     dependencies = ["faraday" "jwt" "memoist" "multi_json" "os" "signet"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1747p1dhpvz76i98xnjrvaj785y1232svm0nc8g9by6pz835gp2l";
+      sha256 = "1yj7j1rnyamxpn5ybgdgbiw89v9bq2r0h85s2y2jzvqanvm7iflq";
       type = "gem";
     };
-    version = "0.6.6";
+    version = "0.6.7";
   };
   highline = {
     source = {
@@ -367,10 +367,10 @@
     dependencies = ["addressable" "faraday" "jwt" "multi_json"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "14rhv3riz6ki4ix4l79b6ckq7d015673gxkxvzdcxjl1h8plpdcy";
+      sha256 = "1f5d3bz5bjc4b0r2jmqd15qf07lgsqkgd25f0h46jihrf9l5fsi4";
       type = "gem";
     };
-    version = "0.10.0";
+    version = "0.11.0";
   };
   simctl = {
     dependencies = ["CFPropertyList" "naturally"];
@@ -476,10 +476,10 @@
     dependencies = ["CFPropertyList" "atomos" "claide" "colored2" "nanaimo"];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1f4shbzff3wsk1jq0v9bs10496qdx69k2jfpf11p4q2ik3jdnsv7";
+      sha256 = "1hy2ihcqfjlsrnf8qkm51m1kk154yp0l0007f269ky8j9z5lyw3p";
       type = "gem";
     };
-    version = "1.6.0";
+    version = "1.7.0";
   };
   xcpretty = {
     dependencies = ["rouge"];
diff --git a/pkgs/tools/backup/bup/default.nix b/pkgs/tools/backup/bup/default.nix
index f24e89fcc840..bf10f556b6bb 100644
--- a/pkgs/tools/backup/bup/default.nix
+++ b/pkgs/tools/backup/bup/default.nix
@@ -5,7 +5,7 @@
 
 assert par2Support -> par2cmdline != null;
 
-let version = "0.29.1"; in
+let version = "0.29.2"; in
 
 with stdenv.lib;
 
@@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
     repo = "bup";
     owner = "bup";
     rev = version;
-    sha256 = "0wdr399jf64zzzsdvldhrwvnh5xpbghjvslr1j2cwr5y4i36znxf";
+    sha256 = "17lpbyhf43gcln5s43m2zzgichcx7jq6ragcawfklw6svg1vnj89";
   };
 
   buildInputs = [
diff --git a/pkgs/tools/misc/svtplay-dl/default.nix b/pkgs/tools/misc/svtplay-dl/default.nix
index e29e799898c3..5502f2542f12 100644
--- a/pkgs/tools/misc/svtplay-dl/default.nix
+++ b/pkgs/tools/misc/svtplay-dl/default.nix
@@ -1,22 +1,22 @@
 { stdenv, fetchFromGitHub, makeWrapper, python3Packages, perl, zip
-, rtmpdump }:
+, rtmpdump, gitMinimal }:
 
 let
-  inherit (python3Packages) python nose pycrypto requests mock;
+  inherit (python3Packages) python nose pycrypto pyyaml requests mock;
 in stdenv.mkDerivation rec {
   name = "svtplay-dl-${version}";
-  version = "1.9.11";
+  version = "2.1";
 
   src = fetchFromGitHub {
     owner = "spaam";
     repo = "svtplay-dl";
     rev = version;
-    sha256 = "14p2362rzyblma9321z4zrcbzfs9m269ry6sz44ly0bv5fik7gdy";
+    sha256 = "1cnc32gbhs955391hs1x1jpjsl3b6pqy7ysdydmp9q1i2rw105ln";
   };
 
-  pythonPaths = [ pycrypto requests ];
+  pythonPaths = [ pycrypto pyyaml requests ];
   buildInputs = [ python perl nose mock rtmpdump makeWrapper ] ++ pythonPaths;
-  nativeBuildInputs = [ zip ];
+  nativeBuildInputs = [ gitMinimal zip ];
 
   postPatch = ''
     substituteInPlace lib/svtplay_dl/fetcher/rtmp.py \
diff --git a/pkgs/tools/misc/tmux/default.nix b/pkgs/tools/misc/tmux/default.nix
index 038b3206ac24..192c5eb0823b 100644
--- a/pkgs/tools/misc/tmux/default.nix
+++ b/pkgs/tools/misc/tmux/default.nix
@@ -20,8 +20,8 @@ stdenv.mkDerivation rec {
   src = fetchFromGitHub {
     owner = "tmux";
     repo = "tmux";
-    rev = version;
-    sha256 = "0n8sjddy00xgh1rvvw968hh72pyslg1gahmzajfc4b3xax87drpi";
+    rev = "01918cb0170e07288d3aec624516e6470bf5b7fc";
+    sha256 = "1fy87wvxn7r7jzqapvjisc1iizic3kxqk2lv83giqmw1y4g3s7rl";
   };
 
   postPatch = ''
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 9709ad871041..3cd0cc4887a8 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -122,6 +122,8 @@ with pkgs;
     inherit dhall-nix;
   };
 
+  deadcode = callPackage ../development/tools/deadcode { };
+
   diffPlugins = (callPackage ../build-support/plugins.nix {}).diffPlugins;
 
   dieHook = makeSetupHook {} ../build-support/setup-hooks/die.sh;
@@ -657,6 +659,8 @@ with pkgs;
 
   cconv = callPackage ../tools/text/cconv { };
 
+  go-check = callPackage ../development/tools/check { };
+
   chkcrontab = callPackage ../tools/admin/chkcrontab { };
 
   cozy = callPackage ../applications/audio/cozy-audiobooks { };
@@ -801,6 +805,8 @@ with pkgs;
   };
   aria = aria2;
 
+  asmfmt = callPackage ../development/tools/asmfmt { };
+
   aspcud = callPackage ../tools/misc/aspcud { };
 
   at = callPackage ../tools/system/at { };
@@ -1309,6 +1315,8 @@ with pkgs;
 
   envsubst = callPackage ../tools/misc/envsubst { };
 
+  errcheck = callPackage ../development/tools/errcheck { };
+
   eschalot = callPackage ../tools/security/eschalot { };
 
   esptool = callPackage ../tools/misc/esptool { };
@@ -5089,6 +5097,8 @@ with pkgs;
 
   recoverjpeg = callPackage ../tools/misc/recoverjpeg { };
 
+  reftools = callPackage ../development/tools/reftools { };
+
   reposurgeon = callPackage ../applications/version-management/reposurgeon { };
 
   reptyr = callPackage ../os-specific/linux/reptyr {};
@@ -6941,6 +6951,10 @@ with pkgs;
 
   go-junit-report = callPackage ../development/tools/go-junit-report { };
 
+  gogetdoc = callPackage ../development/tools/gogetdoc { };
+
+  gometalinter = callPackage ../development/tools/gometalinter { };
+
   gox = callPackage ../development/tools/gox { };
 
   gprolog = callPackage ../development/compilers/gprolog { };
@@ -7549,6 +7563,8 @@ with pkgs;
 
   dhall-text = haskell.lib.justStaticExecutables haskellPackages.dhall-text;
 
+  dhallPackages = import ../development/dhall-modules { inherit pkgs; };
+
   duktape = callPackage ../development/interpreters/duktape { };
 
   beam = callPackage ./beam-packages.nix { };
@@ -7772,7 +7788,6 @@ with pkgs;
   python2Full = python2.override{x11Support=true;};
   python27Full = python27.override{x11Support=true;};
   python3Full = python3.override{x11Support=true;};
-  python34Full = python34.override{x11Support=true;};
   python35Full = python35.override{x11Support=true;};
   python36Full = python36.override{x11Support=true;};
   python37Full = python37.override{x11Support=true;};
@@ -7786,10 +7801,6 @@ with pkgs;
     self = python27;
     inherit (darwin) CF configd;
   };
-  python34 = callPackage ../development/interpreters/python/cpython/3.4 {
-    inherit (darwin) CF configd;
-    self = python34;
-  };
   python35 = callPackage ../development/interpreters/python/cpython/3.5 {
     inherit (darwin) CF configd;
     self = python35;
@@ -7811,7 +7822,6 @@ with pkgs;
 
   # Python package sets.
   python27Packages = lib.hiPrioSet (recurseIntoAttrs python27.pkgs);
-  python34Packages = python34.pkgs;
   python35Packages = python35.pkgs;
   python36Packages = recurseIntoAttrs python36.pkgs;
   python37Packages = python37.pkgs;
@@ -10133,6 +10143,8 @@ with pkgs;
 
   imlibsetroot = callPackage ../applications/graphics/imlibsetroot { libXinerama = xorg.libXinerama; } ;
 
+  ineffassign = callPackage ../development/tools/ineffassign { };
+
   ijs = callPackage ../development/libraries/ijs { };
 
   incrtcl = callPackage ../development/libraries/incrtcl { };
@@ -12526,6 +12538,8 @@ with pkgs;
     vala = vala_0_40;
   };
 
+  unconvert = callPackage ../development/tools/unconvert { };
+
   unibilium = callPackage ../development/libraries/unibilium { };
 
   unicap = callPackage ../development/libraries/unicap {};
@@ -14276,11 +14290,6 @@ with pkgs;
         # when adding a new linux version
         kernelPatches.cpu-cgroup-v2."4.11"
         kernelPatches.modinst_arg_list_too_long
-        # https://github.com/NixOS/nixpkgs/issues/42755
-        # Remove these xen-netfront patches once they're included in
-        # upstream! Fixes https://github.com/NixOS/nixpkgs/issues/42755
-        kernelPatches.xen-netfront_fix_mismatched_rtnl_unlock
-        kernelPatches.xen-netfront_update_features_after_registering_netdev
       ];
   };
 
@@ -14680,19 +14689,22 @@ with pkgs;
 
   easyjson = callPackage ../development/tools/easyjson { };
 
+  iferr = callPackage ../development/tools/iferr { };
+
   go-bindata = callPackage ../development/tools/go-bindata { };
 
   go-bindata-assetfs = callPackage ../development/tools/go-bindata-assetfs { };
 
   go-protobuf = callPackage ../development/tools/go-protobuf { };
 
-
   go-symbols = callPackage ../development/tools/go-symbols { };
 
   go-outline = callPackage ../development/tools/go-outline { };
 
   gocode = callPackage ../development/tools/gocode { };
 
+  goconst = callPackage ../development/tools/goconst { };
+
   goconvey = callPackage ../development/tools/goconvey { };
 
   gotags = callPackage ../development/tools/gotags { };
@@ -14701,14 +14713,20 @@ with pkgs;
 
   golangci-lint = callPackage ../development/tools/golangci-lint { };
 
+  gocyclo = callPackage ../development/tools/gocyclo { };
+
   godef = callPackage ../development/tools/godef { };
 
   gopkgs = callPackage ../development/tools/gopkgs { };
 
+  gosec = callPackage ../development/tools/gosec { };
+
   govers = callPackage ../development/tools/govers { };
 
   govendor = callPackage ../development/tools/govendor { };
 
+  go-tools = callPackage ../development/tools/go-tools { };
+
   gotools = callPackage ../development/tools/gotools { };
 
   gotop = callPackage ../tools/system/gotop { };
@@ -14721,6 +14739,8 @@ with pkgs;
 
   gotests = callPackage ../development/tools/gotests { };
 
+  impl = callPackage ../development/tools/impl { };
+
   quicktemplate = callPackage ../development/tools/quicktemplate { };
 
   gogoclient = callPackage ../os-specific/linux/gogoclient { };
@@ -15484,6 +15504,10 @@ with pkgs;
 
   hasklig = callPackage ../data/fonts/hasklig {};
 
+  interfacer = callPackage ../development/tools/interfacer { };
+
+  maligned = callPackage ../development/tools/maligned { };
+
   inter-ui = callPackage ../data/fonts/inter-ui { };
 
   siji = callPackage ../data/fonts/siji { };
@@ -21343,9 +21367,7 @@ with pkgs;
 
   abella = callPackage ../applications/science/logic/abella {};
 
-  acgtk = callPackage ../applications/science/logic/acgtk {
-    ocamlPackages = ocaml-ng.ocamlPackages_4_05;
-  };
+  acgtk = callPackage ../applications/science/logic/acgtk {};
 
   alt-ergo = callPackage ../applications/science/logic/alt-ergo {};
 
@@ -22087,38 +22109,56 @@ with pkgs;
 
   nixops-dns = callPackage ../tools/package-management/nixops/nixops-dns.nix { };
 
-  /*
-   * Evaluate a NixOS configuration using this evaluation of Nixpkgs.
-   *
-   * With this function you can write, for example, a package that
-   * depends on a custom virtual machine image.
-   *
-   * Parameter: A module, path or list of those that represent the
-   *            configuration of the NixOS system to be constructed.
-   *
-   * Result:    An attribute set containing packages produced by this
-   *            evaluation of NixOS, such as toplevel, kernel and
-   *            initialRamdisk.
-   *            The result can be extended in the modules by defining
-   *            extra options in system.build.
-   *
-   * Unlike in plain NixOS, the nixpkgs.config, nixpkgs.overlays and
-   * nixpkgs.system options will be ignored by default. Instead,
-   * nixpkgs.pkgs will have the default value of pkgs as it was
-   * constructed right after invoking the nixpkgs function (e.g. the
-   * value of import <nixpkgs> { overlays = [./my-overlay.nix]; }
-   * but not the value of (import <nixpkgs> {} // { extra = ...; }).
-   *
-   * If you do want to use the config.nixpkgs options, you are
-   * probably better off by calling nixos/lib/eval-config.nix
-   * directly, even though it is possible to set config.nixpkgs.pkgs.
-   *
-   * For more information about writing NixOS modules, see
-   * https://nixos.org/nixos/manual/index.html#sec-writing-modules
-   *
-   * Note that you will need to have called Nixpkgs with the system
-   * parameter set to the right value for your deployment target.
-   */
+  /* Evaluate a NixOS configuration using this evaluation of Nixpkgs.
+
+     With this function you can write, for example, a package that
+     depends on a custom virtual machine image.
+
+     Parameter: A module, path or list of those that represent the
+                configuration of the NixOS system to be constructed.
+
+     Result:    An attribute set containing packages produced by this
+                evaluation of NixOS, such as toplevel, kernel and
+                initialRamdisk.
+                The result can be extended in the modules by defining
+                extra attributes in system.build.
+
+     Example:
+
+         let
+           myOS = pkgs.nixos ({ lib, pkgs, config, ... }: {
+
+             config.services.nginx = {
+               enable = true;
+               # ...
+             };
+
+             # Use config.system.build to exports relevant parts of a
+             # configuration. The runner attribute should not be
+             # considered a fully general replacement for systemd
+             # functionality.
+             config.system.build.run-nginx = config.systemd.services.nginx.runner;
+           });
+         in
+           myOS.run-nginx
+
+     Unlike in plain NixOS, the nixpkgs.config, nixpkgs.overlays and
+     nixpkgs.system options will be ignored by default. Instead,
+     nixpkgs.pkgs will have the default value of pkgs as it was
+     constructed right after invoking the nixpkgs function (e.g. the
+     value of import <nixpkgs> { overlays = [./my-overlay.nix]; }
+     but not the value of (import <nixpkgs> {} // { extra = ...; }).
+
+     If you do want to use the config.nixpkgs options, you are
+     probably better off by calling nixos/lib/eval-config.nix
+     directly, even though it is possible to set config.nixpkgs.pkgs.
+
+     For more information about writing NixOS modules, see
+     https://nixos.org/nixos/manual/index.html#sec-writing-modules
+
+     Note that you will need to have called Nixpkgs with the system
+     parameter set to the right value for your deployment target.
+  */
   nixos = configuration:
     (import (self.path + "/nixos/lib/eval-config.nix") {
       inherit (pkgs.stdenv.hostPlatform) system;
diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix
index 3ba90f3b5943..2084140c3fd8 100644
--- a/pkgs/top-level/coq-packages.nix
+++ b/pkgs/top-level/coq-packages.nix
@@ -48,9 +48,18 @@ let
 
 in rec {
 
+  /* The function `mkCoqPackages` takes as input a derivation for Coq and produces
+   * a set of libraries built with that specific Coq. More libraries are known to
+   * this function than what is compatible with that version of Coq. Therefore,
+   * libraries that are not known to be compatible are removed (filtered out) from
+   * the resulting set. For meta-programming purposes (inpecting the derivations
+   * rather than building the libraries) this filtering can be disabled by setting
+   * a `dontFilter` attribute into the Coq derivation.
+   */
   mkCoqPackages = coq:
     let self = mkCoqPackages' self coq; in
-    filterCoqPackages coq self;
+    if coq.dontFilter or false then self
+    else filterCoqPackages coq self;
 
   coq_8_5 = callPackage ../applications/science/logic/coq {
     ocamlPackages = ocamlPackages_4_05;
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 41631a7dba28..1979335357ff 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -1648,6 +1648,8 @@ in {
     inherit (pkgs.gitAndTools) git-annex;
   };
 
+  python-gitlab = callPackage ../development/python-modules/python-gitlab { };
+
   google-cloud-sdk = callPackage ../tools/admin/google-cloud-sdk { };
   google-cloud-sdk-gce = callPackage ../tools/admin/google-cloud-sdk { with-gce=true; };
 
@@ -2460,6 +2462,8 @@ in {
 
   html5lib = callPackage ../development/python-modules/html5lib { };
 
+  httmock = callPackage ../development/python-modules/httmock { };
+
   http_signature = callPackage ../development/python-modules/http_signature { };
 
   httpbin = callPackage ../development/python-modules/httpbin { };
diff --git a/pkgs/top-level/stage.nix b/pkgs/top-level/stage.nix
index 37724a870a30..4e6531286ee5 100644
--- a/pkgs/top-level/stage.nix
+++ b/pkgs/top-level/stage.nix
@@ -150,7 +150,7 @@ let
 
     # All packages built for i686 Linux.
     # Used by wine, firefox with debugging version of Flash, ...
-    pkgsi686Linux = assert stdenv.hostPlatform.isLinux; nixpkgsFun {
+    pkgsi686Linux = if stdenv.hostPlatform.isLinux && stdenv.hostPlatform.isx86 then nixpkgsFun {
       inherit overlays config;
       ${if stdenv.hostPlatform == stdenv.buildPlatform
         then "localSystem" else "crossSystem"} = {
@@ -158,7 +158,7 @@ let
           cpu = lib.systems.parse.cpuTypes.i686;
         };
       };
-    };
+    } else throw "i686 Linux package set can only be used with the x86 family.";
 
     # Extend the package set with zero or more overlays. This preserves
     # preexisting overlays. Prefer to initialize with the right overlays