From Fedora Project Wiki
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Implementation tasklist for better update experience

See requirements and discussion at Desktop/Whiteboards/UpdateExperience.

whiteboard screenshot

.

Fedora Process

  • Enhancement (anything non-security) updates are scheduled for once a month (at least for core, extras might be more flexible).

Client UI

Running app (firefox) update (security and enhancement)

  • Separate download process from install
  • Add functionality to yum to detect what packages are currently running (doable at high confidence for c/c++, e.g. scripted plugins are a hard case, ignore for now)
  • PackageKit daemon wraps said functionality
  • For running apps (apps, i.e. open X windows), pk-update-icon shows a dialog indicating they need to be closed (also, window manager adds (Update Available) or something to title)
  • On clicking "Apply", pk-update-icon sends a close request to all windows corresponding to that process it finds (in sequence?) (TODO: standard application dbus interface?)
  • When application is closed, packagekit starts updating that app (+ dependencies)
  • Application is restarted (pick first .desktop file in package? eww. require backporting GNOME Shell application tracker as dbus service?)
  • Other notes: Should block application relaunch during updates too; show the user the updater dialog

Non-running application security updates

  • Similar dialog as above, but without close button?

System updates (security and enhancement)

  • All desktops are logged out, system switches to gdm (or plymouth?)
  • gdm shows updater screen
  • perform a "dependency reboot"; e.g. if kernel/init/dbus, do a full reboot. Otherwise, for system daemons do "service foo restart".

System security updates

  • Similar to running app - if it's on the system it's implicitly running, basically. It's either a crucial library like glibc, a key system daemon like NetworkManager, or a general program like curl that we can't know reliably when it might run.

System non-security updates

  • By default, apply automatically when safe (shutdown/reboot, configurable timeout (one week?)). Note availablity of updates at context switch time (screensaver, gdm). If configured to prompt, do so of course.