aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancois Pons <fpons@mandriva.com>2002-06-28 08:44:23 +0000
committerFrancois Pons <fpons@mandriva.com>2002-06-28 08:44:23 +0000
commitc1a17c783ad0accd7f7434500bbf2725972631e4 (patch)
treef87ce2c06a9adb55008b1b97487bb1ebec9cbab3
parent1681c5cab2a0c47a3d38dad85e4835edd4fcba77 (diff)
downloadperl-URPM-c1a17c783ad0accd7f7434500bbf2725972631e4.tar
perl-URPM-c1a17c783ad0accd7f7434500bbf2725972631e4.tar.gz
perl-URPM-c1a17c783ad0accd7f7434500bbf2725972631e4.tar.bz2
perl-URPM-c1a17c783ad0accd7f7434500bbf2725972631e4.tar.xz
perl-URPM-c1a17c783ad0accd7f7434500bbf2725972631e4.zip
0.05-1mdk
-rw-r--r--URPM.pm52
-rw-r--r--URPM/Resolve.pm11
-rw-r--r--perl-URPM.spec8
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 <fpons@mandrakesoft.com> 0.05-1mdk
+- fixed ask_remove not to contains arch.
+- removed relocate_depslist (obsoleted).
+
* Wed Jun 26 2002 François Pons <fpons@mandrakesoft.com> 0.04-6mdk
- fixed work around of rpmlib where provides should be at
left position of rpmRangesOverlap.