diff --git a/pkgtool.pm b/pkgtool.pm index c47a429..87f4a8b 100644 --- a/pkgtool.pm +++ b/pkgtool.pm @@ -3261,6 +3261,7 @@ sub get_install_sets ($) return 1; } my $flags = {}; + my $globalflags = {}; my $pkgsets = $$config{'package-sets'}; $pkgsets = {} unless defined $pkgsets; foreach my $line (split /\n/, $response->decoded_content) { @@ -3291,6 +3292,21 @@ sub get_install_sets ($) $$flags{$value} = 1; } } + if ($key eq 'flag') { + my $flag; + if ($value =~ /^([^=]+)=(.*)$/o) { + $flag = $1; + $value = $2; + } + else { + $flag = $value; + $value = 1; + } + if (! defined $$globalflags{$flag}) { + print_log('global', DEBUG1, 'Adding global flag %s=%s', $flag, $value); + $$globalflags{$flag} = $value; + } + } } my $genvars = $$config{'generic-variables'}; foreach my $pkgflag (keys %$flags) { @@ -3299,6 +3315,13 @@ sub get_install_sets ($) expression => 1 }; } + foreach my $flag (keys %$globalflags) { + my $value = $$globalflags{$flag}; + push @$genvars, { + variable => $flag, + expression => $value + }; + } return undef; }