Gentoo Archives: gentoo-catalyst

From: Matt Turner <mattst88@g.o>
To: Michael 'veremitz' Everitt <gentoo@×××××××.xyz>
Cc: gentoo-catalyst@l.g.o
Subject: Re: [gentoo-catalyst] [PATCH 19/21] catalyst: Set jobs/load-average via catalyst.conf
Date: Thu, 21 May 2020 00:19:08
Message-Id: CAEdQ38GQt261GMfAZKAJu+O6pdCHa2xwTBq_EuuWrZ=-QuDKWg@mail.gmail.com
1 On Wed, May 20, 2020 at 4:00 PM Michael 'veremitz' Everitt
2 <gentoo@×××××××.xyz> wrote:
3 >
4 > On 20/05/20 04:42, Matt Turner wrote:
5 > > We currently have two mechanisms of setting MAKEOPTS: in spec files and
6 > > in catalystrc.
7 > >
8 > > Setting makeopts in spec files doesn't make sense. The spec should
9 > > describe the thing that's being built and not contain options that are
10 > > specific to the build system.
11 > >
12 > > Setting makeopts via catalystrc is better, but it only applies to the
13 > > actual build system invocations, leaving emerge to run jobs serially or
14 > > again requiring configuration specific to the build machine to be put
15 > > into the spec file. For example:
16 > >
17 > > update_seed_command: ... --jobs 5 --load-average 5
18 > >
19 > > With jobs and load-average specified in catalyst.conf, catalyst has the
20 > > information required to configure both emerge and the build systems
21 > > emerge executes.
22 > >
23 > > This removes the undocumented makeopts spec file option and replaces it
24 > > with jobs and load-average settings in catalyst.conf.
25 > >
26 > > Signed-off-by: Matt Turner <mattst88@g.o>
27 > > ---
28 > > catalyst/base/stagebase.py | 12 +++++-------
29 > > catalyst/defaults.py | 2 ++
30 > > doc/catalyst-config.5.txt | 15 ++++++++++++---
31 > > etc/catalyst.conf | 8 ++++++++
32 > > etc/catalystrc | 3 ---
33 > > targets/support/chroot-functions.sh | 8 ++++++++
34 > > 6 files changed, 35 insertions(+), 13 deletions(-)
35 > NACK. This and patch 20 make it impossible to customise specs for different
36 > arches/subarches/libc/etc using different distcc_hosts with varying numbers
37 > of hosts and/or cores available. In many cases, you may not be able to set
38 > up identical distcc 'farms' or 'clusters' with the complete set of
39 > toolchains/chroots applicable to a 'standard' installation, due to hardware
40 > limitations.
41
42 I don't follow. You mention varying distcc hosts per arches/subarches/libc.
43
44 Let's say there are 4 systems on the network. 3x amd64 systems and 1
45 mips system.
46
47 If I'm compiling for amd64 on system and I'm using distcc, there's a
48 fixed number of distcc hosts on the network, aren't there?
49
50 If I'm building for mips on the mips system with cross compilers
51 installed on, say two of the amd64 systems, then there's a fixed
52 number of distcc hosts on the network, aren't there?
53
54 So, I don't think arches (or subarches) has any bearing.
55
56 And for different libcs, distcc doesn't have any bearing on that, does
57 it? distcc (without pump mode, which has been removed from Gentoo)
58 sends preprocessed source files across the network, so what libc you
59 have doesn't have any bearing either.
60
61 You seem to be thinking that setting a single system-wide distcc_hosts
62 is somehow limiting, but I can't see how. Please explain.