|
|
| |
$Portage::all_flags{'-*'} = 1 if defined $Portage::make_conf_flags{'*'} && !$Portage::make_conf_flags{'*'}; | $Portage::all_flags{'-*'} = 1 if defined $Portage::make_conf_flags{'*'} && !$Portage::make_conf_flags{'*'}; |
| |
Portage::merge %Portage::use_masked_flags, %Portage::archs; |
|
|
|
for(keys %Portage::all_flags) { | for(keys %Portage::all_flags) { |
@{$use_descriptions{$_}} = "(Unknown)" | @{$use_descriptions{$_}} = "(Unknown)" |
if not exists $use_descriptions{$_}; | if not exists $use_descriptions{$_}; |
} | } |
@{$use_descriptions{'-*'}} = 'Never enable any flags other than those specified in /etc/make.conf'; | @{$use_descriptions{'-*'}} = 'Never enable any flags other than those specified in /etc/make.conf'; |
| |
|
for(@Portage::archs) { |
|
delete $Portage::default_flags{$_}; |
|
delete $Portage::all_flags{$_}; |
|
delete $use_descriptions{$_}; |
|
} |
for(keys %Portage::use_masked_flags) { | for(keys %Portage::use_masked_flags) { |
if($Portage::use_masked_flags{$_}) { |
my $masked = 1; |
|
for(values %{$Portage::use_masked_flags{$_}}) { |
|
last if not($masked &&= $_); |
|
} |
|
if($masked) { |
delete $Portage::default_flags{$_}; | delete $Portage::default_flags{$_}; |
delete $Portage::all_flags{$_}; | delete $Portage::all_flags{$_}; |
delete $use_descriptions{$_}; | delete $use_descriptions{$_}; |
|
|
die "Sorry, USE_ORDER without make.conf overriding global USE flags are not currently supported by ufed.\n"; | die "Sorry, USE_ORDER without make.conf overriding global USE flags are not currently supported by ufed.\n"; |
} | } |
| |
for(keys %use_masked_flags) |
|
{ delete $all_flags{$_} if $use_masked_flags{$_} and exists $all_flags{$_} } |
|
|
|
sub have_package($) { | sub have_package($) { |
my ($cp) = @_; | my ($cp) = @_; |
return $packages{$cp}; | return $packages{$cp}; |
|
|
redo PARENT; | redo PARENT; |
} | } |
} | } |
|
push @profiles, '/etc/portage/profile'; |
} | } |
| |
sub read_sh($) { | sub read_sh($) { |
|
|
for my $dir(@profiles) { | for my $dir(@profiles) { |
for(noncomments "$dir/use.mask") { | for(noncomments "$dir/use.mask") { |
my $off = s/^-//; | my $off = s/^-//; |
$use_masked_flags{$_} = !$off; |
$use_masked_flags{$_}{''} = !$off; |
|
} |
|
for(noncomments "$dir/package.use.mask") { |
|
my($pkg, @flags) = split; |
|
for(@flags) { |
|
my $off = s/^-//; |
|
$use_masked_flags{$_}{$pkg} = !$off; |
|
} |
} | } |
} | } |
} | } |