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/19/2007 10:46:00
Mhm. The choice of packages for a "make install" is funny, though - right
now, pkg_rr (I should alias pkg_rolling-replace to that, to avoid RSI ;)
tried and failed to "make install" amanda-base, but properly replaced
amanda-client and amanda-server; then it replaced gtar-base properly, but
tried and failed to "make install" gtar-info. Guess I'll try a "pkg_rr -u"
next.
I'd be happy to look at the log from your run. But if your installed
packages are out of date, then pkg_rr without -u is going to run into
problems.
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.
When this situation arises, there are basically two choices:
give up on updating package A, because B is too old
update B
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. Then, rerun pkg_rr and it will pick up
where it left off.