chromium,chromedriver: 129.0.6668.91 -> 129.0.6668.100
[NixPkgs.git] / pkgs / by-name / uw / uwsm / package.nix
blob578cb2cbb7c4cbb4ecb314a382be03b40c0ebc27
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   util-linux,
17   fumonSupport ? true,
18   uuctlSupport ? true,
19   uwsmAppSupport ? true,
21 let
22   python = python3Packages.python.withPackages (ps: [
23     ps.pydbus
24     ps.dbus-python
25     ps.pyxdg
26   ]);
28 stdenv.mkDerivation (finalAttrs: {
29   pname = "uwsm";
30   version = "0.20.0";
32   src = fetchFromGitHub {
33     owner = "Vladimir-csp";
34     repo = "uwsm";
35     rev = "refs/tags/v${finalAttrs.version}";
36     hash = "sha256-BtzW0jyYAVGjSBlocgkGHgY3JQUpWizDaSa2YBIX2Bs=";
37   };
39   nativeBuildInputs = [
40     makeBinaryWrapper
41     meson
42     ninja
43     pkg-config
44     scdoc
45   ];
47   propagatedBuildInputs = [
48     util-linux # waitpid
49     newt # whiptail
50     libnotify # notify
51     bash # sh
52     python
53   ] ++ (lib.optionals uuctlSupport [ dmenu ]);
55   mesonFlags = [
56     "--prefix=${placeholder "out"}"
57     (lib.mapAttrsToList lib.mesonEnable {
58       "uwsm-app" = uwsmAppSupport;
59       "fumon" = fumonSupport;
60       "uuctl" = uuctlSupport;
61       "man-pages" = true;
62     })
63     (lib.mesonOption "python-bin" python.interpreter)
64   ];
66   postInstall =
67     let
68       wrapperArgs = ''
69         --prefix PATH : "${lib.makeBinPath finalAttrs.propagatedBuildInputs}"
70       '';
71     in
72     ''
73       wrapProgram $out/bin/uwsm ${wrapperArgs}
74       ${lib.optionalString uuctlSupport ''
75         wrapProgram $out/bin/uuctl ${wrapperArgs}
76       ''}
77       ${lib.optionalString uwsmAppSupport ''
78         wrapProgram $out/bin/uwsm-app ${wrapperArgs}
79       ''}
80       ${lib.optionalString fumonSupport ''
81         wrapProgram $out/bin/fumon ${wrapperArgs}
82       ''}
83     '';
85   outputs = [
86     "out"
87     "man"
88   ];
90   passthru = {
91     updateScript = nix-update-script { };
92   };
94   meta = {
95     description = "Universal wayland session manager";
96     homepage = "https://github.com/Vladimir-csp/uwsm";
97     changelog = "https://github.com/Vladimir-csp/uwsm/releases/tag/v${finalAttrs.version}";
98     mainProgram = "uwsm";
99     license = lib.licenses.mit;
100     maintainers = with lib.maintainers; [
101       johnrtitor
102       kai-tub
103     ];
104     platforms = lib.platforms.linux;
105   };