[Drbd-dev] fix %preun script in drbd-km.spec from 8.3 package
Alessandro Bono
alessandro.bono at gmail.com
Mon Oct 29 21:52:16 CET 2012
On 10/29/2012 11:22 AM, Lars Ellenberg wrote:
> On Fri, Oct 26, 2012 at 01:03:01PM +0000, Alessandro Bono wrote:
>> Hi
>>
>> %preun script in drbd-km.spec try to unload drbd.ko if present without check kernel version running
>> without this patch it's not possible to remove drbd-km package of old kernel
> ... unless you first unload the current DRBD module as well,
> or use rpm -e --noscript.
>
> Which in fact is intentional, to prevent people from "accidentally"
> uninstall a module package while the provided module is still in use
> (it may have been symlinked in place into some other kernel version
> by some weak-module magic, or explicitly).
>
> But yes, it may be annoying at times.
>
> So maybe
> filename=$(modinfo -F filename drbd)
> filename=$(readlink "$filename")
> rpm -qf $filename
> and check if that is in fact the current package?
ok I cooked this patch
tested removing drbd for old and in use kernel on centos 6
please check readlink option, -e seems to me correct one but not sure
--- drbd-8.3.14/drbd-km.spec 2012-10-29 17:39:48.786446160 +0100
+++ drbd-8.3.14.my/drbd-km.spec 2012-10-29 21:50:20.470461556 +0100
@@ -80,10 +80,16 @@
rm -rf %{buildroot}
%preun %{krelver}
+filename=$(modinfo -F filename drbd)
+filename=$(readlink -e "$filename")
+drbdrpm=$(rpm -qf "$filename")
+arch=$(uname -i)
+if [ $drbdrpm = %{name}-%{krelver}-%{version}-%{release}.$arch ]; then
lsmod | grep drbd > /dev/null 2>&1
if [ $? -eq 0 ]; then
rmmod drbd
fi
+fi
%post %{krelver}
# hack for distribution kernel packages,
>> --- drbd-8.3.13/drbd-km.spec 2012-10-26 13:43:43.163366400 +0200
>> +++ drbd-8.3.13.my/drbd-km.spec 2012-10-26 13:44:33.368384889 +0200
>> @@ -80,10 +80,12 @@
>> rm -rf %{buildroot}
>>
>> %preun %{krelver}
>> +if [ 'uname -r' = %{kernelversion} ]; then
>> lsmod | grep drbd > /dev/null 2>&1
>> if [ $? -eq 0 ]; then
>> rmmod drbd
>> fi
>> +fi
>>
>> %post %{krelver}
>> # hack for distribution kernel packages,
--
Cordiali Saluti
Alessandro Bono
More information about the drbd-dev
mailing list