Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / window-managers / cagebreak / default.nix
blob1f07da0a7bc4caa0e55c720bba34e3216c13b45f
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 , withXwayland ? true , xwayland
23 , wlroots
26 stdenv.mkDerivation rec {
27   pname = "cagebreak";
28   version = "2.2.1";
30   src = fetchFromGitHub {
31     owner = "project-repo";
32     repo = pname;
33     rev = version;
34     hash = "sha256-cJEJ8V9lDbNb07eY3nWmNcT7ULGlcmOeyb9UDOLGWfI=";
35   };
37   nativeBuildInputs = [
38     makeWrapper
39     meson
40     ninja
41     pkg-config
42     scdoc
43     wayland
44   ];
46   buildInputs = [
47     cairo
48     fontconfig
49     libevdev
50     libinput
51     libxkbcommon
52     xcbutilwm
53     mesa # for libEGL headers
54     pango
55     pixman
56     systemd
57     wayland
58     wayland-protocols
59     wlroots
60   ];
62   mesonFlags = [
63     "-Dman-pages=true"
64     "-Dversion_override=${version}"
65     "-Dxwayland=${lib.boolToString withXwayland}"
66   ];
68   postPatch = ''
69     # TODO: investigate why is this happening
70     sed -i -e 's|<drm_fourcc.h>|<libdrm/drm_fourcc.h>|' *.c
72     # Patch cagebreak to read its default configuration from $out/share/cagebreak
73     sed -i "s|/etc/xdg/cagebreak|$out/share/cagebreak|" meson.build cagebreak.c
74     substituteInPlace meson.build \
75       --replace "/usr/share/licenses" "$out/share/licenses"
76   '';
78   postFixup = lib.optionalString withXwayland ''
79     wrapProgram $out/bin/cagebreak \
80       --prefix PATH : "${lib.makeBinPath [ xwayland ]}"
81   '';
83   meta = with lib; {
84     homepage = "https://github.com/project-repo/cagebreak";
85     description = "A Wayland tiling compositor inspired by ratpoison";
86     license = licenses.mit;
87     maintainers = with maintainers; [ berbiche ];
88     platforms = platforms.linux;
89     changelog = "https://github.com/project-repo/cagebreak/blob/${version}/Changelog.md";
90   };
92   passthru.tests.basic = nixosTests.cagebreak;