about summary refs log tree commit diff
path: root/pkgs/applications/system/asusctl/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/system/asusctl/default.nix')
-rw-r--r--pkgs/applications/system/asusctl/default.nix50
1 files changed, 36 insertions, 14 deletions
diff --git a/pkgs/applications/system/asusctl/default.nix b/pkgs/applications/system/asusctl/default.nix
index ba18d23889018..3fe0f13ea3bfb 100644
--- a/pkgs/applications/system/asusctl/default.nix
+++ b/pkgs/applications/system/asusctl/default.nix
@@ -3,31 +3,34 @@
 , fetchFromGitLab
 , systemd
 , coreutils
+, gnugrep
 , pkg-config
-, cmake
 , fontconfig
-, gtk3
-, libappindicator
 , libGL
+, libinput
+, libxkbcommon
+, mesa
+, seatd
+, wayland
 }:
 
 rustPlatform.buildRustPackage rec {
   pname = "asusctl";
-  version = "5.0.10";
+  version = "6.0.9";
 
   src = fetchFromGitLab {
     owner = "asus-linux";
     repo = "asusctl";
     rev = version;
-    hash = "sha256-H8x3nfOFRv9DkbDkFw+LO1tdHiVyU3SzetqED4twPSk=";
+    hash = "sha256-mml+nj+Z6267QtejTkWiR3SdNAdZCNz4M8r6LzvhALw=";
   };
 
   cargoLock = {
     lockFile = ./Cargo.lock;
     outputHashes = {
-      "ecolor-0.21.0" = "sha256-m7eHX6flwO21umtx3dnIuVUnNsEs3ZCyOk5Vvp/lVfI=";
-      "notify-rust-4.6.0" = "sha256-jhCgisA9f6AI9e9JQUYRtEt47gQnDv5WsdRKFoKvHJs=";
-      "supergfxctl-5.1.2" = "sha256-WDbUgvWExk5cs2cpjo88CiROdEbc01o2DELhRi9gju4=";
+      "const-field-offset-0.1.5" = "sha256-0MaNu6cUXislY+wDFuxZptXeJRkOuXGRJwZWm6AvcZ8=";
+      "notify-rust-4.7.0" = "sha256-A7edUorty5GpGXCUQPszZuXtLdEmbmrDSU9JcoDaiaI=";
+      "supergfxctl-5.2.3" = "sha256-wKcHoMukdUXZrdbE1xsylq7ySJpxny3+0dGUQ40BVH8=";
     };
   };
 
@@ -37,7 +40,9 @@ rustPlatform.buildRustPackage rec {
       asusd-user/src/daemon.rs
       asusd/src/ctrl_anime/config.rs
       rog-aura/src/aura_detection.rs
+      rog-control-center/src/lib.rs
       rog-control-center/src/main.rs
+      rog-control-center/src/tray.rs
     "
     for file in $files; do
       substituteInPlace $file --replace /usr/share $out/share
@@ -50,11 +55,32 @@ rustPlatform.buildRustPackage rec {
     substituteInPlace data/asusd-user.service \
       --replace /usr/bin/asusd-user $out/bin/asusd-user \
       --replace /usr/bin/sleep ${coreutils}/bin/sleep
+
+    substituteInPlace Makefile \
+      --replace /usr/bin/grep ${lib.getExe gnugrep}
   '';
 
-  nativeBuildInputs = [ pkg-config cmake rustPlatform.bindgenHook ];
+  nativeBuildInputs = [ pkg-config ];
+
+  buildInputs = [
+    fontconfig
+    libGL
+    libinput
+    libxkbcommon
+    mesa
+    seatd
+    systemd
+    wayland
+  ];
 
-  buildInputs = [ systemd fontconfig gtk3 ];
+  # force linking to all the dlopen()ed dependencies
+  RUSTFLAGS = map (a: "-C link-arg=${a}") [
+    "-Wl,--push-state,--no-as-needed"
+    "-lEGL"
+    "-lfontconfig"
+    "-lwayland-client"
+    "-Wl,--pop-state"
+  ];
 
   # upstream has minimal tests, so don't rebuild twice
   doCheck = false;
@@ -63,10 +89,6 @@ rustPlatform.buildRustPackage rec {
     make prefix=$out install-data
   '';
 
-  postFixup = ''
-    patchelf --add-rpath "${libappindicator}/lib:${libGL}/lib" "$out/bin/rog-control-center"
-  '';
-
   meta = with lib; {
     description = "A control daemon, CLI tools, and a collection of crates for interacting with ASUS ROG laptops";
     homepage = "https://gitlab.com/asus-linux/asusctl";