Package: update-notifier
Version: 0.42.12-2+b1
Priority: wishlist

Update-notifier suggests that the system needs to be restarted but it
depends on packages telling so by using the
/usr/share/update-notifier/notify-reboot-required script on postinst.

Unless update-notifier provides good enough information for both users and
maintainers on when can they expect that notification to show up you will get
bugs like #393851 (is probably something specific to the user's environment)
or #397269 (which is a bug in the package sending the notification and
not on update-notifier itself)

It would be wise to document (attached is a first attempt at doing so) what
users can expect from this features and how maintainers can implement this.

Please provide this README file in the package. And, when a manpage is
written, point to it to make clear what the expectations on notifications are
and how they should be handled.

Thanks

Javier

update-notifier provides a notification icon in the notification area and warns
the user about updates being available, and allowing them to run update-manager.

One of its features is to tell the user that the system needs to be
rebooted after an upgrade. This feature is useful for critical packages
which need this to be done to implement new features (which cannot
be implemented in place) or to replace core system functionality. 
This includes the kernel, the libc and some other libraries and packages.

This feature is based on the /usr/share/update-notifier/notify-reboot-required
script. This script needs to be executed by the packages on their postinst
script, once this script is run (it creates the /var/run/reboot-required file)
a notification will appear to the user at his desktop telling them that a
reboot is required, and allowing them to reboot after the package manager is
done "applying changes".

Notice that update-notifier does not try to determine, itself if a system
update is really required. It depends on the packages telling it to notify the
user. 

FAQ
---

1.- After a reboot the system still shows that a "reboot is required"

If you are certain that you rebooted the system (and not just the 
desktop system) then you can manually remove the /var/run/reboot-required file
to remove the notification.


2.- Why isn't /var/run/reboot-required removed on boot?


The /etc/init.d/bootclean initscript removes all files from /var/run
upon system boot up, so you should not be seing this notification after
a reboot.

If this file is not removed on boot it might be because:

- /var/run/ is special in you system 
- /etc/init.d/bootclean is not being executed in the startup sequence
  (maybe the /etc/rcS.d/S36mountall-bootclean.sh symlink is missing)

In order to see if you system should remove the file try going into
single-user mode ('init 1') and then run /etc/init.d/bootclean start?

3.- Why don't I get a notification if XX is installed/upgraded?
    The upgrade is not effective until a full system reboot!

The maintainer has to introduce a call in the package's postinst to
notifiy update-notifier. File a bug in the Bug Tracking system asking him
to introduce the following code:

-----------------------------------------------------------------------
# trigger an update notification which recommends to reboot
[ -x /usr/share/update-notifier/notify-reboot-required ] && \
        /usr/share/update-notifier/notify-reboot-required || true
-----------------------------------------------------------------------

if the reboot is only needed when upgrading to a given version the maintainer
should add this instead:

-----------------------------------------------------------------------
# a reboot is needed to make XYZ work. Flag  using notify-reboot-required. 
# cannot do this on postinst because of XYZ.
if dpkg --compare-versions "$PREV_VER" lt "SOME_VERSION_HERE" \
 && [ -x /usr/share/update-notifier/notify-reboot-required ]; then
         /usr/share/update-notifier/notify-reboot-required
         fi
fi
-----------------------------------------------------------------------

4.- Will update-notifier tell me I need to reboot when I install a 
    security upgrade of a library?

This functionality is not implemented in update-notifier itself.

Unless the maintainer has implemented 3) above no. In most library upgrade
cases (even security updates) a full system reboot is not needed. You just
need to restart all the daemons using the library to completely apply
the security update. Of course, you could reboot the system to force the
daemons to use the new upgraded library but that is certainly overkill.

If you are a system administrator and want to know what daemon services need to
be restarted after a library upgrade use the 'checkrestart' utility in the
'debian-goodies' package.


5.- I'm a maintainer, how can I use this nice feature?

Implement 3) before some user sends you a bug report asking for this feature.

Attachment: signature.asc
Description: Digital signature

Reply via email to