[OpenWrt-Devel] [PATCH 04/15] metadata: move 'builddepends' from binary to source packages

Matthias Schiffer mschiffer at universe-factory.net
Mon Jan 8 09:52:17 EST 2018


Signed-off-by: Matthias Schiffer <mschiffer at universe-factory.net>
---
 scripts/feeds               | 20 +++++++++++---------
 scripts/metadata.pm         |  6 +++---
 scripts/package-metadata.pl | 16 +++++++---------
 3 files changed, 21 insertions(+), 21 deletions(-)

diff --git a/scripts/feeds b/scripts/feeds
index 42f7b3b116..31481edcb1 100755
--- a/scripts/feeds
+++ b/scripts/feeds
@@ -525,15 +525,17 @@ sub install_package {
 	};
 
 	# install all dependencies referenced from the source package
-	foreach my $vpkg (@{$feed_src->{$src}->{packages}}) {
-		foreach my $dep (@{$vpkg->{depends}}, @{$vpkg->{builddepends}}, @{$vpkg->{"builddepends/host"}}) {
-			next if $dep =~ /@/;
-			$dep =~ s/^\+//;
-			$dep =~ s/^.+://;
-			$dep =~ s/\/.+$//;
-			next unless $dep;
-			install_package($feed, $dep, 0) == 0 or $ret = 1;
-		}
+	foreach my $dep (
+		@{$feed_src->{$src}->{builddepends}},
+		@{$feed_src->{$src}->{"builddepends/host"}},
+		map { @{$_->{depends}} } @{$feed_src->{$src}->{packages}}
+	) {
+		next if $dep =~ /@/;
+		$dep =~ s/^\+//;
+		$dep =~ s/^.+://;
+		$dep =~ s/\/.+$//;
+		next unless $dep;
+		install_package($feed, $dep, 0) == 0 or $ret = 1;
 	}
 
 	return $ret;
diff --git a/scripts/metadata.pm b/scripts/metadata.pm
index 985e6237a6..c150b547f1 100644
--- a/scripts/metadata.pm
+++ b/scripts/metadata.pm
@@ -215,6 +215,7 @@ sub parse_package_metadata($) {
 			$srcpackage{$src} = {
 				packages => [],
 				buildtypes => [],
+				builddepends => [],
 			};
 			$override = "";
 			undef $pkg;
@@ -234,7 +235,6 @@ sub parse_package_metadata($) {
 			$pkg->{title} = "";
 			$pkg->{depends} = [];
 			$pkg->{mdepends} = [];
-			$pkg->{builddepends} = [];
 			$pkg->{subdir} = $subdir;
 			$pkg->{tristate} = 1;
 			$pkg->{override} = $override;
@@ -258,6 +258,8 @@ sub parse_package_metadata($) {
 			/^Feature-Description:/ and $feature->{description} = get_multiline(\*FILE, "\t\t\t");
 			next;
 		};
+		/^Build-Depends: \s*(.+)\s*$/ and $srcpackage{$src}->{builddepends} = [ split /\s+/, $1 ];
+		/^Build-Depends\/(\w+): \s*(.+)\s*$/ and $srcpackage{$src}->{"builddepends/$1"} = [ split /\s+/, $2 ];
 		/^Build-Types:\s*(.+)\s*$/ and $srcpackage{$src}->{buildtypes} = [ split /\s+/, $1 ];
 		next unless $pkg;
 		/^Version: \s*(.+)\s*$/ and $pkg->{version} = $1;
@@ -289,8 +291,6 @@ sub parse_package_metadata($) {
 		/^Build-Variant: \s*([\w\-]+)\s*/ and $pkg->{variant} = $1;
 		/^Default-Variant: .*/ and $pkg->{variant_default} = 1;
 		/^Build-Only: \s*(.+)\s*$/ and $pkg->{buildonly} = 1;
-		/^Build-Depends: \s*(.+)\s*$/ and $pkg->{builddepends} = [ split /\s+/, $1 ];
-		/^Build-Depends\/(\w+): \s*(.+)\s*$/ and $pkg->{"builddepends/$1"} = [ split /\s+/, $2 ];
 		/^Repository:\s*(.+?)\s*$/ and $pkg->{repository} = $1;
 		/^Category: \s*(.+)\s*$/ and do {
 			$pkg->{category} = $1;
diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl
index 08c2343ade..a6cff40696 100755
--- a/scripts/package-metadata.pl
+++ b/scripts/package-metadata.pl
@@ -446,20 +446,18 @@ sub gen_package_mk() {
 			print "buildtypes-$pkg->{subdir}$pkg->{src} = ".join(' ', @{$src->{buildtypes}})."\n";
 		}
 
-		foreach my $spkg (@{$src->{packages}}) {
-			foreach my $dep (@{$spkg->{depends}}, @{$spkg->{builddepends}}) {
-				$dep =~ /@/ or do {
-					$dep =~ s/\+//g;
-					push @srcdeps, $dep;
-				};
-			}
+		foreach my $dep (@{$src->{builddepends}}, map { @{$_->{depends}} } @{$src->{packages}}) {
+			$dep =~ /@/ or do {
+				$dep =~ s/\+//g;
+				push @srcdeps, $dep;
+			};
 		}
 		foreach my $type (@{$src->{buildtypes}}) {
 			my @extra_deps;
 			my %deplines;
 
-			next unless $pkg->{"builddepends/$type"};
-			foreach my $dep (@{$pkg->{"builddepends/$type"}}) {
+			next unless $src->{"builddepends/$type"};
+			foreach my $dep (@{$src->{"builddepends/$type"}}) {
 				my $suffix = "";
 				my $deptype = "";
 				my $condition;
-- 
2.15.1
_______________________________________________
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


More information about the openwrt-devel mailing list