Subject: Re: CVS commit: pkgsrc/mk/bulk
To: Todd Vierling <>
From: Dan McMahill <>
List: tech-pkg
Date: 03/30/2005 20:11:43
On Wed, Mar 30, 2005 at 03:45:20PM -0500, Todd Vierling wrote:
> On Wed, 30 Mar 2005, Jeremy C. Reed wrote:
> > Is there any way to list some packages we don't want to ever be removed?
> >
> > I want to do some bulk builds using this mechanism with LOCALBASE=/usr. I
> > have been using LOCALBASE=/usr for a couple years. I want to use
> > mk/bulk/build for it now but I have a small set of packages that must
> > never be removed (even in chroot environment).
> BULK_PREREQ is one step towards that, but I found out the hard way on
> Interix (where pkgsrc's gawk and GNU coreutils are rather important) that
> unless you also list all their dependencies, the "pkg_delete -r" of the
> lower level dependencies kills the upper level packages.
> And this still doesn't address keeping packages installed "at all times".
> Two things would bring us to your goal:
> * A BULK_PRESERVE (name arbitrarily chosen) variable listing packages which
>   must not be removed, for any reason, including rebuilding that package
>   itself.

I've been thinking about this myself.  In my case I didn't want lang/gcc*
to get rebuilt to many times since thats my pksrc comiler on solaris.  I
started on implementing just this but got sidetracked.

> * Evaluating PULK_PRESERVE through some sort of recursion that also prevents
>   removal of the explicitly listed packages' dependencies.
> The second point should make it easier to prevent accidental recursive
> deletes from killing to-be-preserved packages.  Now, if such recursive
> expansion existed, applying it also to BULK_PREREQ would be a nice thing to
> me.  8-)

agreed.  Thats something I wish I'd done in the first place.

Any thoughts about the initial bootstrapping of these pkgs?  It seems that once
you do the initial build of them (along with any dependencies) you may need to
use pkg_info to get their dependencies as pkgsrc diverges from there.