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

Re: [Pkg-octave-devel] Building octave-interval-doc 3.1.0-2



Hi Oliver,

On Sun, Dec 31, 2017 at 07:46:54PM +0100, Oliver Heimlich wrote:

> I have one particular question regarding octave-interval. The build produces
> two binary packages: octave-interval and octave-interval-doc. The latter is
> architecture "all" and multi-arch "foreign". However, it is build by all
> architectures.
> 
> Since version 3.1.0 building the documentation takes a lot of time and
> timeouts on some build environments, e. g., armel. Of course this should be
> optimized upstream.
> 
> Would it make sense to build octave-interval-doc only on few architectures
> where the build environment has more resources?

The usual solution for this problem is to decouple the build of arch:any
packages from that of arch:all ones. This is done by splitting the "build" and
"binary" targets of debian/rules into build-arch/binary-arch on one side, and
build-indep/binary-indep on the other side (see Debian Policy §4.9).

The idea is that the only the build-arch/binary-arch targets will be invoked on
buildds for armel (and actually for all the other achitectures). There is a
separate set of buildds specifically dedicated to building arch:all packages,
that run the build-indep/binary-indep targets, and those buildds are rather
fast (they actually run on amd64).

It is possible to further refine the setup by splitting build-dependencies into
3 fields: Build-Depends-Arch (only needed for building arch:any packages),
Build-Depends-Indep (only needed for building arch:all packages), and
Build-Depends (needed by both). This can save time on buildds if, for example,
texlive is only needed for building arch:all packages.

In your case, you want octave-interval to be built by the
build-arch/binary-arch targets, and octave-interval-doc by the
build-indep/binary-indep targets. Splitting the build-dependencies does not
seem very interesting in your case.

When using dh as we now do, the usual way for doing this is to add -arch and
-indep suffixes to overrides, in order to specify that they apply to only one
of the two situations (see the dh(1) manpage).

In order to achieve this with our new setup, a modification of octave-pkg-dev
is needed. It is not immediately obvious to me how this can be achieved.
Rafael, what do you think?

-- 
⢀⣴⠾⠻⢶⣦⠀  Sébastien Villemot
⣾⠁⢠⠒⠀⣿⡁  Debian Developer
⢿⡄⠘⠷⠚⠋⠀  http://sebastien.villemot.name
⠈⠳⣄⠀⠀⠀⠀  http://www.debian.org

Attachment: signature.asc
Description: PGP signature


Reply to: