From e0ada251ac68dc91192c7ec7d10f3a1d7784916a Mon Sep 17 00:00:00 2001 From: Mageia SVN-Git Migration Date: Sat, 14 May 2011 01:22:07 +0100 Subject: Synthesized commit during git-svn import combining previous Mandriva history with Mageia. This commit consitsts of the following subversion commits: ------------------------------------------------------------------------ r1310 | dmorgan | 2011-05-14 01:22:07 +0100 (Sat, 14 May 2011) | 1 line Import cleaned mgaonline ------------------------------------------------------------------------ --- mdkapplet-add-media-helper | 255 --------------------------------------------- 1 file changed, 255 deletions(-) delete mode 100755 mdkapplet-add-media-helper (limited to 'mdkapplet-add-media-helper') diff --git a/mdkapplet-add-media-helper b/mdkapplet-add-media-helper deleted file mode 100755 index 6afbba2b..00000000 --- a/mdkapplet-add-media-helper +++ /dev/null @@ -1,255 +0,0 @@ -#!/usr/bin/perl -########################################################################### -# Copyright (C) 2010 Mandriva -# -# Thierry Vignaud -# João Victor Duarte Martins -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License Version 2 as -# published by the Free Software Foundation. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, -# Boston, MA 02111-1307, USA. -########################################################################### - -BEGIN { unshift @::textdomains, 'mdkonline' } - -use strict; -use lib qw(/usr/lib/libDrakX /usr/lib/libDrakX/drakfirsttime); -use standalone; # for explanations -use common; -use run_program; -use interactive; -use interactive::gtk; -use mygtk2 qw(gtknew); # only gtknew, any other stuff would break ugtk2 -use ugtk2 qw(:all); -use mdkonline qw($product_id); -use mdkapplet_gui; -use urpm::cfg; -use utf8; - -# %product is keyed by product id and it contains the data to add -# restricted media for each product. -my %product = ( - powerpack => { - info_url => 'https://my.mandriva.com/powerpack/', - has_rights => sub { - my $profile = shift @_; - $profile->{data}{'can-access-restricted-repositories'} eq 'YES'; - }, - media_name => 'Restricted', - add_medium => \&mdkonline::add_medium_powerpack - - }, - server => { - info_url => 'http://www2.mandriva.com/linux/server/', - has_rights => sub { - my $profile = shift @_; - $profile->{data}{groups}{'es5-prod'} or - $profile->{data}{groups}{'es5-demo'}; - }, - media_name => 'Update', - add_medium => \&mdkonline::add_medium_enterprise - }, - extended => { - info_url => 'https://my.mandriva.com/', - has_rights => sub { - my ($profile, $version) = @_; - return ! ref $profile->{data}{groups}{'ext-maint-' . $version}; - }, - media_name => 'Extended Maintenance', - add_medium => \&mdkonline::add_medium_extended, - success_callback => sub { - mdkonline::read_sys_config(); - $mdkonline::config{EXTENDED_SUPPORT} = bool2yesno(1); - mdkonline::setVarsInSh($mdkonline::config_file, - \%mdkonline::config); - } - } - ); - -# Distribution upgrade version and product -my $up_version; -my $up_product; - -# Dialogs title and banner text -my $title = N("Adding an additional package medium"); - -my $current_apimdv_distro; - -# ###################################################################### -# Main Program - -{ - # Parsing command line arguments. - my $usage = - "Usage: $0 [OPTION]... VERSION\n" . - "Add package medias for VERSION (of current product by default).\n" . - "\n" . - " --rpm-root=PATH Use PATH as root for rpm\n" . - " --urpmi-root=PATH Use PATH as root for rpm and urpmi\n" . - " --product=NAME Upgrade to VERSION of product named NAME\n"; - - - foreach (@ARGV) { - if (/^--(rpm-root|urpmi-root)=(.+)/) { - $::rpmdrake_options{$1}[0] = $2; - } - elsif (/^--product=(.+)/) { - $up_product = lc $1; - } - elsif (/^([^-]{2}.+)/) { - $up_version = $1; - } - else { - die $usage; - } - } - $up_version or die $usage; - - # FIXME Couldn't that be automatic called when mdkonline.pm is used? - $product_id or mdkonline::get_product_id(); - - # Product id data should be used in lowercase. - $up_product ||= lc $product_id->{product}; - - # Sanitizes product command line argument. - unless (exists $product{$up_product}) { - my $available = join ", ", map { "'$_'" } keys %product; - $available =~ s/(.+), ([^,]+)/$1 and $2/; - die N("Supported products are %s, '%s' is not on the list.\n", - $available, - $up_product); - } - - run_authentication_dialog(); - ugtk2::exit(0); -} - -sub run_authentication_dialog { - my $description = N("Please fill in your account ID to add an additional package medium"); - my $extra_info = undef; # extra widgets for the dialog - - if ($up_product eq 'extended') { - - # Setup extra_info widgets for extended product... - my ($url, $extmaint_end, $desktop_update_end, $basic_update_end) - = get_extended_maintenance_data(); - if (my $err = $@) { - interactive->vnew->ask_warn( - N("Error"), - N("Failure while retrieving distributions list:") . "\n$err" - ); - return; - } - $extra_info - = [ gtknew('Label_Left', - text_markup => - join("\n\n", - #-PO: Here '%s' will be a localized date (eg: - # "2009/11/28" in english but "28/11/2009" - # for brazil or "28 Nov. "2009" for - # french: - N("Mandriva provides 12 months of desktop updates (until %s) and 18 months of base updates (up to the %s) for distributions.", - mdkapplet_gui::iso8601_date_to_locale( - $desktop_update_end), - mdkapplet_gui::iso8601_date_to_locale( - $basic_update_end) - ), - N("Extended maintenance is now available to get 18 months of additional updates (until %s).", - mdkapplet_gui::iso8601_date_to_locale( - $extmaint_end)), - N("You can subscribe right now to get extended maintenance:"), - ), - @common), - new_link_button('http://www2.mandriva.com/support/lifecycle/', - N("Lifetime policy")), - new_link_button($url, N("Online subscription")) - ]; - } - - mdkapplet_gui::run_ask_credentials_dialog($title, - $description, - \&authenticate_callback, - top_extra => $extra_info); - return; -} - -sub authenticate_callback { - my ($email, $passwd) = @_; - my $product = $product{$up_product}; - my $profile = mdkonline::get_my_mdv_profile($email, $passwd); - - if ($profile->{code} != 0) { - my $in = interactive->vnew; - $in->ask_warn(N("Error"), - N("An error occurred") . "\n" . $profile->{message}); - goto &run_authentication_dialog; - } - elsif (!$product->{has_rights}->($profile)) { - mdkapplet_gui::run_no_rights_dialog( - $title, - N("Your Mandriva account does not have %s download subscription enabled.", - mdkonline::translate_product($up_product)), - $product{$up_product}{info_url} - ); - } - else { - add_medium_for_product($product, $email, $passwd); - } -} - -sub add_medium_for_product { - my ($product, $email, $passwd) = @_; - - my $error = 0; - my $current_arch = urpm::cfg::get_arch(); - # FIXME: This is not enough if we ever support more 64 archs - # (sparc64, ppc64 and the like): - my @archs = ($current_arch, if_($current_arch eq 'x86_64', 'i586')); - - foreach my $arch (@archs) { - unless ($product->{add_medium}->($email, $passwd, $up_version, $arch)) { - # FIXME: Backup original media setup so on error previous - # added media in this loop can be removed? - $error = 1; - interactive->vnew->ask_warn( - N("Error"), - N("An error occurred while adding medium") - ); - goto &run_authentication_dialog; - } - } - - unless ($error) { - $product->{success_callback} and $product->{success_callback}->(); - my $w = ugtk2->new(N("Successfully added media!"), - grab => 1); - $w->_ask_okcancel(N("Successfully added media %s.", - $product->{media_name}), - N("Ok"), - undef); - ugtk2::main($w); - } -} - -sub get_extended_maintenance_data() { - if (not $current_apimdv_distro) { - require Rpmdrake::open_db; - my @distros = mdkonline::get_distro_list(); - return if !@distros; - $current_apimdv_distro = mdkonline::find_current_distro(@distros); - } - return @$current_apimdv_distro{ qw(extended-maintenance - extended-maintenance-end - desktop-update-end - basic-update-end) }; -} -- cgit v1.2.1