summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_add/OpenBSD/Update.pm
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pkg_add/OpenBSD/Update.pm')
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Update.pm23
1 files changed, 8 insertions, 15 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/Update.pm b/usr.sbin/pkg_add/OpenBSD/Update.pm
index 89197ef71ad..669092c45e1 100644
--- a/usr.sbin/pkg_add/OpenBSD/Update.pm
+++ b/usr.sbin/pkg_add/OpenBSD/Update.pm
@@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
-# $OpenBSD: Update.pm,v 1.120 2009/12/24 14:06:43 espie Exp $
+# $OpenBSD: Update.pm,v 1.121 2009/12/26 16:58:55 espie Exp $
#
# Copyright (c) 2004-2006 Marc Espie <espie@openbsd.org>
#
@@ -77,23 +77,12 @@ sub progress_message
$state->say($msg) if $state->verbose >= 2;
}
-my $first = 1;
sub process_handle
{
my ($self, $set, $h, $state) = @_;
my $pkgname = $h->pkgname;
if ($pkgname =~ m/^\.libs\d*\-/o) {
- if ($first) {
- $state->say("Not updating .libs*, remember to clean them");
- $first = 0;
- }
- return 0;
- }
- if ($pkgname =~ m/^partial\-/o) {
- $state->say("Not updating $pkgname, remember to clean it");
- $h->{update_found} = $h;
- $set->move_kept($h);
return 0;
}
@@ -113,7 +102,11 @@ sub process_handle
}
my @search = ();
- push(@search, OpenBSD::Search::Stem->split($pkgname));
+
+ my $sname = $pkgname;
+ while ($sname =~ s/^partial\-//o) {
+ }
+ push(@search, OpenBSD::Search::Stem->split($sname));
eval {
$state->quirks->tweak_search(\@search, $h, $state);
@@ -126,13 +119,13 @@ sub process_handle
# conflict should be enough to "match".
for my $n ($set->newer) {
if ($n->location->update_info->match_pkgpath($plist) &&
- $n->plist->conflict_list->conflicts_with($pkgname)) {
+ $n->plist->conflict_list->conflicts_with($sname)) {
$self->add_handle($set, $h, $n);
return 1;
}
}
if (!$state->{defines}->{downgrade}) {
- push(@search, OpenBSD::Search::FilterLocation->more_recent_than($pkgname, \$oldfound));
+ push(@search, OpenBSD::Search::FilterLocation->more_recent_than($sname, \$oldfound));
}
push(@search, OpenBSD::Search::FilterLocation->new(
sub {