Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / networking / sync / casync / default.nix
blob7a1252f806fbeaad389d7a7f0da0d75cdbb1056a
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , meson
5 , ninja
6 , pkg-config
7 , python3
8 , sphinx
9 , acl
10 , curl
11 , fuse
12 , libselinux
13 , udev
14 , xz
15 , zstd
16 , fuseSupport ? true
17 , selinuxSupport ? true
18 , udevSupport ? true
19 , glibcLocales
20 , rsync
23 stdenv.mkDerivation {
24   pname = "casync";
25   version = "2-226-gbd8898e";
27   src = fetchFromGitHub {
28     owner = "systemd";
29     repo = "casync";
30     rev = "bd8898ed92685e12022dd33a04c87786b5262344";
31     sha256 = "04ibglizjzyd7ih13q6m7ic78n0mzw9nfmb3zd1fcm9j62qlq11i";
32   };
34   buildInputs = [ acl curl xz zstd ]
35     ++ lib.optionals (fuseSupport) [ fuse ]
36     ++ lib.optionals (selinuxSupport) [ libselinux ]
37     ++ lib.optionals (udevSupport) [ udev ];
38   nativeBuildInputs = [ meson ninja pkg-config python3 sphinx ];
39   nativeCheckInputs = [ glibcLocales rsync ];
41   postPatch = ''
42     for f in test/test-*.sh.in; do
43       patchShebangs $f
44     done
45     patchShebangs test/http-server.py
46   '';
48   PKG_CONFIG_UDEV_UDEVDIR = "lib/udev";
49   mesonFlags = lib.optionals (!fuseSupport) [ "-Dfuse=false" ]
50     ++ lib.optionals (!udevSupport) [ "-Dudev=false" ]
51     ++ lib.optionals (!selinuxSupport) [ "-Dselinux=false" ];
53   doCheck = true;
54   preCheck = ''
55     export LC_ALL="en_US.utf-8"
56   '';
58   meta = with lib; {
59     description = "Content-Addressable Data Synchronizer";
60     homepage = "https://github.com/systemd/casync";
61     license = licenses.lgpl21Plus;
62     platforms = platforms.linux;
63     maintainers = with maintainers; [ flokli ];
64   };