* [Drbd-dev] fix %preun script in drbd-km.spec from 8.3 package
@ 2012-10-26 13:03 Alessandro Bono
2012-10-29 10:22 ` Lars Ellenberg
0 siblings, 1 reply; 3+ messages in thread
From: Alessandro Bono @ 2012-10-26 13:03 UTC (permalink / raw)
To: drbd-dev
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
--- 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,
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [Drbd-dev] fix %preun script in drbd-km.spec from 8.3 package
2012-10-26 13:03 [Drbd-dev] fix %preun script in drbd-km.spec from 8.3 package Alessandro Bono
@ 2012-10-29 10:22 ` Lars Ellenberg
2012-10-29 20:52 ` Alessandro Bono
0 siblings, 1 reply; 3+ messages in thread
From: Lars Ellenberg @ 2012-10-29 10:22 UTC (permalink / raw)
To: Alessandro Bono; +Cc: drbd-dev
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?
> --- 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,
--
: Lars Ellenberg
: LINBIT | Your Way to High Availability
: DRBD/HA support and consulting http://www.linbit.com
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [Drbd-dev] fix %preun script in drbd-km.spec from 8.3 package
2012-10-29 10:22 ` Lars Ellenberg
@ 2012-10-29 20:52 ` Alessandro Bono
0 siblings, 0 replies; 3+ messages in thread
From: Alessandro Bono @ 2012-10-29 20:52 UTC (permalink / raw)
To: drbd-dev
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
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-10-29 21:16 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-10-26 13:03 [Drbd-dev] fix %preun script in drbd-km.spec from 8.3 package Alessandro Bono
2012-10-29 10:22 ` Lars Ellenberg
2012-10-29 20:52 ` Alessandro Bono
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.