summaryrefslogtreecommitdiffstats
path: root/perl-install/install/pkgs.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/install/pkgs.pm')
-rw-r--r--perl-install/install/pkgs.pm33
1 files changed, 21 insertions, 12 deletions
diff --git a/perl-install/install/pkgs.pm b/perl-install/install/pkgs.pm
index b01ae5165..b612b5282 100644
--- a/perl-install/install/pkgs.pm
+++ b/perl-install/install/pkgs.pm
@@ -1,4 +1,4 @@
-package install::pkgs; # $Id: pkgs.pm 267288 2010-04-02 14:49:40Z pterjan $
+package install::pkgs;
use strict;
use feature 'state';
@@ -158,7 +158,6 @@ sub _bestKernel_extensions {
$::o->{kernel_extension} ? $::o->{kernel_extension} :
$o_match_all_hardware ? (arch() =~ /i.86/ ? '-desktop586' : '-desktop') :
- detect_devices::is_xbox() ? '-xbox' :
detect_devices::is_i586() ? '-desktop586' :
_is_kernelServer_needed() ? '-server' :
'-desktop';
@@ -190,7 +189,7 @@ sub packagesToInstall {
log::l("examining packagesToInstall of medium $_->{name}");
push @packages, grep { $_->flag_selected } install::media::packagesOfMedium($packages, $_);
}
- log::l("found " . scalar(@packages) . " packages to install");
+ log::l("found " . scalar(@packages) . " packages to install: " . formatList(5, map { $_->fullname } @packages));
@packages;
}
@@ -288,17 +287,17 @@ sub select_by_package_names_or_die {
}
}
-my @suggested_package_ids;
+my @recommended_package_ids;
sub _resolve_requested_and_check {
my ($packages, $state, $requested) = @_;
my @l = $packages->resolve_requested($packages->{rpmdb}, $state, $requested,
- callback_choices => \&packageCallbackChoices, no_suggests => $::o->{no_suggests});
+ callback_choices => \&packageCallbackChoices, no_recommends => $::o->{no_recommends});
- #- keep track of suggested packages so that theys could be unselected if the "no suggests" option is choosen later:
+ #- keep track of recommended packages so that theys could be unselected if the "no recommends" option is choosen later:
if (!is_empty_hash_ref($state->{selected})) {
- my @new_ids = map { $packages->{depslist}[$_]->id } grep { $state->{selected}{$_}{suggested} } keys $state->{selected};
- @suggested_package_ids = uniq(@suggested_package_ids, @new_ids);
+ my @new_ids = map { $packages->{depslist}[$_]->id } grep { $state->{selected}{$_}{recommended} } keys $state->{selected};
+ @recommended_package_ids = uniq(@recommended_package_ids, @new_ids);
}
my $error;
@@ -352,9 +351,9 @@ sub unselectAllPackages {
log::l("unselecting all packages...");
foreach (@{$packages->{depslist}}) {
my $to_select = $_->flag_base || $_->flag_installed && $_->flag_selected;
- # unselect suggested packages if minimal install:
- if ($::o->{no_suggests} && member($_->id, @suggested_package_ids)) {
- log::l("unselecting suggested package " . $_->name);
+ # unselect recommended packages if minimal install:
+ if ($::o->{no_recommends} && member($_->id, @recommended_package_ids)) {
+ log::l("unselecting recommended package " . $_->name);
undef $to_select;
}
if ($to_select) {
@@ -375,6 +374,7 @@ sub unselectAllPackages {
my (@errors, $push_errors);
sub start_pushing_error() {
$push_errors = 1;
+ undef @errors;
}
sub popup_errors() {
@@ -595,7 +595,7 @@ sub computeGroupSize {
$newSelection{$id} = undef;
my $pkg = $packages->{depslist}[$id];
- my @deps = map { [ $_, keys %{$packages->{provides}{$_} || {}} ] } $pkg->requires_nosense, $pkg->suggests;
+ my @deps = map { [ $_, keys %{$packages->{provides}{$_} || {}} ] } $pkg->requires_nosense, $pkg->recommends_nosense;
foreach (sort { @$a <=> @$b } @deps) { #- sort on number of provides (it helps choosing "b" in: "a" requires both "b" and virtual={"b","c"})
my ($virtual, @choices) = @$_;
if (@choices <= 1) {
@@ -792,6 +792,8 @@ sub install {
log::l("install::pkgs::install the following: ", join(" ", map { $_->name } values %packages));
URPM::read_config_files();
+ # force loading libnss*
+ getgrent();
URPM::add_macro(join(' ', '__dbi_cdb', URPM::expand('%__dbi_cdb'), 'nofsync'));
my $LOG = _openInstallLog();
@@ -855,6 +857,8 @@ sub _install_raw {
# bug present in 2009.0, 2008.1, 2008.0, ... (probably since r11141 aka when switching to rpm-4.2 in URPM-0.83)
local $packages->{options}{script_fd} = fileno $LOG;
+ start_pushing_error();
+
log::l("rpm transactions start");
my $exit_code = urpm::main_loop::run($packages, $packages->{state}, undef, undef, {
@@ -908,6 +912,11 @@ sub _install_raw {
N("Installation of packages failed:") . "\n\n" . join("\n", @$errors));
}
},
+ completed => sub {
+ if (!$packages->{options}{auto}) {
+ popup_errors();
+ }
+ },
message => sub {
my ($title, $message) = @_;
log::l($message);