summaryrefslogtreecommitdiffstats
path: root/mdkonline.pm
diff options
context:
space:
mode:
authorMageia SVN-Git Migration <svn-git-migration@mageia.org>2011-05-14 01:22:07 +0100
committerMageia SVN-Git Migration <svn-git-migration@mageia.org>2011-05-14 01:22:07 +0100
commite0ada251ac68dc91192c7ec7d10f3a1d7784916a (patch)
tree225ed465e93c82ad37c2794144850635b395d594 /mdkonline.pm
parent5d4a18c95ac1ef5a657b5dcefd8a47e429d74058 (diff)
downloadmgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar
mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar.gz
mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar.bz2
mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.tar.xz
mgaonline-e0ada251ac68dc91192c7ec7d10f3a1d7784916a.zip
Synthesized commit during git-svn import combining previous Mandriva history with Mageia.2.77.22
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 ------------------------------------------------------------------------
Diffstat (limited to 'mdkonline.pm')
-rw-r--r--mdkonline.pm311
1 files changed, 0 insertions, 311 deletions
diff --git a/mdkonline.pm b/mdkonline.pm
deleted file mode 100644
index d3889ed8..00000000
--- a/mdkonline.pm
+++ /dev/null
@@ -1,311 +0,0 @@
-################################################################################
-# Mandriva Online functions #
-# #
-# Copyright (C) 2004-2005 Mandrakesoft #
-# 2005-2006 Mandriva #
-# #
-# Daouda Lo #
-# 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. #
-################################################################################
-
-package mdkonline;
-
-use strict;
-
-use lib qw(/usr/lib/libDrakX);
-use common;
-use ugtk2;
-
-use LWP::UserAgent;
-use URI::Escape;
-use XML::Simple;
-use HTTP::Request::Common;
-use HTTP::Request;
-
-our @ISA = qw(Exporter);
-our @EXPORT = qw(find_current_distro
- fork_exec
- get_banner
- get_distro_list
- get_from
- get_product_id
- get_release
- get_stale_upgrade_filename
- get_urpmi_options
- is_it_2008_0
- is_enterprise_media_supported
- is_extmaint_supported
- is_restricted_media_supported
- read_sys_config
- translate_product
- xml2perl
- %config
- $config_file
- $product_id
- $root);
-our @EXPORT_OK = qw(
- get_product_info
- get_my_mdv_profile
- add_medium_powerpack
- add_medium_enterprise
- add_medium_extended
-);
-
-our (%config, $product_id, $root);
-our $version = 1;
-
-use log;
-
-our $config_file = '/etc/sysconfig/mdkapplet';
-my $release_file = find { -f $_ } '/etc/mandriva-release', '/etc/mandrakelinux-release', '/etc/mandrake-release', '/etc/redhat-release';
-
-sub read_sys_config() {
- %config = getVarsFromSh($config_file);
-}
-
-sub get_stale_upgrade_filename() {
- '/var/lib/urpmi/stale_upgrade_in_progress';
-}
-
-sub get_product_id() {
- $product_id = common::parse_LDAP_namespace_structure(cat_("$root/etc/product.id"));
-}
-
-sub get_release() {
- my ($r) = cat_($release_file) =~ /release\s+(\S+)/;
- ($r);
-}
-
-sub is_it_2008_0() {
- $product_id->{version} eq '2008.0';
-}
-
-sub is_extmaint_supported() {
- $product_id->{support} eq 'extended';
-}
-
-sub is_enterprise_media_supported() {
- return if is_it_2008_0();
- to_bool($product_id->{type} eq 'Enterprise' && $product_id->{product} eq 'Server');
-}
-
-sub is_restricted_media_supported() {
- return if is_it_2008_0();
- to_bool($product_id->{product} =~ /powerpack/i);
-}
-
-sub find_current_distro {
- find { $_->{version} eq $product_id->{version} } @_;
-}
-
-sub get_distro_list_() {
- #- contact the following URL to retrieve the list of released distributions.
- my $type = lc($product_id->{type}); $type =~ s/\s//g;
- my $extra_path = $::testing || uc($config{TEST_DISTRO_UPGRADE}) eq 'YES' ? 'testing-' : '';
- my $list =
- join('&',
- "https://api.mandriva.com/distributions/$extra_path$type.$product_id->{arch}.list?product=$product_id->{product}",
- "version=$product_id->{version}",
- "mdkonline_version=$mdkonline::version",
- );
- log::explanations("trying distributions list from $list");
-
- eval {
- my $urpm = Rpmdrake::open_db::fast_open_urpmi_db();
-
- # prevent SIGCHILD handler's waitpid to interfere with urpmi waiting
- # for curl exit code, which broke downloads:
- local $SIG{CHLD} = 'DEFAULT';
-
- # old API:
- if (member($product_id->{version}, qw(2007.1 2008.0 2008.1))) {
- require mdkapplet_urpm;
- mdkapplet_urpm::ensure_valid_cachedir($urpm);
- mdkapplet_urpm::get_content($urpm, $list);
- } else {
- urpm::ensure_valid_cachedir($urpm);
- urpm::download::get_content($urpm, $list);
- }
- };
-}
-
-sub get_distro_list() {
- return if $product_id->{product} =~ /Flash/;
-
- my @lines = get_distro_list_();
-
- if (my $err = $@) {
- log::explanations("failed to download distribution list:\n$err");
- return; # not a fatal error
- }
-
- if (!@lines) {
- log::explanations("empty distribution list");
- return;
- }
-
- map { common::parse_LDAP_namespace_structure(chomp_($_)) } grep { /^[^#]/ } @lines;
-}
-
-
-sub clean_confdir() {
- my $confdir = '/root/.MdkOnline';
- system "/bin/rm", "-f", "$confdir/*log.bz2", "$confdir/*log.bz2.uue", "$confdir/*.dif $confdir/rpm_qa_installed_before", "$confdir/rpm_qa_installed_after";
-}
-
-
-sub fork_exec {
- run_program::raw({ detach => 1 }, @_);
-}
-
-sub translate_product {
- my ($product) = @_;
- my %strings = (
- flash => N("Mandriva Flash"),
- free => N("Mandriva Free"),
- mini => N("Mandriva Mini"),
- one => N("Mandriva One"),
- powerPack => N("Mandriva PowerPack"),
- server => N("Mandriva Enterprise Server"),
- );
- $product ||= lc $product_id->{product};
- $strings{$product} || $product;
-}
-
-# TODO Move all product.id handling to a separate module
-# (MDV::ProductId?)
-sub get_product_info {
- my ($product) = @_;
- my %info = (
- powerpack => {
- name => N("Mandriva PowerPack"),
- description => N("The Mandriva Linux distribution with even more softwares and official support."),
- },
- free => {
- name => N("Mandriva Free"),
- description => N("The 100%% Open Source distribution freely available."),
- },
- );
- $product ||= lc $product_id->{product};
- return $info{$product};
-}
-
-sub get_banner_icon() {
- find { -e $_ }
- qw(/usr/share/mcc/themes/default/rpmdrake-mdk.png /usr/share/icons/large/mdkonline.png);
-}
-
-sub get_banner {
- my ($o_title) = @_;
- Gtk2::Banner->new(get_banner_icon(), $o_title || N("Distribution Upgrade"));
-}
-
-sub get_urpmi_options() {
- ({ sensitive_arguments => 1 }, 'urpmi.addmedia', if_(!is_it_2008_0(), '--xml-info', 'always'));
-}
-
-sub add_medium_enterprise {
- my ($email, $password, $version, $arch) = @_;
- my $uri = sprintf('https://%s:%s@download.mandriva.com/%s/rpms/%s/',
- uri_escape($email),
- uri_escape($password),
- $version,
- $arch);
- my @options = get_urpmi_options();
- run_program::raw(@options, '--update', '--distrib', $uri);
-}
-
-sub add_medium_powerpack {
- my ($email, $password, $version, $arch) = @_;
- my $uri = sprintf('https://%s:%s@dl.mandriva.com/rpm/comm/%s/',
- uri_escape($email),
- uri_escape($password),
- $version);
- my @options = get_urpmi_options();
-
- # add release and updates media...
- run_program::raw(@options,
- "Restricted $arch " . int(rand(100000)),
- "$uri$arch")
- or return 0;
- run_program::raw(@options,
- '--update',
- "Restricted Updates $arch " . int(rand(100000)),
- "${uri}updates/$arch");
-}
-
-sub add_medium_extended {
- my ($email, $password, $version, $arch) = @_;
- my $uri = sprintf("https://%s:%s\@dl.mandriva.com/extended/%s/%s",
- uri_escape($email),
- uri_escape($password),
- $version,
- $arch);
- my @options = (get_urpmi_options(), '--update');
- run_program::raw(@options,
- "Extended Maintenance $arch " . int(rand(100000)),
- ${uri});
-}
-
-sub is_running {
- my ($name) = @_;
- my $found;
- foreach (`ps -o '%P %p %c' -u $ENV{USER}`) {
- my ($ppid, $pid, $n) = /^\s*(\d+)\s+(\d+)\s+(.*)/;
- if ($ppid != 1 && $pid != $$ && $n eq $name) {
- $found = $pid;
- last;
- }
- }
- $found;
-}
-
-
-sub get_from {
- my ($link, $header) = @_;
-
- my $ua = LWP::UserAgent->new;
- $ua->agent(sprintf('mdkapplet (mdkonline-%s; distribution: %s)',
- $mdkonline::version, $version));
- $ua->env_proxy;
-
- my $response = $ua->post($link, $header);
- $response;
-}
-
-sub get_my_mdv_profile {
- my ($email, $password) = @_;
- xml2perl(get_from('https://my.mandriva.com/rest/authenticate',
- [ 'username', $email, 'password', $password,
- 'return', 'userdata' ]));
-}
-
-# callers need to require XML::Simple
-sub xml2perl {
- my ($res) = @_;
- my $ref = eval { XML::Simple->new->XMLin($res->{_content}) };
- if (my $err = $@) {
- warn ">> XML error: $err\n";
- $ref = {
- code => 1,
- message => $err,
- };
- }
- $ref;
-}
-
-
-1;