summaryrefslogtreecommitdiffstats
path: root/mdkapplet-upgrade-helper
diff options
context:
space:
mode:
authorJoão Victor Duarte Martins <jvictor@mandriva.com>2010-05-27 23:23:57 +0000
committerJoão Victor Duarte Martins <jvictor@mandriva.com>2010-05-27 23:23:57 +0000
commit77c349c7007df0df889c8f705f47a38520469713 (patch)
treee05af7e675b725676ac4b0a75956e0cdf880f633 /mdkapplet-upgrade-helper
parentd63fffd3016890fc0a9efae340df6d0c5ee20ba1 (diff)
downloadmgaonline-77c349c7007df0df889c8f705f47a38520469713.tar
mgaonline-77c349c7007df0df889c8f705f47a38520469713.tar.gz
mgaonline-77c349c7007df0df889c8f705f47a38520469713.tar.bz2
mgaonline-77c349c7007df0df889c8f705f47a38520469713.tar.xz
mgaonline-77c349c7007df0df889c8f705f47a38520469713.zip
* mdkapplet-upgrade-helper
(try_to_add_powerpack_media): Adapted design to use new open_ask_powerpack_dialog. (try_to_add_powerpack_media): Only offers powerpack for flash|free|one. (upgrade): Offers powerpack before removing media. (powerpack_auth_callback): Returns now an array ref.
Diffstat (limited to 'mdkapplet-upgrade-helper')
-rwxr-xr-xmdkapplet-upgrade-helper121
1 files changed, 74 insertions, 47 deletions
diff --git a/mdkapplet-upgrade-helper b/mdkapplet-upgrade-helper
index 1e975e30..dc767f8f 100755
--- a/mdkapplet-upgrade-helper
+++ b/mdkapplet-upgrade-helper
@@ -39,6 +39,11 @@ use Rpmdrake::open_db;
use lang;
use mdkapplet_gui qw(run_ask_credentials_dialog);
+######################################################################
+# REMOVE THIS
+use lib qw(.);
+######################################################################
+
ugtk2::add_icon_path("/usr/share/mdkonline/pixmaps/");
my ($log_file);
@@ -156,7 +161,7 @@ sub upgrade_distro_congratulations() {
any::reboot() if $answer && !$::testing;
}
-# Returns: undef if failed to authenticate, ($email, $passwd) otherwise
+# Returns: undef if failed to authenticate, [$email, $passwd] otherwise
sub powerpack_auth_callback {
my ($email, $passwd) = @_;
my $profile = mdkonline::get_my_mdv_profile($email, $passwd);
@@ -178,11 +183,11 @@ sub powerpack_auth_callback {
#
my $level = $profile->{data}{club}{level};
if ($level == 2 or $level == 6) {
- return ($email, $passwd);
+ return [$email, $passwd];
}
elsif ($profile->{data}{families}
=~ /powerpack-$new_distro_version/i) {
- return ($email, $passwd);
+ return [$email, $passwd];
}
else {
mdkapplet_gui::run_no_rights_dialog(
@@ -197,56 +202,50 @@ sub powerpack_auth_callback {
sub try_to_add_powerpack_media {
my $is_powerpack = mdkonline::is_restricted_media_supported();
- my @auth_info;
+ my $auth_info;
+
+ # Validating current product for offering powerpack medias...
if ($is_powerpack) {
# Verifying rights of current powerpack users...
my $title = N('Powerpack Media Configuration');
- my $description = N('Please fill your My.Mandriva account info ' .
- 'to add additional package media for ' .
- 'Powerpack.');
+ my $description = N('Please fill your My.Mandriva login and ' .
+ 'password to add additional package media '.
+ 'for Powerpack.');
- # If no rights @auth_info == undef...
- @auth_info = run_ask_credentials_dialog(
+ # If no rights @auth_info == ()...
+ $auth_info = run_ask_credentials_dialog(
$title,
$description,
- \&powerpack_auth_callback
- );
+ \&powerpack_auth_callback,
+ );
+ }
+ elsif ($product_id->{product} !~ /flash|free|one/i) {
+ return; # don't offer pwp for any other product
}
- while (@auth_info or mdkapplet_gui::open_ask_powerpack_dialog()) {
- if (@auth_info) {
- # Adding powerpack restricted media...
- my ($email, $passwd) = @auth_info;
- unless (mdkonline::add_medium_powerpack(
- $email,
- $passwd,
- $new_distro_version,
- urpm::cfg::get_arch()
- )) {
- ugtk2::ask_warn(N('Error'),
- N('Installation failed'),
- N('Failed to add powerpack restricted ' .
- 'medium'),
- );
- next;
- }
- # Media was added, update it and move along...
- update_media();
- last;
- }
- else {
- # Get the new authentication info from user...
- my $title = N('Powerpack Media Configuration');
- my $description = N('Please fill your new My.Mandriva ' .
- 'account info.');
- @auth_info = run_ask_credentials_dialog(
- $title,
- $description,
- \&powerpack_auth_callback
- );
- }
+ my $choice; # will be 'powerpack', 'free' or undef
+ while ($auth_info
+ or ($choice = mdkapplet_gui::open_ask_powerpack_dialog(
+ $product_id->{product},
+ $new_distro_version)) eq 'powerpack') {
+ $auth_info and return $auth_info;
+
+ # Get the new authentication info from user...
+ my $title = N('Powerpack Media Configuration');
+ my $description = N('Please fill your account ID to add ' .
+ 'Powerpack %s version packages media once ' .
+ 'you have subscribed online',
+ $new_distro_version);
+ $auth_info = run_ask_credentials_dialog(
+ $title,
+ $description,
+ \&powerpack_auth_callback,
+ top_extra => $mdkapplet_gui::powerpack_ad,
+ );
}
+ defined $choice or exit 0; # means user has canceled upgrade
+ return;
}
sub upgrade() {
@@ -282,6 +281,11 @@ packages as well?)."))
touch(get_stale_upgrade_filename());
+ log::explanations(
+ "checking if restricted (powerpack) media is to be addded");
+ # add_pwp_auth != undef, means user asked for pwp with good credentials
+ my $add_pwp_auth = try_to_add_powerpack_media();
+
log::explanations("removing all existing urpmi media for upgrade");
run_program::run('urpmi.removemedia', if_($root, '--urpmi-root', $root), '-a');
@@ -292,10 +296,6 @@ packages as well?)."))
urpm::media::write_config($urpm);
}
- log::explanations(
- "checking if restricted (powerpack) media is to be addded");
- try_to_add_powerpack_media();
-
log::explanations("adding urpmi media for new distribution");
$ENV{URPMI_ADDMEDIA_REASON} = join(',', 'reason=upgrade', 'upgrade_by=mdkapplet', "upgrade_from=$product_id->{version}");
@@ -316,6 +316,33 @@ packages as well?)."))
exit(2);
};
+ if ($add_pwp_auth) {
+ log::explanations("adding restricted (powerpack) media");
+
+ my ($email, $passwd) = @$add_pwp_auth;
+ unless (mdkonline::add_medium_powerpack(
+ $email,
+ $passwd,
+ $new_distro_version,
+ urpm::cfg::get_arch()
+ )) {
+ # FIXME Don't replicate code like this!
+ log::explanations("adding media for new distribution failed");
+ rm_rf(get_stale_upgrade_filename());
+ log::explanations("restoringing urpmi configuration from $file");
+ cp_af($file, "$root/etc/urpmi/urpmi.cfg");
+ update_media();
+ ugtk2::ask_warn(N('Error'),
+ N('Installation failed'),
+ N('Failed to add powerpack restricted ' .
+ 'medium'),
+ );
+ exit(2);
+ }
+ # Media was added, update it and move along...
+ update_media();
+ }
+
log::explanations("upgrading urpmi and rpmdrake");
log::explanations("upgrading the whole system");