File intel-ipu6.spec of Package intel-ipu6
%global ipu6_commit 9369b88ec1ea03670fb2dbfe7abdff411683d462
%global ipu6_commitdate 20240718
%global ipu6_shortcommit %(c=%{ipu6_commit}; echo ${c:0:7})
%global ivsc_commit 73a044d9633212fac54ea96cdd882ff5ab40573e
%global ivsc_commitdate 20231222
%global ivsc_shortcommit %(c=%{ivsc_commit}; echo ${c:0:7})
%if 0%{?suse_version} > 1500
%define gccver %nil
%define gccbin gcc
%else
%define gccver 11
%define gccbin gcc-%{gccver}
%endif
Name: intel-ipu6
Summary: Kernel module for ipu6
Version: 1.0.1+git%{ipu6_commitdate}.%{ipu6_shortcommit}
Release: 0
License: GPL-2.0-or-later
Group: System/Kernel
URL: https://github.com/intel
Source0: %{url}/ipu6-drivers/archive/%{ipu6_commit}/ipu6-drivers-%{ipu6_shortcommit}.tar.gz
Source2: %{name}-preamble
# From https://git.launchpad.net/ubuntu/+source/ipu6-drivers/commit/?h=ubuntu/oracular-proposed&id=7d9b555acb895b600079e584785fd108e4612c3c
Patch1: 0001-dkms-use-debian-package-version-as-PACKAGE_VERSION.patch
Patch2: 0003-build-fix-kernel-feature-macro-definitions.patch
Patch3: 0004-build-drop-inlined-vsc-builds.patch
Patch4: 0005-ivsc-import-headers.patch
Patch5: 0006-ivsc-load-symbols-by-kprobe.patch
Patch6: fix-ftbfs-v5.19.patch
Patch7: 0007-dkms-add-CONFIG_VIDEO_V4L2_I2C-to-BUILD_EXCLUSIVE_CO.patch
Patch8: 0008-dkms-ensure-no-hole-in-modules-list.patch
Patch9: 0011-UBUNTU-SAUCE-i2c-compile-omitted-sensor-drivers.patch
Patch10: 0013-backport-Switch-to-stream-aware-state-functions.patch
Patch11: 0014-backport-media-v4l2-subdev-Rename-.init_cfg-operatio.patch
Patch12: 0022-UBUNTU-SAUCE-IPU6-skip-hwcfg-checking-for-platforms-.patch
Patch13: 0023-UBUNTU-SAUCE-media-ipu6-Fix-compilation-with-kernels.patch
Patch14: 0024-ov08x40-add-driver-source-from-v6.9.patch
Patch15: 0025-ov08x40-add-build-config.patch
Patch16: 0026-ov08x40-add-handshake-pin-support.patch
Patch17: 0027-ov08x40-fix-build-against-kernel-6.8.patch
Patch18: 0028-UBUNTU-SAUCE-media-ipu6-Fix-compilation-with-kernels.patch
BuildRequires: %{kernel_module_package_buildreqs}
BuildRequires: gcc%{gccver}
%kernel_module_package -p %_sourcedir/%{name}-preamble
%description
This enables intel IPU6 image processor. The package includes Intel IPU6 and iVSC drivers
The source can be found from the following URL.
https://github.com/intel/ipu6-drivers
This package contains the kmp module for intel-ipu6.
%prep
%autosetup -p1 -n ipu6-drivers-%{ipu6_commit}
sed -i 's|"#MODULE_VERSION#"|%{version}|' dkms.conf
set -- *
mkdir -p source/ipu6-drivers-%{ipu6_commit}
mv "$@" source/ipu6-drivers-%{ipu6_commit}
mkdir obj
%build
for flavor in %{flavors_to_build}; do
rm -rf obj/$flavor
cp -r source obj/$flavor
make V=1 CC=%{gccbin} %{?_smp_mflags} -C %{kernel_source $flavor} %{?linux_make_arch} modules M=$PWD/obj/$flavor/ipu6-drivers-%{ipu6_commit}
done
%install
export INSTALL_MOD_PATH="%buildroot"
for flavor in %flavors_to_build; do
make V=1 CC=%{gccbin} %{?_smp_mflags} -C %{kernel_source $flavor} %{?linux_make_arch} modules M=$PWD/obj/$flavor/ipu6-drivers-%{ipu6_commit} modules_install
done
mkdir -p %{buildroot}%{_sysconfdir}/dracut.conf.d
echo -n 'omit_drivers+=" ' >%{buildroot}%{_sysconfdir}/dracut.conf.d/50-ipu6.conf
for module in $(find . -name "*.ko") ; do
NAME=$(strings $module | awk '$1~/^name=/{print substr($1,index($1,"=")+1)}')
[[ ! $NAME ]] && NAME=$(basename $module .ko)
echo -n $NAME\ >>%{buildroot}%{_sysconfdir}/dracut.conf.d/50-ipu6.conf
done
echo '"' >>%{buildroot}%{_sysconfdir}/dracut.conf.d/50-ipu6.conf
%files
%dir %{_sysconfdir}/dracut.conf.d
%config %{_sysconfdir}/dracut.conf.d/50-ipu6.conf
%changelog