Skip to content

Commit

Permalink
- support new kiwi feature, indirect required profiles on dependency …
Browse files Browse the repository at this point in the history
…parsing
  • Loading branch information
adrianschroeter committed Apr 12, 2018
1 parent 45f7f3e commit cecd3bf
Showing 1 changed file with 12 additions and 5 deletions.
17 changes: 12 additions & 5 deletions Build/Kiwi.pm
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,9 @@ sub kiwiparse {
$ret->{'name'} = $description->{'specification'}->[0]->{'_content'};
}

# do obsprofiles arch filtering
# usedprofiles also include direct wanted profile targets and indirect required profiles
my %usedprofiles;
# obsprofiles arch filtering
if ($obsprofiles && $arch && $kiwi->{'profiles'} && $kiwi->{'profiles'}->[0]->{'profile'}) {
my %obsprofiles = map {$_ => 1} @$obsprofiles;
for my $prof (@{$kiwi->{'profiles'}[0]->{'profile'}}) {
Expand All @@ -114,6 +116,13 @@ sub kiwiparse {
}
}
$obsprofiles = [ grep {$obsprofiles{$_}} @$obsprofiles ];
for my $prof (@{$kiwi->{'profiles'}[0]->{'profile'}}) {
next unless $obsprofiles{$prof->{'name'}};
$usedprofiles{$prof->{'name'}} = 1;
for my $req (@{$prof->{'requires'}}) {
$usedprofiles{$req->{'profile'}} = 1;
};
}
}

# take default version setting
Expand All @@ -124,8 +133,7 @@ sub kiwiparse {
my $containerconfig;
for my $pref (@{$preferences || []}) {
if ($obsprofiles && $pref->{'profiles'}) {
my %obsprofiles = map {$_ => 1} @$obsprofiles;
next unless grep {$obsprofiles{$_}} split(",", $pref->{'profiles'});
next unless grep {$usedprofiles{$_}} split(",", $pref->{'profiles'});
}
for my $type (@{$pref->{'type'} || []}) {
next unless @{$pref->{'type'}} == 1 || !$type->{'optional'};
Expand Down Expand Up @@ -274,10 +282,9 @@ sub kiwiparse {
# we could skip the sections also when no profile is used,
# but don't to stay backward compatible
if ($obsprofiles && $packages->{'profiles'}) {
my %obsprofiles = map {$_ => 1} @$obsprofiles;
my @section_profiles = split(",", $packages->{'profiles'});

next unless grep {$obsprofiles{$_}} @section_profiles;
next unless grep {$usedprofiles{$_}} @section_profiles;
}

$patterntype ||= $packages->{'patternType'};
Expand Down

0 comments on commit cecd3bf

Please sign in to comment.