summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorJo-Philipp Wich <jo@mein.io>2019-06-20 21:02:06 +0200
committerJo-Philipp Wich <jo@mein.io>2019-09-04 13:18:24 +0200
commit193366ee23f862df6607ed1724b909c59e603fbc (patch)
tree304ca4faf39005a1c896f9bdf6ca783093996d7c /scripts
parent6e0bd490140fcdbf577cf35671bf68f537d19ecc (diff)
downloadopenwrt-193366ee23f862df6607ed1724b909c59e603fbc.tar.gz
openwrt-193366ee23f862df6607ed1724b909c59e603fbc.tar.bz2
openwrt-193366ee23f862df6607ed1724b909c59e603fbc.zip
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 27a4a71c240875e3fff868f26f723178bf94eb86)
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/package-metadata.pl12
1 files changed, 12 insertions, 0 deletions
diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl
index 27215f5e57..5abc1bdef3 100755
--- a/scripts/package-metadata.pl
+++ b/scripts/package-metadata.pl
@@ -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";
+ }
+ }
}
}