[packman] realcrypt-7.0a-0.pm.2.1.i586 RPM scriptlet/postinstall bugs
Matthias Andree
matthias.andree at gmx.de
Tue Nov 30 20:17:21 CET 2010
Am 30.11.2010 18:17, schrieb AxelKöllhofer:
> Am Tuesday 30 November 2010 17:04:07 schrieb Matthias Andree:
>> [resending after having subscribed to list]
>>
>> Greetings,
>>
>> the realcrypt RPM scriptlets don't take upgrading into account, and will
>> deinstall the sudoers/groups after an upgrade with zypper, as though the
>> package had been deinstalled (which it hasn't).
>>
>> Reason is that the scriptlets do not check $1 to figure how many versions
>> of the package are installed.
>>
>> Instructions: <http://fedoraproject.org/wiki/Packaging/ScriptletSnippets>
>> (also apply to openSUSE)
>>
>>
>> IOW, the whole %postun scriptlet should be (note single = here, double ==
>> is an unnecessary non-portable bashism)
>>
>> %postun
>> if [ "$1" = 0 ] ; then
>> # original scriptlet follows
>> echo 'Removing group realcrypt...'
>> /usr/sbin/groupdel realcrypt &>/dev/null || :
>> echo 'Removing entry in /etc/sudoers...'
>> sed -i '/%realcrypt/d' /etc/sudoers
>> # end of original scriptlet
>> fi
>>
>>
>> The postinstall script seems safe at first superficial glance.
>>
>> (I can correspond in German and English, so pick whatever is conventional
>> for the list.)
>
> Thanks for the bug report, the issue is "about to be fixed".
>
>
> The "about to be" means, that AFAIK the %postun will be run from the package
> previously installed, so one will need two updates until the change takes
> effect.
>
> Right now, I checked in a version without any %postun, which should be
> available soon, just to be sure there is no "bad" postun in the installed
> version.
>
> I will check in another package with the fixed %postun in a few days, hoping
> that most users will have received this "intermediate" update by then.
Thanks, that was fast!
Alternatively, you can generally
- post an at (see man at) job to execute after 2 minutes from the new
postinstall script to re-run itself (you'd probably need to package it as
ordinary file, rather than as scriptlet -- at least I don't know how to formally
execute %post scripts explicitly), or
- refuse the upgrade in a %pre[in] script telling the user to deinstall and
reinstall (although I haven't checked what %files then commands with respect to
%config files, if any).
HTH
--
Matthias Andree
More information about the Packman
mailing list