Wrapper package for MailScanner
Scott Silva
ssilva at sgvwater.com
Mon Jul 28 16:35:30 IST 2008
on 7-26-2008 11:53 AM Julian Field spake the following:
> My only comment on this would be this: just because
> MailScanner.conf.rpmnew exists, how can you guarantee it was created by
> *this* upgrade? I would check the version number inside it as well, or
> you could rip out some of the user's configuration settings if the
> *.rpmnew files exist from previous upgrades. I agree it's unlikely, but
> it is possible.
>
> Steve Freegard wrote:
>> Hi Hugo,
>>
>> Hugo van der Kooij wrote:
>>> At present the best I can think of is playing copycat with the
>>> instructions Jules provided and send it of in a message to the local
>>> admin.
>>>
>>> The rpm packaging guidelines are quite explicit where it comes to
>>> interactive scripts (DON'T!) and Jules did the right thing in not
>>> executing the upgrade script in the mailscanner package as part of the
>>> post install scripts.
>>
>> Interactive != automated.
>>
>> Anything that requires input from the user is not allowed as
>> rpm/yum/anaconda does not make provision for this.
>>
>> Output from scriptlets is fine - providing you don't presume the
>> output will be read and understood by a human.
>>
>> Enabling and starting services is also a no-no. Conditional restarts
>> are acceptable on upgrades.
>>
>>> Technically the user should see them if the "yum upgrade" command is
>>> executed but there is quite a bit of information and the user may not
>>> remember all steps that well.
>>>
>>> There might even be users that might run yum unattended and those would
>>> never see the instructions. I strongly believe that one should never run
>>> yum unattended but some people insist on doing the wrong thing.
>>>
>>> Any alternative suggestions?
>>
>> Why bother telling the user to run a load of commands that they might
>> forget or never see when it's fairly straightforward to do all of it
>> for them using a %postun scriptlet that runs for upgrades only; check
>> for the existance on MailScanner.conf.rpmnew and languages.conf.rpmnew
>> and run upgrade_MailScanner_conf and upgrade_languages_conf accordingly.
>>
>> If yum is run unattended (bad idea as you note) - root get's an email
>> with the yum output anyway which will contain a log of the output
>> otherwise they'll see output from the scriptlet to the screen when yum
>> runs the update.
>>
>> Here's the relevant scriptlet - it will probably need some tweaking as
>> I haven't tested upgrades yet.
>>
>> %postun
>> if [ "$1" -ge "1" ]; then
>> # We are being upgraded or replaced, not deleted
>> # Check for a new MailScanner.conf file
>> if [ -f "/etc/MailScanner/MailScanner.conf.rpmnew" ]; then
>> echo "Upgrading MailScanner.conf..."
>> /usr/sbin/upgrade_MailScanner_conf /etc/MailScanner/MailScanner.conf
>> /etc/MailScanner/MailScanner.conf.rpmnew >
>> /etc/MailScanner/MailScanner.conf.new
>> # TODO: make sure MailScanner.conf.new is not empty
>> mv /etc/MailScanner/MailScanner.conf
>> /etc/MailScanner/MailScanner.conf.old
>> mv /etc/Mailscanner/MailScanner.conf.new
>> /etc/MailScanner/MailScanner.conf
>> rm -f /etc/MailScanner/MailScanner.conf.rpmnew
>> fi
>> # Check for a new languages.conf file
>> # TODO: Check all of the reports sub-directories for .rpmnew
>> if [ -f "/etc/MailScanner/reports/en/languages.conf.rpmnew" ]; then
>> echo "Upgrading languages.conf..."
>> /usr/sbin/upgrade_langages_conf
>> /etc/MailScanner/reports/en/languages.conf
>> /etc/MailScanner/reports/en/languages.conf.rpmnew >
>> /etc/MailScanner/reports/en/languages.conf.new
>> # TODO: make sure languages.conf.new is not empty
>> mv /etc/MailScanner/reports/en/languages.conf
>> /etc/MailScanner/reports/en/languages.conf.old
>> mv /etc/MailScanner/reports/en/languages.conf.new
>> /etc/MailScanner/reports/en/languages.conf
>> rm -f /etc/MailScanner/reports/en/languages.conf.rpmnew
>> fi
>> # Done - restart MailScanner
>> # TODO: this should be a condrestart as per RPM package guidelines.
>> service MailScanner restart
>> fi
>> exit 0
>>
>> As you can probably guess from this - we're doing similar things; just
>> in different ways. They'll be an announcement from FSL about this
>> once everything is ready and tested.
>>
>> Cheers,
>> Steve.
>
> Jules
>
You would probably want some sort of flag file that a user could touch to stop
the automatic upgrade of those files. It doesn't bother me, but I remember
from list traffic that there are many people that have custom comments or
other content that they wish to preserve.
Maybe a check like;
if [ -f "/etc/MailScanner/no-upgrade" ]; then
skip upgrade
--
MailScanner is like deodorant...
You hope everybody uses it, and
you notice quickly if they don't!!!!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 258 bytes
Desc: OpenPGP digital signature
Url : http://lists.mailscanner.info/pipermail/mailscanner/attachments/20080728/c476fa98/signature.bin
More information about the MailScanner
mailing list