metadata: handle ABI version rebuild tracking for transient dependencies

Extend the packageauxvars database to keep a list of possible package
dependencies for each provider, then utilize this information in buildroot
to resolve the ABI version dependencies of dependent packages up to five
levels deep.

This should properly trigger rebuilds for packages indirectly depending
on other packages whose ABI_VERSION changed.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 27a4a71c24)
This commit is contained in:
Jo-Philipp Wich
2019-06-20 21:02:06 +02:00
parent 6e0bd49014
commit 193366ee23
2 changed files with 33 additions and 9 deletions

View File

@@ -547,6 +547,18 @@ sub gen_package_auxiliary() {
print "Package/$n/abiversion = $abiv\n";
}
}
my %depends;
foreach my $dep (@{$pkg->{depends} || []}) {
if ($dep =~ m!^\+?(?:[^:]+:)?([^@]+)$!) {
$depends{$1}++;
}
}
my @depends = sort keys %depends;
if (@depends > 0) {
foreach my $n (@{$pkg->{provides}}) {
print "Package/$n/depends = @depends\n";
}
}
}
}