From fe6acc0559b52934f095e9b9a57ee7358f3b8383 Mon Sep 17 00:00:00 2001 From: espie Date: Mon, 21 Jun 2021 14:36:48 +0000 Subject: [PATCH] under some circumstances, we end up with libexecinfo -> BaseSystem being recorded as a new dependency. Even though ForwardDependencies normally takes care of that, with tags, this is not enough. (this happens only because libexecinfo was a "tight" dependency, thus resulting in a large UpdateSet, and when some of the objects did require tags in the new package, and when the order of things meant that BaseSystem was considered a bit early). Since there's no handle at this point, a dirty but efficient test vs BaseSystem will do (which is not a valid normal package name anyhow) tested to fix the obnoxious warning landry@ saw, which I was able to reproduce on a box... --- usr.sbin/pkg_add/OpenBSD/Dependencies/SolverBase.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/usr.sbin/pkg_add/OpenBSD/Dependencies/SolverBase.pm b/usr.sbin/pkg_add/OpenBSD/Dependencies/SolverBase.pm index 62441b9d45c..dd664f19630 100644 --- a/usr.sbin/pkg_add/OpenBSD/Dependencies/SolverBase.pm +++ b/usr.sbin/pkg_add/OpenBSD/Dependencies/SolverBase.pm @@ -1,5 +1,5 @@ # ex:ts=8 sw=4: -# $OpenBSD: SolverBase.pm,v 1.12 2019/06/09 09:36:25 espie Exp $ +# $OpenBSD: SolverBase.pm,v 1.13 2021/06/21 14:36:48 espie Exp $ # # Copyright (c) 2005-2018 Marc Espie # @@ -51,7 +51,11 @@ sub lookup push(@{$self->{todo}}, $dep2) unless $done->{$dep2}; } $known->{$dep} = 1; - if ($self->find_in_new_source($solver, $state, $obj, $dep)) { + if ($dep ne 'BaseSystem' && # XXX fake dependency + # updated package -> base system, don't bother looking + # (at this point there should be a fake handle but it's + # simpler to just test rather than retrofit everything) + $self->find_in_new_source($solver, $state, $obj, $dep)) { $dependencies->{$dep} = 2; return 1; } -- 2.20.1