prt-auf: do not resolve dependencies when forcing a rebuild

This commit is contained in:
John McQuah 2023-04-13 16:49:48 -04:00
parent 40d0787003
commit 6e181f870d

View File

@ -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;
}