%global debug_package %{nil} %global rpm_dkms_opt 1 # Use hardening ldflags. %global rustflags -Clink-arg=-Wl,-z,relro,-z,now Summary: Control fan speeds, LEDs, graphics modes, and charge levels for ASUS notebooks Name: asusctl Version: 4.6.0 Release: 2 License: MPLv2 Group: System/Kernel and hardware URL: https://gitlab.com/asus-linux/asusctl Source0: %{name}-%{version}.tar.gz Source1: vendor_%{name}_%{version}.tar.xz Source2: cargo_config BuildRequires: cargo BuildRequires: rust-packaging BuildRequires: clang-devel BuildRequires: cmake BuildRequires: rust BuildRequires: rust-std-static BuildRequires: pkgconfig(dbus-1) BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(gtk+-3.0) BuildRequires: pkgconfig(gdk-3.0) BuildRequires: pkgconfig(systemd) BuildRequires: desktop-file-utils Requires: %{_lib}appindicator3-gir0.1 Requires: power-profiles-daemon %description asus-nb-ctrl is a utility for Linux to control many aspects of various ASUS laptops but can also be used with non-Asus laptops with reduced features. It provides an interface for rootless control of some system functions such as fan speeds, keyboard LEDs, battery charge level, and graphics modes. asus-nb-ctrl enables third-party apps to use the above with dbus methods. %files %license LICENSE %{_bindir}/asusd %{_bindir}/asusd-user %{_bindir}/asusctl %{_userunitdir}/asusd-user.service %{_prefix}/lib/systemd/system/asusd.service %{_prefix}/lib/udev/rules.d/99-asusd.rules %{_datadir}/dbus-1/system.d/asusd.conf %{_datadir}/icons/hicolor/512x512/apps/asus_notif_yellow.png %{_datadir}/icons/hicolor/512x512/apps/asus_notif_green.png %{_datadir}/icons/hicolor/512x512/apps/asus_notif_red.png %{_datadir}/icons/hicolor/512x512/apps/asus_notif_blue.png %{_datadir}/icons/hicolor/512x512/apps/asus_notif_orange.png %{_datadir}/icons/hicolor/512x512/apps/asus_notif_white.png %{_datadir}/icons/hicolor/scalable/status/gpu-compute.svg %{_datadir}/icons/hicolor/scalable/status/gpu-hybrid.svg %{_datadir}/icons/hicolor/scalable/status/gpu-integrated.svg %{_datadir}/icons/hicolor/scalable/status/gpu-nvidia.svg %{_datadir}/icons/hicolor/scalable/status/gpu-vfio.svg %{_datadir}/icons/hicolor/scalable/status/notification-reboot.svg %{_docdir}/%{name}/ %{_datadir}/asusd/ #----------------------------------------------------------------------- %package rog-gui Summary: An experimental GUI for %{name} Requires: %{name} %description rog-gui A one-stop-shop GUI tool for asusd/asusctl. It aims to provide most controls, a notification service, and ability to run in the background. %files rog-gui %{_bindir}/rog-control-center %{_datadir}/applications/rog-control-center.desktop %{_datadir}/icons/hicolor/512x512/apps/rog-control-center.png %{_datadir}/rog-gui #----------------------------------------------------------------------- %prep %autosetup %setup -D -T -a 1 mv Cargo.lock{,.bak} %cargo_prep mv Cargo.lock{.bak,} sed -i 's|replace-with = "local-registry"|replace-with = "vendored-sources"|' .cargo/config cat %{SOURCE2} >> .cargo/config %build export RUSTFLAGS="%{rustflags}" %cargo_build #cargo build --release --frozen --offline --config .cargo/config.toml %install export RUSTFLAGS="%{rustflags}" mkdir -p "%{buildroot}/%{_bindir}" "%{buildroot}%{_docdir}" %make_install install -D -m 0644 README.md %{buildroot}/%{_docdir}/%{name}/README.md install -D -m 0644 rog-anime/README.md %{buildroot}/%{_docdir}/%{name}/README-anime.md install -D -m 0644 rog-anime/data/diagonal-template.png %{buildroot}/%{_docdir}/%{name}/diagonal-template.png desktop-file-validate %{buildroot}/%{_datadir}/applications/rog-control-center.desktop