From 12d15fa8a5096913927d75958d0ed3af9d963e73 Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Wed, 2 Nov 2016 01:45:06 +0100
Subject: [PATCH] scripts/package-metadata.pl: honour DEFAULT_VARIANT

So far, package-metadata.pl always considered the first provider of a virtual
package to be the default variant which might deviate from what buildroot
considers to be the default.

Change the Kconfig dependency / select code generation for virtual package
providers to consider the DEFAULT_VARIANT to be the primary provider and only
fall back to the first provider if no default variant was explicitely tagged.

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
---
 scripts/package-metadata.pl | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl
index 1a4f103810..f8f16f07fa 100755
--- a/scripts/package-metadata.pl
+++ b/scripts/package-metadata.pl
@@ -176,8 +176,21 @@ sub mconf_depends {
 		next if $package{$depend} and $package{$depend}->{buildonly};
 		if ($flags =~ /\+/) {
 			if ($vdep = $package{$depend}->{vdepends}) {
-				my @vdeps = @$vdep;
-				$depend = shift @vdeps;
+				my @vdeps;
+				$depend = undef;
+
+				foreach my $v (@$vdep) {
+					if ($package{$v} && $package{$v}->{variant_default}) {
+						$depend = $v;
+					} else {
+						push @vdeps, $v;
+					}
+				}
+
+				if (!$depend) {
+					$depend = shift @vdeps;
+				}
+
 				if (@vdeps > 1) {
 					$condition = ($condition ? "$condition && " : '') . '!('.join("||", map { "PACKAGE_".$_ } @vdeps).')';
 				} elsif (@vdeps > 0) {
-- 
GitLab