anvil-editor: init at 0.4
[NixPkgs.git] / pkgs / applications / networking / sync / lsyncd / default.nix
blob8468749b7eaa58e7c5d742cda2ef055f80bff366
1 { lib, stdenv, fetchFromGitHub, cmake, lua, pkg-config, rsync,
2 asciidoc, libxml2, docbook_xml_dtd_45, docbook_xsl, libxslt, apple-sdk_11 }:
4 let
5   xnu = apple-sdk_11.sourceRelease "xnu";
6 in
7 stdenv.mkDerivation rec {
8   pname = "lsyncd";
9   version = "2.3.1";
11   src = fetchFromGitHub {
12     owner = "axkibe";
13     repo = "lsyncd";
14     rev = "release-${version}";
15     hash = "sha256-QBmvS1HGF3VWS+5aLgDr9AmUfEsuSz+DTFIeql2XHH4=";
16   };
18   postPatch = ''
19     substituteInPlace default-rsync.lua \
20       --replace "/usr/bin/rsync" "${rsync}/bin/rsync"
21   '';
23   # Special flags needed on Darwin:
24   # https://github.com/axkibe/lsyncd/blob/42413cabbedca429d55a5378f6e830f191f3cc86/INSTALL#L51
25   cmakeFlags = lib.optionals stdenv.hostPlatform.isDarwin [
26     "-DWITH_INOTIFY=OFF"
27     "-DWITH_FSEVENTS=ON"
28     "-DXNU_DIR=${xnu}"
29   ];
31   dontUseCmakeBuildDir = true;
33   nativeBuildInputs = [ cmake pkg-config ];
34   buildInputs = [
35     rsync
36     lua
37     asciidoc libxml2 docbook_xml_dtd_45 docbook_xsl libxslt
38   ] ++ lib.optional stdenv.hostPlatform.isDarwin apple-sdk_11;
40   meta = with lib; {
41     homepage = "https://github.com/axkibe/lsyncd";
42     description = "Utility that synchronizes local directories with remote targets";
43     mainProgram = "lsyncd";
44     license = licenses.gpl2Plus;
45     platforms = platforms.all;
46     maintainers = with maintainers; [ bobvanderlinden ];
47   };