File asusctl.spec of Package asusctl
%global rustflags -Clink-arg=-Wl,-z,relro,-z,now
Name: asusctl
Version: 6.1.16
Release: 0
Summary: Control fan speeds, LEDs, graphics modes, and charge levels for ASUS notebooks
License: MPL-2.0
URL: https://gitlab.com/asus-linux/asusctl
Source0: %{name}-%{version}.tar.gz
Source1: vendor.tar.zst
BuildRequires: cargo-packaging
BuildRequires: cargo >= 1.83
BuildRequires: cmake
BuildRequires: clang-devel
BuildRequires: pkgconfig
BuildRequires: rust
BuildRequires: rust-std-static
BuildRequires: systemd-rpm-macros
BuildRequires: make
BuildRequires: pkgconfig(gbm)
BuildRequires: pkgconfig(expat)
BuildRequires: pkgconfig(dbus-1)
BuildRequires: pkgconfig(libdrm)
BuildRequires: pkgconfig(libinput)
BuildRequires: pkgconfig(libseat)
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gdk-3.0)
BuildRequires: desktop-file-utils
BuildRequires: pkgconfig(systemd)
BuildRequires: pkgconfig(libpcre2-posix)
Requires: libappindicator-gtk3
Requires: power-profiles-daemon
%description
asusctl 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.
asusctl enables third-party apps to use the above with dbus methods.
%package rog-gui
Requires: asusctl
Summary: An experimental GUI for asusctl
%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.
%prep
%autosetup -a1
%build
cargo build --release --features "rog-control-center/x11"
%install
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
%pre
%service_add_pre asusd.service
%post
%service_add_post asusd.service
echo "Frist install?! Pls run following command"
echo "sudo usermod -aG wheel $USER"
%preun
%service_del_preun asusd.service
%postun
%service_del_postun asusd.service
%files
%license %{_datadir}/asusctl/LICENSE
%{_bindir}/asusd
%{_bindir}/asusd-user
%{_bindir}/asusctl
%{_unitdir}/asusd.service
#{_userunitdir}/asusd-user.service
%{_udevrulesdir}/99-asusd.rules
#{_datadir}/asusd/aura_support.ron
%{_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/
%dir %{_datadir}/%{name}
%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
%changelog