diff options
author | Colin Guthrie <colin@mageia.org> | 2013-04-28 19:24:46 +0000 |
---|---|---|
committer | Colin Guthrie <colin@mageia.org> | 2013-04-28 19:24:46 +0000 |
commit | 227a5089a0537e17628a34329488539f3d476318 (patch) | |
tree | 5394756b2f5e235ebeede1996d80358451904acc /mgaapplet | |
parent | cb2c9b0a1d21a754e0f39d82ebb82d6bbecd6d47 (diff) | |
download | mgaonline-227a5089a0537e17628a34329488539f3d476318.tar mgaonline-227a5089a0537e17628a34329488539f3d476318.tar.gz mgaonline-227a5089a0537e17628a34329488539f3d476318.tar.bz2 mgaonline-227a5089a0537e17628a34329488539f3d476318.tar.xz mgaonline-227a5089a0537e17628a34329488539f3d476318.zip |
Add support for upgrades that need some form of preparation before continuing.
The basic principle of this is to do the following:
1. Check the releases webservice API to see if the distro version 'needs_preparation'.
2. If it does, check for a file /var/lib/mageia-prepare-upgrade/state.
If it says 'ready' then we are ready and the user is not questioned further.
3. If it does not exist or says anything else, the user is prompted to install the
package 'mageia-prepare-upgrade'.
4. After package installation, check the state file again as this may be
all that is required. If the state file does not yet say 'ready', then
display the text from the /usr/share/doc/mageia-prepare-upgrade/README.prepare
file (todo: add i18n)
5. Assuming that further action is required by the user (e.g. rebooting to
convert the filesystem), then the upgrade helper will exit.
6. After the user has taken the action required to do the preparation,
the state file should contain 'ready'. The next time the distro upgrade
dialog shows, the preparation checks will pass and the user can continue.
TODO:
Handle i18n in the README.prepare file.
v1: First Revision
v2: Check immediately if an upgrade state file exists (don't wait 5 mins)
Ensure config file is parsed (ensures the testing variable is read)
Show user-visible messages when bailing out due to unexpected errors
Diffstat (limited to 'mgaapplet')
-rwxr-xr-x | mgaapplet | 16 |
1 files changed, 8 insertions, 8 deletions
@@ -53,10 +53,16 @@ if (!find { $_ eq '--auto-update' } @ARGV) { my $online_site = "http://www.mageia.org/"; my ($menu, $timeout, $network_timeout, $state_global, $sub_state); +my ($download_dir); +{ + my $temp_urpm = Rpmdrake::open_db::fast_open_urpmi_db(); + $root = $temp_urpm->{root}; + $download_dir = $temp_urpm->{cachedir}; +} read_sys_config(); $config{UPDATE_FREQUENCY} ||= 3*60*60; # default to 3hours -if ($::testing) { +if ($::testing || -f "$root/var/lib/mageia-prepare-upgrade/state") { $config{FIRST_CHECK_DELAY} = 1 * 1000; # 1 second } else { $config{FIRST_CHECK_DELAY} ||= 5 * 60 * 1000; # default to 5 minutes @@ -226,13 +232,7 @@ foreach my $opt (@ARGV) { } } -my ($download_dir, $download_all); -{ - my $temp_urpm = Rpmdrake::open_db::fast_open_urpmi_db(); - $root = $temp_urpm->{root}; - $download_dir = $temp_urpm->{cachedir}; -} - +my ($download_all); my ($new_distro, $no_more_supported); my ($current_apimdv_distro); |