Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / applications / window-managers / hikari / default.nix
blob508f13f985b24b9f62ab74b7c24ca6b967074e37
1 { lib, stdenv, fetchzip
2 , pkg-config, bmake
3 , cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman
4 , libucl, wayland, wayland-protocols, wlroots, mesa
5 , features ? {
6     gammacontrol = true;
7     layershell   = true;
8     screencopy   = true;
9     xwayland     = true;
10   }
13 stdenv.mkDerivation rec {
14   pname = "hikari";
15   version = "2.3.3";
17   src = fetchzip {
18     url = "https://hikari.acmelabs.space/releases/${pname}-${version}.tar.gz";
19     sha256 = "sha256-5Ug0U3ESC5F/gj7bahnLYkeY/weSCj0QASwdFuWwdMI=";
20   };
22   nativeBuildInputs = [ pkg-config bmake ];
24   buildInputs = [
25     cairo
26     glib
27     libevdev
28     libinput
29     libxkbcommon
30     linux-pam
31     pango
32     pixman
33     libucl
34     mesa # for libEGL
35     wayland
36     wayland-protocols
37     wlroots
38   ];
40   enableParallelBuilding = true;
42   makeFlags = with lib; [ "PREFIX=$(out)" ]
43     ++ optional stdenv.isLinux "WITH_POSIX_C_SOURCE=YES"
44     ++ mapAttrsToList (feat: enabled:
45          optionalString enabled "WITH_${toUpper feat}=YES"
46        ) features;
48   postPatch = ''
49     # Can't suid in nix store
50     # Run hikari as root (it will drop privileges as early as possible), or create
51     # a systemd unit to give it the necessary permissions/capabilities.
52     substituteInPlace Makefile --replace '4555' '555'
54     sed -i 's@<drm_fourcc.h>@<libdrm/drm_fourcc.h>@' src/*.c
55   '';
57   meta = with lib; {
58     description = "Stacking Wayland compositor which is actively developed on FreeBSD but also supports Linux";
59     homepage    = "https://hikari.acmelabs.space";
60     license     = licenses.bsd2;
61     platforms   = platforms.linux ++ platforms.freebsd;
62     maintainers = with maintainers; [ jpotier ];
63   };