biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / window-managers / cagebreak / default.nix
blob13618f6afb336d71b727d3970565545cefeba461
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , cairo
5 , fontconfig
6 , libevdev
7 , libinput
8 , libxkbcommon
9 , xcbutilwm
10 , makeWrapper
11 , mesa
12 , meson
13 , ninja
14 , nixosTests
15 , pango
16 , pixman
17 , pkg-config
18 , scdoc
19 , systemd
20 , wayland
21 , wayland-protocols
22 , wayland-scanner
23 , withXwayland ? true , xwayland
24 , wlroots
27 stdenv.mkDerivation rec {
28   pname = "cagebreak";
29   version = "2.3.1";
31   src = fetchFromGitHub {
32     owner = "project-repo";
33     repo = pname;
34     rev = version;
35     hash = "sha256-GAANZIEUtuONPBpk0E3fErgOZtm3wB+gWJNwfO6VOTo=";
36   };
38   nativeBuildInputs = [
39     makeWrapper
40     meson
41     ninja
42     pkg-config
43     scdoc
44     wayland-scanner
45   ];
47   buildInputs = [
48     cairo
49     fontconfig
50     libevdev
51     libinput
52     libxkbcommon
53     xcbutilwm
54     mesa # for libEGL headers
55     pango
56     pixman
57     systemd
58     wayland
59     wayland-protocols
60     wlroots
61   ];
63   mesonFlags = [
64     "-Dman-pages=true"
65     "-Dversion_override=${version}"
66     "-Dxwayland=${lib.boolToString withXwayland}"
67   ];
69   postPatch = ''
70     # TODO: investigate why is this happening
71     sed -i -e 's|<drm_fourcc.h>|<libdrm/drm_fourcc.h>|' *.c
73     # Patch cagebreak to read its default configuration from $out/share/cagebreak
74     sed -i "s|/etc/xdg/cagebreak|$out/share/cagebreak|" meson.build cagebreak.c
75     substituteInPlace meson.build \
76       --replace "/usr/share/licenses" "$out/share/licenses"
77   '';
79   postFixup = lib.optionalString withXwayland ''
80     wrapProgram $out/bin/cagebreak \
81       --prefix PATH : "${lib.makeBinPath [ xwayland ]}"
82   '';
84   meta = with lib; {
85     homepage = "https://github.com/project-repo/cagebreak";
86     description = "Wayland tiling compositor inspired by ratpoison";
87     license = licenses.mit;
88     maintainers = with maintainers; [ berbiche ];
89     platforms = platforms.linux;
90     changelog = "https://github.com/project-repo/cagebreak/blob/${version}/Changelog.md";
91     mainProgram = "cagebreak";
92   };
94   passthru.tests.basic = nixosTests.cagebreak;