From: Jo-Philipp Wich Date: Thu, 13 Oct 2016 00:48:32 +0000 (+0200) Subject: scripts/package-metadata.pl: fix handling of virtual (PROVIDES) depends X-Git-Tag: v17.01.0-rc1~977 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=f64360c7ca8b09e73840b4e633531b372f02bdaf;p=oweals%2Fopenwrt.git 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 --- 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]; } }