Subject: Re: redundant "make clean" when bulk building
To: None <pkgsrc-bulk@NetBSD.org>
From: Juan RP <juan@xtrarom.org>
List: tech-pkg
Date: 09/19/2005 07:59:02
On Mon, 19 Sep 2005 07:54:18 +0200 (CEST)
Krister Walfridsson <cato@df.lth.se> wrote:
> The bulk builder start build of each package by doing "make clean"
> in the prerequisite packages, and end the build of the package by
> once again doing "make clean" in them. I assume that this is to
> ensure that there are no old work directories in case the build
> of the package need to rebuild some of the prerequisites. Are
> there other reasons?
>
> I have two issues with this mechanism:
>
> 1. It is slow
> The combined time for the pre- and post-cleaning for a package
> such as x11/kde3-i18n-uk is about 1 minute on my amd64 box, and
> much more on my slower machines.
>
> 2. It does not work
> The dependency graph is calculated using "make show-depends-dirs"
> which makes it contain too few packages when you use PKGLIST.
> For example, setting PKGLIST=x11/kde3-i18n-uk will give you a
> list of 6 prerequisites, instead of the 58 prerequisites that
> are needed to build it.
>
> But I don't understand what this mechanism buys us: issue 2 forces
> me to do
>
> find /usr/pkgsrc -name work | xargs rm -rf
pkgtools/pkgclean will clean packages that were used in the past,
and it's much faster than find(1).
> before starting a PKGLIST build, or some packages will fail.
>
> On the other hand, packages that are in the prerequisites list have
> already been built (and have thus cleaned up after themselves), so
> the "make clean" of them is only wasting time.
>
> So I think the pre- and post-cleaning of prerequisites can be
> removed. Or have I missed something? (if so, then I'd like to
> change it to only clean the packages that will be rebuilt...)
>
> I propose to fix issue 2 by creating a full dependency list for
> the packages (i.e. packages reported by "make show-depends-dirs"
> will automatically be prepended to PKGLIST during the dependency
> graph creation).
Agreed, I think we should remove the clean-depends calls and switch
to pkgtools/pkgclean.