From f64360c7ca8b09e73840b4e633531b372f02bdaf Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jo@mein.io>
Date: Thu, 13 Oct 2016 02:48:32 +0200
Subject: [PATCH] scripts/package-metadata.pl: fix handling of virtual
 (PROVIDES) depends

Currently the code emitting dependencies for provide candidates is overwriting
the specification calculated by the previous conditional dependency handling
code, rendering dependencies on virtual PROVIDES packages in conjunction with
conditional dependencies unusable.

Instead of overwriting, append the PROVIDES dependency spec in order to fix
using DEPENDS on virtual provider packages in conjunction with conditions.

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

diff --git a/scripts/package-metadata.pl b/scripts/package-metadata.pl
index f5d28e41a3..1a4f103810 100755
--- a/scripts/package-metadata.pl
+++ b/scripts/package-metadata.pl
@@ -179,9 +179,9 @@ sub mconf_depends {
 				my @vdeps = @$vdep;
 				$depend = shift @vdeps;
 				if (@vdeps > 1) {
-					$condition = '!('.join("||", map { "PACKAGE_".$_ } @vdeps).')';
+					$condition = ($condition ? "$condition && " : '') . '!('.join("||", map { "PACKAGE_".$_ } @vdeps).')';
 				} elsif (@vdeps > 0) {
-					$condition = '!PACKAGE_'.$vdeps[0];
+					$condition = ($condition ? "$condition && " : '') . '!PACKAGE_'.$vdeps[0];
 				}
 			}
 
-- 
GitLab