share MULTI_PACKAGES.
simplify the default case (SUBPACKAGE=-main).
This commit is contained in:
parent
106788a9a6
commit
fb0691e921
@ -1,5 +1,5 @@
|
|||||||
# ex:ts=8 sw=4:
|
# ex:ts=8 sw=4:
|
||||||
# $OpenBSD: PkgPath.pm,v 1.17 2011/11/07 13:23:09 espie Exp $
|
# $OpenBSD: PkgPath.pm,v 1.18 2011/11/07 16:03:19 espie Exp $
|
||||||
#
|
#
|
||||||
# Copyright (c) 2010 Marc Espie <espie@openbsd.org>
|
# Copyright (c) 2010 Marc Espie <espie@openbsd.org>
|
||||||
#
|
#
|
||||||
@ -39,8 +39,12 @@ sub create
|
|||||||
for my $v (@list) {
|
for my $v (@list) {
|
||||||
if ($v =~ m/^\-/) {
|
if ($v =~ m/^\-/) {
|
||||||
die "$fullpkgpath has >1 multi\n"
|
die "$fullpkgpath has >1 multi\n"
|
||||||
if defined $o->{m};
|
if exists $o->{m};
|
||||||
$o->{m} = $v;
|
if ($v eq '-main') {
|
||||||
|
$o->{m} = undef;
|
||||||
|
} else {
|
||||||
|
$o->{m} = $v;
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
# XXX rely on stuff existing, no need to spring
|
# XXX rely on stuff existing, no need to spring
|
||||||
# an empty hash into existence
|
# an empty hash into existence
|
||||||
@ -101,6 +105,8 @@ sub fullpkgpath
|
|||||||
my @list = $self->basic_list;
|
my @list = $self->basic_list;
|
||||||
if (defined $self->{m}) {
|
if (defined $self->{m}) {
|
||||||
push(@list, $self->{m});
|
push(@list, $self->{m});
|
||||||
|
} elsif (exists $self->{m}) {
|
||||||
|
push(@list, '-main');
|
||||||
}
|
}
|
||||||
return join (',', @list);
|
return join (',', @list);
|
||||||
}
|
}
|
||||||
@ -111,6 +117,18 @@ sub pkgpath
|
|||||||
return $self->{p};
|
return $self->{p};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub multi
|
||||||
|
{
|
||||||
|
my $self = shift;
|
||||||
|
if (defined $self->{m}) {
|
||||||
|
return $self->{m};
|
||||||
|
} elsif (exists $self->{m}) {
|
||||||
|
return '-main';
|
||||||
|
} else {
|
||||||
|
return undef;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
sub logname
|
sub logname
|
||||||
{
|
{
|
||||||
&fullpkgpath;
|
&fullpkgpath;
|
||||||
@ -225,8 +243,8 @@ sub handle_equivalences
|
|||||||
sub zap_default
|
sub zap_default
|
||||||
{
|
{
|
||||||
my ($self, $subpackage) = @_;
|
my ($self, $subpackage) = @_;
|
||||||
return $self unless defined $subpackage and defined $self->{m};
|
return $self unless defined $subpackage and defined $self->multi;
|
||||||
if ($subpackage->string eq $self->{m}) {
|
if ($subpackage->string eq $self->multi) {
|
||||||
my $o = bless {p => $self->{p}}, ref($self);
|
my $o = bless {p => $self->{p}}, ref($self);
|
||||||
if (defined $self->{f}) {
|
if (defined $self->{f}) {
|
||||||
$o->{f} = $self->{f};
|
$o->{f} = $self->{f};
|
||||||
@ -244,7 +262,7 @@ sub handle_default_flavor
|
|||||||
if (!defined $self->{f}) {
|
if (!defined $self->{f}) {
|
||||||
my $m = bless { p => $self->{p},
|
my $m = bless { p => $self->{p},
|
||||||
f => $self->{info}{FLAVOR}}, ref($self);
|
f => $self->{info}{FLAVOR}}, ref($self);
|
||||||
if (defined $self->{m}) {
|
if (exists $self->{m}) {
|
||||||
$m->{m} = $self->{m};
|
$m->{m} = $self->{m};
|
||||||
}
|
}
|
||||||
$m = $m->may_create($self, $h);
|
$m = $m->may_create($self, $h);
|
||||||
@ -288,6 +306,7 @@ sub merge_depends
|
|||||||
{
|
{
|
||||||
my ($class, $h) = @_;
|
my ($class, $h) = @_;
|
||||||
my $global = bless {}, "AddDepends";
|
my $global = bless {}, "AddDepends";
|
||||||
|
my $multi;
|
||||||
for my $v (values %$h) {
|
for my $v (values %$h) {
|
||||||
my $info = $v->{info};
|
my $info = $v->{info};
|
||||||
if (defined $info->{DIST}) {
|
if (defined $info->{DIST}) {
|
||||||
@ -296,6 +315,10 @@ sub merge_depends
|
|||||||
bless $info->{FDEPENDS}, "AddDepends";
|
bless $info->{FDEPENDS}, "AddDepends";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
# share !
|
||||||
|
if (defined $info->{MULTI_PACKAGES}) {
|
||||||
|
$multi = $info->{MULTI_PACKAGES};
|
||||||
|
}
|
||||||
# XXX don't grab dependencies for IGNOREd stuff
|
# XXX don't grab dependencies for IGNOREd stuff
|
||||||
next if defined $info->{IGNORE};
|
next if defined $info->{IGNORE};
|
||||||
|
|
||||||
@ -321,10 +344,14 @@ sub merge_depends
|
|||||||
}
|
}
|
||||||
if (values %$global > 0) {
|
if (values %$global > 0) {
|
||||||
for my $v (values %$h) {
|
for my $v (values %$h) {
|
||||||
my $info = $v->{info};
|
|
||||||
# remove stuff that depends on itself
|
# remove stuff that depends on itself
|
||||||
delete $global->{$v};
|
delete $global->{$v};
|
||||||
$info->{DEPENDS} = $global;
|
$v->{info}{DEPENDS} = $global;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (defined $multi) {
|
||||||
|
for my $v (values %$h) {
|
||||||
|
$v->{info}{MULTI_PACKAGES} = $multi;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user