Skip to content

Latest commit

 

History

History
85 lines (69 loc) · 2.85 KB

TODO.asciidoc

File metadata and controls

85 lines (69 loc) · 2.85 KB

TODO

(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=... to KEYMAP=...

      • 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

  • 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
Updates
  • Scheme for associating updates images with upgrade.img vintages

GUI
  • Wire up the UI bits

  • Wire up progress callbacks

    • yum in a subprocess

      • use multiprocessing.Queue to send back progress data?

Docs
  • man pages for services

  • man pages for targets

  • document boot args

SELinux
  • Find a way to run upgrade with SELinux enforcing

    1. Start with new policy while in initramfs

    2. Enforce the old policy after switching to old system

    3. Use the new policy for writing files during upgrade