# This spec file should work on Fedora, openSUSE and Mageia %define dkms_name openrazer-driver %define dkms_version 3.9.0 %global _default_patch_fuzz 2 %define gitcommit 227096056fa0b0ad4bf0334150b4be73ea3074ee Name: openrazer-meta Version: 3.9.0 Release: 2.2 Summary: Open source driver and user-space daemon for managing Razer devices License: GPL-2.0 URL: https://github.com/openrazer/openrazer %if 0%{?gitcommit:1} Source0: https://github.com/crstmkt/openrazer/archive/%{gitcommit}.tar.gz %else Source0: https://github.com/openrazer/openrazer/releases/download/v%{version}/openrazer-%{version}.tar.xz %endif BuildArch: noarch BuildRequires: make Requires: openrazer-kernel-modules-dkms Requires: openrazer-daemon Requires: python3-openrazer %description Meta package for installing all required openrazer packages. %package -n openrazer-kernel-modules-dkms Summary: OpenRazer Driver DKMS package Group: System Environment/Kernel Obsoletes: razer-kernel-modules-dkms Provides: razer-kernel-modules-dkms Requires: dkms Requires: make Requires: udev # OBS fails without that %if 0%{?suse_version} Requires(pre): shadow Requires(post): dkms %else Requires(pre): shadow-utils %endif %description -n openrazer-kernel-modules-dkms Kernel driver for Razer devices (DKMS-variant) %package -n openrazer-daemon Summary: OpenRazer Service package Group: System Environment/Daemons Obsoletes: razer-daemon Provides: razer-daemon BuildRequires: python3-devel BuildRequires: python3-setuptools Requires: openrazer-kernel-modules-dkms Requires: python3 %if 0%{?suse_version} Requires: dbus-1-python3 Requires: typelib(Gdk) = 3.0 %else Requires: python3-dbus %endif %if 0%{?mageia} Requires: python3-gobject3 %else Requires: python3-gobject %endif Requires: python3-setproctitle Requires: python3-pyudev Requires: python3-daemonize Requires: xautomation %description -n openrazer-daemon Userspace daemon that abstracts access to the kernel driver. Provides a DBus service for applications to use. %package -n python3-openrazer Summary: OpenRazer Python library Group: System Environment/Libraries Obsoletes: python3-razer Provides: python3-razer BuildRequires: python3-devel BuildRequires: python3-setuptools Requires: openrazer-daemon Requires: python3 %if 0%{?suse_version} Requires: dbus-1-python3 %else Requires: python3-dbus %endif %if 0%{?mageia} Requires: python3-gobject3 %else Requires: python3-gobject %endif Requires: python3-numpy %description -n python3-openrazer Python library for accessing the daemon from Python. %prep %if 0%{?gitcommit:1} %autosetup -n openrazer-%{gitcommit} -p1 %else %autosetup -n openrazer-%{version} -p1 %endif %build # noop %install rm -rf $RPM_BUILD_ROOT # setup_dkms & udev_install -> razer-kernel-modules-dkms # daemon_install -> razer_daemon # python_library_install -> python3-razer make DESTDIR=$RPM_BUILD_ROOT setup_dkms udev_install daemon_install python_library_install %clean rm -rf $RPM_BUILD_ROOT %pre -n openrazer-kernel-modules-dkms #!/bin/sh set -e getent group plugdev >/dev/null || groupadd -r plugdev %if 0%{?mageia} %posttrans -n openrazer-kernel-modules-dkms dkms add -m %{dkms_name} -v %{dkms_version} --rpm_safe_upgrade dkms build -m %{dkms_name} -v %{dkms_version} --rpm_safe_upgrade dkms install -m %{dkms_name} -v %{dkms_version} --rpm_safe_upgrade echo -e "\e[31m********************************************" echo -e "\e[31m* To complete installation, please run: *" echo -e "\e[31m* # sudo gpasswd -a plugdev *" echo -e "\e[31m********************************************" echo -e -n "\e[39m" %preun -n openrazer-kernel-modules-dkms dkms remove -m %{dkms_name} -v %{dkms_version} --rpm_safe_upgrade --all %else %posttrans -n openrazer-kernel-modules-dkms #!/bin/sh set -e dkms install %{dkms_name}/%{dkms_version} echo -e "\e[31m********************************************" echo -e "\e[31m* To complete installation, please run: *" echo -e "\e[31m* # sudo gpasswd -a plugdev *" echo -e "\e[31m********************************************" echo -e -n "\e[39m" %preun -n openrazer-kernel-modules-dkms #!/bin/sh if [ "$(dkms status -m %{dkms_name} -v %{dkms_version})" ]; then dkms remove -m %{dkms_name} -v %{dkms_version} --all fi %endif %files # meta package is empty %files -n openrazer-kernel-modules-dkms %defattr(-,root,root,-) # A bit hacky but it works /usr/lib/udev/rules.d/../razer_mount /usr/lib/udev/rules.d/99-razer.rules %{_usrsrc}/%{dkms_name}-%{dkms_version}/ %files -n openrazer-daemon %{_bindir}/openrazer-daemon %{python3_sitelib}/openrazer_daemon/ %{python3_sitelib}/openrazer_daemon-*.egg-info/ %{_datadir}/openrazer/ %{_datadir}/dbus-1/services/org.razer.service %{_prefix}/lib/systemd/user/openrazer-daemon.service %{_mandir}/man5/razer.conf.5* %{_mandir}/man8/openrazer-daemon.8* %files -n python3-openrazer %{python3_sitelib}/openrazer/ %{python3_sitelib}/openrazer-*.egg-info/