about summary refs log tree commit diff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs')
-rw-r--r--pkgs/applications/editors/rstudio/default.nix58
-rw-r--r--pkgs/applications/editors/rstudio/preview.nix119
-rw-r--r--pkgs/applications/misc/blender/default.nix14
-rw-r--r--pkgs/applications/networking/gns3/default.nix12
-rw-r--r--pkgs/applications/radio/limesuite/default.nix4
-rw-r--r--pkgs/build-support/add-opengl-runpath/default.nix12
-rw-r--r--pkgs/build-support/add-opengl-runpath/setup-hook.sh28
-rw-r--r--pkgs/data/themes/plata/default.nix20
-rw-r--r--pkgs/development/compilers/cudatoolkit/default.nix14
-rw-r--r--pkgs/development/libraries/libglvnd/default.nix18
-rw-r--r--pkgs/development/libraries/libndctl/default.nix4
-rw-r--r--pkgs/development/libraries/ocl-icd/default.nix12
-rw-r--r--pkgs/development/libraries/science/math/cudnn/generic.nix9
-rw-r--r--pkgs/development/libraries/science/math/nccl/default.nix8
-rw-r--r--pkgs/development/libraries/vulkan-loader/default.nix12
-rw-r--r--pkgs/development/ocaml-modules/logs/default.nix4
-rw-r--r--pkgs/development/ocaml-modules/ptime/default.nix4
-rw-r--r--pkgs/development/python-modules/curio/default.nix34
-rw-r--r--pkgs/development/python-modules/faker/default.nix10
-rw-r--r--pkgs/development/python-modules/kitchen/default.nix4
-rw-r--r--pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix4
-rw-r--r--pkgs/development/python-modules/pybindgen/default.nix5
-rw-r--r--pkgs/development/python-modules/sniffio/default.nix15
-rw-r--r--pkgs/development/tools/castxml/default.nix26
-rw-r--r--pkgs/development/tools/golangci-lint/default.nix12
-rw-r--r--pkgs/os-specific/linux/libbpf/default.nix43
-rw-r--r--pkgs/servers/matrix-synapse/default.nix4
-rw-r--r--pkgs/servers/monitoring/grafana/default.nix6
-rw-r--r--pkgs/tools/misc/lbdb/default.nix13
-rw-r--r--pkgs/top-level/all-packages.nix13
-rw-r--r--pkgs/top-level/python-packages.nix2
31 files changed, 313 insertions, 230 deletions
diff --git a/pkgs/applications/editors/rstudio/default.nix b/pkgs/applications/editors/rstudio/default.nix
index 86fb972e94c3..27c956dcd14e 100644
--- a/pkgs/applications/editors/rstudio/default.nix
+++ b/pkgs/applications/editors/rstudio/default.nix
@@ -1,43 +1,49 @@
-{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost
-, zlib, openssl, R, qtbase, qtwebkit, qtwebchannel, qtxmlpatterns, libuuid
-, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
+{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib
+, openssl, R, qtbase, qtxmlpatterns, qtsensors, qtwebengine, qtwebchannel
+, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
+, llvmPackages
 }:
 
 let
   verMajor = "1";
-  verMinor = "1";
-  verPatch = "463";
+  verMinor = "2";
+  verPatch = "1335";
   version = "${verMajor}.${verMinor}.${verPatch}";
-  ginVer = "1.5";
-  gwtVer = "2.7.0";
+  ginVer = "2.1.2";
+  gwtVer = "2.8.1";
 in
 stdenv.mkDerivation rec {
   name = "RStudio-${version}";
 
   nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
 
-  buildInputs = [ boost zlib openssl R qtbase qtwebkit qtwebchannel
-                  qtxmlpatterns libuuid ];
+  buildInputs = [ boost zlib openssl R qtbase qtxmlpatterns qtsensors
+                  qtwebengine qtwebchannel libuuid ];
 
   src = fetchFromGitHub {
     owner = "rstudio";
     repo = "rstudio";
     rev = "v${version}";
-    sha256 = "014g984znsczzy1fyn9y1ly3rbsngryfs674lfgciz60mqnl8im6";
+    sha256 = "0jv1d4yznv2lzwp0fdf377vqpg0k2q4z9qvji4sj86fabj835lqd";
   };
 
-  # Hack RStudio to only use the input R.
-  patches = [ ./r-location.patch ];
-  postPatch = "substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}";
+  # Hack RStudio to only use the input R and provided libclang.
+  patches = [ ./r-location.patch ./clang-location.patch ];
+  postPatch = ''
+    substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
+    substituteInPlace src/cpp/core/libclang/LibClang.cpp \
+      --replace '@clang@' ${llvmPackages.clang.cc} \
+      --replace '@libclang.so@' ${llvmPackages.clang.cc.lib}/lib/libclang.so
+  '';
 
   ginSrc = fetchurl {
     url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
-    sha256 = "155bjrgkf046b8ln6a55x06ryvm8agnnl7l8bkwwzqazbpmz8qgm";
+    sha256 = "16jzmljravpz6p2rxa87k5f7ir8vs7ya75lnfybfajzmci0p13mr";
   };
 
   gwtSrc = fetchurl {
     url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
-    sha256 = "1cs78z9a1jg698j2n35wsy07cy4fxcia9gi00x0r0qc3fcdhcrda";
+    sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
   };
 
   hunspellDictionaries = with stdenv.lib; filter isDerivation (attrValues hunspellDicts);
@@ -47,14 +53,11 @@ stdenv.mkDerivation rec {
     sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
   };
 
-  rstudiolibclang = fetchurl {
-    url = https://s3.amazonaws.com/rstudio-buildtools/libclang-3.5.zip;
-    sha256 = "1sl5vb8misipwbbbykdymw172w9qrh8xv3p29g0bf3nzbnv6zc7c";
-  };
-
-  rstudiolibclangheaders = fetchurl {
-    url = https://s3.amazonaws.com/rstudio-buildtools/libclang-builtin-headers.zip;
-    sha256 = "0x4ax186bm3kf098izwmsplckgx1kqzg9iiyzg95rpbqsb4593qb";
+  rsconnectSrc = fetchFromGitHub {
+    owner = "rstudio";
+    repo = "rsconnect";
+    rev = "984745d8";
+    sha256 = "037z0y32k1gdda192y5qn5hi7wp8wyap44mkjlklrgcqkmlcylb9";
   };
 
   preConfigure =
@@ -80,13 +83,14 @@ stdenv.mkDerivation rec {
       done
 
       unzip ${mathJaxSrc} -d dependencies/common/mathjax-26
-      mkdir -p dependencies/common/libclang/3.5
-      unzip ${rstudiolibclang} -d dependencies/common/libclang/3.5
-      mkdir -p dependencies/common/libclang/builtin-headers
-      unzip ${rstudiolibclangheaders} -d dependencies/common/libclang/builtin-headers
 
       mkdir -p dependencies/common/pandoc
       cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
+
+      cp -r ${rsconnectSrc} dependencies/common/rsconnect
+      pushd dependencies/common
+      ${R}/bin/R CMD build -d --no-build-vignettes rsconnect
+      popd
     '';
 
   enableParallelBuilding = true;
diff --git a/pkgs/applications/editors/rstudio/preview.nix b/pkgs/applications/editors/rstudio/preview.nix
deleted file mode 100644
index 55c83ca85a64..000000000000
--- a/pkgs/applications/editors/rstudio/preview.nix
+++ /dev/null
@@ -1,119 +0,0 @@
-{ stdenv, fetchurl, fetchFromGitHub, makeDesktopItem, cmake, boost, zlib
-, openssl, R, qtbase, qtxmlpatterns, qtsensors, qtwebengine, qtwebchannel
-, libuuid, hunspellDicts, unzip, ant, jdk, gnumake, makeWrapper, pandoc
-, llvmPackages
-}:
-
-let
-  rev = "f79330d4";
-  ginVer = "2.1.2";
-  gwtVer = "2.8.1";
-in
-stdenv.mkDerivation rec {
-  name = "RStudio-preview-${rev}";
-
-  nativeBuildInputs = [ cmake unzip ant jdk makeWrapper pandoc ];
-
-  buildInputs = [ boost zlib openssl R qtbase qtxmlpatterns qtsensors
-                  qtwebengine qtwebchannel libuuid ];
-
-  src = fetchFromGitHub {
-    owner = "rstudio";
-    repo = "rstudio";
-    inherit rev;
-    sha256 = "0v3vzqjp74c3m4h9l6w2lrdnjqaimdjzbf7vhnlxj2qa0lwsnykb";
-  };
-
-  # Hack RStudio to only use the input R and provided libclang.
-  patches = [ ./r-location.patch ./clang-location.patch ];
-  postPatch = ''
-    substituteInPlace src/cpp/core/r_util/REnvironmentPosix.cpp --replace '@R@' ${R}
-    substituteInPlace src/cpp/core/libclang/LibClang.cpp \
-      --replace '@clang@' ${llvmPackages.clang.cc} \
-      --replace '@libclang.so@' ${llvmPackages.clang.cc.lib}/lib/libclang.so
-  '';
-
-  ginSrc = fetchurl {
-    url = "https://s3.amazonaws.com/rstudio-buildtools/gin-${ginVer}.zip";
-    sha256 = "16jzmljravpz6p2rxa87k5f7ir8vs7ya75lnfybfajzmci0p13mr";
-  };
-
-  gwtSrc = fetchurl {
-    url = "https://s3.amazonaws.com/rstudio-buildtools/gwt-${gwtVer}.zip";
-    sha256 = "19x000m3jwnkqgi6ic81lkzyjvvxcfacw2j0vcfcaknvvagzhyhb";
-  };
-
-  hunspellDictionaries = with stdenv.lib; filter isDerivation (attrValues hunspellDicts);
-
-  mathJaxSrc = fetchurl {
-    url = https://s3.amazonaws.com/rstudio-buildtools/mathjax-26.zip;
-    sha256 = "0wbcqb9rbfqqvvhqr1pbqax75wp8ydqdyhp91fbqfqp26xzjv6lk";
-  };
-
-  rsconnectSrc = fetchFromGitHub {
-    owner = "rstudio";
-    repo = "rsconnect";
-    rev = "984745d8";
-    sha256 = "037z0y32k1gdda192y5qn5hi7wp8wyap44mkjlklrgcqkmlcylb9";
-  };
-
-  preConfigure =
-    ''
-      GWT_LIB_DIR=src/gwt/lib
-
-      mkdir -p $GWT_LIB_DIR/gin/${ginVer}
-      unzip ${ginSrc} -d $GWT_LIB_DIR/gin/${ginVer}
-
-      unzip ${gwtSrc}
-      mkdir -p $GWT_LIB_DIR/gwt
-      mv gwt-${gwtVer} $GWT_LIB_DIR/gwt/${gwtVer}
-
-      mkdir dependencies/common/dictionaries
-      for dict in ${builtins.concatStringsSep " " hunspellDictionaries}; do
-        for i in "$dict/share/hunspell/"*; do
-          ln -sv $i dependencies/common/dictionaries/
-        done
-      done
-
-      unzip ${mathJaxSrc} -d dependencies/common/mathjax-26
-
-      mkdir -p dependencies/common/pandoc
-      cp ${pandoc}/bin/pandoc dependencies/common/pandoc/
-
-      cp -r ${rsconnectSrc} dependencies/common/rsconnect
-      pushd dependencies/common
-      ${R}/bin/R CMD build -d --no-build-vignettes rsconnect
-      popd
-    '';
-
-  enableParallelBuilding = true;
-
-  cmakeFlags = [ "-DRSTUDIO_TARGET=Desktop" "-DQT_QMAKE_EXECUTABLE=$NIX_QT5_TMP/bin/qmake" ];
-
-  desktopItem = makeDesktopItem {
-    name = name;
-    exec = "rstudio %F";
-    icon = "rstudio";
-    desktopName = "RStudio Preview";
-    genericName = "IDE";
-    comment = meta.description;
-    categories = "Development;";
-    mimeType = "text/x-r-source;text/x-r;text/x-R;text/x-r-doc;text/x-r-sweave;text/x-r-markdown;text/x-r-html;text/x-r-presentation;application/x-r-data;application/x-r-project;text/x-r-history;text/x-r-profile;text/x-tex;text/x-markdown;text/html;text/css;text/javascript;text/x-chdr;text/x-csrc;text/x-c++hdr;text/x-c++src;";
-  };
-
-  postInstall = ''
-      wrapProgram $out/bin/rstudio --suffix PATH : ${gnumake}/bin
-      mkdir $out/share
-      cp -r ${desktopItem}/share/applications $out/share
-      mkdir $out/share/icons
-      ln $out/rstudio.png $out/share/icons
-  '';
-
-  meta = with stdenv.lib;
-    { description = "Set of integrated tools for the R language";
-      homepage = https://www.rstudio.com/;
-      license = licenses.agpl3;
-      maintainers = with maintainers; [ averelld ];
-      platforms = platforms.linux;
-    };
-}
diff --git a/pkgs/applications/misc/blender/default.nix b/pkgs/applications/misc/blender/default.nix
index 353cf620ee74..5445c7efb59b 100644
--- a/pkgs/applications/misc/blender/default.nix
+++ b/pkgs/applications/misc/blender/default.nix
@@ -2,7 +2,7 @@
 , ilmbase, libXi, libX11, libXext, libXrender
 , libjpeg, libpng, libsamplerate, libsndfile
 , libtiff, libGLU_combined, openal, opencolorio, openexr, openimageio, openjpeg_1, pythonPackages
-, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd
+, zlib, fftw, opensubdiv, freetype, jemalloc, ocl-icd, addOpenGLRunpath
 , jackaudioSupport ? false, libjack2
 , cudaSupport ? config.cudaSupport or false, cudatoolkit
 , colladaSupport ? true, opencollada
@@ -21,8 +21,9 @@ stdenv.mkDerivation rec {
     sha256 = "1g4kcdqmf67srzhi3hkdnr4z1ph4h9sza1pahz38mrj998q4r52c";
   };
 
+  nativeBuildInputs = [ cmake ] ++ optional cudaSupport addOpenGLRunpath;
   buildInputs =
-    [ boost cmake ffmpeg gettext glew ilmbase
+    [ boost ffmpeg gettext glew ilmbase
       libXi libX11 libXext libXrender
       freetype libjpeg libpng libsamplerate libsndfile libtiff libGLU_combined openal
       opencolorio openexr openimageio openjpeg_1 python zlib fftw jemalloc
@@ -80,6 +81,15 @@ stdenv.mkDerivation rec {
         --prefix PYTHONPATH : ${pythonPackages.numpy}/${python.sitePackages}
     '';
 
+  # Set RUNPATH so that libcuda and libnvrtc in /run/opengl-driver(-32)/lib can be
+  # found. See the explanation in libglvnd.
+  postFixup = optionalString cudaSupport ''
+    for program in $out/bin/blender $out/bin/.blender-wrapped; do
+      isELF "$program" || continue
+      addOpenGLRunpath "$program"
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "3D Creation/Animation/Publishing System";
     homepage = https://www.blender.org;
diff --git a/pkgs/applications/networking/gns3/default.nix b/pkgs/applications/networking/gns3/default.nix
index 2f588cd304d9..6ef4465cd92c 100644
--- a/pkgs/applications/networking/gns3/default.nix
+++ b/pkgs/applications/networking/gns3/default.nix
@@ -1,16 +1,16 @@
 { callPackage, stdenv }:
 
 let
-  stableVersion = "2.1.17";
-  previewVersion = "2.2.0a5";
+  stableVersion = "2.1.18";
+  previewVersion = "2.2.0b1";
   addVersion = args:
     let version = if args.stable then stableVersion else previewVersion;
         branch = if args.stable then "stable" else "preview";
     in args // { inherit version branch; };
   mkGui = args: callPackage (import ./gui.nix (addVersion args)) { };
   mkServer = args: callPackage (import ./server.nix (addVersion args)) { };
-  guiSrcHash = "1caqb644nq0hhszlg3ac87730m1xmw48b17jisqiq7zmk9scsh40";
-  serverSrcHash = "0zyfh5sw8r2n41v0nazgdbr50cz6g5an2myvlgj5xx41smr9gflb";
+  guiSrcHash = "00hcri32vakz17ywbqd9lycxdai490ds0g1v8znm75ddvszfbv7i";
+  serverSrcHash = "0f28f5f4dsr8h4q592dh9i1z0gp836gdgm8clwrkb7i01df0rrlf";
 in {
   guiStable = mkGui {
     stable = true;
@@ -18,7 +18,7 @@ in {
   };
   guiPreview = mkGui {
     stable = false;
-    sha256Hash = "0p4g5hszys68ijzsi2rb89j1rpg04wlqlzzrl92npvqqf2i0jdf8";
+    sha256Hash = "0kx68r8kgnsb7710a1a5y64blmw2jl1gv37bzbbivi15dzgmykfh";
   };
 
   serverStable = mkServer {
@@ -27,6 +27,6 @@ in {
   };
   serverPreview = mkServer {
     stable = false;
-    sha256Hash = "1yvdfczi8ah9m7b49l7larfs678hh7c424i1f73kivfds6211bj5";
+    sha256Hash = "1jxkba7hc7271hjw3839r0yfzs87dzv1nqx62adhk9qrrcfqhg58";
   };
 }
diff --git a/pkgs/applications/radio/limesuite/default.nix b/pkgs/applications/radio/limesuite/default.nix
index ef9b28b36f82..3ff73c4ef2ab 100644
--- a/pkgs/applications/radio/limesuite/default.nix
+++ b/pkgs/applications/radio/limesuite/default.nix
@@ -4,7 +4,7 @@
 } :
 
 let
-  version = "19.01.0";
+  version = "19.04.0";
 
 in stdenv.mkDerivation {
   name = "limesuite-${version}";
@@ -13,7 +13,7 @@ in stdenv.mkDerivation {
     owner = "myriadrf";
     repo = "LimeSuite";
     rev = "v${version}";
-    sha256 = "1r03kc1pvlhkvp19qbw7f5qzxx48z2v638f0xpawf6d1nwfky1n3";
+    sha256 = "1lrjrli0ny25qwg8bw1bvbdb18hf7ffqj4ziibkgzscv3w5v0s45";
   };
 
   enableParallelBuilding = true;
diff --git a/pkgs/build-support/add-opengl-runpath/default.nix b/pkgs/build-support/add-opengl-runpath/default.nix
new file mode 100644
index 000000000000..5cab0937e074
--- /dev/null
+++ b/pkgs/build-support/add-opengl-runpath/default.nix
@@ -0,0 +1,12 @@
+{ lib, stdenv }:
+
+stdenv.mkDerivation {
+  name = "add-opengl-runpath";
+
+  driverLink = "/run/opengl-driver" + lib.optionalString stdenv.isi686 "-32";
+
+  buildCommand = ''
+    mkdir -p $out/nix-support
+    substituteAll ${./setup-hook.sh} $out/nix-support/setup-hook
+  '';
+}
diff --git a/pkgs/build-support/add-opengl-runpath/setup-hook.sh b/pkgs/build-support/add-opengl-runpath/setup-hook.sh
new file mode 100644
index 000000000000..7645033ca206
--- /dev/null
+++ b/pkgs/build-support/add-opengl-runpath/setup-hook.sh
@@ -0,0 +1,28 @@
+# Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found.
+# This is needed to not rely on LD_LIBRARY_PATH which does not work with setuid
+# executables. Fixes https://github.com/NixOS/nixpkgs/issues/22760. It must be run
+# in postFixup because RUNPATH stripping in fixup would undo it. Note that patchelf
+# actually sets RUNPATH not RPATH, which applies only to dependencies of the binary
+# it set on (including for dlopen), so the RUNPATH must indeed be set on these
+# libraries and would not work if set only on executables.
+addOpenGLRunpath() {
+    local forceRpath=
+
+    while [ $# -gt 0 ]; do
+        case "$1" in
+            --) shift; break;;
+            --force-rpath) shift; forceRpath=1;;
+            --*)
+                echo "addOpenGLRunpath: ERROR: Invalid command line" \
+                     "argument: $1" >&2
+                return 1;;
+            *) break;;
+        esac
+    done
+
+    for file in "$@"; do
+        local origRpath="$(patchelf --print-rpath "$file")"
+        patchelf --set-rpath "@driverLink@/lib:$origRpath" ${forceRpath:+--force-rpath} "$file"
+    done
+}
+
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index b43a6e35ab25..3b80c60044bd 100644
--- a/pkgs/data/themes/plata/default.nix
+++ b/pkgs/data/themes/plata/default.nix
@@ -8,23 +8,26 @@
 , xfceSupport ? true
 , gtkNextSupport ? false
 , plankSupport ? false
+, steamSupport ? false
 , telegramSupport ? false
-, tweetdeckSupport ? false
+, tweetdeckSupport ? false, zip ? null
 , selectionColor ? null # Primary color for 'selected-items' (Default: #3F51B5 = Indigo500)
 , accentColor ? null # Secondary color for notifications and OSDs (Default: #7986CB = Indigo300)
 , suggestionColor ? null # Secondary color for 'suggested' buttons (Default: #673AB7 = DPurple500)
 , destructionColor ? null # Tertiary color for 'destructive' buttons (Default: #F44336 = Red500)
 }:
 
+assert tweetdeckSupport -> zip != null;
+
 stdenv.mkDerivation rec {
   name = "plata-theme-${version}";
-  version = "0.7.6";
+  version = "0.8.0";
 
   src = fetchFromGitLab {
     owner = "tista500";
     repo = "plata-theme";
     rev = version;
-    sha256 = "1jllsl2h3zdvlp3k2dy3h4jyccrzzymwbqz43jhnm6mxxabxzijg";
+    sha256 = "10xvfrc945zqlgzlx8zjyg0gnkwmq9vfjk0yqjy3gg62i65s8sch";
   };
 
   preferLocalBuild = true;
@@ -37,7 +40,8 @@ stdenv.mkDerivation rec {
     inkscape
     libxml2
     gnome2.glib.dev
-  ];
+  ]
+  ++ stdenv.lib.optional tweetdeckSupport zip;
 
   buildInputs = [
     gdk_pixbuf
@@ -62,6 +66,7 @@ stdenv.mkDerivation rec {
       (enableFeature xfceSupport "xfce")
       (enableFeature gtkNextSupport "gtk_next")
       (enableFeature plankSupport "plank")
+      (enableFeature steamSupport "airforsteam")
       (enableFeature telegramSupport "telegram")
       (enableFeature tweetdeckSupport "tweetdeck")
     ]
@@ -70,6 +75,13 @@ stdenv.mkDerivation rec {
     ++ (withOptional suggestionColor "suggestion_color")
     ++ (withOptional destructionColor "destruction_color");
 
+  postInstall = ''
+    for dest in $out/share/gtksourceview-{3.0,4}/styles; do
+      mkdir -p $dest
+      cp $out/share/themes/Plata-{Noir,Lumine}/gtksourceview/*.xml $dest
+    done
+  '';
+
   meta = with stdenv.lib; {
     description = "A Gtk+ theme based on Material Design Refresh";
     homepage = https://gitlab.com/tista500/plata-theme;
diff --git a/pkgs/development/compilers/cudatoolkit/default.nix b/pkgs/development/compilers/cudatoolkit/default.nix
index e2c3c8fe587b..6a18c05f38e5 100644
--- a/pkgs/development/compilers/cudatoolkit/default.nix
+++ b/pkgs/development/compilers/cudatoolkit/default.nix
@@ -1,6 +1,7 @@
 { lib, stdenv, makeWrapper, fetchurl, requireFile, perl, ncurses5, expat, python27, zlib
 , gcc48, gcc49, gcc5, gcc6, gcc7
 , xorg, gtk2, gdk_pixbuf, glib, fontconfig, freetype, unixODBC, alsaLib, glibc
+, addOpenGLRunpath
 }:
 
 let
@@ -39,7 +40,7 @@ let
 
       outputs = [ "out" "lib" "doc" ];
 
-      nativeBuildInputs = [ perl makeWrapper ];
+      nativeBuildInputs = [ perl makeWrapper addOpenGLRunpath ];
       buildInputs = [ gdk_pixbuf ]; # To get $GDK_PIXBUF_MODULE_FILE via setup-hook
       runtimeDependencies = [
         ncurses5 expat python zlib glibc
@@ -143,10 +144,19 @@ let
           else
             rpath2=$rpath:$lib/lib:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64
           fi
-          patchelf --set-rpath $rpath2 --force-rpath $i
+          patchelf --set-rpath "$rpath2" --force-rpath $i
         done < <(find $out $lib $doc -type f -print0)
       '';
 
+      # Set RPATH so that libcuda and other libraries in
+      # /run/opengl-driver(-32)/lib can be found. See the explanation in
+      # addOpenGLRunpath.  Don't try to figure out which libraries really need
+      # it, just patch all (but not the stubs libraries). Note that
+      # --force-rpath prevents changing RPATH (set above) to RUNPATH.
+      postFixup = ''
+        addOpenGLRunpath --force-rpath {$out,$lib}/lib/lib*.so
+      '';
+
       # cuda-gdb doesn't run correctly when not using sandboxing, so
       # temporarily disabling the install check.  This should be set to true
       # when we figure out how to get `cuda-gdb --version` to run correctly
diff --git a/pkgs/development/libraries/libglvnd/default.nix b/pkgs/development/libraries/libglvnd/default.nix
index c7b76497fa8c..62c6b45c5d45 100644
--- a/pkgs/development/libraries/libglvnd/default.nix
+++ b/pkgs/development/libraries/libglvnd/default.nix
@@ -1,8 +1,6 @@
-{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, python2, pkgconfig, libX11, libXext, xorgproto }:
+{ stdenv, lib, fetchFromGitHub, fetchpatch, autoreconfHook, python2, pkgconfig, libX11, libXext, xorgproto, addOpenGLRunpath }:
 
-let
-  driverLink = "/run/opengl-driver" + lib.optionalString stdenv.isi686 "-32";
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "libglvnd-${version}";
   version = "1.0.0";
 
@@ -13,7 +11,7 @@ in stdenv.mkDerivation rec {
     sha256 = "1a126lzhd2f04zr3rvdl6814lfl0j077spi5dsf2alghgykn5iif";
   };
 
-  nativeBuildInputs = [ autoreconfHook pkgconfig python2 ];
+  nativeBuildInputs = [ autoreconfHook pkgconfig python2 addOpenGLRunpath ];
   buildInputs = [ libX11 libXext xorgproto ];
 
   postPatch = lib.optionalString stdenv.isDarwin ''
@@ -26,7 +24,7 @@ in stdenv.mkDerivation rec {
   NIX_CFLAGS_COMPILE = [
     "-UDEFAULT_EGL_VENDOR_CONFIG_DIRS"
     # FHS paths are added so that non-NixOS applications can find vendor files.
-    "-DDEFAULT_EGL_VENDOR_CONFIG_DIRS=\"${driverLink}/share/glvnd/egl_vendor.d:/etc/glvnd/egl_vendor.d:/usr/share/glvnd/egl_vendor.d\""
+    "-DDEFAULT_EGL_VENDOR_CONFIG_DIRS=\"${addOpenGLRunpath.driverLink}/share/glvnd/egl_vendor.d:/etc/glvnd/egl_vendor.d:/usr/share/glvnd/egl_vendor.d\""
   ] ++ lib.optional stdenv.cc.isClang "-Wno-error";
 
   # Indirectly: https://bugs.freedesktop.org/show_bug.cgi?id=35268
@@ -45,7 +43,13 @@ in stdenv.mkDerivation rec {
     });
   outputs = [ "out" "dev" ];
 
-  passthru = { inherit driverLink; };
+  # Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found.
+  # See the explanation in addOpenGLRunpath.
+  postFixup = ''
+    addOpenGLRunpath $out/lib/libGLX.so $out/lib/libEGL.so
+  '';
+
+  passthru = { inherit (addOpenGLRunpath) driverLink; };
 
   meta = with stdenv.lib; {
     description = "The GL Vendor-Neutral Dispatch library";
diff --git a/pkgs/development/libraries/libndctl/default.nix b/pkgs/development/libraries/libndctl/default.nix
index 408155fd5a77..d9db09f1e98e 100644
--- a/pkgs/development/libraries/libndctl/default.nix
+++ b/pkgs/development/libraries/libndctl/default.nix
@@ -5,13 +5,13 @@
 
 stdenv.mkDerivation rec {
   name = "libndctl-${version}";
-  version = "64.1";
+  version = "65";
 
   src = fetchFromGitHub {
     owner  = "pmem";
     repo   = "ndctl";
     rev    = "v${version}";
-    sha256 = "1la82fqbdwjkw6il498nkdfgqc4aszv481xf2p9p07jfvankx24v";
+    sha256 = "0d8hzfvyxs2q8kgkwgdizlml41kin4mhx3vpdsjk34pfi7mqy69y";
   };
 
   outputs = [ "out" "lib" "man" "dev" ];
diff --git a/pkgs/development/libraries/ocl-icd/default.nix b/pkgs/development/libraries/ocl-icd/default.nix
index ec6dc5f90528..abdc7502052b 100644
--- a/pkgs/development/libraries/ocl-icd/default.nix
+++ b/pkgs/development/libraries/ocl-icd/default.nix
@@ -1,4 +1,4 @@
-{stdenv, fetchurl, ruby, opencl-headers, libGL_driver }:
+{stdenv, fetchurl, ruby, opencl-headers, addOpenGLRunpath }:
 
 stdenv.mkDerivation rec {
   name = "ocl-icd-${version}";
@@ -9,12 +9,18 @@ stdenv.mkDerivation rec {
     sha256 = "0f14gpa13sdm0kzqv5yycp4pschbmi6n5fj7wl4ilspzsrqcgqr2";
   };
 
-  nativeBuildInputs = [ ruby ];
+  nativeBuildInputs = [ ruby addOpenGLRunpath ];
 
   buildInputs = [ opencl-headers ];
 
   postPatch = ''
-    sed -i 's,"/etc/OpenCL/vendors","${libGL_driver.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c
+    sed -i 's,"/etc/OpenCL/vendors","${addOpenGLRunpath.driverLink}/etc/OpenCL/vendors",g' ocl_icd_loader.c
+  '';
+
+  # Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found.
+  # See the explanation in addOpenGLRunpath.
+  postFixup = ''
+    addOpenGLRunpath $out/lib/libOpenCL.so
   '';
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix
index bb1258655b5b..3c448abeccf6 100644
--- a/pkgs/development/libraries/science/math/cudnn/generic.nix
+++ b/pkgs/development/libraries/science/math/cudnn/generic.nix
@@ -7,6 +7,7 @@
 , lib
 , cudatoolkit
 , fetchurl
+, addOpenGLRunpath
 }:
 
 stdenv.mkDerivation rec {
@@ -19,6 +20,8 @@ stdenv.mkDerivation rec {
     inherit sha256;
   };
 
+  nativeBuildInputs = [ addOpenGLRunpath ];
+
   installPhase = ''
     function fixRunPath {
       p=$(patchelf --print-rpath $1)
@@ -31,6 +34,12 @@ stdenv.mkDerivation rec {
     cp -a lib64 $out/lib64
   '';
 
+  # Set RUNPATH so that libcuda in /run/opengl-driver(-32)/lib can be found.
+  # See the explanation in addOpenGLRunpath.
+  postFixup = ''
+    addOpenGLRunpath $out/lib/lib*.so
+  '';
+
   propagatedBuildInputs = [
     cudatoolkit
   ];
diff --git a/pkgs/development/libraries/science/math/nccl/default.nix b/pkgs/development/libraries/science/math/nccl/default.nix
index badd08291de4..a099b779a781 100644
--- a/pkgs/development/libraries/science/math/nccl/default.nix
+++ b/pkgs/development/libraries/science/math/nccl/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, which, cudatoolkit }:
+{ stdenv, fetchFromGitHub, which, cudatoolkit, addOpenGLRunpath }:
 
 stdenv.mkDerivation rec {
   name = "nccl-${version}-cuda-${cudatoolkit.majorVersion}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
 
   outputs = [ "out" "dev" ];
 
-  nativeBuildInputs = [ which ];
+  nativeBuildInputs = [ which addOpenGLRunpath ];
 
   buildInputs = [ cudatoolkit ];
 
@@ -28,6 +28,10 @@ stdenv.mkDerivation rec {
 
   postFixup = ''
     moveToOutput lib/libnccl_static.a $dev
+
+    # Set RUNPATH so that libnvidia-ml in /run/opengl-driver(-32)/lib can be found.
+    # See the explanation in addOpenGLRunpath.
+    addOpenGLRunpath $out/lib/lib*.so
   '';
 
   NIX_CFLAGS_COMPILE = [ "-Wno-unused-function" ];
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index 7d53065ba324..891ad373e027 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -1,5 +1,5 @@
 { stdenv, fetchFromGitHub, cmake, python3, vulkan-headers, pkgconfig
-, xlibsWrapper, libxcb, libXrandr, libXext, wayland, libGL_driver }:
+, xlibsWrapper, libxcb, libXrandr, libXext, wayland, addOpenGLRunpath }:
 
 let
   version = "1.1.106";
@@ -17,17 +17,23 @@ stdenv.mkDerivation rec {
     sha256 = "0zhrwj1gi90x2w8gaaaw5h4b969a8gfy244kn0drrplhhb1nqz3b";
   };
 
-  nativeBuildInputs = [ pkgconfig ];
+  nativeBuildInputs = [ pkgconfig addOpenGLRunpath ];
   buildInputs = [ cmake python3 xlibsWrapper libxcb libXrandr libXext wayland ];
   enableParallelBuilding = true;
 
   cmakeFlags = [
-    "-DFALLBACK_DATA_DIRS=${libGL_driver.driverLink}/share:/usr/local/share:/usr/share"
+    "-DFALLBACK_DATA_DIRS=${addOpenGLRunpath.driverLink}/share:/usr/local/share:/usr/share"
     "-DVULKAN_HEADERS_INSTALL_DIR=${vulkan-headers}"
   ];
 
   outputs = [ "out" "dev" ];
 
+  # Set RUNPATH so that driver libraries in /run/opengl-driver(-32)/lib can be found.
+  # See the explanation in addOpenGLRunpath.
+  postFixup = ''
+    addOpenGLRunpath $out/lib/libvulkan.so
+  '';
+
   meta = with stdenv.lib; {
     description = "LunarG Vulkan loader";
     homepage    = https://www.lunarg.com;
diff --git a/pkgs/development/ocaml-modules/logs/default.nix b/pkgs/development/ocaml-modules/logs/default.nix
index 84ac1039628d..157beaac4bc7 100644
--- a/pkgs/development/ocaml-modules/logs/default.nix
+++ b/pkgs/development/ocaml-modules/logs/default.nix
@@ -9,11 +9,11 @@ assert stdenv.lib.versionAtLeast ocaml.version "4.01.0";
 
 stdenv.mkDerivation rec {
   name = "ocaml-${pname}-${version}";
-  version = "0.6.2";
+  version = "0.6.3";
 
   src = fetchurl {
     url = "${webpage}/releases/${pname}-${version}.tbz";
-    sha256 = "1khbn7jqpid83zn8rvyh1x1sirls7zc878zj4fz985m5xlsfy853";
+    sha256 = "1lkhr7i44xw4kpfbhgj3rbqy3dv5bfm4kyrbl8a9rfafddcxlwss";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg fmt cmdliner lwt ];
diff --git a/pkgs/development/ocaml-modules/ptime/default.nix b/pkgs/development/ocaml-modules/ptime/default.nix
index d2f85f823ae9..f21f05eeae5f 100644
--- a/pkgs/development/ocaml-modules/ptime/default.nix
+++ b/pkgs/development/ocaml-modules/ptime/default.nix
@@ -1,12 +1,12 @@
 { stdenv, fetchurl, ocaml, findlib, ocamlbuild, topkg, result, js_of_ocaml }:
 
 stdenv.mkDerivation rec {
-  version = "0.8.4";
+  version = "0.8.5";
   name = "ocaml${ocaml.version}-ptime-${version}";
 
   src = fetchurl {
     url = "https://erratique.ch/software/ptime/releases/ptime-${version}.tbz";
-    sha256 = "0z2snhda8bg136xkw2msw6k2dz84vb49p8bgzrxfs8mawdlk0kkg";
+    sha256 = "1fxq57xy1ajzfdnvv5zfm7ap2nf49znw5f9gbi4kb9vds942ij27";
   };
 
   buildInputs = [ ocaml findlib ocamlbuild topkg js_of_ocaml ];
diff --git a/pkgs/development/python-modules/curio/default.nix b/pkgs/development/python-modules/curio/default.nix
new file mode 100644
index 000000000000..65d225dc377d
--- /dev/null
+++ b/pkgs/development/python-modules/curio/default.nix
@@ -0,0 +1,34 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, pytest
+, sphinx
+}:
+
+buildPythonPackage rec {
+  pname = "curio";
+  version = "0.9";
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "51d1a7b49b4f8dd1486ac785c72d522962e93ccfdcfc1f818f5c7553a307b5ef";
+  };
+
+  disabled = !isPy3k;
+
+  checkInputs = [ pytest sphinx ];
+
+  # test_aside_basic times out,
+  # test_aside_cancel fails because modifies PYTHONPATH and cant find pytest
+  checkPhase = ''
+    pytest --deselect tests/test_task.py::test_aside_basic --deselect tests/test_task.py::test_aside_cancel
+  '';
+
+  meta = with lib; {
+    homepage = "https://github.com/dabeaz/curio";
+    description = "Library for performing concurrent I/O with coroutines in Python 3";
+    license = licenses.bsd3;
+    maintainers = [ maintainers.marsam ];
+  };
+}
diff --git a/pkgs/development/python-modules/faker/default.nix b/pkgs/development/python-modules/faker/default.nix
index b79999bba41f..2204c25e6bce 100644
--- a/pkgs/development/python-modules/faker/default.nix
+++ b/pkgs/development/python-modules/faker/default.nix
@@ -16,23 +16,23 @@ assert pythonOlder "3.3" -> ipaddress != null;
 
 buildPythonPackage rec {
   pname = "Faker";
-  version = "1.0.5";
+  version = "1.0.7";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "3f2f4570df28df2eb8f39b00520eb610081d6552975e926c6a2cbc64fd89c4c1";
+    sha256 = "1jins8jlqyxjwx6i2h2jknwwfpi0bpz1qggvw6xnbxl0g9spyiv0";
   };
 
   buildInputs = [ pytestrunner ];
   checkInputs = [
     email_validator
     freezegun
-    mock
-    more-itertools
     pytest
     random2
     ukpostcodeparser
-  ];
+  ]
+  ++ lib.optionals (pythonOlder "3.3") [ mock ]
+  ++ lib.optionals (pythonOlder "3.0") [ more-itertools ];
 
   propagatedBuildInputs = [
     dateutil
diff --git a/pkgs/development/python-modules/kitchen/default.nix b/pkgs/development/python-modules/kitchen/default.nix
index 2e8abf0da525..494a4f8fc063 100644
--- a/pkgs/development/python-modules/kitchen/default.nix
+++ b/pkgs/development/python-modules/kitchen/default.nix
@@ -1,11 +1,11 @@
 { stdenv, buildPythonPackage, fetchPypi }:
 buildPythonPackage rec {
   pname = "kitchen";
-  version = "1.2.5";
+  version = "1.2.6";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "af9fbb60f68cbdb2ead402beb8fa7c7edadbe2aa7b5a70138b7c4b0fa88153fd";
+    sha256 = "0g5hq2icnng9vy4www5hnr3r5srisfwp0wxw1sv5c5dxy61gak5q";
   };
 
   meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
index 6412e04f93d3..01f80473feef 100644
--- a/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
+++ b/pkgs/development/python-modules/marshmallow-sqlalchemy/default.nix
@@ -4,7 +4,7 @@
 
 buildPythonPackage rec {
   pname = "marshmallow-sqlalchemy";
-  version = "0.16.2";
+  version = "0.16.3";
 
   meta = {
     homepage = "https://github.com/marshmallow-code/marshmallow-sqlalchemy";
@@ -14,7 +14,7 @@ buildPythonPackage rec {
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "755e6e930c1ffe3430f62091085f0a51e0817b240986d931014f03b3556fff34";
+    sha256 = "0qzpl53r58fk328cn41365c6jkliwmj41v16zkyjxb9d4s2mvn14";
   };
 
   propagatedBuildInputs = [ marshmallow sqlalchemy ];
diff --git a/pkgs/development/python-modules/pybindgen/default.nix b/pkgs/development/python-modules/pybindgen/default.nix
index 9b5991a424c9..4d8d0589edae 100644
--- a/pkgs/development/python-modules/pybindgen/default.nix
+++ b/pkgs/development/python-modules/pybindgen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchPypi, buildPythonPackage, setuptools_scm, pygccxml }:
+{ stdenv, fetchPypi, buildPythonPackage, isPy3k, setuptools_scm, pygccxml }:
 buildPythonPackage rec {
   pname = "PyBindGen";
   version = "0.19.0";
@@ -11,6 +11,7 @@ buildPythonPackage rec {
   buildInputs = [ setuptools_scm ];
 
   checkInputs = [ pygccxml ];
+  doCheck = (!isPy3k); # Fails to import module 'cxxfilt' from pygccxml on Py3k
 
   meta = with stdenv.lib; {
     homepage = https://github.com/gjcarneiro/pybindgen;
@@ -19,5 +20,3 @@ buildPythonPackage rec {
     maintainers = with maintainers; [ teto ];
   };
 }
-
-
diff --git a/pkgs/development/python-modules/sniffio/default.nix b/pkgs/development/python-modules/sniffio/default.nix
index 9893bc5828a0..f5674c09e021 100644
--- a/pkgs/development/python-modules/sniffio/default.nix
+++ b/pkgs/development/python-modules/sniffio/default.nix
@@ -1,26 +1,27 @@
 { buildPythonPackage, lib, fetchPypi, glibcLocales, isPy3k, contextvars
-, pythonOlder
+, pythonOlder, pytest, curio
 }:
 
 buildPythonPackage rec {
   pname = "sniffio";
-  version = "1.0.0";
+  version = "1.1.0";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "1dzb0nx3m1hpjgsv6s6w5ac2jcmywcz6gqnfkw8rwz1vkr1836rf";
+    sha256 = "8e3810100f69fe0edd463d02ad407112542a11ffdc29f67db2bf3771afb87a21";
   };
 
-  # breaks with the following error:
-  # > TypeError: 'encoding' is an invalid keyword argument for this function
   disabled = !isPy3k;
 
   buildInputs = [ glibcLocales ];
 
   propagatedBuildInputs = lib.optionals (pythonOlder "3.7") [ contextvars ];
 
-  # no tests distributed with PyPI
-  doCheck = false;
+  checkInputs = [ pytest curio ];
+
+  checkPhase = ''
+    pytest
+  '';
 
   meta = with lib; {
     homepage = https://github.com/python-trio/sniffio;
diff --git a/pkgs/development/tools/castxml/default.nix b/pkgs/development/tools/castxml/default.nix
index aea94633bae3..653d0d4505e7 100644
--- a/pkgs/development/tools/castxml/default.nix
+++ b/pkgs/development/tools/castxml/default.nix
@@ -2,37 +2,39 @@
 , pythonPackages
 , cmake
 , llvmPackages
+, libffi, libxml2, zlib
 , withMan ? true
 }:
 stdenv.mkDerivation rec {
 
-  name    = "${pname}-${version}";
   pname   = "CastXML";
-  version = "20180403";
+  version = "0.2.0";
 
   src = fetchFromGitHub {
-    owner  = "CastXML";
-    repo   = "CastXML";
-    rev    = "c2a44d06d9379718292b696f4e13a2725ff9d95e";
-    sha256 = "1hjh8ihjyp1m2jb5yypp5c45bpbz8k004f4p1cjw4gc7pxhjacdj";
+    owner  = pname;
+    repo   = pname;
+    rev    = "v${version}";
+    sha256 = "1qpgr5hyb692h7l5igmq53m6a6vi4d9qp8ks893cflfx9955h3ip";
   };
 
+  nativeBuildInputs = [ cmake ] ++ stdenv.lib.optionals withMan [ pythonPackages.sphinx ];
+
   cmakeFlags = [
     "-DCLANG_RESOURCE_DIR=${llvmPackages.clang-unwrapped}"
     "-DSPHINX_MAN=${if withMan then "ON" else "OFF"}"
   ];
 
   buildInputs = [
-    cmake
     llvmPackages.clang-unwrapped
     llvmPackages.llvm
-  ] ++ stdenv.lib.optionals withMan [ pythonPackages.sphinx ];
+    libffi libxml2 zlib
+  ];
 
-  propagatedbuildInputs = [ llvmPackages.libclang ];
+  propagatedBuildInputs = [ llvmPackages.libclang ];
 
-  # 97% tests passed, 96 tests failed out of 2866
+  # 97% tests passed, 97 tests failed out of 2881
   # mostly because it checks command line and nix append -isystem and all
-  doCheck=false;
+  doCheck = false;
   checkPhase = ''
     # -E exclude 4 tests based on names
     # see https://github.com/CastXML/CastXML/issues/90
@@ -40,7 +42,7 @@ stdenv.mkDerivation rec {
   '';
 
   meta = with stdenv.lib; {
-    homepage = https://www.kitware.com;
+    homepage = "https://github.com/CastXML/CastXML";
     license = licenses.asl20;
     description = "Abstract syntax tree XML output tool";
     platforms = platforms.unix;
diff --git a/pkgs/development/tools/golangci-lint/default.nix b/pkgs/development/tools/golangci-lint/default.nix
index d2db1f1a2a69..f08705989563 100644
--- a/pkgs/development/tools/golangci-lint/default.nix
+++ b/pkgs/development/tools/golangci-lint/default.nix
@@ -1,8 +1,8 @@
-{ buildGoPackage, fetchFromGitHub, lib }:
+{ buildGoModule, fetchFromGitHub, lib }:
 
-buildGoPackage rec {
+buildGoModule rec {
   name = "golangci-lint-${version}";
-  version = "1.9.2";
+  version = "1.16.0";
   goPackagePath = "github.com/golangci/golangci-lint";
 
   subPackages = [ "cmd/golangci-lint" ];
@@ -11,14 +11,16 @@ buildGoPackage rec {
     owner = "golangci";
     repo = "golangci-lint";
     rev = "v${version}";
-    sha256 = "0r05j6ayk5778fkd5r1sgcwq675ra0vq82lqs125g70291ryha08";
+    sha256 = "1yzcfmrxyrxhq3vx13qm7czvhvdnaqay75v8ry1lgpg0bnh9pakx";
   };
 
+  modSha256 = "1dsaj6qsac9y4rkssjbmk46vaqbblzdim2rbdh3dgn1m0vdpv505";
+
   meta = with lib; {
     description = "Linters Runner for Go. 5x faster than gometalinter. Nice colored output.";
     homepage = https://golangci.com/;
     license = licenses.agpl3;
     platforms = platforms.unix;
-    maintainers = [ maintainers.manveru ];
+    maintainers = with maintainers; [ anpryl manveru ];
   };
 }
diff --git a/pkgs/os-specific/linux/libbpf/default.nix b/pkgs/os-specific/linux/libbpf/default.nix
new file mode 100644
index 000000000000..a23c0cb09269
--- /dev/null
+++ b/pkgs/os-specific/linux/libbpf/default.nix
@@ -0,0 +1,43 @@
+{ stdenv, fetchFromGitHub, pkgconfig
+, libelf
+}:
+
+with builtins;
+
+stdenv.mkDerivation rec {
+  name = "libbpf-${version}";
+  version = "0.0.3pre114_${substring 0 7 src.rev}";
+
+  src = fetchFromGitHub {
+    owner  = "libbpf";
+    repo   = "libbpf";
+    rev    = "672ae75b66fd8780a4214fe7b116c427e0809a52";
+    sha256 = "1bdw1hc4m95irmybqlwax85b6m856g07p2slcw8b7jw3k4j9x075";
+  };
+
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ libelf ];
+
+  sourceRoot = "source/src";
+  enableParallelBuilding = true;
+  makeFlags = [ "PREFIX=$(out)" ];
+
+  patchPhase = ''
+    substituteInPlace ../scripts/check-reallocarray.sh \
+      --replace '/bin/rm' 'rm'
+  '';
+
+  # FIXME: Multi-output requires some fixes to the way the pkgconfig file is
+  # constructed (it gets put in $out instead of $dev for some reason, with
+  # improper paths embedded). Don't enable it for now.
+
+  # outputs = [ "out" "dev" ];
+
+  meta = with stdenv.lib; {
+    description = "Upstream mirror of libbpf";
+    homepage    = "https://github.com/libbpf/libbpf";
+    license     = with licenses; [ lgpl21 /* or */ bsd2 ];
+    maintainers = with maintainers; [ thoughtpolice ];
+    platforms   = platforms.linux;
+  };
+}
diff --git a/pkgs/servers/matrix-synapse/default.nix b/pkgs/servers/matrix-synapse/default.nix
index 824aacb599db..cde8ae16a332 100644
--- a/pkgs/servers/matrix-synapse/default.nix
+++ b/pkgs/servers/matrix-synapse/default.nix
@@ -23,11 +23,11 @@ let
 
 in buildPythonApplication rec {
   pname = "matrix-synapse";
-  version = "0.99.4";
+  version = "0.99.5";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "136041apawi05mzc0s4s2chrwgql6l9f1i2iinrgi9dabwlb1qpc";
+    sha256 = "0f50nfddrd4zxyv27wn9k5fxhqqa9kgvk2ijby0pgf61b054dhfn";
   };
 
   patches = [
diff --git a/pkgs/servers/monitoring/grafana/default.nix b/pkgs/servers/monitoring/grafana/default.nix
index 3ded244b9fbf..bf57d3f41863 100644
--- a/pkgs/servers/monitoring/grafana/default.nix
+++ b/pkgs/servers/monitoring/grafana/default.nix
@@ -1,7 +1,7 @@
 { lib, buildGoPackage, fetchurl, fetchFromGitHub, phantomjs2 }:
 
 buildGoPackage rec {
-  version = "6.1.6";
+  version = "6.2.0";
   name = "grafana-${version}";
   goPackagePath = "github.com/grafana/grafana";
 
@@ -11,12 +11,12 @@ buildGoPackage rec {
     rev = "v${version}";
     owner = "grafana";
     repo = "grafana";
-    sha256 = "12fj3j1w37nm8p2h4af38wbxkvm0pzf1zsjx8wpj0zrxanbigpjg";
+    sha256 = "18zig7r3kq1a3src0yb8fbajnm2hqzpzpmpjarslnp4xv90xqi87";
   };
 
   srcStatic = fetchurl {
     url = "https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-${version}.linux-amd64.tar.gz";
-    sha256 = "1dg2gjmym06x8wj2xmygsww622k86cq07kbxvp8j8h17br4imj4k";
+    sha256 = "1cy3d04jjr5h8pzfzqb710rlynh9n125imkisrg05dwz5gl99bd7";
   };
 
   postPatch = ''
diff --git a/pkgs/tools/misc/lbdb/default.nix b/pkgs/tools/misc/lbdb/default.nix
index a00da33d8c91..e48d6354eb53 100644
--- a/pkgs/tools/misc/lbdb/default.nix
+++ b/pkgs/tools/misc/lbdb/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, perl, perlPackages, finger_bsd, makeWrapper
+{ stdenv, fetchurl, fetchpatch, perl, perlPackages, finger_bsd, makeWrapper
 , abook ? null
 , gnupg ? null
 , goobook ? null
@@ -32,7 +32,14 @@ stdenv.mkDerivation {
     ++ optional   (khard != null) "--with-khard"
     ++ optional      (mu != null) "--with-mu";
 
-  patches = [ ./add-methods-to-rc.patch ];
+  patches = [ ./add-methods-to-rc.patch
+    # fix undefined exec_prefix. Remove with the next release
+    (fetchpatch {
+      url = "https://github.com/RolandRosenfeld/lbdb/commit/60b7bae255011f59212d96adfbded459d6a27129.patch";
+      sha256 = "129zg086glmlalrg395jq8ljcp787dl3rxjf9v7apsd8mqfdkl2v";
+      excludes = [ "debian/changelog" ];
+    })
+  ];
   postFixup = "wrapProgram $out/lib/mutt_ldap_query --prefix PERL5LIB : "
     + "${AuthenSASL}/${perl.libPrefix}"
     + ":${ConvertASN1}/${perl.libPrefix}"
@@ -43,6 +50,6 @@ stdenv.mkDerivation {
     license = licenses.gpl2;
     platforms = platforms.all;
     description = "The Little Brother's Database";
-    maintainers = [ maintainers.kaiha ];
+    maintainers = [ maintainers.kaiha maintainers.bfortz ];
   };
 }
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 697ffa917289..168cd3fa79be 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -126,6 +126,8 @@ in
       }
     '');
 
+  addOpenGLRunpath = callPackage ../build-support/add-opengl-runpath { };
+
   # Zip file format only allows times after year 1980, which makes e.g. Python wheel building fail with:
   # ValueError: ZIP does not support timestamps before 1980
   ensureNewerSourcesForZipFilesHook = ensureNewerSourcesHook { year = "1980"; };
@@ -4191,6 +4193,10 @@ in
     openssl = openssl_1_1;
   };
 
+  # Update this when adding the newest nodejs major version!
+  nodejs_latest = nodejs-12_x;
+  nodejs-slim_latest = nodejs-slim-12_x;
+
   nodePackages_10_x = dontRecurseIntoAttrs (callPackage ../development/node-packages/default-v10.nix {
     nodejs = pkgs.nodejs-10_x;
   });
@@ -8858,6 +8864,8 @@ in
   buildkite-agent2 = callPackage ../development/tools/continuous-integration/buildkite-agent/2.x.nix { };
   buildkite-agent3 = callPackage ../development/tools/continuous-integration/buildkite-agent/3.x.nix { };
 
+  libbpf = callPackage ../os-specific/linux/libbpf { };
+
   bpftool = callPackage ../os-specific/linux/bpftool { };
 
   byacc = callPackage ../development/tools/parsing/byacc { };
@@ -10734,6 +10742,7 @@ in
   };
 
   gtk2-x11 = gtk2.override {
+    cairo = cairo.override { x11Support = true; };
     gdktarget = "x11";
   };
 
@@ -10743,6 +10752,7 @@ in
 
   # On darwin gtk uses cocoa by default instead of x11.
   gtk3-x11 = gtk3.override {
+    cairo = cairo.override { x11Support = true; };
     x11Support = true;
   };
 
@@ -19829,9 +19839,6 @@ in
 
   rstudio = libsForQt5.callPackage ../applications/editors/rstudio {
     boost = boost166;
-  };
-  rstudio-preview = libsForQt5.callPackage ../applications/editors/rstudio/preview.nix {
-    boost = boost166;
     llvmPackages = llvmPackages_7;
   };
 
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index def44703e4ba..ebb423c47324 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -335,6 +335,8 @@ in {
 
   cozy = callPackage ../development/python-modules/cozy { };
 
+  curio = callPackage ../development/python-modules/curio { };
+
   dendropy = callPackage ../development/python-modules/dendropy { };
 
   dependency-injector = callPackage ../development/python-modules/dependency-injector { };