From Fedora Project Wiki


Allow users to easily download all the files needed to upgrade their distro, and then reboot into the installer without burning media.


  • Name: SethVidal, JeremyKatz, WillWoods

Current status

  • Targeted release: Fedora 9
  • Last updated: April 16, 2008
  • Percentage of completion: 100%

Detailed Description

Provide an application a user can run from their existing fedora system which will depsolve all the pkgs they need to update to the next fedora release, download the pkgs, download the initrd and kernel, download a stage2 image, put them in place in the user's grub.conf and allow them to reboot into them to complete their update using anaconda.

Benefit to Fedora

It means that the boring and tedious part of an anaconda-based upgrade is done while the user is doing other things and while their computer is still useful to them. Then the update can go quickly and without pain while also allowing us to do proper upgrades using anaconda.

We get all the advantages of an anaconda update w/o the user having to wait or download and burn a cd or muck about with grub etc.

Test Plan

  • Basic test: Upgrade from latest stable

1. Install Fedora 8 1. Install preupgrade 1. Run preupgrade GUI ( 1. Confirm that Fedora 9 appears in list of available versions

  • May require a commandline flag to show non-final releases to test with Beta

1. Choose 'Apply' 1. Confirm that packages are downloaded 1. Process should complete with no traceback 1. Reboot system and choose 'upgrade fedora' from boot menu 1. System should start installer - configure network, keyboard, etc.

  • Network is still required for installation!

1. Choose 'upgrade' 1. Check anaconda log to confirm that packages are being pulled from on-disk cache 1. Reboot into installed system

  • Upgrade from old stable

1. Install Fedora 7 1. Install preupgrade 1. Continue as above

  • Upgrade from updated stable release

1. Install Fedora 8 1. Install all available updates and reboot 1. Install preupgrade 1. Continue as above

  • Resume interrupted run

1. Start basic test 1. After downloading half of the packages, quit preupgrade 1. Restart basic test 1. Confirm that packages in cache are not downloaded again

User Experience

  • !JoAnne wants to upgrade her machine from Fedora 8 to Fedora 9. She runs the Fedora Online Upgrade Tool, which analyzes her system and begins downloading all the files and packages necessary for the upgrade. She can still use her system while it downloads all the packages. When it finishes, it offers to reboot the system to begin the upgrade.


  • Anaconda changes - Completed in F8
  • .treeinfo file contains data about the location of the stage2 images
  • anaconda will look for packages in /var/cache/yum/anaconda-upgrade/packages during upgrades
  • preupgrade source:
  • bzr clone bzr:// preupgrade
  • Need a location to store the files which point to 'the next version' somewhere out on the web.
  • JesseKeating suggested $MIRRORURL/pub/linux/fedora/releases/releases.list
  • rel-eng has agreed to take care of updating the file when new releases go live.
  • Need 'stage2=XXX' support in anaconda - Landed in rawhide March 5, final bugs believed fixed
  • Needs to be packaged / reviewed / built in koji - Package review complete, packages built in koji

Contingency Plan

  • None needed. If the tool doesn't exist, we lose nothing.


  • none

Release Notes



mizmo mockups

  • Here is more information in the GNOME HIG about the progress widgets used in the mocks: [1]
  • Here is the GNOME HIG section on assistants: [2]
  • Another idea - let folks minimize this to the tray...

File:Features PreUpgrade mizmo-mocks.1.svg Download SVG Source]

File:Features PreUpgrade mizmo-mocks.1.png

Actual screenshots

This is a run of the preupgrade gtk GUI (bzr rev. 66) upgrading from Fedora 8 to Rawhide.

File:Features PreUpgrade 1-welcome.png File:Features PreUpgrade 2-version.png File:Features PreUpgrade 3-downloading.png File:Features PreUpgrade 4-getting-images.png File:Features PreUpgrade 5-complete.png


See also the interview here:

Current preupgrade version is 0.9.3-3, which is available in the F7 and F8 repos. Please see bug 444497 if you have /boot on RAID1, or bug 446826 if you have /boot on your root partition.