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);

Reply via email to