[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#209008: parallel building: DEB_BUILD_OPTIONS or DEB_BUILD_OPTIONS_PARALLEL



I think you're overengineering.  There are basicaly two use cases:

  a- Developer building a package for a specific purpose (e.g. testing
     an improvement), wanting to speed up this specific build.

  b- Buildd admin wanting to speed up build of the overall archive [1].

(a) can be archieved simply by adding a flag to dpkg-buildpackage, such
that when used it will pass the corresponding -j flag to make when invoking
debian/rules (for consistency, it could also be -j) [2] [4].

(b) can't be archieved easily no matter what we do.  If we make -j NCPUs
implicit, lots of packages will break.  If we design an interface
such that each maintainer has to add cruft to her debian/rules to support
parallel builds, it will take ages anyway untill all maintainers add their
cruft.

OTOH, just by archieving (a) we automaticaly get developers to, in their own
interest, start using this feature and report (non-RC) bugs when it fails [5],
just because they want (like I do) to scratch their own itches.  This will
gradualy improve parallel build support in a true bazaar fashion, untill we
reach a point in which we can declare it a release requirement [3], hence
obtaining (b).

[1] yes, this means build logs become ugly and unreadable, but people can still
    rebuild if they need a sane log, just like they do for nostrip,noopt.
    buildds could even do that when FTBFS is found.  I think it's a reasonable
    price to pay (specialy since the trend for multi-core CPUs is so
    stablished now).

[2] true, this doesn't maximize the benefit for non-make packages, but:
    - it does in the debian/rules part (which is very significant in multi-build
      packages)
    - the small proportion of non-make packages makes this benefit marginal
    - *then* it might be useful to add the proposed cruft, at which point it
      could co-exist with the make -j flag which is needed for debian/rules no
      matter what.

[3] if a package is so braindamaged that parallel builds can't be supported,
    there shouldn't be any problem with explicitly disabling/overriding -j in
    $(MAKE) recursion (does MAKE+=-j1 suffice?)

[4] #355654 would also archieve that, although I think -j would be better.

[5] to us or to upstream;  it doesn't necessarily mean more work in our side.

-- 
Robert Millan

<GPLv2> I know my rights; I want my phone call!
<DRM> What use is a phone call, if you are unable to speak?
(as seen on /.)



Reply to: