(ordered by priority, roughly)
- Safety checks
-
-
If /etc/yum/vars/releasever exists, complain to user (#908017)
-
- Docs
-
-
document boot args
-
man pages for services/targets?
-
- Migration
-
-
Add preboot scriptlet hook
-
Not technically a dracut hook, since it’ll be run by fedup
-
Example uses:
-
Bug #881624: Migrate
KEYTABLE=...
toKEYMAP=...
-
Bug #881670: Add x-systemd.device-timeout=0 for mounts that need it
-
-
See also kernel-install and
*.install
-
-
- Disk space handling
-
-
Pad RPM diskspace check to require more disk
-
Add
--packagedir
and--cachedir
flags -
Remove old/unneeded/expired files before downloading newer versions
-
- ISO/Device/"Offline" upgrades
-
-
This is related to disk space handling (lots of mount juggling)
-
Handle ISO-on-USB-stick case
-
Handle mount chains deeper than ISO-on-USB
-
- 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
-
See #8
-
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
fedup --continue
to repeat last run -
use
fedup --abort
to delete stored args and remove bootloader config
-
-
Don’t mess with bootloader unless specifically requested
-
At end of upgrade: “Run fedup --reboot to begin upgrade”
-
and/or
fedup --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
-
-
- Testing
-
-
Unit testing
-
blerg, yum/rpm do not lend themselves well to this
-
-
Functional testing
-
need lots of tools
-
install a VM with a given Fedora version
-
apply updates and/or install fedup
-
generate updates/instrepos with packages with certain properties
-
run fedup and check logs/results
-
-
-
- Upstreaming
-
-
systemd: get system-upgrade.target, system-upgrade-generator upstream
-
- Updates
-
-
Scheme for associating updates images with upgrade.img vintages
-
Read
/etc/system-upgrade-release
from initrd to get version
-
-
- GUI
-
-
Wire up the UI bits
-
Wire up progress callbacks
-
yum in a subprocess
-
use
multiprocessing.Queue
to send back progress data?
-
-
-