On Fri, May 02, 2014 at 12:08:47PM +0200, Marc Espie wrote: > On Thu, May 01, 2014 at 07:04:24PM +0200, Stefan Sperling wrote: > > I noticed that ports are always built even with FETCH_PACKAGES=Yes > > and matching binary packages on the mirror. > > > > Starting from 'make depends' I traced the problem down to a pkg_add bug. > > Here's recipe that shows where it fails: > > > > $ pwd > > /usr/ports/net/miniupnp/miniupnpc > > $ pkg_add -m -I -n -q -D installed -D downgrade miniupnpc-1.9.tgz > > /usr/ports/packages/amd64/cache//miniupnpc-1.9.tgz > > miniupnpc-1.9: ok > > Look in /usr/local/share/doc/pkg-readmes for extra documentation. > > Can't use an undefined value as a HASH reference at > > /usr/libdata/perl5/OpenBSD/Dependencies.pm line 387. > > $ echo $? > > 22
Not 100% this won't cause further problems, but this makes sure the tracker tells us "hey, that stuff is already uptodate, don't look at deps". Please test in a more general way. Index: OpenBSD/Dependencies.pm =================================================================== RCS file: /build/data/openbsd/cvs/src/usr.sbin/pkg_add/OpenBSD/Dependencies.pm,v retrieving revision 1.152 diff -u -p -r1.152 Dependencies.pm --- OpenBSD/Dependencies.pm 1 Feb 2014 11:37:58 -0000 1.152 +++ OpenBSD/Dependencies.pm 3 May 2014 09:42:07 -0000 @@ -383,6 +383,7 @@ sub solve_depends delete $self->{installed}; for my $package ($self->{set}->newer, $self->{set}->kept) { + next if $state->tracker->{uptodate}{$package->pkgname}; $package->{before} = []; for my $dep (@{$package->dependency_info->{depend}}) { my $v = $self->solve_dependency($state, $dep, $package);