fix upgrade error

This commit is contained in:
wang--ge 2023-10-30 10:49:54 +08:00
parent 3139ad0544
commit 06f213609e

View File

@ -1,5 +1,5 @@
#This spec is obtained from source code(kvdo-6.2.2.24.tar.gz)
%define spec_release 8
%define spec_release 9
%define kmod_name kmod-kvdo
%define kmod_driver_version 6.2.2.24
%define kmod_rpm_release %{spec_release}
@ -36,21 +36,44 @@ block-level deduplication, compression, and thin provisioning.
This package provides the kernel modules for VDO.
%post
set -x
/usr/sbin/dkms --rpm_safe_upgrade add -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade build -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade install -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
case "$1" in
1)
set -x
/usr/sbin/dkms --rpm_safe_upgrade add -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade build -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade install -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
;;
2)
set -x
/usr/sbin/dkms --rpm_safe_upgrade uninstall -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade remove -m %{kmod_name} -v %{version}-%{kmod_rpm_release} --all
/usr/sbin/dkms --rpm_safe_upgrade add -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade build -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
/usr/sbin/dkms --rpm_safe_upgrade install -m %{kmod_name} -v %{version}-%{kmod_rpm_release}
;;
esac
%preun
# Check whether kvdo or uds is loaded, and if so attempt to remove it. A
# failure here means there is still something using the module, which should be
# cleared up before attempting to remove again.
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
modprobe -r ${module}
fi
done
/usr/sbin/dkms --rpm_safe_upgrade remove -m %{kmod_name} -v %{version}-%{kmod_rpm_release} --all || :
case "$1" in
0)
# Check whether kvdo or uds is loaded, and if so attempt to remove it. A
# failure here means there is still something using the module, which should be
# cleared up before attempting to remove again.
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
modprobe -r ${module}
fi
done
/usr/sbin/dkms --rpm_safe_upgrade remove -m %{kmod_name} -v %{version}-%{kmod_rpm_release} --all || :
;;
1)
for module in kvdo uds; do
if grep -q "^${module}" /proc/modules; then
modprobe -r ${module}
fi
done
;;
esac
%prep
%autosetup -n kvdo-%{kmod_driver_version} -p1
@ -86,6 +109,9 @@ rm -rf $RPM_BUILD_ROOT
%{_usr}/src/%{kmod_name}-%{version}-%{kmod_rpm_release}/*
%changelog
* Fri Oct 27 2023 Ge Wang <wang__ge@126.com> - 6.2.2.24-9
- Fix upgrade error due to previous version has already installed modules
* Sat Mar 26 2022 baizhonggui <baizhonggui@huawei.com> - 6.2.2.24-8
- To fix post error, update kmod_kernel_version to latest version: 4.19.90-2203.4.0.0141.oe1