From 6f544cc46699ed9422cad98ced0519a8fdca59fb Mon Sep 17 00:00:00 2001 From: ikarosYuuki Date: Mon, 15 Jul 2024 19:48:26 +0800 Subject: [PATCH] Use weak-modules to decouple kernel modules from kernel versions Signed-off-by: ikarosYuuki (cherry picked from commit 0fc8f7a0140937c5e5984929c3e640e89d05cd68) --- virtCCA_driver.spec | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/virtCCA_driver.spec b/virtCCA_driver.spec index 8c00ba3..5ec3c28 100644 --- a/virtCCA_driver.spec +++ b/virtCCA_driver.spec @@ -5,7 +5,7 @@ Name : virtCCA_driver Summary : virtCCA driver is some drivers for TEE specific function. Version : 0.1.3 -Release : 4 +Release : 5 ExclusiveArch: aarch64 License : GPLV2 Group : System/Kernel @@ -13,12 +13,12 @@ URL : https://gitee.com/openeuler/virtCCA_driver.git Source0 : https://gitee.com/openeuler/virtCCA_driver/repository/archive/%{name}-v%{version}.tar.gz BuildRoot : %{_tmppath}/%{name}-v%{release}-build BuildRequires: gcc kernel-devel kernel-headers kernel glibc glibc-devel glib2-devel cmake rpm +Requires : kmod %global debug_package %{nil} %define kmod_1_name tmm_driver %define kmod_2_name sealing_key %define kernel %(ver=`rpm -qa|grep kernel-devel`;echo ${ver#*kernel-devel-}) -%define drivers_path /usr/lib/modules/%{kernel}/kernel/drivers %description %{name} module @@ -31,27 +31,40 @@ cd %_builddir/%{name}-v%{version}/ make KERNEL_DIR=/usr/src/kernels/%{kernel} %install -mkdir -p %{buildroot}/lib/modules/%{name} -install -m 0640 %_builddir/%{name}-v%{version}/%{kmod_1_name}/src/%{kmod_1_name}.ko %{buildroot}/lib/modules/%{name} -install -m 0640 %_builddir/%{name}-v%{version}/%{kmod_2_name}/src/%{kmod_2_name}.ko %{buildroot}/lib/modules/%{name} +mkdir -p %{buildroot}/lib/modules/%{kernel}/extra +install -m 0640 %_builddir/%{name}-v%{version}/%{kmod_1_name}/src/%{kmod_1_name}.ko %{buildroot}/lib/modules/%{kernel}/extra +install -m 0640 %_builddir/%{name}-v%{version}/%{kmod_2_name}/src/%{kmod_2_name}.ko %{buildroot}/lib/modules/%{kernel}/extra %clean rm -rf %{buildroot} %files %defattr(-,root,root) -%attr(0640,root,root) /lib/modules/%{name}/* +%attr(0640,root,root) /lib/modules/%{kernel}/extra/* %post -mkdir -p %{drivers_path}/%{name} -cp /lib/modules/%{name}/* %{drivers_path}/%{name} -depmod %{kernel} +if [[ "$1" = "1" || "$1" = "2" ]] ; then + echo "installing %{kmod_1_name}.ko" + if [ -e /sbin/weak-modules ] ; then + echo "/lib/modules/%{kernel}/extra/%{kmod_1_name}.ko" | /sbin/weak-modules --add-module --no-initramfs + fi + echo "installed %{kmod_1_name}.ko" +fi %postun -rm -rf %{drivers_path}/%{name} -depmod %{kernel} +if [[ "$1" = "0" ]] ; then + echo "removing %{kmod_1_name}.ko" + if [ -e /sbin/weak-modules ] ; then + echo "/lib/modules/%{kernel}/extra/%{kmod_1_name}.ko" | /sbin/weak-modules --remove-module --no-initramfs + fi + echo "removed %{kmod_1_name}.ko" +fi %changelog +* Mon Jul 15 2024 tujipei - 0.1.3-5 +- Type:bugfix +- DESC:Use weak-modules to decouple kernel modules from kernel versions + * Mon June 3 2024 tujipei - 0.1.3-4 - Type:bugfix - DESC:Clean the scanned security problem for the sealing key code -- Gitee