Given that just about everyone agrees that any way to avoid running
"make clean" in pkgsrc is worthwhile, is there a reason that
pkgsrc/mk/install/bin-install.mk in the do-bin-install-from-source
target includes ...
${PKG_INFO} -qe "$$pkgpattern" || { \
${STEP_MSG} "No binary package found for $$pkgpattern;
installing from source."; \
${RECURSIVE_MAKE} ${MAKEFLAGS}
DEPENDS_TARGET=${DEPENDS_TARGET:Q} package-install \
&& ${RECURSIVE_MAKE} ${MAKEFLAGS} clean; \
}
In particular, is there any good reason for the
${RECURSIVE_MAKE} ${MAKEFLAGS} clean
part of that?
I have been running with that removed for a year or so now (since at least
August last year, perhaps a little earlier than that) with no ill effects that
I am able to discern (but I do tend to use those alternate methods of cleaning
up fairly frequently.
I would expect that without the recursive clean, you'll have
build package from source
recurse to build a new dependency foo
clean
[new dependency foo is left unclean]
One thing I've found with pkgsrc is that stale work directories cause
problems because at least at one point you can have foo-1.3 installed
and in workdir but foo source updated to 1.4. Then a package that needs
foo >= 1.4 will find the workdir with the package-install done cookie
and be happy. Thus I always tell people to clean out all workdirs.
A clearly-safe improvement would be to have the recursive make record
which dirs it recursed into and have recursive clean only clean those.
That should get speedup without leaving workdirs.
Attachment:
pgpWBxjpQIOVq.pgp
Description: PGP signature