File v4l-dvb-saa716x.spec of Package v4l-dvb-saa716x
#
# spec file for package v4l-dvb-saa716x on openSuse
#
Name: v4l-dvb-saa716x
#Version w.u., je nach Leap Level
#Version: 20230626
Release: 1
Summary: Kernel modules for SAA716x (TT DVB-S2 6400)
License: GPL-2.0-or-later and FTL
Group: System/Kernel
#Url: https://bitbucket.org/powARman/v4l-dvb-saa716x
# aus srpm extrahiert: http://firefly.vdr-developer.org/patches/v4l-dvb-saa716x-20210830-lp154.1.src.rpm
# https://www.vdr-portal.de/forum/index.php?thread/135818-tt-s2-6400-aktualisiertes-script-zum-bauen-der-module-unter-opensuse-tumbleweed/
# http://firefly.vdr-developer.org/patches/v4l-dvb-saa716x-20230626-150600.1.src.rpm
Url: https://github.com/s-moch/linux-saa716x
%if 0%{?suse_version} > 1500
Distribution: openSUSE Tumbleweed (%{_arch})
%else
%if !0%{?is_backports}
%if 0%{?sle_version} >= 150200
Distribution: openSUSE Leap %(echo "%{sle_version}" | sed -e 's/\(..\).\(.\)../\1.\2/') (%{_arch})
%endif
%else
%error SLE is not supported
%endif
%endif
%if 0%{?sle_version} == 150600 && 0%{?is_opensuse}
# 15.6
Version: 20230626
Source: saa716x_s-moch_%{version}_and_stv090x.tgz
%else
# nicht 15.6
Version: 20210830
Source: saa716x_s-moch_%{version}_stv090x.tgz
%endif
Source10: saa716x-preamble
# firmware downloaded from http://www.aregel.de/downloads/
Source20: dvb-ttpremium-fpga-01_v1_10.zip
Source21: dvb-ttpremium-loader-01_v1_03.zip
Source22: dvb-ttpremium-st7109-01_v0_5_1.zip
Source23: udev_99-tt6400-ir.rules
Patch0: saa716x_osd_raw_cmd.diff
Patch1: stv090x_02_dBmV5.patch
Patch10: saa716x_i2c_bus_recovery_after_master_reset.diff
Patch11: saa716x_simplify_and_improve_i2c_handling.diff
Patch12: saa716x_ff_cleanup_case_fall_through.diff
Patch13: saa716x_move_i2c_reset_after_transfer_error_into_mutex_locked_section.diff
Patch14: saa716x_fix_i2c_timings.diff
Patch15: saa716x_further_improve_i2c_handling.diff
Patch16: saa716x_add_quirks_for_improved_i2c_read_reliability.diff
Patch17: saa716x_ff_select_faster_i2c_timings.diff
BuildRequires: %kernel_module_package_buildreqs
BuildRequires: kernel-source
BuildRequires: dracut
BuildRequires: kernel-devel
BuildRequires: kernel-macros
BuildRequires: kernel-syms
BuildRequires: unzip
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Requires: %{name}-firmware = %{version}
%kernel_module_package -p %{_sourcedir}/saa716x-preamble
%description
Kernel modules for the TechnoTrend DVB-S2 6400 DVB card with openSUSE Leap. The original driver source can be found at https://bitbucket.org/powARman/v4l-dvb-saa716x, for newer kernels (e.g. 5.x) at https://github.com/s-moch/linux-saa716x.
The respective firmware files are also required.
%package udev
Summary: udev rule for IR receiver of SAA716x (TT DVB-S2 6400)
License: GPL-2.0-or-later
Group: System/Kernel
BuildArch: noarch
Requires: %{name}-kmp = %{version}
%description udev
This package contains an udev rule to create a device for the IR recevier of the SAA716x as used on the TT DVB-S2 6400 card.
To make sure the driver is loaded completly you can depend further systemd actions on the existence of the IR device dev-tt6400ir.device.
%package firmware
Summary: firmware files for SAA716x (TT DVB-S2 6400)
Group: System/Kernel
BuildArch: noarch
Requires: %{name}-kmp = %{version}
%description firmware
This package contains the firmware files for SAA716x (TT DVB-S2 6400) kernel modules
%prep
%setup -q -c
%patch0 -p0
%patch1 -p3
%if 0%{?sle_version} < 150600 && 0%{?is_opensuse}
%patch10 -p4
%patch11 -p4
%patch12 -p4
%patch13 -p4
%patch14 -p4
%patch15 -p4
%patch16 -p4
%patch17 -p4
%endif
set -- *
mkdir source
mv "$@" source/
mkdir obj
%build
for flavor in %{flavors_to_build}
do
rm -rf obj/$flavor
cp -r source obj/$flavor
make V=1 %{?_smp_mflags} -C %{kernel_source $flavor} %{?linux_make_arch} M=$PWD/obj/$flavor modules
done
%install
# Kernel modules
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR='%{kernel_module_package_moddir}'
for flavor in %{flavors_to_build}
do
make V=1 -C %{kernel_source $flavor} M=$PWD/obj/$flavor modules_install
done
# Firmware
unzip -o %{S:20} -d %buildroot/lib/firmware
unzip -o %{S:21} -d %buildroot/lib/firmware
unzip -o %{S:22} -d %buildroot/lib/firmware
# udev rule
mkdir -p %buildroot/etc/udev/rules.d/
cp %{S:23} %buildroot/etc/udev/rules.d/99-tt6400-ir.rules
%post
/sbin/depmod -a
%postun
/sbin/depmod -a
%files udev
%defattr(-,root,root)
#%config(noreplace) /etc/udev/rules.d/99-tt6400-ir.rules
%config /etc/udev/rules.d/99-tt6400-ir.rules
%files firmware
%defattr(-,root,root)
/lib/firmware/dvb-ttpremium-*.fw
%doc /lib/firmware/Changelog
%license /lib/firmware/Licenses
%changelog