%if 0%{?fedora} %global buildforkernels akmod %global debug_package %{nil} %endif %global short tuxedo-drivers %global module_names tuxedo_compatibility_check tuxedo_keyboard clevo_acpi clevo_wmi uniwill_wmi tuxedo_io tuxedo_nb02_nvidia_power_ctrl ite_8291 ite_8291_lb ite_8297 ite_829x tuxedo_nb05_ec tuxedo_nb05_power_profiles tuxedo_nb05_sensors tuxedo_nb05_keyboard tuxedo_nb05_kbd_backlight tuxedo_nb05_fan_control tuxedo_nb04_keyboard tuxedo_nb04_wmi_ab tuxedo_nb04_wmi_bs tuxedo_nb04_sensors tuxedo_nb04_power_profiles tuxedo_nb04_kbd_backlight stk8321 gxtp7380 tuxedo_tuxi_fan_control tuxi_acpi Name: tuxedo-drivers-kmod Version: 4.17.0 Release: 1%{?dist} Summary: Tuxedo drivers as kmod License: GPL-2.0-or-later URL: https://gitlab.com/tuxedocomputers/development/packages/tuxedo-drivers Source: %{url}/-/archive/v%{version}/tuxedo-drivers-v%{version}.tar.gz BuildRequires: kmodtool BuildRequires: kernel-devel BuildRequires: make BuildRequires: gcc BuildRequires: systemd-rpm-macros Provides: tuxedo-drivers = %{version} Obsoletes: tuxedo-drivers < 4.0.0 %description Tuxedo drivers as kmod for Tuxedo laptops, providing hardware control for keyboard backlighting, sensors, power profiles, and other features. # Define the -common subpackage %package common Summary: Common files for Tuxedo drivers kmod BuildArch: noarch Requires: %{name} >= %{version} %description common Common configuration files for Tuxedo drivers kernel modules. This package contains module-load configuration files. %{expand:%(kmodtool --target %{_target_cpu} --kmodname %{name} %{?buildforkernels:--%{buildforkernels}} %{?kernels:--for-kernels "%{?kernels}"} 2>/dev/null) } %prep %setup -q -n tuxedo-drivers-v%{version} for kernel_version in %{?kernel_versions} ; do cp -a src _kmod_build_${kernel_version%%___*} done %build echo "Build stage -----------------------------------------------------------------------------------------------" for kernel_version in %{?kernel_versions}; do make V=1 %{?_smp_mflags} -C /lib/modules/${kernel_version%%___*}/build M=${PWD}/_kmod_build_${kernel_version%%___*} modules done %install echo "Install stage ---------------------------------------------------------------------------------------------" # Install kernel modules for kernel_version in %{?kernel_versions}; do mkdir -p %{buildroot}/lib/modules/${kernel_version%%___*}/extra/tuxedo-drivers/ install -D -m 755 _kmod_build_${kernel_version%%___*}/**/*.ko %{buildroot}/lib/modules/${kernel_version%%___*}/extra/tuxedo-drivers/ install -D -m 755 _kmod_build_${kernel_version%%___*}/*.ko %{buildroot}/lib/modules/${kernel_version%%___*}/extra/tuxedo-drivers/ chmod a+x %{buildroot}/lib/modules/${kernel_version%%___*}/extra/tuxedo-drivers/*.ko done # Copy udev rules mkdir -p %{buildroot}/usr/lib/udev/rules.d/ cp usr/lib/udev/rules.d/* %{buildroot}/usr/lib/udev/rules.d/ # Copy modprobe.d mkdir -p %{buildroot}/usr/lib/modprobe.d/ cp usr/lib/modprobe.d/* %{buildroot}/usr/lib/modprobe.d/ # Copy udev hwdb mkdir -p %{buildroot}/usr/lib/udev/hwdb.d/ cp usr/lib/udev/hwdb.d/* %{buildroot}/usr/lib/udev/hwdb.d/ # Install module-load configs for -common package mkdir -p %{buildroot}%{_modulesloaddir} for module in %{module_names}; do echo "$module" > ${module}.conf install -D -m 0644 ${module}.conf %{buildroot}%{_modulesloaddir}/${module}.conf done %{?akmod_install} %files /usr/lib/modprobe.d/tuxedo-drivers-backlist-upstream-conflicts.conf /usr/lib/udev/rules.d/99-tuxedo-fix-huawei-lte-modules-correct-drivers.rules /usr/lib/udev/rules.d/99-tuxedo-fix-infinity-flex-touchpanel-toggle.rules /usr/lib/udev/rules.d/99-tuxedo-fix-intel-gen13-sleep-state.rules /usr/lib/udev/rules.d/99-tuxedo-fix-nb02-touchpad-mouse.rules /usr/lib/udev/rules.d/99-tuxedo-fix-pulse-gen2-wakeup-through-nvme-controller.rules /usr/lib/udev/rules.d/99-tuxedo-fix-realtek-rts522a-idle-behaviour.rules /usr/lib/udev/rules.d/99-tuxedo-fix-systemd-led-bootdelay.rules /usr/lib/udev/hwdb.d/61-sensor-tuxedo.hwdb /usr/lib/udev/hwdb.d/61-keyboard-tuxedo.hwdb %doc README.md %license debian/copyright %files common %{_modulesloaddir}/*.conf %changelog * Sun Nov 03 2025 Christoph Stoettner - 4.17.0-1 - Initial package for Copr