Toshaan Bharvani 8ce04dae17 initial push 11 months ago
85system-upgrade-powerel initial push 11 months ago
90system-upgrade initial push 11 months ago
plymouth initial push 11 months ago
COPYING initial push 11 months ago
Makefile initial push 11 months ago
README.asciidoc initial push 11 months ago
TODO.asciidoc initial push 11 months ago
make-powerel-upgrade-repo initial push 11 months ago
system-upgrade-powerel.c initial push 11 months ago

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: