summary refs log tree commit diff
diff options
context:
space:
mode:
authorRick van Schijndel <rol3517@gmail.com>2021-11-23 19:15:33 +0100
committerRick van Schijndel <rol3517@gmail.com>2021-11-23 19:15:33 +0100
commit065992e4f88361938844e37decbe471228566bae (patch)
tree9ee45942e3a0b78277b5b715266f4bb90e58ddd0
parente8ecc402a5ec3140a8484608fdecc01462af11f3 (diff)
downloadnixpkgs-065992e4f88361938844e37decbe471228566bae.tar
nixpkgs-065992e4f88361938844e37decbe471228566bae.tar.gz
nixpkgs-065992e4f88361938844e37decbe471228566bae.tar.bz2
nixpkgs-065992e4f88361938844e37decbe471228566bae.tar.lz
nixpkgs-065992e4f88361938844e37decbe471228566bae.tar.xz
nixpkgs-065992e4f88361938844e37decbe471228566bae.tar.zst
nixpkgs-065992e4f88361938844e37decbe471228566bae.zip
mosquitto: use libwebsockets 4.x
This requires us to enable LWS_WITH_EXTERNAL_POLL.
Since only mosquitto needs that and upstream discourages enabling it,
we'll just do it in an override in mosquitto.
-rw-r--r--pkgs/development/libraries/libwebsockets/default.nix5
-rw-r--r--pkgs/servers/mqtt/mosquitto/default.nix10
2 files changed, 12 insertions, 3 deletions
diff --git a/pkgs/development/libraries/libwebsockets/default.nix b/pkgs/development/libraries/libwebsockets/default.nix
index 15bf77d2fc6..faf6acd40b9 100644
--- a/pkgs/development/libraries/libwebsockets/default.nix
+++ b/pkgs/development/libraries/libwebsockets/default.nix
@@ -5,6 +5,8 @@
 , openssl
 , zlib
 , libuv
+# External poll is required for e.g. mosquitto, but discouraged by the maintainer.
+, withExternalPoll ? false
 }:
 
 let
@@ -29,7 +31,8 @@ let
       "-DLWS_WITH_SOCKS5=ON"
       # Required since v4.2.0
       "-DLWS_BUILD_HASH=no_hash"
-    ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON";
+    ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON"
+      ++ lib.optional withExternalPoll "-DLWS_WITH_EXTERNAL_POLL=ON";
 
     NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isGNU "-Wno-error=unused-but-set-variable";
 
diff --git a/pkgs/servers/mqtt/mosquitto/default.nix b/pkgs/servers/mqtt/mosquitto/default.nix
index 67200f5515a..81821f1b7c4 100644
--- a/pkgs/servers/mqtt/mosquitto/default.nix
+++ b/pkgs/servers/mqtt/mosquitto/default.nix
@@ -8,13 +8,19 @@
 , cjson
 , libuuid
 , libuv
-, libwebsockets_3_1
+, libwebsockets
 , openssl
 , withSystemd ? stdenv.isLinux
 , systemd
 , fetchpatch
 }:
 
+let
+  # Mosquitto needs external poll enabled in libwebsockets.
+  libwebsockets' = libwebsockets.override {
+    withExternalPoll = true;
+  };
+in
 stdenv.mkDerivation rec {
   pname = "mosquitto";
   version = "2.0.12";
@@ -54,7 +60,7 @@ stdenv.mkDerivation rec {
     cjson
     libuuid
     libuv
-    libwebsockets_3_1
+    libwebsockets'
     openssl
   ] ++ lib.optional withSystemd systemd;