kmod-dinghai/kmod-dinghai.spec
2024-08-28 16:09:42 +08:00

106 lines
3.0 KiB
RPMSpec

%global pkg dinghai
%define pkg_version 2.24.20.02
%define release 1
%global debug_package %{nil}
Name: kmod-%{pkg}
Version: %{pkg_version}
Release: %{release}%{?dist}
Summary: ZTE SmartNIC and DPU driver
License: GPLv2
URL: https://gitee.com/anolis/kmod-dinghai
Source0: kmod-%{pkg}.tar.gz
Epoch: 1
# 安装依赖, 和内核版本对应
Requires(posttrans): %{_sbindir}/depmod
Requires(postun): %{_sbindir}/depmod
Requires(posttrans): %{_sbindir}/weak-modules
Requires(postun): %{_sbindir}/weak-modules
Requires(posttrans): %{_bindir}/sort
Requires(postun): %{_bindir}/sort
# 构建依赖, 和内核版本对应
BuildRequires: elfutils-libelf-devel
BuildRequires: gcc
BuildRequires: kmod
BuildRequires: make
BuildRequires: system-rpm-config
BuildRequires: perl-Data-Dumper
BuildRequires: kernel
BuildRequires: kernel-headers
BuildRequires: kernel-devel
%define kernel_version %(rpm -q kernel-devel | sed 's/kernel-devel-//')
%define kernel_source /usr/src/kernels/%{kernel_version}
%description
RPM Package for ZXDH Driver
%prep
%setup -q -n kmod-%{pkg}
%build
echo "kernel_version:%{kernel_version}"
pushd crypto/zsda
%{__make} %{?_smp_mflags} -C %{kernel_source} M=$PWD modules CONFIG_ACC_ZSDA_COMMON=m CONFIG_ACC_ZSDA_PF=m CONFIG_ACC_ZSDA_VF=m
popd
%install
mkdir -p %{buildroot}/lib/modules/%{kernel_version}/extra/drivers/dinghai/crypto/zsda/
for ko in $(find crypto/zsda/accdevice/ -name '*.ko'); do
if [[ $ko == crypto/zsda/accdevice/* ]]; then
target_dir=%{buildroot}/lib/modules/%{kernel_version}/extra/drivers/dinghai/crypto/zsda/
fi
%{__install} -D -t $target_dir $ko
done
ls -l /lib/modules/%{kernel_version}
# Make .ko objects temporarily executable for automatic stripping
find %{buildroot}/lib/modules -type f -name \*.ko -exec chmod u+x \{\} \+
# Generate depmod.conf
%{__install} -d %{buildroot}/%{_sysconfdir}/depmod.d/
for kmod in $(find %{buildroot}/lib/modules/%{kernel_version}/extra -type f -name \*.ko -printf "%%P\n" | sort)
do
echo "override $(basename $kmod .ko) * weak-updates/$(dirname $kmod)" >> %{buildroot}/%{_sysconfdir}/depmod.d/%{pkg}.conf
echo "override $(basename $kmod .ko) * extra/$(dirname $kmod)" >> %{buildroot}/%{_sysconfdir}/depmod.d/%{pkg}.conf
done
%clean
%{__rm} -rf %{buildroot}
%post
depmod -a > /dev/null 2>&1
%preun
list_file="/var/run/rpm-%{pkg}-modules.list"
mkdir -p /var/run
for ko in $(find %{buildroot}/lib/modules/%{kernel_version}/extra/drivers/dinghai/crypto/zsda/ -name '*.ko'); do
echo "${ko#%{buildroot}}" >> $list_file
done
%postun
depmod -a > /dev/null 2>&1
if [ -x "/usr/sbin/weak-modules" ]; then
modules=( $(cat /var/run/rpm-%{pkg}-modules.list) )
printf '%s\n' "${modules[@]}" | /usr/sbin/weak-modules --no-initramfs --remove-modules
fi
rm /var/run/rpm-%{pkg}-modules.list
%files
%defattr(644,root,root,755)
/lib/modules/%{kernel_version}
%config(noreplace) %{_sysconfdir}/depmod.d/%{pkg}.conf
%changelog
* Wed Aug 28 2024 hcf <han.chengfei@zte.com.cn> - 1:2.24.20.02-1
- Dinghai driver init