(ordered by priority, roughly)
- Safety checks
-
-
Check to make sure packages in
package.list
all exist -
If /etc/yum/vars/releasever exists, complain to user (#908017)
-
- Migration
-
-
Add a redhat-before-upgrade scriptlet hook
-
Not technically a dracut hook, since it’ll be run by redhat-upgrade-tool
-
Example uses:
-
Bug #881624: Migrate
KEYTABLE=...
toKEYMAP=...
-
Bug #881670: Add x-systemd.device-timeout=0 for mounts that need it
-
-
-
- Disk space handling
-
-
Pad RPM diskspace check to require more disk
-
Add
--packagedir
and--cachedir
flags
-
- Crash handling
-
-
Log state to a file
-
Display error message, wait for keypress, then reboot:
-
"The upgrade failed. Your system has not been harmed. Press <Enter> to restart your system."
-
Allow reboot-on-failure (e.g. for remote systems)
-
-
- Downloading
-
-
Do async/multithreaded downloads
-
-
Need to fix the console output, though…
-
-
-
Use yum’s console output for downloads (see bug #981819)
-
Or at least show download speed / ETA
-
-
- Logging
-
-
Log the disk layout (lvs, pvs, blkid, fstab, mounts) in debug log
-
- Commandline behavior
-
-
Write sys.argv into config file
-
use
redhat-upgrade-tool --continue
to repeat last run -
use
redhat-upgrade-tool --abort
to delete stored args and remove bootloader config
-
-
Don’t mess with bootloader unless specifically requested
-
At end of upgrade: “Run redhat-upgrade-tool --reboot to begin upgrade”
-
and/or
redhat-upgrade-tool --start
-
-
- distro-sync mode
-
-
Add
--distro-sync
flag (or similar) -
Download packages from new repos, even if they’re older
-
How does yum implement this?
-
-
Need to pass along a flag (in upgrade.conf?) to the upgrade tool
-
- update-groups mode
-
-
Add
--update-groups
flag (or similar) -
Reinstall each group that yum lists as installed (see yum.igroups)
-
Extra argument for mandatory vs. default
-
-
- ISO/Device/"Offline" upgrades
-
-
Handle ISO-on-USB-stick case
-
Handle mount chains deeper than ISO-on-USB
-
- Upstreaming
-
-
systemd: get system-upgrade.target, system-upgrade-generator upstream
-
- GUI
-
-
Wire up the UI bits
-
Wire up progress callbacks
-
yum in a subprocess
-
use
multiprocessing.Queue
to send back progress data?
-
-
-
- Legacy systems
-
-
Backport to Python 2.6
-
argparse not in standard lib
-
-
Backport to upstart
-
- Updates
-
-
Scheme for associating updates images with upgrade.img vintages
-
Figure out updates.img format
-
Look for updates.img
-
Apply it before switch-root
-
- Docs
-
-
man pages for services
-
man pages for targets
-
document boot args
-
- SELinux
-
-
Find a way to run upgrade with SELinux enforcing
-
Start with new policy while in initramfs
-
Enforce the old policy after switching to old system
-
Use the new policy for writing files during upgrade
-
-