File curves-mouse-acceleration.spec of Package curves

Name:           curves-mouse-acceleration
Version:        0.0.0
Release:        0
Summary:        Curves mouse acceleration input handler
License:        MIT AND (GPL-2.0-or-later OR MIT)
URL:            https://github.com/fsecilia/curves
Source0:        %{name}-%{version}.tar.gz

BuildRequires:  cmake
BuildRequires:  dkms
BuildRequires:  ((gcc >= 14.0.0 and gcc-c++ >= 14.0.0) or clang >= 18.0.0)
BuildRequires:  pkgconfig(Qt6Core)
BuildRequires:  pkgconfig(Qt6Gui)
BuildRequires:  pkgconfig(Qt6Widgets)
BuildRequires:  systemd
BuildRequires:  systemd-rpm-macros

Requires:       dkms
Requires:       kernel-devel
Requires:       ((gcc >= 14.0.0 and gcc-c++ >= 14.0.0) or clang >= 18.0.0)
Requires:       make
Requires:       systemd
Requires:       udev

%{?systemd_requires}

%description
Kernel module for custom mouse acceleration curves, managed via DKMS.

%prep
%setup -q

%build
cmake -B build \
    -DCMAKE_INSTALL_PREFIX=%{_prefix} \
    -DCMAKE_BUILD_TYPE=RelWithDebInfo \
    -Dmodprobe_path=%{_sbindir}/modprobe \
    -Dudevadm_path=%{_bindir}/udevadm

cmake --build build

%install
DESTDIR=%{buildroot} cmake --install build

%post
dkms add -m %{name} -v %{version} --rpm_safe_upgrade || :
dkms build -m %{name} -v %{version} || :
dkms install -m %{name} -v %{version} || :

%systemd_post %{name}-restore.service

udevadm control --reload || :

%preun
%systemd_preun %{name}-restore.service

if [ $1 -eq 0 ]; then
    %{_sbindir}/modprobe -r curves_mouse_acceleration >/dev/null 2>&1 || :
fi

dkms remove -m %{name} -v %{version} --all --rpm_safe_upgrade || :

%postun
%systemd_postun_with_restart %{name}-restore.service

%files
%license COPYING
%license LICENSE
%{_bindir}/%{name}-config
%{_modulesloaddir}/%{name}.conf
%{_prefix}/src/%{name}-%{version}/
%{_udevrulesdir}/99-%{name}.rules
%{_unitdir}/%{name}-restore.service
openSUSE Build Service is sponsored by