do detain distfiles as well as paths (need to track them over rescan)

also, since distfiles are "always fetchable", need to check for detained
files before checking for "already done", since already done will want to
check the size...
This commit is contained in:
espie 2015-06-17 07:31:25 +00:00
parent 853ce1b8f7
commit 40499f8bbe
2 changed files with 9 additions and 2 deletions

View File

@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
# $OpenBSD: Engine.pm,v 1.112 2015/06/11 08:42:38 espie Exp $
# $OpenBSD: Engine.pm,v 1.113 2015/06/17 07:31:25 espie Exp $
#
# Copyright (c) 2010-2013 Marc Espie <espie@openbsd.org>
#
@ -495,6 +495,7 @@ sub rebuild_info
{
my ($self, $core) = @_;
my @l = @{$self->{requeued}};
my %d = ();
$self->{requeued} = [];
my %subdirs = map {($_->pkgpath_and_flavors, 1)} @l;
@ -503,6 +504,8 @@ sub rebuild_info
if (defined $v->{info}{FDEPENDS}) {
for my $f (values %{$v->{info}{FDEPENDS}}) {
$f->forget;
$self->{tofetch}->detain($f);
$d{$f} = $f;
}
}
delete $v->{info};
@ -511,6 +514,9 @@ sub rebuild_info
for my $v (@l) {
$self->{buildable}->release($v);
}
for my $f (values %d) {
$self->{tofetch}->release($f);
}
}
sub start_new_job

View File

@ -1,5 +1,5 @@
# ex:ts=8 sw=4:
# $OpenBSD: SubEngine.pm,v 1.23 2015/06/08 11:06:08 espie Exp $
# $OpenBSD: SubEngine.pm,v 1.24 2015/06/17 07:31:25 espie Exp $
#
# Copyright (c) 2010 Marc Espie <espie@openbsd.org>
#
@ -144,6 +144,7 @@ sub use_core
# first pass, try to find something we can build
while (my $v = $o->next) {
next if $self->detained($v);
# trim stuff that's done
if ($self->is_done($v)) {
$self->already_done($v);