diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2007-08-28 11:51:27 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2007-08-28 11:51:27 +0000 |
commit | 6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0 (patch) | |
tree | 87f257079174e32f931205733ed1d97d20fad035 /urpm | |
parent | 13258c86d966b9bf5abd71a4a892a2c7350d7ff0 (diff) | |
download | urpmi-6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0.tar urpmi-6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0.tar.gz urpmi-6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0.tar.bz2 urpmi-6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0.tar.xz urpmi-6dc554230ca73e99fbc1ac5fdd2a3ccd0c9f32e0.zip |
- 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
Diffstat (limited to 'urpm')
-rw-r--r-- | urpm/args.pm | 6 | ||||
-rw-r--r-- | urpm/select.pm | 19 |
2 files changed, 24 insertions, 1 deletions
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) = @_; |