Subject: Re: pkg_rolling-replace calling 'make install'?
To: Hauke Fath <hauke@Espresso.Rhein-Neckar.DE>
From: Greg Troxel <gdt@ir.bbn.com>
List: tech-pkg
Date: 08/23/2007 19:02:04
Hauke Fath <hauke@Espresso.Rhein-Neckar.DE> writes:

> At 10:46 Uhr -0400 19.8.2007, Greg Troxel wrote:
>>The basic issue is that sometimes a package A should be replaced
>>(unsafe_depends or rebuild), and that package depends on some installed
>>package B.  If B is out of date, and either B's bl3 default or A's
>>explicit variable says that B is too old to be used, then pkgsrc's basic
>>build target will reject the installed B and try to pull in B as a
>>dependency, which causes build, install, and maybe package.  So this
>>isn't really something that pkg_rr is doing - had you done "make
>>replace" in www/dillo (from your original mail), you would have had the
>>same issue.
>
> Makes sense; thanks for the thorough explanation.
>
>>When this situation arises, there are basically two choices:
>>
>> give up on updating package A, because B is too old
>>
>> update B
>
> Would a
>
> pkg_admin set rebuild=YES B
>
> ensure that pkg_rr takes care of the issue?

Yes, it should.  The packages to be built are the union of rebuild and
unsafe_depends.  pkg_rr will ensure that B is rebuilt before A because
of the dependency.

>>I always update B, and maybe pkgsrc should have a variable that says
>>"when a depending package is required, and it's too old, do make replace
>>on it instead of failing to install".  Note that you can do this
>>manually (go to x11/gtk and 'make replace package clean' - it's already
>>built so this will be fast.
>
> That's what I did, yes. Since it's that obvious and easy, it would be handy
> if either pkg_rr or the pkgsrc 'replace' mechanism took care of the replace
> instead of requiring manual intervention, though.

I think this should be fixed in 'make replace' - the problem arises
without pkg_rr.

>>Then, rerun pkg_rr and it will pick up where it left off.
>
> It does, yes. As long as it runs, it's a very nice gadget.  :)

I'm glad you find it useful.  I've been using it as the only means of
pkgsrc updating on many machines for over a year and generally been
happy.  The warts that bug me are the problem above, and the lack of a
way to know that e.g. an old package built from www/firefox2 should be
rebuilt from www/firefox.