biome: 1.9.2 -> 1.9.3
[NixPkgs.git] / pkgs / applications / system / asusctl / default.nix
blobab160092f1564aa1892236b690862b7c4740fd9f
1 { lib
2 , rustPlatform
3 , fetchFromGitLab
4 , systemd
5 , coreutils
6 , gnugrep
7 , pkg-config
8 , fontconfig
9 , libGL
10 , libinput
11 , libxkbcommon
12 , mesa
13 , seatd
14 , wayland
17 rustPlatform.buildRustPackage rec {
18   pname = "asusctl";
19   version = "6.0.12";
21   src = fetchFromGitLab {
22     owner = "asus-linux";
23     repo = "asusctl";
24     rev = version;
25     hash = "sha256-fod3ZkJktmJGHF8nSSp9lVMg/qYKQd4EiauFGTSvbsg=";
26   };
28   cargoLock = {
29     lockFile = ./Cargo.lock;
30     outputHashes = {
31       "const-field-offset-0.1.5" = "sha256-QtlvLwe27tLLdWhqiKzXoUvBsBcZbfwY84jXUduzCKw=";
32       "supergfxctl-5.2.4" = "sha256-MQJJaTajPQ45BU6zyMx0Wwf7tAPcT4EURWWbZxrbGzE=";
33     };
34   };
36   postPatch = ''
37     files="
38       asusd-user/src/config.rs
39       asusd-user/src/daemon.rs
40       asusd/src/ctrl_anime/config.rs
41       rog-aura/src/aura_detection.rs
42       rog-control-center/src/lib.rs
43       rog-control-center/src/main.rs
44       rog-control-center/src/tray.rs
45     "
46     for file in $files; do
47       substituteInPlace $file --replace /usr/share $out/share
48     done
50     substituteInPlace data/asusd.rules --replace systemctl ${systemd}/bin/systemctl
51     substituteInPlace data/asusd.service \
52       --replace /usr/bin/asusd $out/bin/asusd \
53       --replace /bin/sleep ${coreutils}/bin/sleep
54     substituteInPlace data/asusd-user.service \
55       --replace /usr/bin/asusd-user $out/bin/asusd-user \
56       --replace /usr/bin/sleep ${coreutils}/bin/sleep
58     substituteInPlace Makefile \
59       --replace /usr/bin/grep ${lib.getExe gnugrep}
60   '';
62   nativeBuildInputs = [ pkg-config ];
64   buildInputs = [
65     fontconfig
66     libGL
67     libinput
68     libxkbcommon
69     mesa
70     seatd
71     systemd
72     wayland
73   ];
75   # force linking to all the dlopen()ed dependencies
76   RUSTFLAGS = map (a: "-C link-arg=${a}") [
77     "-Wl,--push-state,--no-as-needed"
78     "-lEGL"
79     "-lfontconfig"
80     "-lwayland-client"
81     "-Wl,--pop-state"
82   ];
84   # upstream has minimal tests, so don't rebuild twice
85   doCheck = false;
87   postInstall = ''
88     make prefix=$out install-data
89   '';
91   meta = with lib; {
92     description = "Control daemon, CLI tools, and a collection of crates for interacting with ASUS ROG laptops";
93     homepage = "https://gitlab.com/asus-linux/asusctl";
94     license = licenses.mpl20;
95     platforms = [ "x86_64-linux" ];
96     maintainers = with maintainers; [ k900 aacebedo ];
97   };