diff options
author | Francois Pons <fpons@mandriva.com> | 2002-07-11 13:14:42 +0000 |
---|---|---|
committer | Francois Pons <fpons@mandriva.com> | 2002-07-11 13:14:42 +0000 |
commit | 8414339f861f1289bdc8cd191a765e8dec195582 (patch) | |
tree | 06b03100177df116d85d505a4dc789fa1e208c6e | |
parent | 907fd3eb24c1fc99c22946923081f34952a21b9e (diff) | |
download | perl-URPM-8414339f861f1289bdc8cd191a765e8dec195582.tar perl-URPM-8414339f861f1289bdc8cd191a765e8dec195582.tar.gz perl-URPM-8414339f861f1289bdc8cd191a765e8dec195582.tar.bz2 perl-URPM-8414339f861f1289bdc8cd191a765e8dec195582.tar.xz perl-URPM-8414339f861f1289bdc8cd191a765e8dec195582.zip |
0.09-2mdk
-rw-r--r-- | URPM/Resolve.pm | 32 | ||||
-rw-r--r-- | perl-URPM.spec | 7 |
2 files changed, 37 insertions, 2 deletions
diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index a88b8c6..960ea66 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -312,7 +312,7 @@ sub resolve_requested { if (my ($name) =~ /^([^\s\[]*)/) { foreach (keys %{$urpm->{provides}{$name} || {}}) { my $p = $urpm->{depslist}[$_]; - $pkg->flag_selected and $state->{ask_unselect}{$p->id}{$pkg->id} = undef; + $p->flag_selected and $state->{ask_unselect}{$p->id}{$pkg->id} = undef; } } } @@ -320,6 +320,36 @@ sub resolve_requested { #- obsoleted packages are no longer marked as being asked to be removed. delete @{$state->{ask_remove}}{map { /(.*)\.[^\.]*$/ && $1 } keys %{$state->{obsoleted}}}; + + #- clear state according to selection done, this is usefull for + #- canceling a selection (works after second call with empty requested). + if ($options{clear_state}) { + foreach (keys %{$state->{selected} || {}}) { + my $pkg = $urpm->{depslist}[$_]; + + foreach ($pkg->provides) { + if (my ($n, $s) = /^([^\s\[]*)(?:\[\*\])?\[?([^\s\]]*\s*[^\s\]]*)/) { + delete $state->{provided}{$n}{$s}{$pkg->id}; + %{$state->{provided}{$n}{$s}} or delete $state->{provided}{$n}{$s}; + } + } + + foreach ($pkg->obsoletes) { + delete $state->{obsoleted}{$pkg->fullname}{$pkg->id}; + %{$state->{obsoleted}{$pkg->fullname}} or delete $state->{obsoleted}{$pkg->fullname}; + } + + foreach (keys %{$state->{ask_remove} || {}}) { + $state->{ask_remove}{$_} = [ grep { $_->{pkg} ne $pkg } @{$state->{ask_remove}{$_} || []} ]; + @{$state->{ask_remove}{$_}} or delete $state->{ask_remove}{$_}; + } + + foreach (keys %{$state->{ask_unselect} || {}}) { + delete $state->{ask_unselect}{$_}{$pkg->id}; + %{$state->{ask_unselect}{$_}} or delete $state->{ask_unselect}{$_}; + } + } + } } #- compute installed flags for all package in depslist. diff --git a/perl-URPM.spec b/perl-URPM.spec index 01f3001..197b979 100644 --- a/perl-URPM.spec +++ b/perl-URPM.spec @@ -1,7 +1,7 @@ %define name perl-URPM %define real_name URPM %define version 0.09 -%define release 1mdk +%define release 2mdk %{expand:%%define rpm_version %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' rpm)} @@ -48,6 +48,11 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Jul 11 2002 François Pons <fpons@mandrakesoft.com> 0.09-2mdk +- fixed ask_unselect computation. +- added clear_state option to relove_requested (rollback state + modification needed by DrakX). + * Wed Jul 10 2002 François Pons <fpons@mandrakesoft.com> 0.09-1mdk - changed semantics of some package flags to extend usability and simplicity. |