ocamlPackages.hxd: 0.3.2 -> 0.3.3 (#364231)
[NixPkgs.git] / pkgs / by-name / uw / uwsm / package.nix
blobaaab50c54dff96576ad9d8c00fcecbe860d6a19a
2   stdenv,
3   lib,
4   fetchFromGitHub,
5   makeBinaryWrapper,
6   meson,
7   ninja,
8   scdoc,
9   pkg-config,
10   nix-update-script,
11   bash,
12   dmenu,
13   libnotify,
14   newt,
15   python3Packages,
16   systemd,
17   util-linux,
18   fumonSupport ? true,
19   uuctlSupport ? true,
20   uwsmAppSupport ? true,
22 let
23   python = python3Packages.python.withPackages (ps: [
24     ps.pydbus
25     ps.dbus-python
26     ps.pyxdg
27   ]);
29 stdenv.mkDerivation (finalAttrs: {
30   pname = "uwsm";
31   version = "0.20.5";
33   src = fetchFromGitHub {
34     owner = "Vladimir-csp";
35     repo = "uwsm";
36     rev = "refs/tags/v${finalAttrs.version}";
37     hash = "sha256-RHxA0X3cqHtp4NZl7qlqBYkqOJay8IPoaj12bdouVkc=";
38   };
40   nativeBuildInputs = [
41     makeBinaryWrapper
42     meson
43     ninja
44     pkg-config
45     scdoc
46   ];
48   propagatedBuildInputs = [
49     util-linux # waitpid
50     newt # whiptail
51     libnotify # notify
52     bash # sh
53     systemd
54     python
55   ] ++ (lib.optionals uuctlSupport [ dmenu ]);
57   mesonFlags = [
58     "--prefix=${placeholder "out"}"
59     (lib.mapAttrsToList lib.mesonEnable {
60       "uwsm-app" = uwsmAppSupport;
61       "fumon" = fumonSupport;
62       "uuctl" = uuctlSupport;
63       "man-pages" = true;
64     })
65     (lib.mesonOption "python-bin" python.interpreter)
66   ];
68   postInstall =
69     let
70       wrapperArgs = ''
71         --suffix PATH : "${lib.makeBinPath finalAttrs.propagatedBuildInputs}"
72       '';
73     in
74     ''
75       wrapProgram $out/bin/uwsm ${wrapperArgs}
76       ${lib.optionalString uuctlSupport ''
77         wrapProgram $out/bin/uuctl ${wrapperArgs}
78       ''}
79       ${lib.optionalString uwsmAppSupport ''
80         wrapProgram $out/bin/uwsm-app ${wrapperArgs}
81       ''}
82       ${lib.optionalString fumonSupport ''
83         wrapProgram $out/bin/fumon ${wrapperArgs}
84       ''}
85     '';
87   outputs = [
88     "out"
89     "man"
90   ];
92   passthru = {
93     updateScript = nix-update-script { };
94   };
96   meta = {
97     description = "Universal wayland session manager";
98     homepage = "https://github.com/Vladimir-csp/uwsm";
99     changelog = "https://github.com/Vladimir-csp/uwsm/releases/tag/v${finalAttrs.version}";
100     mainProgram = "uwsm";
101     license = lib.licenses.mit;
102     maintainers = with lib.maintainers; [
103       johnrtitor
104       kai-tub
105     ];
106     platforms = lib.platforms.linux;
107   };