summary refs log blame commit diff
path: root/pkgs/servers/mqtt/mosquitto/default.nix
blob: a8203ce1b168e89123d1fb9fc358e58cab424b0d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11

                                                                  

                         
                                
                    
 



                           
                                                                    

    
                


                                                                            



                                                            



                                                     

     







                                                               
                          


                           
                                                          



                                                  

    
{ stdenv, fetchFromGitHub, fetchpatch, cmake, docbook_xsl, libxslt
, openssl, libuuid, libwebsockets, c-ares, libuv }:

stdenv.mkDerivation rec {
  name = "mosquitto-${version}";
  version = "1.5.5";

  src = fetchFromGitHub {
    owner  = "eclipse";
    repo   = "mosquitto";
    rev    = "v${version}";
    sha256 = "1sfwmvrglfy5gqfk004kvbjldqr36dqz6xmppbgfhr47j5zs66xc";
  };

  postPatch = ''
    substituteInPlace man/manpage.xsl \
      --replace /usr/share/xml/docbook/stylesheet/ ${docbook_xsl}/share/xml/

    for f in {lib,lib/cpp,src}/CMakeLists.txt ; do
      substituteInPlace $f --replace /sbin/ldconfig ldconfig
    done

    # the manpages are not generated when using cmake
    pushd man
    make
    popd
  '';

  buildInputs = [ openssl libuuid libwebsockets c-ares libuv ];

  nativeBuildInputs = [ cmake docbook_xsl libxslt ];

  enableParallelBuilding = true;

  cmakeFlags = [
    "-DWITH_THREADING=ON"
    "-DWITH_WEBSOCKETS=ON"
  ];

  meta = with stdenv.lib; {
    description = "An open source MQTT v3.1/3.1.1 broker";
    homepage = http://mosquitto.org/;
    license = licenses.epl10;
    maintainers = with maintainers; [ peterhoeg ];
    platforms = platforms.unix;
  };
}