Subject: Re: CVS commit: pkgsrc/pkgtools/pkg_rolling-replace
To: Greg Troxel <gdt@ir.bbn.com>
From: Tobias Nygren <tnn@NetBSD.org>
List: tech-pkg
Date: 08/06/2007 20:28:06
On Mon, 06 Aug 2007 13:38:29 -0400
Greg Troxel <gdt@ir.bbn.com> wrote:

> 
> Tobias Nygren <tnn@netbsd.org> writes:
> 
> > Module Name:	pkgsrc
> > Committed By:	tnn
> > Date:		Mon Aug  6 15:07:56 UTC 2007
> >
> > Modified Files:
> > 	pkgsrc/pkgtools/pkg_rolling-replace: Makefile
> > 	pkgsrc/pkgtools/pkg_rolling-replace/files: pkg_rolling-replace.sh
> >
> > Log Message:
> > Update to pkg_rolling-replace-0.6:
> > - Explicitly unset 'unsafe_depends' and 'rebuild' tags after replacing.
> >   Needed after changes in pkgsrc/mk/flavor/pkg/replace.mk, fixes PR 36378.
> 
> I think this is the wrong fix - doing "make replace" should clear those
> tags.  While pkg_rolling-replace is the primary (and now only) consumer
> of the tags, I wanted the system to be such that all the basic
> operations respected the invariants on tags.  This enables one to 'make
> replace' and later run pkg_rolling-replace, and not lose the information
> that dependencies need updating.  So, make replace, run independently of
> pkg_rr should do the right thing, which is to clear both those tags.

I don't really have a strong opinion about this and the fix I
implemented was suggested by jlam@, so I'll let you two battle it
out :)

One possible concern is that while pkg_rr enforces the "safe" order in
which to update packages, some random make replace here and there does
not. In other words, it is possible to build a package that does
not have unsafe_depends=YES, but where some of the dependencies used to
build it had unsafe_depends=YES. I think as a safety measure we should
make unsafe_depends=YES propagate to the package being built if any of
the dependencies were unsafe.

If that is done we can remove the unsafe_depends in the replace
target iff all of the dependencies are safe.

Cheers,
-Tobias