/[packages]/cauldron/packagekit/current/SOURCES/git-fixes.diff
ViewVC logotype

Contents of /cauldron/packagekit/current/SOURCES/git-fixes.diff

Parent Directory Parent Directory | Revision Log Revision Log


Revision 389214 - (show annotations) (download)
Thu Jan 17 21:30:27 2013 UTC (11 years, 3 months ago) by pterjan
File size: 3725 byte(s)
oops
1 diff --git a/backends/urpmi/helpers/urpmi-dispatched-backend.pl b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
2 index 7e97f85..94f8b9d 100755
3 --- a/backends/urpmi/helpers/urpmi-dispatched-backend.pl
4 +++ b/backends/urpmi/helpers/urpmi-dispatched-backend.pl
5 @@ -422,27 +422,20 @@ sub remove_packages {
6 my ($urpm, $args) = @_;
7
8 my $notfound = 0;
9 - my $notfound_callback = sub {
10 - $notfound = 1;
11 - };
12 + my $notfound_callback = sub { $notfound = 1 };
13
14 my $urpmi_lock = urpm::lock::urpmi_db($urpm, 'exclusive', wait => 1);
15
16 my $allowdeps_option = $args->[0] eq "yes" ? 1 : 0;
17 my @packageidstab = split(/&/, $args->[1]);
18
19 - my @names;
20 - foreach (@packageidstab) {
21 - my @pkg_id = split(/;/, $_);
22 - push @names, $pkg_id[0];
23 - }
24 + my @names = map { (split(/;/, $_))[0] } @packageidstab;
25
26 pk_print_status(PK_STATUS_ENUM_DEP_RESOLVE);
27
28 - my $state = {};
29 my @breaking_pkgs;
30 my @to_remove = urpm::select::find_packages_to_remove($urpm,
31 - $state,
32 + {},
33 \@names,
34 callback_notfound => $notfound_callback,
35 callback_fuzzy => $notfound_callback,
36 diff --git a/backends/urpmi/helpers/urpmi_backend/filters.pm b/backends/urpmi/helpers/urpmi_backend/filters.pm
37 index 8054a5c..7cd2c49 100644
38 --- a/backends/urpmi/helpers/urpmi_backend/filters.pm
39 +++ b/backends/urpmi/helpers/urpmi_backend/filters.pm
40 @@ -106,9 +106,18 @@ sub filter_free {
41 return 0 unless defined($media);
42
43 my $medianame = $media->{name};
44 - # FIXME: matching against media name is certainly not optimal,
45 - # better heuristics needed...
46 - my $free = $medianame !~ /non-free/i;
47 + my $free;
48 + if ($media->{mediacfg}) {
49 + my @media_types;
50 + my ($distribconf, $media_path) = @{$media->{mediacfg}};
51 + warn ">> (distribconf, media_path) = ($distribconf, $media_path)\n";
52 + @media_types = split(':', $distribconf->getvalue($media_path, 'media_type')) if $distribconf;
53 + $free = member('free', @media_types);
54 + } else {
55 + # FIXME: matching against media name is certainly not optimal,
56 + # better heuristics needed...
57 + $free = $medianame !~ /non-free/i;
58 + }
59
60 return 1 if $filter eq FILTER_FREE && $free;
61 return 1 if $filter eq FILTER_NOT_FREE && !$free;
62 diff --git a/backends/urpmi/helpers/urpmi_backend/tools.pm b/backends/urpmi/helpers/urpmi_backend/tools.pm
63 index de29353..0df20b1 100644
64 --- a/backends/urpmi/helpers/urpmi_backend/tools.pm
65 +++ b/backends/urpmi/helpers/urpmi_backend/tools.pm
66 @@ -100,13 +100,14 @@ sub vendor() {
67
68 sub get_package_id {
69 my ($pkg) = @_;
70 - return $pkg->name . ";" . $pkg->version . "-" . $pkg->release . ";" . $pkg->arch . vendor();
71 + return join(';', $pkg->name, $pkg->version . "-" . $pkg->release, $pkg->arch, vendor());
72 }
73
74 +# From Rpmdrake::formatting:
75 sub pkg2medium {
76 my ($p, $urpm) = @_;
77 return if !ref $p;
78 - return { name => N("None (installed)") } if !$p->id; # if installed
79 + return { name => N("None (installed)") } if !defined($p->id); # if installed
80 URPM::pkg2media($urpm->{media}, $p) || undef;
81 }
82
83 @@ -115,7 +116,7 @@ sub fullname_to_package_id {
84 my ($pkg_string) = @_;
85 chomp($pkg_string);
86 if ($pkg_string =~ /^(.*)-([^-]*)-([^-]*)\.([^\.]*)$/) {
87 - return $1 . $2 . $3 . $4 . vendor();
88 + return join(';', $1, $2, $3, $4, vendor());
89 }
90 }
91
92 @@ -160,11 +161,9 @@ sub get_installed_fullname_pkid {
93 my $pkgname = $pkg->name;
94 my $db = open_rpm_db();
95 my $installed_pkid;
96 - $db->traverse(sub {
97 + $db->traverse_tag_find('name', $pkgname, sub {
98 my ($pkg) = @_;
99 - if ($pkg->name =~ /^$pkgname$/) {
100 - $installed_pkid = get_package_id($pkg);
101 - }
102 + $installed_pkid = get_package_id($pkg);
103 });
104 return $installed_pkid;
105 }

  ViewVC Help
Powered by ViewVC 1.1.30