scripts/package-metadata.pl: fix handling of virtual (PROVIDES) depends
authorJo-Philipp Wich <jo@mein.io>
Thu, 13 Oct 2016 00:48:32 +0000 (02:48 +0200)
committerJo-Philipp Wich <jo@mein.io>
Wed, 2 Nov 2016 00:01:34 +0000 (01:01 +0100)
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

index f5d28e41a362eabe6fa296d2e83c3580ee97f182..1a4f103810a6b66a620377f18199a84d4d971601 100755 (executable)
@@ -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];
                                }
                        }