Skip to content

Commit

Permalink
Merge pull request #9474 from mlschroe/master
Browse files Browse the repository at this point in the history
[backend] buildinfo expansion: translate ldep repodata to testcase format
  • Loading branch information
mlschroe committed Apr 30, 2020
2 parents c5ffd88 + 74d85d3 commit 440f364
Show file tree
Hide file tree
Showing 2 changed files with 33 additions and 12 deletions.
37 changes: 28 additions & 9 deletions src/backend/BSRepServer/Checker.pm
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package BSRepServer::Checker;

use BSRPC ':https';
use Build;
use Build::Rpm;

use strict;

Expand Down Expand Up @@ -88,6 +89,31 @@ sub setup {
$ctx->{'conf'} = $bconf;
}

sub depstotestcaseformat {
my ($d) = @_;
for my $dep (@$d) {
$dep = Build::Rpm::testcaseformat($dep) if $dep =~ /^\(/s;
}
}

sub addldeprepo {
my ($pool, $bconf, $ldepfile) = @_;
my $data = {};
Build::readdeps({ %$bconf }, $data, $ldepfile);
# repofromdata expects testcase format, so convert rich dependencies
if (defined &Build::Rpm::testcaseformat) {
for my $p (values %$data) {
for ('requires', 'conflicts', 'recommends', 'supplements') {
depstotestcaseformat($p->{$_}) if $p->{$_};
}
}
}
delete $data->{'/url'};
delete $data->{'/external/'};
my $r = $pool->repofromdata('', $data);
die("ldepfile repo add failed\n") unless $r;
}

sub preparepool {
my ($ctx, $pname, $ldepfile) = @_;

Expand All @@ -100,20 +126,13 @@ sub preparepool {
$pool->setmodules($bconf->{'modules'}) if $bconf->{'modules'} && defined &BSSolv::pool::setmodules;
$ctx->{'pool'} = $pool;

if ($ldepfile) {
my $data = {};
Build::readdeps({ %$bconf }, $data, $ldepfile);
delete $data->{'/url'};
delete $data->{'/external/'};
my $r = $ctx->{pool}->repofromdata('', $data);
die("ldepfile repo add failed\n") unless $r;
}

addldeprepo($pool, $bconf, $ldepfile) if $ldepfile;
my $prpsearchpath = $ctx->{'prpsearchpath'};
for my $rprp (@$prpsearchpath) {
$ctx->addrepo($pool, $rprp, $myarch);
}
$pool->createwhatprovides();

my %dep2src;
my %dep2pkg;
my %subpacks;
Expand Down
8 changes: 5 additions & 3 deletions src/backend/BSSched/Checker.pm
Original file line number Diff line number Diff line change
Expand Up @@ -512,9 +512,11 @@ sub expandandsort {
my $bconf = $ctx->{'conf'};
my $repo = $ctx->{'repo'};
if ($bconf->{'expandflags:preinstallexpand'}) {
return ('broken', 'Build::expandpreinstalls does not exist') unless defined &Build::expandpreinstalls;
my $err = Build::expandpreinstalls($bconf);
return ('broken', "unresolvable $err") if $err;
if ($gctx->{'arch'} ne 'local' || !defined($BSConfig::localarch)) {
return ('broken', 'Build::expandpreinstalls does not exist') unless defined &Build::expandpreinstalls;
my $err = Build::expandpreinstalls($bconf);
return ('broken', "unresolvable $err") if $err;
}
}
my $projpacks = $gctx->{'projpacks'};
my $pdatas = $projpacks->{$projid}->{'package'} || {};
Expand Down

0 comments on commit 440f364

Please sign in to comment.