about summary refs log tree commit diff
path: root/pkgs/development
diff options
context:
space:
mode:
authorJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-21 20:20:29 -0400
committerJohn Ericson <John.Ericson@Obsidian.Systems>2018-05-21 20:21:48 -0400
commitdb4d77779c9b52a35c5a4306d36e2727cba1b162 (patch)
tree406873a406559b2417b1959f750c27cf56af4df3 /pkgs/development
parent60a666507c1511ce48cf933ce6d4e8d727899d91 (diff)
parent0106dfcbeb56742503a89309c60a95433514226e (diff)
downloadnixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.tar
nixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.tar.gz
nixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.tar.bz2
nixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.tar.lz
nixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.tar.xz
nixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.tar.zst
nixlib-db4d77779c9b52a35c5a4306d36e2727cba1b162.zip
Merge remote-tracking branch 'upstream/master' into staging
Diffstat (limited to 'pkgs/development')
-rw-r--r--pkgs/development/compilers/nim/default.nix47
-rw-r--r--pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix3
-rw-r--r--pkgs/development/libraries/babl/default.nix4
-rw-r--r--pkgs/development/libraries/libcommuni/default.nix8
-rw-r--r--pkgs/development/libraries/libnatpmp/default.nix22
-rw-r--r--pkgs/development/libraries/librealsense/default.nix4
-rw-r--r--pkgs/development/libraries/simpleitk/default.nix4
-rw-r--r--pkgs/development/libraries/spdk/default.nix35
-rw-r--r--pkgs/development/python-modules/pypcap/default.nix31
-rw-r--r--pkgs/development/python-modules/pysdl2/PySDL2-dll.patch119
-rw-r--r--pkgs/development/python-modules/pysdl2/default.nix41
-rw-r--r--pkgs/development/tools/build-managers/gn/default.nix2
-rw-r--r--pkgs/development/tools/misc/uncrustify/default.nix4
-rw-r--r--pkgs/development/tools/profiling/heaptrack/default.nix6
-rw-r--r--pkgs/development/tools/rust/bindgen/default.nix4
-rw-r--r--pkgs/development/web/kcgi/default.nix33
16 files changed, 326 insertions, 41 deletions
diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix
index a49b1b824394..de383410b9c6 100644
--- a/pkgs/development/compilers/nim/default.nix
+++ b/pkgs/development/compilers/nim/default.nix
@@ -1,12 +1,14 @@
-{ stdenv, lib, fetchurl, makeWrapper, nodejs, openssl, pcre, readline, sqlite }:
+# based on https://github.com/nim-lang/Nim/blob/v0.18.0/.travis.yml
+
+{ stdenv, lib, fetchurl, makeWrapper, nodejs-slim-8_x, openssl, pcre, readline, sqlite, boehmgc, sfml, tzdata, coreutils }:
 
 stdenv.mkDerivation rec {
   name = "nim-${version}";
-  version = "0.17.2";
+  version = "0.18.0";
 
   src = fetchurl {
     url = "https://nim-lang.org/download/${name}.tar.xz";
-    sha256 = "1gc2xk3ygmz9y4pm75pligssgw995a7gvnfpy445fjpw4d81pzxa";
+    sha256 = "45c74adb35f08dfa9add1112ae17330e5d902ebb4a36e7046caee8b79e6f3bd0";
   };
 
   doCheck = true;
@@ -18,6 +20,7 @@ stdenv.mkDerivation rec {
     "-lpcre"
     "-lreadline"
     "-lsqlite3"
+    "-lgc"
   ];
 
   # 1. nodejs is only needed for tests
@@ -25,12 +28,12 @@ stdenv.mkDerivation rec {
   #    used for bootstrapping, but koch insists on moving the nim compiler around
   #    as part of building it, so it cannot be read-only
 
-  buildInputs  = [
-    makeWrapper nodejs
-    openssl pcre readline sqlite
+  buildInputs = [
+    makeWrapper nodejs-slim-8_x tzdata coreutils
+    openssl pcre readline sqlite boehmgc sfml
   ];
 
-  buildPhase   = ''
+  buildPhase = ''
     sh build.sh
     ./bin/nim c koch
     ./koch boot  -d:release \
@@ -48,7 +51,35 @@ stdenv.mkDerivation rec {
       --suffix PATH : ${lib.makeBinPath [ stdenv.cc ]}
   '';
 
-  checkPhase = "./koch tests";
+  postPatch =
+    let disableTest = ''sed -i '1i discard \"\"\"\n  disabled: true\n\"\"\"\n\n' '';
+        disableCompile = ''sed -i -e 's/^/#/' '';
+    in ''
+      substituteInPlace ./tests/async/tioselectors.nim --replace "/bin/sleep" "sleep"
+      substituteInPlace ./tests/osproc/tworkingdir.nim --replace "/usr/bin" "${coreutils}/bin"
+      substituteInPlace ./tests/stdlib/ttimes.nim --replace "/usr/share/zoneinfo" "${tzdata}/share/zoneinfo"
+
+      # disable supposedly broken tests
+      ${disableTest} ./tests/errmsgs/tproper_stacktrace2.nim
+      ${disableTest} ./tests/vm/trgba.nim
+
+      # disable tests requiring network access (not available in the build container)
+      ${disableTest} ./tests/stdlib/thttpclient.nim
+      ${disableTest} ./tests/cpp/tasync_cpp.nim
+      ${disableTest} ./tests/niminaction/Chapter7/Tweeter/src/tweeter.nim
+
+      # disable tests requiring un-downloadable dependencies (using nimble, which isn't available in the fetch phase)
+      ${disableCompile} ./tests/manyloc/keineschweine/keineschweine.nim
+      ${disableTest} ./tests/manyloc/keineschweine/keineschweine.nim
+      ${disableCompile} ./tests/manyloc/nake/nakefile.nim
+      ${disableTest} ./tests/manyloc/nake/nakefile.nim
+      ${disableCompile} ./tests/manyloc/named_argument_bug/main.nim
+      ${disableTest} ./tests/manyloc/named_argument_bug/main.nim
+    '';
+
+  checkPhase = ''
+    ./koch tests
+  '';
 
   meta = with stdenv.lib; {
     description = "Statically typed, imperative programming language";
diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
index 011f307e8a81..83d97c64b48b 100644
--- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
+++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix
@@ -408,6 +408,9 @@ self: super: {
     jailbreak       = true;
   });
 
+  # https://github.com/jcristovao/enclosed-exceptions/issues/12
+  enclosed-exceptions = dontCheck super.enclosed-exceptions;
+
   # Older versions don't compile.
   base-compat = self.base-compat_0_10_1;
   brick = self.brick_0_37;
diff --git a/pkgs/development/libraries/babl/default.nix b/pkgs/development/libraries/babl/default.nix
index ac9056d1e033..f3e7fc7f1621 100644
--- a/pkgs/development/libraries/babl/default.nix
+++ b/pkgs/development/libraries/babl/default.nix
@@ -1,11 +1,11 @@
 { stdenv, fetchurl }:
 
 stdenv.mkDerivation rec {
-  name = "babl-0.1.48";
+  name = "babl-0.1.50";
 
   src = fetchurl {
     url = "http://ftp.gtk.org/pub/babl/0.1/${name}.tar.bz2";
-    sha256 = "0596flzqzdlq4y6lsg34szh1ffgyccghp8y1k9h4d3jwymfd16xy";
+    sha256 = "0bavr2y4v88pip7vlca4kwmnksk2qxcvkkdp9jyfi6pzh701sb5m";
   };
 
   doCheck = true;
diff --git a/pkgs/development/libraries/libcommuni/default.nix b/pkgs/development/libraries/libcommuni/default.nix
index 6192266bd4aa..0788236b6017 100644
--- a/pkgs/development/libraries/libcommuni/default.nix
+++ b/pkgs/development/libraries/libcommuni/default.nix
@@ -19,12 +19,16 @@ stdenv.mkDerivation rec {
   enableParallelBuilding = true;
 
   dontUseQmakeConfigure = true;
-  configureFlags = "-config release";
+  configureFlags = [ "-config" "release" ];
+
   preConfigure = ''
     sed -i -e 's|/bin/pwd|pwd|g' configure
   '';
 
-  doCheck = true;
+  # The tests fail on darwin because of install_name if they run
+  # before the frameworks are installed.
+  doInstallCheck = true;
+  installCheckTarget = "check";
 
   # Hack to avoid TMPDIR in RPATHs.
   preFixup = "rm -rf lib";
diff --git a/pkgs/development/libraries/libnatpmp/default.nix b/pkgs/development/libraries/libnatpmp/default.nix
new file mode 100644
index 000000000000..17626bb23e13
--- /dev/null
+++ b/pkgs/development/libraries/libnatpmp/default.nix
@@ -0,0 +1,22 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+  name = "libnatpmp-${version}";
+  version = "20150609";
+
+  src = fetchurl {
+    name = "${name}.tar.gz";
+    url = "http://miniupnp.free.fr/files/download.php?file=${name}.tar.gz";
+    sha256 = "1c1n8n7mp0amsd6vkz32n8zj3vnsckv308bb7na0dg0r8969rap1";
+  };
+
+  makeFlags = [ "INSTALLPREFIX=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = http://miniupnp.free.fr/libnatpmp.html;
+    description = "NAT-PMP client";
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ orivej ];
+    platforms = platforms.linux;
+  };
+}
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index c61000066f4d..796954b356d1 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -2,13 +2,13 @@
 
 stdenv.mkDerivation rec {
   name = "librealsense-${version}";
-  version = "2.11.0";
+  version = "2.11.1";
 
   src = fetchFromGitHub {
     owner = "IntelRealSense";
     repo = "librealsense";
     rev = "v${version}";
-    sha256 = "11vzs2m6jh9v1xbffr2k541pymmih6g4w641mp8rll8qzqfh89i0";
+    sha256 = "1r27pdisg4hl4x23lrmykqfdc5agrc4pi161mhvzd1vjfkjrxbid";
   };
 
   buildInputs = [
diff --git a/pkgs/development/libraries/simpleitk/default.nix b/pkgs/development/libraries/simpleitk/default.nix
index 4802683079d1..c807325b155c 100644
--- a/pkgs/development/libraries/simpleitk/default.nix
+++ b/pkgs/development/libraries/simpleitk/default.nix
@@ -2,12 +2,12 @@
 
 stdenv.mkDerivation rec {
   pname    = "simpleitk";
-  version = "1.0.0";
+  version = "1.1.0";
   name  = "${pname}-${version}";
 
   src = fetchurl {
     url    = "https://sourceforge.net/projects/${pname}/files/SimpleITK/${version}/Source/SimpleITK-${version}.tar.gz";
-    sha256 = "0554j0zp314zhs8isfg31fi6gvsl7xq3xjyyxkx1b1mjkn5qx673";
+    sha256 = "01y8s73mw4yabqir2f8qp5zc1c0y6szi18rr4zwgsxz62g4drzgm";
   };
 
   nativeBuildInputs = [ cmake git swig ];
diff --git a/pkgs/development/libraries/spdk/default.nix b/pkgs/development/libraries/spdk/default.nix
new file mode 100644
index 000000000000..14672c78d21c
--- /dev/null
+++ b/pkgs/development/libraries/spdk/default.nix
@@ -0,0 +1,35 @@
+{ stdenv, fetchFromGitHub, python, cunit, dpdk, libaio, libuuid, numactl, openssl }:
+
+stdenv.mkDerivation rec {
+  name = "spdk-${version}";
+  version = "18.04";
+
+  src = fetchFromGitHub {
+    owner = "spdk";
+    repo = "spdk";
+    rev = "v${version}";
+    sha256 = "07i13jkf63h5ld9djksxl445v1mj6m5cbq4xydix9y5qcxwlss3n";
+  };
+
+  nativeBuildInputs = [ python ];
+
+  buildInputs = [ cunit dpdk libaio libuuid numactl openssl ];
+
+  postPatch = ''
+    patchShebangs .
+  '';
+
+  configureFlags = [ "--with-dpdk=${dpdk}" ];
+
+  NIX_CFLAGS_COMPILE = [ "-mssse3" ]; # Necessary to compile.
+
+  enableParallelBuilding = true;
+
+  meta = with stdenv.lib; {
+    description = "Set of libraries for fast user-mode storage";
+    homepage = http://www.spdk.io;
+    license = licenses.bsd3;
+    platforms =  [ "x86_64-linux" ];
+    maintainers = with maintainers; [ orivej ];
+  };
+}
diff --git a/pkgs/development/python-modules/pypcap/default.nix b/pkgs/development/python-modules/pypcap/default.nix
index ead63c2c1b34..dc916213fcd0 100644
--- a/pkgs/development/python-modules/pypcap/default.nix
+++ b/pkgs/development/python-modules/pypcap/default.nix
@@ -1,13 +1,12 @@
-{ stdenv, lib, writeText, buildPythonPackage, fetchPypi, libpcap, dpkt }:
+{ lib, writeText, buildPythonPackage, fetchPypi, libpcap, dpkt }:
 
 buildPythonPackage rec {
   pname = "pypcap";
-  version = "1.2.1";
-  name = "${pname}-${version}";
+  version = "1.2.2";
 
   src = fetchPypi {
     inherit pname version;
-    sha256 = "9ca9f79ca839fdc8fd37393509e2cb06be70f8db03f8cfe1857ca40cac1149f0";
+    sha256 = "07ww25z4xydp11hb38halh1940gmp5lca11hwfb63zv3bps248x3";
   };
 
   patches = [
@@ -17,26 +16,24 @@ buildPythonPackage rec {
       ''
       --- a/setup.py
       +++ b/setup.py
-      @@ -27,7 +27,8 @@ def recursive_search(path, target_files):
+      @@ -28,6 +28,7 @@ def recursive_search(path, target_files):
 
-       def get_extension():
-           # A list of all the possible search directories
-      -    dirs = ['/usr', sys.prefix] + glob.glob('/opt/libpcap*') + \
-      +    dirs = ['${libpcap}', '/usr', sys.prefix] + \
-      +        glob.glob('/opt/libpcap*') + \
-               glob.glob('../libpcap*') + glob.glob('../wpdpack*') + \
-               glob.glob('/Applications/Xcode.app/Contents/Developer/Platforms/' +
-                         'MacOSX.platform/Developer/SDKs/*')
+       def find_prefix_and_pcap_h():
+           prefixes = chain.from_iterable((
+      +        '${libpcap}',
+               ('/usr', sys.prefix),
+               glob.glob('/opt/libpcap*'),
+               glob.glob('../libpcap*'),
       '')
   ];
 
   buildInputs = [ libpcap ];
-  nativeBuildInputs = [ dpkt ];
+  checkInputs = [ dpkt ];
 
-  meta = {
+  meta = with lib; {
     homepage = https://github.com/pynetwork/pypcap;
     description = "Simplified object-oriented Python wrapper for libpcap";
-    license = lib.licenses.bsd3;
-    maintainers = with lib.maintainers; [ geistesk ];
+    license = licenses.bsd3;
+    maintainers = with maintainers; [ geistesk ];
   };
 }
diff --git a/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch b/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
new file mode 100644
index 000000000000..ca723a0e5739
--- /dev/null
+++ b/pkgs/development/python-modules/pysdl2/PySDL2-dll.patch
@@ -0,0 +1,119 @@
+diff -ru PySDL2-0.9.6-old/sdl2/dll.py PySDL2-0.9.6/sdl2/dll.py
+--- PySDL2-0.9.6-old/sdl2/dll.py	2018-03-08 10:18:37.583471745 +0100
++++ PySDL2-0.9.6/sdl2/dll.py	2018-03-08 10:20:06.705517520 +0100
+@@ -45,29 +45,31 @@
+     """Function wrapper around the different DLL functions. Do not use or

+     instantiate this one directly from your user code.

+     """

+-    def __init__(self, libinfo, libnames, path=None):

+-        self._dll = None

+-        foundlibs = _findlib(libnames, path)

+-        dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

+-        if len(foundlibs) == 0:

+-            raise RuntimeError("could not find any library for %s (%s)" %

+-                               (libinfo, dllmsg))

+-        for libfile in foundlibs:

+-            try:

+-                self._dll = CDLL(libfile)

+-                self._libfile = libfile

+-                break

+-            except Exception as exc:

+-                # Could not load the DLL, move to the next, but inform the user

+-                # about something weird going on - this may become noisy, but

+-                # is better than confusing the users with the RuntimeError below

+-                warnings.warn(repr(exc), DLLWarning)

+-        if self._dll is None:

+-            raise RuntimeError("found %s, but it's not usable for the library %s" %

+-                               (foundlibs, libinfo))

+-        if path is not None and sys.platform in ("win32",) and \

+-            path in self._libfile:

+-            os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

++    def __init__(self, libfile):

++        self._dll = CDLL(libfile)

++        self._libfile = libfile

++        # self._dll = None

++        # foundlibs = _findlib(libnames, path)

++        # dllmsg = "PYSDL2_DLL_PATH: %s" % (os.getenv("PYSDL2_DLL_PATH") or "unset")

++        # if len(foundlibs) == 0:

++        #     raise RuntimeError("could not find any library for %s (%s)" %

++        #                        (libinfo, dllmsg))

++        # for libfile in foundlibs:

++        #     try:

++        #         self._dll = CDLL(libfile)

++        #         self._libfile = libfile

++        #         break

++        #     except Exception as exc:

++        #         # Could not load the DLL, move to the next, but inform the user

++        #         # about something weird going on - this may become noisy, but

++        #         # is better than confusing the users with the RuntimeError below

++        #         warnings.warn(repr(exc), DLLWarning)

++        # if self._dll is None:

++        #     raise RuntimeError("found %s, but it's not usable for the library %s" %

++        #                        (foundlibs, libinfo))

++        # if path is not None and sys.platform in ("win32",) and \

++        #     path in self._libfile:

++        #     os.environ["PATH"] = "%s;%s" % (path, os.environ["PATH"])

+ 

+     def bind_function(self, funcname, args=None, returns=None, optfunc=None):

+         """Binds the passed argument and return value types to the specified

+@@ -110,7 +112,7 @@
+     return

+ 

+ try:

+-    dll = DLL("SDL2", ["SDL2", "SDL2-2.0"], os.getenv("PYSDL2_DLL_PATH"))

++    dll = DLL("SDL2")

+ except RuntimeError as exc:

+     raise ImportError(exc)

+ 

+diff -ru PySDL2-0.9.6-old/sdl2/sdlgfx.py PySDL2-0.9.6/sdl2/sdlgfx.py
+--- PySDL2-0.9.6-old/sdl2/sdlgfx.py	2018-03-08 10:18:37.585471769 +0100
++++ PySDL2-0.9.6/sdl2/sdlgfx.py	2018-03-08 10:20:06.705517520 +0100
+@@ -34,8 +34,7 @@
+            ]

+ 

+ try:

+-    dll = DLL("SDL2_gfx", ["SDL2_gfx", "SDL2_gfx-1.0"],

+-              os.getenv("PYSDL2_DLL_PATH"))

++    dll = DLL("SDL2_gfx")

+ except RuntimeError as exc:

+     raise ImportError(exc)

+ 

+diff -ru PySDL2-0.9.6-old/sdl2/sdlimage.py PySDL2-0.9.6/sdl2/sdlimage.py
+--- PySDL2-0.9.6-old/sdl2/sdlimage.py	2018-03-08 10:18:37.585471769 +0100
++++ PySDL2-0.9.6/sdl2/sdlimage.py	2018-03-08 10:20:06.705517520 +0100
+@@ -26,8 +26,7 @@
+            ]

+ 

+ try:

+-    dll = DLL("SDL2_image", ["SDL2_image", "SDL2_image-2.0"],

+-              os.getenv("PYSDL2_DLL_PATH"))

++    dll = DLL("SDL2_image")

+ except RuntimeError as exc:

+     raise ImportError(exc)

+ 

+diff -ru PySDL2-0.9.6-old/sdl2/sdlmixer.py PySDL2-0.9.6/sdl2/sdlmixer.py
+--- PySDL2-0.9.6-old/sdl2/sdlmixer.py	2018-03-08 10:18:37.585471769 +0100
++++ PySDL2-0.9.6/sdl2/sdlmixer.py	2018-03-08 10:20:27.415758478 +0100
+@@ -50,8 +50,7 @@
+           ]

+ 

+ try:

+-    dll = DLL("SDL2_mixer", ["SDL2_mixer", "SDL2_mixer-2.0"],

+-              os.getenv("PYSDL2_DLL_PATH"))

++    dll = DLL("SDL2_mixer")

+ except RuntimeError as exc:

+     raise ImportError(exc)

+ 

+diff -ru PySDL2-0.9.6-old/sdl2/sdlttf.py PySDL2-0.9.6/sdl2/sdlttf.py
+--- PySDL2-0.9.6-old/sdl2/sdlttf.py	2018-03-08 10:18:37.585471769 +0100
++++ PySDL2-0.9.6/sdl2/sdlttf.py	2018-03-08 10:20:06.705517520 +0100
+@@ -38,8 +38,7 @@
+           ]

+ 

+ try:

+-    dll = DLL("SDL2_ttf", ["SDL2_ttf", "SDL2_ttf-2.0"],

+-              os.getenv("PYSDL2_DLL_PATH"))

++    dll = DLL("SDL2_ttf")

+ except RuntimeError as exc:

+     raise ImportError(exc)

+ 

diff --git a/pkgs/development/python-modules/pysdl2/default.nix b/pkgs/development/python-modules/pysdl2/default.nix
new file mode 100644
index 000000000000..6681b1b199ad
--- /dev/null
+++ b/pkgs/development/python-modules/pysdl2/default.nix
@@ -0,0 +1,41 @@
+{ stdenv, lib, fetchPypi, buildPythonPackage, fetchurl, SDL2, SDL2_ttf, SDL2_image, SDL2_gfx, SDL2_mixer, pyopengl }:
+
+buildPythonPackage rec {
+  pname = "PySDL2";
+  version = "0.9.6";
+  # The tests use OpenGL using find_library, which would have to be
+  # patched; also they seem to actually open X windows and test stuff
+  # like "screensaver disabling", which would have to be cleverly
+  # sandboxed. Disable for now.
+  doCheck = false;
+
+  src = fetchPypi {
+    inherit pname version;
+    sha256 = "08r1v9wdq8pzds4g3sng2xgh1hlzfs2z7qgy5a6b0xrs96swlamm";
+  };
+
+  # Deliberately not in propagated build inputs; users can decide
+  # which library they want to include.
+  buildInputs = [ SDL2_ttf SDL2_image SDL2_gfx SDL2_mixer ];
+  propagatedBuildInputs = [ SDL2 ];
+  patches = [ ./PySDL2-dll.patch ];
+  postPatch = ''
+    substituteInPlace sdl2/dll.py --replace \
+      "DLL(\"SDL2\")" "DLL('${SDL2}/lib/libSDL2${stdenv.hostPlatform.extensions.sharedLibrary}')"
+    substituteInPlace sdl2/sdlttf.py --replace \
+      "DLL(\"SDL2_ttf\")" "DLL('${SDL2_ttf}/lib/libSDL2_ttf${stdenv.hostPlatform.extensions.sharedLibrary}')"
+    substituteInPlace sdl2/sdlimage.py --replace \
+      "DLL(\"SDL2_image\")" "DLL('${SDL2_image}/lib/libSDL2_image${stdenv.hostPlatform.extensions.sharedLibrary}')"
+    substituteInPlace sdl2/sdlgfx.py --replace \
+     "DLL(\"SDL2_gfx\")" "DLL('${SDL2_gfx}/lib/libSDL2_gfx${stdenv.hostPlatform.extensions.sharedLibrary}')"
+    substituteInPlace sdl2/sdlmixer.py --replace \
+     "DLL(\"SDL2_mixer\")" "DLL('${SDL2_mixer}/lib/libSDL2_mixer${stdenv.hostPlatform.extensions.sharedLibrary}')"
+  '';
+
+  meta = {
+    description = "A wrapper around the SDL2 library and as such similar to the discontinued PySDL project";
+    homepage = https://github.com/marcusva/py-sdl2;
+    license = lib.licenses.publicDomain;
+    maintainers = with lib.maintainers; [ pmiddend ];
+  };
+}
diff --git a/pkgs/development/tools/build-managers/gn/default.nix b/pkgs/development/tools/build-managers/gn/default.nix
index 35f54369abd9..f49456a86ea6 100644
--- a/pkgs/development/tools/build-managers/gn/default.nix
+++ b/pkgs/development/tools/build-managers/gn/default.nix
@@ -69,7 +69,7 @@ in stdenv.mkDerivation {
 
   patches = [
     (fetchpatch {
-      url = "https://raw.githubusercontent.com/Eloston/ungoogled-chromium/master/resources/patches/ungoogled-chromium/macos/fix-gn-bootstrap.patch";
+      url = "https://raw.githubusercontent.com/Eloston/ungoogled-chromium/3375fbc7b865dafe1230431a1e3f9bffd27ec184/resources/patches/ungoogled-chromium/macos/fix-gn-bootstrap.patch";
       sha256 = "1h8jgxznm7zrxlzb4wcfx4zx4lyvfrmpd0r7cd7h0s23wn8ibb3a";
     })
   ];
diff --git a/pkgs/development/tools/misc/uncrustify/default.nix b/pkgs/development/tools/misc/uncrustify/default.nix
index 3cf707c6bebb..d85cd1a82164 100644
--- a/pkgs/development/tools/misc/uncrustify/default.nix
+++ b/pkgs/development/tools/misc/uncrustify/default.nix
@@ -3,13 +3,13 @@
 stdenv.mkDerivation rec {
   name = "${product}-${version}";
   product = "uncrustify";
-  version = "0.66.1";
+  version = "0.67";
 
   src = fetchFromGitHub {
     owner = product;
     repo = product;
     rev = name;
-    sha256 = "1y69b0g07ksynf1fwfh5qqwmscxfbvs1yi3n3lbdd4vplb9zakyx";
+    sha256 = "0hf8c93aj1hjg6cc77x6p7nf7ddp8mn4b6a9gpcrvmx8w81afpd3";
   };
 
   nativeBuildInputs = [ cmake ];
diff --git a/pkgs/development/tools/profiling/heaptrack/default.nix b/pkgs/development/tools/profiling/heaptrack/default.nix
index f5f9a15dd00a..5ff0d2ca2b1e 100644
--- a/pkgs/development/tools/profiling/heaptrack/default.nix
+++ b/pkgs/development/tools/profiling/heaptrack/default.nix
@@ -6,13 +6,13 @@
 
 stdenv.mkDerivation rec {
   name = "heaptrack-${version}";
-  version = "2018-01-28";
+  version = "1.1.0";
 
   src = fetchFromGitHub {
     owner = "KDE";
     repo = "heaptrack";
-    rev = "a4534d52788ab9814efca1232d402b2eb319342c";
-    sha256 = "00xfv51kavvcmwgfmcixx0k5vhd06gkj5q0mm8rwxiw6215xp41a";
+    rev = "v${version}";
+    sha256 = "0vgwldl5n41r4y3pv8w29gmyln0k2w6m59zrfw9psm4hkxvivzlx";
   };
 
   nativeBuildInputs = [ cmake extra-cmake-modules ];
diff --git a/pkgs/development/tools/rust/bindgen/default.nix b/pkgs/development/tools/rust/bindgen/default.nix
index 36fa1019705f..aeeae494e586 100644
--- a/pkgs/development/tools/rust/bindgen/default.nix
+++ b/pkgs/development/tools/rust/bindgen/default.nix
@@ -4,13 +4,13 @@
 
 rustPlatform.buildRustPackage rec {
   name = "rust-bindgen-${version}";
-  version = "0.36.1";
+  version = "0.37.0";
 
   src = fetchFromGitHub {
     owner = "rust-lang-nursery";
     repo = "rust-bindgen";
     rev = "v${version}";
-    sha256 = "0y99dvkbkd4vhac26dmc3bwf6z2m85p2il7mndvv8liam012pkbz";
+    sha256 = "0cqjr7qspjrfgqcp4nqxljmhhbqyijb2jpw3lajgjj48y6wrnw93";
   };
 
   nativeBuildInputs = [ makeWrapper ];
diff --git a/pkgs/development/web/kcgi/default.nix b/pkgs/development/web/kcgi/default.nix
new file mode 100644
index 000000000000..6d91007e4860
--- /dev/null
+++ b/pkgs/development/web/kcgi/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, pkgconfig, fetchFromGitHub, libbsd }:
+
+stdenv.mkDerivation rec {
+  pname = "kcgi";
+  version = "0.10.5";
+  underscoreVersion = stdenv.lib.replaceChars ["."] ["_"] version;
+  name = "${pname}-${version}";
+
+  src = fetchFromGitHub {
+    owner = "kristapsdz";
+    repo = pname;
+    rev = "VERSION_${underscoreVersion}";
+    sha256 = "0ksdjqibkj7h1a99i84i6y0949c0vwx789q0sslzdkkgqvjnw3xw";
+  };
+  patchPhase = ''substituteInPlace configure \
+    --replace /usr/local /
+  '';
+  
+  nativeBuildInputs = [ pkgconfig ];
+  buildInputs = [ ] ++ stdenv.lib.optionals stdenv.isLinux [ libbsd ] ;
+
+  dontAddPrefix = true;
+
+  installFlags = [ "DESTDIR=$(out)" ];
+
+  meta = with stdenv.lib; {
+    homepage = https://kristaps.bsd.lv/kcgi;
+    description = "Minimal CGI and FastCGI library for C/C++";
+    license = licenses.isc;
+    platforms = platforms.all;
+    maintainers = [ maintainers.leenaars ];
+  };
+}