Gentoo Archives: gentoo-dev

From: Andrew Savchenko <bircoph@g.o>
To: gentoo-dev@l.g.o
Subject: Re: [gentoo-dev] Figuring out the solution to in-network-sandbox distcc
Date: Mon, 26 Jan 2015 23:46:49
Message-Id: 20150127024637.bbd192392cbb6f3cc1a130c6@gentoo.org
In Reply to: Re: [gentoo-dev] Figuring out the solution to in-network-sandbox distcc by "Michał Górny"
1 Hi,
2
3 On Sun, 25 Jan 2015 14:59:01 +0100 Michał Górny wrote:
4 > Dnia 2015-01-21, o godz. 11:05:34
5 > Michał Górny <mgorny@g.o> napisał(a):
6 >
7 > > Generic proxy solution
8 > > ----------------------
9 > >
10 > > The simplest solution so far seems to be setting a generic SOCKS proxy
11 > > inside the build environment, and wrapping distcc so that it will use
12 > > it for network access.
13 > >
14 > > Unless we do some extra magic which don't want to do, this means that
15 > > other apps can also abuse the proxy to reach outside sandbox. However,
16 > > network-sandbox is not really a security feature, so I don't think that
17 > > is important. At least as long as we don't export it globally :).
18 > >
19 > > Of course, software is a problem. We'd need at least some SOCKS server
20 > > for Portage (at least a very simple one), and as far as I'm aware
21 > > distcc does not support SOCKS directly, so tsocks in addition to that.
22 >
23 > So finally went this way instead.
24
25 I still don't understand why. This solution:
26 1) is intrusive, it requires patching distcc and upstream as good
27 as dead (see below);
28 2) will require a _separate_ solution for icecream and thus a
29 double effort;
30 3) adds additional latency for distcc network path, which is
31 undesirable.
32
33 Parent namespace solution looks like the most reasonable for me
34 based on both arguments above and years of heavy distcc usage
35 experience.
36
37 > [2]:https://code.google.com/p/distcc/issues/detail?id=149
38
39 Chances to have this upstream are close to zero. If it is not
40 dead, it is very close to it. Number of bugs and patches is
41 accumulating without any response. No releases from 2011.
42 Probably someone should fork it...
43
44 Distcc has a problem with -march=native right now: it just falls
45 back to local compilation if encountered it. I sent them a patch
46 1.5 years ago [1] and still no reply... It also requires some
47 patches for successful cross-compilation when plain gcc is invoked
48 by the client. (I have patches for amd64 <-> x86 only and they may
49 broke pump mode (never used it anyway), thus I haven't send them
50 upstream.
51
52 [1] https://groups.google.com/forum/#!topic/distcc-patches/eeP-9pTgz7E
53
54 In short, this patch expands "native" argument using gcc output,
55 caches result (based on fingerprint of compiler being invoked)
56 and sends expanded string to distcc servers. It is in my overlay
57 (bircoph) if someone is interested. Works fine for me all these
58 time.
59
60 Best regards,
61 Andrew Savchenko

Replies