All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.