summaryrefslogtreecommitdiff
path: root/usr.sbin/pkg_add
diff options
context:
space:
mode:
Diffstat (limited to 'usr.sbin/pkg_add')
-rw-r--r--usr.sbin/pkg_add/OpenBSD/CollisionReport.pm4
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PackageInfo.pm28
-rw-r--r--usr.sbin/pkg_add/OpenBSD/PkgSpec.pm3
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Replace.pm6
-rw-r--r--usr.sbin/pkg_add/OpenBSD/Update.pm4
-rw-r--r--usr.sbin/pkg_add/pkg_add4
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;
}