From c1a17c783ad0accd7f7434500bbf2725972631e4 Mon Sep 17 00:00:00 2001 From: Francois Pons Date: Fri, 28 Jun 2002 08:44:23 +0000 Subject: 0.05-1mdk --- URPM.pm | 52 +--------------------------------------------------- URPM/Resolve.pm | 11 +++++++---- perl-URPM.spec | 8 ++++++-- 3 files changed, 14 insertions(+), 57 deletions(-) diff --git a/URPM.pm b/URPM.pm index 4ba32ad..60e5312 100644 --- a/URPM.pm +++ b/URPM.pm @@ -6,7 +6,7 @@ use vars qw($VERSION @ISA); require DynaLoader; @ISA = qw(DynaLoader); -$VERSION = '0.04'; +$VERSION = '0.05'; bootstrap URPM $VERSION; @@ -78,53 +78,3 @@ sub traverse_tag { $count; } - -#- relocate depslist array id to use only the most recent packages, -#- reorder info hashes to give only access to best packages. -sub relocate_depslist { - my ($urpm, %options) = @_; - my $relocated_entries = 0; - - #- reset names hash now, will be filled after. - $urpm->{names} = {}; - - foreach (@{$urpm->{depslist} || []}) { - #- remove access to info if arch is incompatible and only - #- take into account compatible arch to examine. - #- set names hash by prefering first better version, - #- then better release, then better arch. - if ($_->is_arch_compat) { - my $p = $urpm->{names}{$_->name}; - if ($p) { - if ($_->compare_pkg($p) > 0) { - $urpm->{names}{$_->name} = $_; - ++$relocated_entries; - } - } else { - $urpm->{names}{$_->name} = $_; - } - } elsif ($_->arch ne 'src') { - #- the package is removed, make it invisible (remove id). - my $id = $_->set_id; - - #- the architecture is not compatible, this means the package is dropped. - #- we have to remove its reference in provides. - foreach ($_->provides) { - delete $urpm->{provides}{$_}{$id}; - } - } - } - - #- relocate id used in depslist array, delete id if the package - #- should NOT be used. - #- if no entries have been relocated, we can safely avoid this computation. - if ($relocated_entries) { - foreach (@{$urpm->{depslist}}) { - my $p = $urpm->{names}{$_->name} or next; - $_->set_id($p->id); - } - } - - $relocated_entries; -} - diff --git a/URPM/Resolve.pm b/URPM/Resolve.pm index ccdf64c..883b9bf 100644 --- a/URPM/Resolve.pm +++ b/URPM/Resolve.pm @@ -212,7 +212,8 @@ sub resolve_requested { push @properties, $best->id; } else { #- no package have been found, we need to remove the package examined. - push @{$state->{ask_remove}{$p->fullname}}, { unsatisfied => \@l, pkg => $pkg }; + push @{$state->{ask_remove}{join '-', ($p->fullname)[0..2]}}, + { unsatisfied => \@l, pkg => $pkg }; } } }); @@ -230,7 +231,8 @@ sub resolve_requested { my ($p) = @_; $state->{conflicts}{$p->fullname}{$pkg->id} = undef; #- all these packages should be removed. - push @{$state->{ask_remove}{$p->fullname}}, { conflicts => $file, pkg => $pkg }; + push @{$state->{ask_remove}{join '-', ($p->fullname)[0..2]}}, + { conflicts => $file, pkg => $pkg }; }); } elsif (my ($property, $name) = /^(([^\s\[]*).*)/) { $db->traverse_tag('whatprovides', [ $name ], sub { @@ -253,7 +255,8 @@ sub resolve_requested { push @properties, $best->id; } else { #- no package have been found, we need to remove the package examined. - push @{$state->{ask_remove}{$p->fullname}}, { conflicts => $property, pkg => $pkg }; + push @{$state->{ask_remove}{join '-', ($p->fullname)[0..2]}}, + { conflicts => $property, pkg => $pkg }; } } }); @@ -271,7 +274,7 @@ sub resolve_requested { } #- obsoleted packages are no longer marked as being asked to be removed. - delete @{$state->{ask_remove}}{keys %{$state->{obsoleted}}}; + delete @{$state->{ask_remove}}{map { /(.*)\.[^\.]*$/ && $1 } keys %{$state->{obsoleted}}}; } #- compute installed flags for all package in depslist. diff --git a/perl-URPM.spec b/perl-URPM.spec index b1dbd6d..f853635 100644 --- a/perl-URPM.spec +++ b/perl-URPM.spec @@ -1,7 +1,7 @@ %define name perl-URPM %define real_name URPM -%define version 0.04 -%define release 6mdk +%define version 0.05 +%define release 1mdk %{expand:%%define rpm_version %(rpm -q --queryformat '%{VERSION}-%{RELEASE}' rpm)} @@ -48,6 +48,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Fri Jun 28 2002 François Pons 0.05-1mdk +- fixed ask_remove not to contains arch. +- removed relocate_depslist (obsoleted). + * Wed Jun 26 2002 François Pons 0.04-6mdk - fixed work around of rpmlib where provides should be at left position of rpmRangesOverlap. -- cgit v1.2.1