Subject: Re: pkgsrc on SMP machines
To: Manuel Bouyer <bouyer@antioche.eu.org>
From: Lars Nordlund <lars.nordlund@hem.utfors.se>
List: tech-pkg
Date: 12/18/2005 02:41:03
On Sat, 17 Dec 2005 16:58:39 +0100
Manuel Bouyer <bouyer@antioche.eu.org> wrote:
> Q: How would this play with pkgsrc/mk/bulk (which is the way buidling
> packages I'm the most interested) ?

Good question. I have never used the bulk part of pkgsrc. Just now I
tried to figure out how it works.

My initial guess is that:

The ${ORDERFILE} shall be used to generate a dummy meta-pkg. I suppose
it contains a list of strings on this format 'lang/erlang' ? If so, it
should be easy.

The build status regarding how many times a broken package caused some
other package to fail, will probably be lost. 'make -k' will cut off
that part of the build tree and it will not try to build it again.

Impressive amount of code in the bulk-package target by the way. :-)

I think it should work to change the for-loop in the build script into
'cd meta-pkgs/bulk-dummy && make parallel | make -j N -k -f -'. And
change the command the generated makefile issues in each package. The
command should be 'make bulk-package', or some variant of that.


Since almost all packages are built, with a "default" mk.conf, I suppose
it should be easier to reuse the generated Makefile. This should save a
lot of time on slower platforms. The key is that the Makefile *must*
match the packages which are going to be built on that platform. Let's
say the mk.conf file is changed between two parallel-runs (for example,
prefer some other package, than the default, to deliver the foobar
functionality), things can break.

If one wants to do multi-machine builds with devel/clusterit, it has to
be configured. When I used it I had to patch it to save and return the
exit value of the ssh process. This is needed for make to work
correctly if a package build fails. I do not know if a new version has
been released and if it has been imported into pkgsrc.

Other than that, I do not know.

I have not done much SMP stuff since the capacitors on my ABIT VP6 blew
up.


Best regards,
	Lars Nordlund