diff --git a/scripts/prt-auf b/scripts/prt-auf index 40fe79c..6643f4f 100755 --- a/scripts/prt-auf +++ b/scripts/prt-auf @@ -108,7 +108,11 @@ if (($action =~ /^(listinst|listorphans|dependent)/) and } } elsif ($action =~ /^(current|isinst|dup|diff|quickdiff)$/) { my $format = "%20s %15s %20s\n"; my $ind = shift(@results); - if ($action eq "diff") { printf $format, "Port", "Installed", "Available in Repo"; } + if ($action eq "diff") { + if ($#results > 0) { + printf $format, "Port", "Installed", "Available in Repo" + } else { print "No differences found\n" } + } foreach (@results) { if ($action =~ /^(current|isinst)$/) { print "$_\n"; next; } my ($diffN, $diffI, $diffR) = split / /; @@ -207,7 +211,7 @@ sub parse_args { } elsif ($arg eq "-vv") { $osearch{verbose} += 2; } elsif ($arg eq "--test") { $opkg{test} = "yes"; } elsif ($arg eq "--group") { $opkg{group} = "yes"; - } elsif ($arg eq "-fr") { $opkg{margs} .= " -f"; + } elsif ($arg eq "-fr") { $opkg{margs} .= " -f"; $odepends{inject} = 0; } elsif ($arg eq "-fi") { $opkg{aargs} .= " -f"; } elsif ($arg =~ /^(-uf|-if|-us|-is|-ns|-kw)$/) { $opkg{margs} .= " $1"; } elsif ($arg =~ /^--margs=(.+)/) { $opkg{margs} .= $1; @@ -665,7 +669,7 @@ sub port_diff { # find differences between the pkgdb and the repo sub deporder { # returns a sorted list of packages required. my $type=shift; my @seeds=@_; our @treewalk=(); our @missing; - our %numPred; our %children; my @result; + our %numPred; our %children; my @result; our %SEEDS = map { $_ => 1 } @seeds; # determine the minimal set of targets needed to satisfy all dependencies foreach my $t (@seeds) { @@ -681,10 +685,10 @@ sub deporder { # returns a sorted list of packages required. ( grep /^$s$/, @treewalk ) ? return : push(@treewalk, $s); %curdeps = map { $_ => 0 } split /[ ,]/, $DEPENDS{$s}; - # if the user toggles --softdeps, consider only the - # optional dependencies that are already installed + # if the user toggles --softdeps, consider only the optional dependencies + # that are already installed or are given on the command line if ($odepends{soft} == 1) { - @optionals = grep { ($V_INST{$_}) } split /[ ,]/, $SOFTDEPS{$s}; + @optionals = grep { ($V_INST{$_}) or ($SEEDS{$_}) } split /[ ,]/, $SOFTDEPS{$s}; foreach (@optionals) { $curdeps{$_} = 1; } } @@ -794,7 +798,7 @@ sub up_inst { # returns scalar references to five arrays } chdir $pdirs{$t}; system("$mkcmd{$t}"); $status=( $?>>8 == 0 ); if ($logfile{$t}) { - (! log_failure($logfile{$t})) ? $ok{$t} = 1 : $not_ok{$t} = 1; + ( ($mkcmd{$t} =~ /skipped build/) or ! log_failure($logfile{$t}) ) ? $ok{$t} = 1 : $not_ok{$t} = 1; } else { ( $status ) ? $ok{$t} = 1 : $not_ok{$t} = 1; }