On 4/21/23 06:50, Greg Troxel wrote:
PKGSRCDIR shouldn't be recorded - as Al says many of us use trees at different locations across the file system (and indeed if it is recorded then it makes binary package distributions effectively useless).I think it's reasonable for tools that need a source dir to encode PKGSRCDIR in their builds. The idea of binary distributions that people use with source later is a little funny to start with. While people put trees in all sorts of places, I see /usr/pkgsrc as the canonical location for a pkgsrc that has been bootstrapped to (or is native at) /usr/pkg. So as I see it, using the canoncical PKGSRCDIR is just one more thing a binary distribution should do, in addition to using defaults for everything else.
One of the things I need to support is multiple pkgsrc branches on the same system. In scientific computing, long-term reproducibility is crucial. New versions of scientific programs often break compatibility with older ones, so we need to keep the older versions around for at least a few years. Pkgsrc makes this easy with its quarterly branches. We can install a quarterly branch with a suffix, e.g. /usr/pkgsrc-2023Q1, prefix /usr/pkg-2023Q1, and never remove it. The user simply loads an environment module to set their PATH and other variables to select a tree. These are usually coded into the analysis script, so it can simply be run again years later to reproduce the analysis with the same software used originally. The auto-update-pkgsrc script must be able to update any of these trees.