diff options
author | Marc Espie <espie@cvs.openbsd.org> | 2005-08-16 21:48:35 +0000 |
---|---|---|
committer | Marc Espie <espie@cvs.openbsd.org> | 2005-08-16 21:48:35 +0000 |
commit | 6d97b0a1d78e8e84270ace450b5945a18e291776 (patch) | |
tree | da3276c41639b0b2e85ec412d36c81e5ee5bccfa | |
parent | 95d563a3c2d7e201cb8e541621269420b191fa15 (diff) |
big kludge that allows updating mozilla-thunderbird from 3.7 -> current.
okay pvalchev@
-rw-r--r-- | usr.sbin/pkg_add/pkg_add | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/usr.sbin/pkg_add/pkg_add b/usr.sbin/pkg_add/pkg_add index 12fe60dcc28..090f3600969 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.186 2005/08/16 20:05:12 espie Exp $ +# $OpenBSD: pkg_add,v 1.187 2005/08/16 21:48:34 espie Exp $ # # Copyright (c) 2003-2004 Marc Espie <espie@openbsd.org> # @@ -197,6 +197,19 @@ sub do_script $plist->get($name)->run($state, $args); } +sub thunderbird_special_case +{ + my $plist = shift; + for my $item (@{$plist->{items}}) { + next unless $item->IsFile(); + my $t = $item->{tempname}; + if (defined $t && $t =~ s/^(.*\/mozilla-thunderbird)\/extensions(.*)\/pkg\./$1\/pkg\./) { + rename $item->{tempname}, $t; + rmdir("$1/extensions$2"); + $item->{tempname} = $t; + } + } +} sub really_add($$) { @@ -292,6 +305,10 @@ sub really_add($$) for my $op (@toreplace) { OpenBSD::ProgressMeter::set_header($op->pkgname()." (deleting)"); $state->set_pkgname($op->pkgname()); + if (OpenBSD::PkgSpec::match("mozilla-thunderbird-<=1.0.2p0", + ($op->pkgname()))) { + thunderbird_special_case($plist); + } require OpenBSD::Delete; try { OpenBSD::Delete::delete_plist($op, $state); |