aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--rpmtools.pm15
-rw-r--r--rpmtools.spec6
2 files changed, 13 insertions, 8 deletions
diff --git a/rpmtools.pm b/rpmtools.pm
index 738aab5..7843604 100644
--- a/rpmtools.pm
+++ b/rpmtools.pm
@@ -253,7 +253,7 @@ sub compute_depslist {
}
#- setup, filesystem and basesystem should be at the beginning.
@ordered{qw(ldconfig readline termcap libtermcap bash sash glibc setup filesystem basesystem)} =
- (100000, 90000, 80000, 70000, 60000, 50000, 40000, 30000, 20000, 10000);
+ (100000, 90000, 80000, 70000, 60000, 50000, 40000, 30000, 20000, 10000);
#- compute base flag, consists of packages which are required without
#- choices of basesystem and are ALWAYS installed. these packages can
@@ -276,8 +276,7 @@ sub compute_depslist {
#- recompute requires to use packages id, drop any base packages or
#- reference of a package to itself.
foreach my $pkg (sort { $a->{id} <=> $b->{id} } @info) {
- my %requires_id;
- my @requires_id;
+ my ($id, $base, %requires_id, @requires_id);
foreach (@{$pkg->{requires}}) {
if (ref $_) {
#- all choices are grouped together at the end of requires,
@@ -296,15 +295,16 @@ sub compute_depslist {
#- if a base package is in a list, keep it instead of the choice.
if (@choices_base_id) {
- $_ = $choices_base_id[0];
+ ($id, $base) = ($choices_base_id[0], 1);
} else {
push @requires_id, \@choices_id;
next;
}
+ } else {
+ ($id, $base) = $params->{info}{$_} ? ($params->{info}{$_}{id}, exists $params->{info}{$_}{base}) : ($_, 0);
}
#- select individual package.
- my ($id, $base) = $params->{info}{$_} ? ($params->{info}{$_}{id}, exists $params->{info}{$_}{base}) : ($_, 0);
$base &&= $params->{use_base_flag} && $pkg->{name} ne 'basesystem';
$requires_id{$id} = $_;
$id == $pkg->{id} || $base or push @requires_id, $id;
@@ -367,8 +367,9 @@ sub relocate_depslist {
#- is multiply defined and this should be fixed.
#- first correct info hash, then a second pass on depslist
#- is required to relocate its entries.
- my $cmp_version = version_compare($_->{version}, $params->{info}{$_->{name}});
- if ($cmp_version > 0 || $cmp_version == 0 && version_compare($_->{release}, $params->{info}{$_->{name}}) > 0) {
+ my $cmp_version = version_compare($_->{version}, $params->{info}{$_->{name}}{version});
+ if ($cmp_version > 0 ||
+ $cmp_version == 0 && version_compare($_->{release}, $params->{info}{$_->{name}}{release}) > 0) {
$params->{info}{$_->{name}} = $_;
++$relocated_entries;
}
diff --git a/rpmtools.spec b/rpmtools.spec
index bf4609b..cf08ba4 100644
--- a/rpmtools.spec
+++ b/rpmtools.spec
@@ -1,5 +1,5 @@
%define name rpmtools
-%define release 9mdk
+%define release 10mdk
# do not modify here, see Makefile in the CVS
%define version 2.1
@@ -51,6 +51,10 @@ rm -rf $RPM_BUILD_ROOT
%{_libdir}/perl5/man/*/*
%changelog
+* Tue Jan 30 2001 François Pons <fpons@ackbar.mandrakesoft.com> 2.1-10mdk
+- fixed bug of NOTFOUND_6 in depslist computation.
+- fixed depslist relocation bug.
+
* Tue Jan 23 2001 François Pons <fpons@ackbar.mandrakesoft.com> 2.1-9mdk
- packdrake.pm to 0.03, added source directory for building an archive.
- changed build_archive to use a specific directory.