From d8dbd33eba86324742a6c9c7197fe762cae956af Mon Sep 17 00:00:00 2001
From: Felix Fietkau <nbd@nbd.name>
Date: Thu, 7 Jul 2016 12:39:27 +0200
Subject: [PATCH] scripts/package-metadata.pl: fix kmod pakage dependencies
 within the SDK

Instead of ignoring all metadata for package/kernel/linux, process it
and only suppress emitting config data to tmp/.config-package.in

This ensures that packages that select kmod-* packages can inherit their
depdendencies.

Signed-off-by: Felix Fietkau <nbd@nbd.name>
---
 scripts/metadata.pm         | 6 +++---
 scripts/package-metadata.pl | 1 +
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git a/scripts/metadata.pm b/scripts/metadata.pm
index c7f8532b54..8334f26d31 100644
--- a/scripts/metadata.pm
+++ b/scripts/metadata.pm
@@ -162,10 +162,10 @@ sub parse_package_metadata($) {
 			$overrides{$src} = 1;
 		};
 		next unless $src;
-		next if $ignore{$src};
 		/^Package:\s*(.+?)\s*$/ and do {
 			undef $feature;
 			$pkg = {};
+			$pkg->{ignore} = $ignore{$src};
 			$pkg->{src} = $src;
 			$pkg->{makefile} = $makefile;
 			$pkg->{name} = $1;
@@ -189,7 +189,7 @@ sub parse_package_metadata($) {
 		$feature and do {
 			/^Target-Name:\s*(.+?)\s*$/ and do {
 				$features{$1} or $features{$1} = [];
-				push @{$features{$1}}, $feature;
+				push @{$features{$1}}, $feature unless $ignore{$src};
 			};
 			/^Target-Title:\s*(.+?)\s*$/ and $feature->{target_title} = $1;
 			/^Feature-Priority:\s*(\d+)\s*$/ and $feature->{priority} = $1;
@@ -256,7 +256,7 @@ sub parse_package_metadata($) {
 				$preconfig = {
 					id => $1
 				};
-				$preconfig{$pkgname}->{$1} = $preconfig;
+				$preconfig{$pkgname}->{$1} = $preconfig unless $ignore{$src};
 			}
 		};
 		/^Preconfig-Type:\s*(.*?)\s*$/ and $preconfig->{type} = $1;
diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl
index 92c989d3a2..44494efd28 100755
--- a/scripts/package-metadata.pl
+++ b/scripts/package-metadata.pl
@@ -272,6 +272,7 @@ sub print_package_config_category($) {
 			print "menu \"$menu\"\n";
 		}
 		foreach my $pkg (@pkgs) {
+			next if $pkg->{ignore};
 			my $title = $pkg->{name};
 			my $c = (72 - length($pkg->{name}) - length($pkg->{title}));
 			if ($c > 0) {
-- 
GitLab