python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / development / libraries / libwebsockets / default.nix
blob0b8d8d8e581769a9b0f0a9b4da26f89c75db4f2f
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cmake
5 , openssl
6 , zlib
7 , libuv
8   # External poll is required for e.g. mosquitto, but discouraged by the maintainer.
9 , withExternalPoll ? false
12 stdenv.mkDerivation rec {
13   pname = "libwebsockets";
14   version = "4.3.2";
16   src = fetchFromGitHub {
17     owner = "warmcat";
18     repo = "libwebsockets";
19     rev = "v${version}";
20     hash = "sha256-why8LAcc4XN0JdTJ1JoNWijKENL5mOHBsi9K4wpYr2c=";
21   };
23   buildInputs = [ openssl zlib libuv ];
25   nativeBuildInputs = [ cmake ];
27   cmakeFlags = [
28     "-DLWS_WITH_PLUGINS=ON"
29     "-DLWS_WITH_IPV6=ON"
30     "-DLWS_WITH_SOCKS5=ON"
31     "-DDISABLE_WERROR=ON"
32     "-DLWS_BUILD_HASH=no_hash"
33   ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) "-DLWS_WITHOUT_TESTAPPS=ON"
34   ++ lib.optional withExternalPoll "-DLWS_WITH_EXTERNAL_POLL=ON";
36   postInstall = ''
37     rm -r ${placeholder "out"}/share/libwebsockets-test-server
38   '';
40   # $out/share/libwebsockets-test-server/plugins/libprotocol_*.so refers to crtbeginS.o
41   disallowedReferences = [ stdenv.cc.cc ];
43   meta = with lib; {
44     description = "Light, portable C library for websockets";
45     longDescription = ''
46       Libwebsockets is a lightweight pure C library built to
47       use minimal CPU and memory resources, and provide fast
48       throughput in both directions.
49     '';
50     homepage = "https://libwebsockets.org/";
51     # Relicensed from LGPLv2.1+ to MIT with 4.0. Licensing situation
52     # is tricky, see https://github.com/warmcat/libwebsockets/blob/main/LICENSE
53     license = with licenses; [ mit publicDomain bsd3 asl20 ];
54     maintainers = with maintainers; [ mindavi ];
55     platforms = platforms.all;
56   };