CVSROOT:        /cvs
Module name:    src
Changes by:     es...@cvs.openbsd.org   2018/06/15 04:28:21

Modified files:
        usr.sbin/pkg_add/OpenBSD: Dependencies.pm 

Log message:
fix for the infamous "cups" bug. Finally.
the problem was in solve_wantlibs, which is invoked fairly early in the
game (before actually committing to install the set) and which would walk
the "current" dependency tree and solve libs accordingly.

The problem being that sometimes, the libraries were in an older set... so
the fix is to do the dependency adjustment at this point as well, to
properly peek in the new set.

The main problem with that bug was how hard it was to reproduce, because
it depends on several conditions:
- the old and new package must have different names, but contain some
shared libraries with the same version.
- it has to be an UpdateSet with several packages tied together
- reaching the library must be possible through several paths. This usually
happens after several sets got merged together.
- taking the wrong path is dependent on the hash key order of the dependencies,
which is random.

Reply via email to