diff options
Diffstat (limited to 'usr.sbin/pkg_add')
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/CollisionReport.pm | 4 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PackageInfo.pm | 28 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/PkgSpec.pm | 3 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Replace.pm | 6 | ||||
-rw-r--r-- | usr.sbin/pkg_add/OpenBSD/Update.pm | 4 | ||||
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 4 |
6 files changed, 34 insertions, 15 deletions
diff --git a/usr.sbin/pkg_add/OpenBSD/CollisionReport.pm b/usr.sbin/pkg_add/OpenBSD/CollisionReport.pm index e1657d2ee56..5f58b0a9f52 100644 --- a/usr.sbin/pkg_add/OpenBSD/CollisionReport.pm +++ b/usr.sbin/pkg_add/OpenBSD/CollisionReport.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: CollisionReport.pm,v 1.13 2007/06/04 14:40:39 espie Exp $ +# $OpenBSD: CollisionReport.pm,v 1.14 2007/06/09 11:16:54 espie Exp $ # # Copyright (c) 2003-2006 Marc Espie <espie@openbsd.org> # @@ -76,7 +76,7 @@ sub collision_report($$) if ($pkg =~ m/^(?:partial\-|borked\.\d+$)/o) { $clueless_bat = $pkg; } - if ($pkg =~ m/^\.libs-*$/o) { + if ($pkg =~ m/^\.libs\d*-*$/o) { $clueless_bat2 = $pkg; } } diff --git a/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm b/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm index 068f5f6ee9c..371b6d7d0a5 100644 --- a/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm +++ b/usr.sbin/pkg_add/OpenBSD/PackageInfo.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PackageInfo.pm,v 1.33 2007/06/04 14:40:39 espie Exp $ +# $OpenBSD: PackageInfo.pm,v 1.34 2007/06/09 11:16:54 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -124,16 +124,32 @@ sub installed_contents sub borked_package { - my $pkgname = $_[0]; - unless (-e "$pkg_db/partial-$pkgname") { - return "partial-$pkgname"; + my $pkgname = shift; + $pkgname = "partial-$pkgname" unless $pkgname =~ m/^partial\-/; + unless (-e "$pkg_db/$pkgname") { + return $pkgname; } my $i = 1; - while (-e "$pkg_db/partial-$pkgname.$i") { + while (-e "$pkg_db/$pkgname.$i") { $i++; } - return "partial-$pkgname.$i"; + return "$pkgname.$i"; +} + +sub libs_package +{ + my $pkgname = shift; + $pkgname =~ s/^\.libs\d*\-//; + unless (-e "$pkg_db/.libs-$pkgname") { + return ".libs-$pkgname"; + } + my $i = 1; + + while (-e "$pkg_db/.libs$i-$pkgname") { + $i++; + } + return ".libs$i-$pkgname"; } sub is_installed diff --git a/usr.sbin/pkg_add/OpenBSD/PkgSpec.pm b/usr.sbin/pkg_add/OpenBSD/PkgSpec.pm index d8795327e10..ea1b19b8184 100644 --- a/usr.sbin/pkg_add/OpenBSD/PkgSpec.pm +++ b/usr.sbin/pkg_add/OpenBSD/PkgSpec.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: PkgSpec.pm,v 1.15 2007/06/04 20:48:23 espie Exp $ +# $OpenBSD: PkgSpec.pm,v 1.16 2007/06/09 11:16:54 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -174,6 +174,7 @@ sub subpattern_match $stemspec =~ s/\+/\\\+/go; $stemspec =~ s/\*/\.\*/go; $stemspec =~ s/\?/\./go; + $stemspec =~ s/^(\\\.libs)\-/$1\\d*\-/go; $vspec =~ s/\./\\\./go; $vspec =~ s/\+/\\\+/go; $vspec =~ s/\*/\.\*/go; diff --git a/usr.sbin/pkg_add/OpenBSD/Replace.pm b/usr.sbin/pkg_add/OpenBSD/Replace.pm index 5e85ec86998..b64aa60b27f 100644 --- a/usr.sbin/pkg_add/OpenBSD/Replace.pm +++ b/usr.sbin/pkg_add/OpenBSD/Replace.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: Replace.pm,v 1.38 2007/06/09 10:30:53 espie Exp $ +# $OpenBSD: Replace.pm,v 1.39 2007/06/09 11:16:54 espie Exp $ # # Copyright (c) 2004-2006 Marc Espie <espie@openbsd.org> # @@ -376,7 +376,9 @@ sub split_libs (my $splitted, $plist) = split_some_libs($plist, $to_split); - $splitted->set_pkgname(".libs-".$plist->pkgname); + require OpenBSD::PackageInfo; + + $splitted->set_pkgname(OpenBSD::PackageInfo::libs_package($plist->pkgname)); if (defined $plist->{'no-default-conflict'}) { # we conflict with the package we just removed... diff --git a/usr.sbin/pkg_add/OpenBSD/Update.pm b/usr.sbin/pkg_add/OpenBSD/Update.pm index f3dd40af440..5833d8468bb 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.79 2007/06/04 14:40:39 espie Exp $ +# $OpenBSD: Update.pm,v 1.80 2007/06/09 11:16:54 espie Exp $ # # Copyright (c) 2004-2006 Marc Espie <espie@openbsd.org> # @@ -57,7 +57,7 @@ sub add2updates sub process_package { my ($self, $pkgname, $state) = @_; - if ($pkgname =~ m/^(?:\.libs|partial)\-/o) { + if ($pkgname =~ m/^(?:\.libs\d*|partial)\-/o) { $state->progress->clear; print "Not updating $pkgname, remember to clean it\n"; return; diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index 952d3cbae76..3164b6ea27c 100644 --- a/usr.sbin/pkg_add/pkg_add +++ b/usr.sbin/pkg_add/pkg_add @@ -1,7 +1,7 @@ #! /usr/bin/perl # ex:ts=8 sw=4: -# $OpenBSD: pkg_add,v 1.314 2007/06/09 10:30:53 espie Exp $ +# $OpenBSD: pkg_add,v 1.315 2007/06/09 11:16:54 espie Exp $ # # Copyright (c) 2003-2007 Marc Espie <espie@openbsd.org> # @@ -742,7 +742,7 @@ sub uses_old_libs my $plist = shift; require OpenBSD::RequiredBy; - return grep {/^\.libs\-/o} + return grep {/^\.libs\d*\-/o} OpenBSD::Requiring->new($plist->pkgname)->list; } |