summaryrefslogtreecommitdiffstats
path: root/mdkapplet-extended-maintenance-helper
diff options
context:
space:
mode:
Diffstat (limited to 'mdkapplet-extended-maintenance-helper')
-rwxr-xr-xmdkapplet-extended-maintenance-helper215
1 files changed, 0 insertions, 215 deletions
diff --git a/mdkapplet-extended-maintenance-helper b/mdkapplet-extended-maintenance-helper
deleted file mode 100755
index a5543ee3..00000000
--- a/mdkapplet-extended-maintenance-helper
+++ /dev/null
@@ -1,215 +0,0 @@
-#!/usr/bin/perl
-################################################################################
-# Mandriva Online #
-# #
-# Copyright (C) 2010 Mandriva #
-# #
-# Thierry Vignaud <tvignaud at mandriva dot com> #
-# #
-# 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. #
-################################################################################
-
-use strict;
-use lib qw(/usr/lib/libDrakX /usr/lib/libDrakX/drakfirsttime);
-use standalone; # for explanations
-use common;
-use run_program;
-
-BEGIN { unshift @::textdomains, 'mdkonline' }
-
-use mygtk2 qw(gtknew); #- do not import gtkadd which conflicts with ugtk2 version
-use ugtk2 qw(:all);
-use urpm::cfg;
-use mdkonline;
-use mdkapplet_gui;
-use interactive;
-
-use XML::Simple;
-use URI::Escape;
-use LWP::UserAgent;
-use HTTP::Request::Common;
-use HTTP::Request;
-use interactive::gtk;
-
-foreach my $opt (@ARGV) {
- if ($opt =~ /--(rpm-root|urpmi-root)=(.*)/) {
- $::rpmdrake_options{$1}[0] = $2;
- undef $opt;
- }
-}
-my ($version) = @ARGV;
-my $email;
-
-$version or die "usage: $0 <distrib_version>\n";
-
-# make it work on 2008.X:
-eval { interactive::gtk::add_padding(Gtk2::Label->new) };
-if ($@) {
- *interactive::gtk::add_padding = sub { $_[0] };
-}
-
-read_sys_config();
-get_extmaint_authentication();
-
-ugtk2::exit(0);
-
-sub get_extended_maintenance_data() {
- require Rpmdrake::open_db;
- get_product_id();
- my @distros = get_distro_list();
- return if !@distros;
- my $current_apimdv_distro = find_current_distro(@distros);
- @$current_apimdv_distro{qw(extended-maintenance extended-maintenance-end desktop-update-end basic-update-end)};
-}
-
-sub get_extmaint_authentication() {
- my $w = ugtk2->new(N("Adding an additional package medium"), width => $width + 20);
- my ($password_w, $email_w, $password);
-
- $password_w = gtknew('Entry');
- $password_w->set_visibility(0);
-
- my ($url, $extended_maintenance_end, $desktop_update_end, $basic_update_end) =
- eval { get_extended_maintenance_data() };
- if (my $err = $@) {
- interactive->vnew->ask_warn(N("Error"), N("Failure while retrieving distributions list:")
- . "\n$err");
- return;
- }
-
- $w->{ok_clicked} = sub {
- $password = $password_w->get_text;
- Gtk2->main_quit;
- };
-
- my @widgets = (
- if_(!$::isEmbedded,
- get_banner(N("Extended Maintenance")),
- ),
- 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.",
- iso8601_date_to_locale($desktop_update_end),
- iso8601_date_to_locale($basic_update_end)),
- N("Extended maintenance is now available to get 18 months of additional updates (until %s).",
- iso8601_date_to_locale($extended_maintenance_end)),
- N("You can subscribe <b>right now</b> to get extended maintenance:"),
- ),
- @common),
- new_link_button('http://www2.mandriva.com/support/lifecycle/', N("Lifetime policy")),
- new_link_button($url, N("Online subscription")),
- gtknew('HSeparator'),
- gtknew('Label_Left', text => N("Please fill in your account ID to add an additional package medium once you have subscribed online"),
- @common),
- gtknew('HButtonBox', layout => 'start', children_tight => [
- interactive::gtk::add_padding(
- new_link_button('https://my.mandriva.com/info', N("More information on your user account")))
- ]),
- gtknew('Table', col_spacings => 5, row_spacings => 5, children => [
- [ N("Your email"), $email_w = gtknew('Entry', text => $email) ],
- [ N("Your password"), $password_w ],
- ]),
- gtknew('HButtonBox', layout => 'start', children_tight => [
- interactive::gtk::add_padding(
- new_link_button('https://my.mandriva.com/reset/password/', N("Forgotten password")))
- ]),
- create_okcancel($w, N("Next"), N("Cancel")),
- );
-
- fill_n_run_portable_dialog($w, \@widgets);
-
- $email = $email_w->get_text;
-
- # means OK handler got run:
- if ($password) {
- if ($email && $password) {
- add_extmaint_medium($email, $password);
- } else {
- interactive->vnew->ask_warn(N("Error"), N("Password and email cannot be empty."));
- goto &get_extmaint_authentication;
- }
- } else {
- ugtk2::exit(0);
- }
-}
-
-my $error;
-sub add_extmaint_medium {
- my ($email, $password) = @_;
-
- my $res = get_from("https://my.mandriva.com/rest/authenticate",
- [ 'username', $email, 'password', $password,
- 'return', 'userdata' ]);
- my $ref = xml2perl($res);
-
- if ($ref->{code} != 0) {
- my $in = interactive->vnew;
- $in->ask_warn(N("Error"), N("An error occurred") . "\n" . $ref->{message});
- goto &get_extmaint_authentication;
- } elsif (!ref($ref->{data}{groups}{'ext-maint-' . $version})) {
- no_rights_dialog();
- } else {
- $error = 0;
- my $arch = urpm::cfg::get_arch();
- actually_add_extmaint_medium($ref, $password, $arch)
- or adding_media_failed();
- # FIXME: is not enough if we ever support sparc64, ppc64 and the like:
- if ($arch eq 'x86_64') {
- actually_add_extmaint_medium($ref, $password, 'i586')
- or adding_media_failed();
- }
- if (!$error) {
- $config{EXTENDED_SUPPORT} = bool2yesno(1);
- setVarsInSh($config_file, \%config);
- #interactive->vnew->ask_okcancel(N("Error"), N("An error occurred while adding medium"));
- my $w = ugtk2->new(N("Successfully added media %s.", 'Extended Maintenance'), grab => 1);
- $w->_ask_okcancel(N("Successfully added media %s.", 'Extended Maintenance'), N("Ok"), undef);
- ugtk2::main($w);
- }
- }
-}
-
-sub no_rights_dialog() {
- my $w = ugtk2->new(N("Adding an additional package medium"), width => $width + 20);
-
- fill_n_run_portable_dialog(
- $w,
- [
- if_(!$::isEmbedded, get_banner(N("Extended Maintenance"))),
- gtknew('Label_Left', text => N("Your Mandriva account does not have Extended Maintenance subscription enabled."),
- @common),
- gtknew('HButtonBox', layout => 'start', children_tight => [
- interactive::gtk::add_padding(
- new_link_button('https://my.mandriva.com/', N("More Information")))
- ]),
- create_okcancel($w, N("Close"), undef),
- ]);
-}
-
-sub adding_media_failed {
- $error = 1;
- interactive->vnew->ask_warn(N("Error"), N("An error occurred while adding medium"));
- goto &get_extmaint_authentication;
-}
-
-sub actually_add_extmaint_medium {
- my ($ref, $password, $arch) = @_;
- $password = uri_escape($password);
- my @options = (get_urpmi_options(), '--update');
- my $email = uri_escape($ref->{data}{email});
- my $uri = "https://$email:$password\@dl.mandriva.com/extended/$version/$arch";
- run_program::raw(@options, "Extended Maintenance $arch " . int(rand(100000)), ${uri});
-}