summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/install2.pm2
-rw-r--r--perl-install/install_any.pm1
-rw-r--r--perl-install/install_steps.pm2
-rw-r--r--perl-install/install_steps_gtk.pm33
-rw-r--r--perl-install/install_steps_interactive.pm6
-rw-r--r--perl-install/pkgs.pm26
6 files changed, 21 insertions, 49 deletions
diff --git a/perl-install/install2.pm b/perl-install/install2.pm
index b2fb734db..5daeca68e 100644
--- a/perl-install/install2.pm
+++ b/perl-install/install2.pm
@@ -237,7 +237,7 @@ sub choosePackages {
#- always setPackages as it may have to copy hdlist files and depslist file.
$o->setPackages;
- $o->choosePackages($o->{packages}, $o->{compss}, $o->{compssUsers}, $_[1] == 1);
+ $o->choosePackages($o->{packages}, $o->{compssUsers}, $_[1] == 1);
log::l("compssUsersChoice's: ", join(" ", grep { $o->{compssUsersChoice}{$_} } keys %{$o->{compssUsersChoice}}));
#- check pre-condition where base backage has to be selected.
diff --git a/perl-install/install_any.pm b/perl-install/install_any.pm
index 8be1c7c6e..084e59bd3 100644
--- a/perl-install/install_any.pm
+++ b/perl-install/install_any.pm
@@ -313,7 +313,6 @@ sub setPackages {
#- must be done after selecting base packages (to save memory)
pkgs::getProvides($o->{packages});
- $o->{compss} = pkgs::readCompss($o->{prefix}, $o->{packages});
#- must be done after getProvides
pkgs::read_rpmsrate($o->{packages}, getFile("Mandrake/base/rpmsrate"));
($o->{compssUsers}, $o->{compssUsersSorted}) = pkgs::readCompssUsers($o->{meta_class});
diff --git a/perl-install/install_steps.pm b/perl-install/install_steps.pm
index 06137b3cb..a7323789b 100644
--- a/perl-install/install_steps.pm
+++ b/perl-install/install_steps.pm
@@ -253,7 +253,7 @@ sub selectPackagesToUpgrade {
}
sub choosePackages {
- my ($o, $packages, $compss, $compssUsers, $first_time) = @_;
+ my ($o, $packages, $compssUsers, $first_time) = @_;
#- now for upgrade, package that must be upgraded are
#- selected first, after is used the same scheme as install.
diff --git a/perl-install/install_steps_gtk.pm b/perl-install/install_steps_gtk.pm
index b9f43a150..f72bd7a42 100644
--- a/perl-install/install_steps_gtk.pm
+++ b/perl-install/install_steps_gtk.pm
@@ -249,7 +249,7 @@ a percentage of %d%% will install as many packages as possible.", $percentage, $
$w->main and $val + 1; #- add a single byte (hack?) to make selection of 0 bytes ok.
}
sub choosePackagesTree {
- my ($o, $packages, $compss) = @_;
+ my ($o, $packages) = @_;
$o->set_help('choosePackagesTree');
my ($curr, $parent, $info_widget, $w_size, $go, $idle, $flat, $auto_deps);
@@ -292,8 +292,8 @@ sub choosePackagesTree {
my $add_parent; $add_parent = sub {
$_[0] or return undef;
if (my $w = $wtree{$_[0]}) { return $w }
- my $s; foreach (split '/', $_[0]) {
- my $s2 = $s ? "$s/$_" : $_;
+ my $s; foreach (split '\|', $_[0]) {
+ my $s2 = $s ? "$s|$_" : $_;
$wtree{$s2} ||= do {
my $n = $tree->insert_node($s ? $add_parent->($s) : undef, undef, [$_, '', ''], 5, (undef) x 4, 0, 0);
$n;
@@ -319,26 +319,23 @@ sub choosePackagesTree {
$tree->freeze;
while (1) { $tree->remove_node($tree->node_nth(0) || last) }
- my ($root, $leaf);
if ($flat = $_[0]) {
$add_node->($_, undef) foreach sort grep { my $pkg = pkgs::packageByName($packages, $_);
pkgs::packageMedium($pkg)->{selected} } keys %{$packages->{names}};
} else {
- my (@others, $old_root);
- foreach (sort @$compss) {
- ($root, $leaf) = m|(.*)/(.+)|o or ($root, $leaf) = ('', $_);
- if ($root ne $old_root) {
- $add_node->($_, $old_root . '/' . _("Other")) foreach @others;
- @others = ();
- $old_root = $root
- }
- my $pkg = pkgs::packageByName($packages, $leaf);
- pkgs::packageMedium($pkg)->{selected} or next;
- if (pkgs::packageRate($pkg) < 4) {
- push @others, $leaf;
- } else {
- $add_node->($leaf, $root);
+ foreach (@{$o->{compssUsersSorted}}) {
+ my $root = $o->{compssUsers}{$_}{path} . '|' . $_;
+ my (%fl, @firstchoice, @others);
+ $fl{$_} = 1 foreach @{$o->{compssUsers}{$_}{flags}};
+ foreach my $p (values %{$packages->{names}}) {
+ my ($rate, @flags) = pkgs::packageRateRFlags($p);
+ next if !($rate && !grep { !grep { /^!(.*)/ ? !$fl{$1} : $fl{$_} } split('\|\|') } @flags);
+ $rate >= 3 ?
+ push(@firstchoice, pkgs::packageName($p)) :
+ push(@others, pkgs::packageName($p));
}
+ $add_node->($_, $root ) foreach sort @firstchoice;
+ $add_node->($_, $root . '|' . _("Other")) foreach sort @others;
}
}
$tree->thaw;
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
index 24a0bd235..3e47ec3c6 100644
--- a/perl-install/install_steps_interactive.pm
+++ b/perl-install/install_steps_interactive.pm
@@ -429,7 +429,7 @@ sub selectPackagesToUpgrade {
}
#------------------------------------------------------------------------------
sub choosePackages {
- my ($o, $packages, $compss, $compssUsers, $first_time) = @_;
+ my ($o, $packages, $compssUsers, $first_time) = @_;
#- this is done at the very beginning to take into account
#- selection of CD by user if using a cdrom.
@@ -492,7 +492,7 @@ sub choosePackages {
($o->{packages_}{ind}) =
pkgs::setSelectedFromCompssList($packages, $o->{compssUsersChoice}, $min_mark, $size2install);
- $o->choosePackagesTree($packages, $compss) if $individual;
+ $o->choosePackagesTree($packages) if $individual;
}
sub chooseSizeToInstall {
@@ -500,7 +500,7 @@ sub chooseSizeToInstall {
min($def, $availableC * 0.7);
}
sub choosePackagesTree {
- my ($o, $packages, $compss) = @_;
+ my ($o, $packages) = @_;
$o->ask_many_from_list('', _("Choose the packages you want to install"),
{
diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm
index ddae5735b..f245a98d5 100644
--- a/perl-install/pkgs.pm
+++ b/perl-install/pkgs.pm
@@ -359,7 +359,7 @@ sub psUpdateHdlistsDeps {
#- this is necessary for urpmi.
install_any::getAndSaveFile("Mandrake/base/$_", "$prefix/var/lib/urpmi/$_")
- foreach qw(depslist.ordered provides compss rpmsrate);
+ foreach qw(depslist.ordered provides rpmsrate);
}
sub psUsingHdlists {
@@ -572,30 +572,6 @@ sub getProvides($) {
}
}
-sub readCompss {
- my ($prefix, $packages) = @_;
- my ($p, @compss);
-
- #- this is necessary for urpmi.
- install_any::getAndSaveFile('Mandrake/base/compss', "$prefix/var/lib/urpmi/compss");
-
- local *F; open F, "$prefix/var/lib/urpmi/compss" or die "can't find compss";
- local $_;
- while (<F>) {
- /^\s*$/ || /^#/ and next;
- s/#.*//;
-
- if (/^(\S.*)/) {
- $p = $1;
- } else {
- /(\S+)/;
- $packages->{names}{$1} or log::l("unknown package $1 in compss"), next;
- push @compss, "$p/$1";
- }
- }
- \@compss;
-}
-
sub read_rpmsrate {
my ($packages, $f) = @_;
my $line_nb = 0;