[Fedora-packaging] parallel make

Richard W.M. Jones rjones at redhat.com
Thu Dec 27 12:48:14 UTC 2012


On Fri, Dec 14, 2012 at 04:48:48PM +0100, Dan Horák wrote:
> Parag N(पराग़) píše v Pá 14. 12. 2012 v 21:14 +0530: 
> > Hi,
> >    I want to know is there any documentation available on parallel
> > make? If a package is not building with parallel make then can we fix
> > Makefile?
> 
> https://fedoraproject.org/wiki/Packaging:Guidelines?rd=Packaging/Guidelines#Parallel_make

Random thoughts on parallel builds:

In cases where parallel builds fail, I try to fix the problem, but
sometimes this is not possible.  I try to add a comment about this in
the spec file, and I think that's a good idea for everyone to do that.
Can we amend the above guidelines to say so?

Also, I have MAKEFLAGS=-j9 set on my development machine.  This is
passed through to rpmbuild, and it does break 'fedpkg local' on some
packages.  One way to avoid this is to unset MAKEFLAGS in %build, but
better ways are:

(1) Fix the build so it works in parallel.

(2) If (1) is not possible, push a patch upstream to add

  .NOTPARALLEL:

to the troublesome Makefile (can also be added to Makefile.am etc).

We use .NOTPARALLEL in a couple of libguestfs subdirectories to cope
with certain hard-to-fix cases, or where we haven't had the time yet
to work out precisely what dependencies are missing.  [The vast
majority of libguestfs builds in parallel].  Using .NOTPARALLEL is
ideal for upstream if they can't / don't want to fix parallel builds,
and want to ensure that even if MAKEFLAGS is set it won't break
things.

Finally, weird build systems.  A few OCaml packages have this, where
it's just not obvious *how* one could do a parallel build,
particularly where it's not even using 'make'.  (eg. anything using
ocamlbuild, I really wish ocamlbuild would die)

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-top is 'top' for virtual machines.  Tiny program with many
powerful monitoring features, net stats, disk stats, logging, etc.
http://people.redhat.com/~rjones/virt-top


More information about the packaging mailing list