Jason Bacon <outpaddling%yahoo.com@localhost> writes:
Right, the problem, put another way, is that in the absence of
PREFER_PKGSRC or PREFER_NATIVE, the current run time logic will link
to pkgsrc libz if it's there, but won't install it if it's not. Since
libz is a dependency of something installed during bootstrap, we have
to explicitly set PREFER_PKGSRC during bootstrap to make sure every
dependent package is using pkgsrc libz. One theoretical fix would be
to automatically mark dependencies PREFER_NATIVE when they're
implicitly chosen a link time. I'm not sure how difficult this would
be. In any case, setting PREFER_PKGSRC=yes + PREFER_NATIVE=list
during bootstrap should prevent this problem.
I see it as a fundamental bug to make the native/pkgsrc choice depend on
whether it is installed. That seems counter to the notion of declared
dependencies and repeatable outcomes. Perhaps I don't get something,
but it seems like that bug should be fixed.
That might just expose the "picking system and pkgsrc in a mix-and-match
way doesn't work because of rpath having to list one first, and thus
getting a package to link with system at run-time when pkgsrc exists
doesn't really work.
If so, that lands us back on "it's not ever ok to use system lib of
foo", for each foo where this is trouble.