scripts/package-metadata.pl: fix kmod pakage dependencies within the SDK
authorFelix Fietkau <nbd@nbd.name>
Thu, 7 Jul 2016 10:39:27 +0000 (12:39 +0200)
committerFelix Fietkau <nbd@nbd.name>
Thu, 7 Jul 2016 10:47:04 +0000 (12:47 +0200)
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
scripts/package-metadata.pl

index c7f8532b54e36e93beac06096f57f046694df5be..8334f26d3179a0eb83aa1aa976778ff5828faf45 100644 (file)
@@ -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;
index 92c989d3a292416e548cd3e306471ecb29f3da5e..44494efd28139de66aeac71bb008ac0f99f51b8c 100755 (executable)
@@ -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) {