Go to file
Toshaan Bharvani 8ce04dae17 initial push
Signed-off-by: Toshaan Bharvani <toshaan@vantosh.com>
2018-02-21 21:33:51 +01:00
85system-upgrade-powerel initial push 2018-02-21 21:33:51 +01:00
90system-upgrade initial push 2018-02-21 21:33:51 +01:00
plymouth initial push 2018-02-21 21:33:51 +01:00
COPYING initial push 2018-02-21 21:33:51 +01:00
Makefile initial push 2018-02-21 21:33:51 +01:00
README.asciidoc initial push 2018-02-21 21:33:51 +01:00
TODO.asciidoc initial push 2018-02-21 21:33:51 +01:00
make-powerel-upgrade-repo initial push 2018-02-21 21:33:51 +01:00
system-upgrade-powerel.c initial push 2018-02-21 21:33:51 +01:00

README.asciidoc

powerel-upgrade-dracut - initramfs environment for PEL Upgrades
================================================================
Toshaan Bharvani <toshaan@vantosh.com>

This is 'powerel-upgrade-dracut', the initramfs environment for PEL Upgrades.

This tool is forked from/based upon 'redhat-upgrade-dracut' with original
author Will Woods <wwoods@redhat.com>

Components
----------

It has the following parts:

`90system-upgrade/`
~~~~~~~~~~~~~~~~~~~
This module provides a (distro-neutral) framework for running upgrades.

* Adds three dracut hooks: `upgrade-pre`, `upgrade`, and `upgrade-post`.
* Adds `upgrade.target`, which runs the above hooks (in order)
* Automatically includes any other modules named `system-upgrade-*`
* 'BONUS:' adds system-upgrade-shell.service

`85system-upgrade-powerel/`
~~~~~~~~~~~~~~~~~~~~~~~~~~
This is the PEL 'system-upgrade' implementation.

* Includes upgrade tool, SELinux policy, plymouth, etc.
* Copies initramfs to `$NEWROOT/system-upgrade-root`
* Runs 'system-upgrade-powerel' binary in the `upgrade` hook
* Save log & journal to `/var/log/upgrade.{log,journal}` before reboot

`system-upgrade-powerel.c`
~~~~~~~~~~~~~~~~~~~~~~~~~
The actual upgrade tool.

* Upgrades system using packages from `$UPGRADELINK`
* Sends progress updates to `plymouthd`
* Sends status output to console + journal

The actual upgrade setup is handled in the main 'powerel-upgrade-tool' package.
Based upon the 'redhat-upgrade-tool', which can be found here:
https://github.com/dashea/powerel-upgrade-tool

Building
--------

You'll want to build the initramfs on the _newer_ distro version.

. Install build requirements
    * 'rpm-devel' >= 4.10.0
    * 'plymouth-devel' >= 0.8.6
    * 'systemd' >= 195
    * 'glib2-devel'
. Install dracut modules
    * `make install`, or
        .. `make archive`
        .. `rpmbuild -ta redhat-upgrade-dracut*.tar.xz`
        .. +rpm -ivh '[freshly-built RPMs]'+
. Build upgrade initramfs
    * `OLDTHEME=$(plymouth-set-default-theme)`
    * `plymouth-set-default-theme powerel-upgrade-tool`
    * `dracut --add system-upgrade upgrade.img`
    * `plymouth-set-default-theme $OLDTHEME`

// vim: set syn=asciidoc tw=78: