Restarting desktop session services on RPM upgrade?

Colin Walters walters at redhat.com
Fri Jun 15 17:07:30 UTC 2007


On Fri, 2007-06-15 at 12:12 -0400, John Dennis wrote:

> * There must be some mechanism callable in %post to signal the desktop
> session service to restart.

It sounds like the Fedora architecture is moving towards everything
calling yum-updatesd to do work.  In that case, it should be fairly
trivial to have yum-updatesd send a D-BUS signal on the system bus when
the entire package set installation is complete.

This would have the advantage that it avoids problems with
interdependent packages being restarted out of sync[1], and you don't
have to mess with horror that is RPM spec files[2] and %post for every
package.

Doing it this way, you then need a nice way to figure out which
applications need to be restarted.  One possibility is to standardize
watching on the mtime of the .desktop file the package installs - though
this might interact badly with menu editing, not sure.  An alternative
would be that the post-installation system sends out signals with the
Exec= line of every .desktop file it changed, and then apps have to be
modified to catch that signal and restart.  Too bad .desktop files don't
have a GUID in them =/

Finally, anyone tackling this problem should also think about the issue
right now with key library packages like gtk+ being updated for security
issues.  Say there is a flaw in a pixbuf loader - this potentially
affects all applications and thus requires a logout/login.  Have some
way for the system to handle that (this could just be a different signal
that something like puplet catches).

[1] An example is the mugshot client and loudmouth libraries being
upgraded at the same time - it is key that the client gets restarted
using the new loudmouth library.
[2] (unprintable)





More information about the Fedora-maintainers mailing list