From 6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0 Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Tue, 28 Aug 2007 11:51:27 +0000 Subject: - urpmi o handle changes in priority-upgrade list between old and new urpmi (#32925) nb: keep --no-priority-upgrade since it is passed by older urpmi when restarting --- urpm/args.pm | 6 +++++- urpm/select.pm | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'urpm') diff --git a/urpm/args.pm b/urpm/args.pm index adbb49d9..47dbb1e2 100644 --- a/urpm/args.pm +++ b/urpm/args.pm @@ -92,8 +92,12 @@ my %options_spec = ( 'pre-clean!' => sub { $urpm->{options}{'pre-clean'} = $_[1] }, 'post-clean!' => sub { $urpm->{options}{'post-clean'} = $_[1] }, 'no-priority-upgrade' => sub { - $urpm->{options}{'priority-upgrade'} = ''; + #- keep this option which is passed by older urpmi. + #- since we can't know what the previous_priority_upgrade list was, + #- just use a rubbish value which will mean list has changed + $options{previous_priority_upgrade} = 'list_has_changed'; }, + 'previous-priority-upgrade=s' => \$options{previous_priority_upgrade}, force => \$::force, justdb => \$options{justdb}, replacepkgs => \$options{replacepkgs}, diff --git a/urpm/select.pm b/urpm/select.pm index 0300395e..fd57be04 100644 --- a/urpm/select.pm +++ b/urpm/select.pm @@ -7,6 +7,25 @@ use urpm::util; use urpm::sys; use URPM; +sub set_priority_upgrade_option { + my ($urpm, $previous) = @_; + + exists $urpm->{options}{'priority-upgrade'} and return; + + # comma-separated list of packages that should be installed first, + # and that trigger an urpmi restart + my $list = 'rpm,perl-URPM,perl-MDV-Distribconf,urpmi,meta-task,glibc'; + if ($previous) { + if ($previous eq $list) { + $list = ''; + $urpm->{log}(N("urpmi was restarted, and the list of priority packages did not change")); + } else { + $urpm->{log}(N("urpmi was restarted, and the list of priority packages did change: %s vs %s", $previous, $list)); + } + } + $urpm->{options}{'priority-upgrade'} = $list; +} + sub _findindeps { my ($urpm, $found, $qv, $v, $caseinsensitive, $src) = @_; -- cgit v1.2.1