aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--NEWS2
-rw-r--r--Rpmdrake/gui.pm5
-rw-r--r--Rpmdrake/pkg.pm38
3 files changed, 11 insertions, 34 deletions
diff --git a/NEWS b/NEWS
index 48248f21..53f3099d 100644
--- a/NEWS
+++ b/NEWS
@@ -1,5 +1,3 @@
-- pkgs list contains only latest updates, not all of them, so
- filters and backport list have been managed accordingly (fix mga#12766)
- edit-urpm-sources:
o fix crashing when canceling browsing custom media path (mga#13268)
o fix down arrow button not working (mga#13572)
diff --git a/Rpmdrake/gui.pm b/Rpmdrake/gui.pm
index 2ecdc21b..29724779 100644
--- a/Rpmdrake/gui.pm
+++ b/Rpmdrake/gui.pm
@@ -647,12 +647,9 @@ sub pkgs_provider {
installed => $h->{installed},
all => [ keys %$pkgs ],
);
- #anaselli NOTE $all_pkgs contains only latest updates, not all of them.
- # Moreover only if backports are enabled those are offered,
- # so non needs to remove inactive_backports from all packages
my %tmp_filter_methods = (
all => sub {
- [ keys %$pkgs ];
+ [ difference2([ keys %$pkgs ], $h->{inactive_backports}) ];
},
all_updates => sub {
# potential "updates" from media not tagged as updates:
diff --git a/Rpmdrake/pkg.pm b/Rpmdrake/pkg.pm
index 72d6bfaf..e9229b86 100644
--- a/Rpmdrake/pkg.pm
+++ b/Rpmdrake/pkg.pm
@@ -518,18 +518,21 @@ sub get_pkgs {
$urpm->{rpmdrake_state} = $state; #- Don't forget it
$gurpm->progress($level = 0.7);
- #anaselli NOTE $all_pkgs contains only latest updates, not all of them
- # but that has some issues on backports, and the old management,
- # such as filters for instance, let's set backport first then, and
- # only if they are enabled
my %l;
reset_pbar_count(1);
+ foreach my $pkg (@{$urpm->{depslist}}) {
+ update_pbar($gurpm);
+ $pkg->flag_upgrade or next;
+ my $key = $pkg->name . $pkg->arch;
+ $l{$key} = $pkg if !$l{$key} || $l{$key}->compare($pkg);
+ }
+ my @installable_pkgs = map { my $n = $_->fullname; $all_pkgs{$n} = { pkg => $_ }; $n } values %l;
+ undef %l;
+
my @inactive_backports;
my @active_backports;
my @backport_medias = get_backport_media($urpm);
- my @depslist = @{$urpm->{depslist}};
- my $removed = 0;
foreach my $medium (@backport_medias) {
update_pbar($gurpm);
@@ -546,30 +549,9 @@ sub get_pkgs {
$pkg->flag_upgrade or next;
my $name = $pkg->fullname;
push @$backports, $name;
- if (!$medium->{searchmedia}) {
- # active_backports
- my $key = $pkg->name . $pkg->arch;
- if (!$l{$key} || ($l{$key}->fullname lt $pkg->fullname)) {
- $l{$key} = $pkg ;
- #anaselli letting the is_backport_flag
- $all_pkgs{$name} = { pkg => $pkg, is_backport => 1 };
- }
- }
- # removing from list so that only updates will be added later
- splice @depslist, $pkg_id-$removed, 1;
- $removed++;
+ $all_pkgs{$name} = { pkg => $pkg, is_backport => 1 };
}
}
- foreach my $pkg (@depslist) {
- update_pbar($gurpm);
- $pkg->flag_upgrade or next;
- my $key = $pkg->name . $pkg->arch;
- my $name = $pkg->fullname;
- $l{$key} = $pkg if !$l{$key} || ($l{$key}->fullname lt $pkg->fullname);
- }
- my @installable_pkgs = map { my $n = $_->fullname; $all_pkgs{$n} = { pkg => $_ }; $n } values %l;
- undef %l;
-
my @updates = @requested;
# selecting updates by default but skipped ones (MageiaUpdate only):
foreach (@requested_strict) {