1 |
A bit of background: |
2 |
|
3 |
nix and guix are both hermetic builders with precise dependency |
4 |
management: all build inputs are explicit and build outputs should |
5 |
ideally not change if build inputs don't change. |
6 |
|
7 |
Every user in the system can trigger the build via IPC request |
8 |
to the builder daemon (nix-daemon or guix-daemon). |
9 |
|
10 |
For each IPC request builder daemon pick free user from user pool |
11 |
dedicated specifically for building. In case of nix pool group |
12 |
is 'nixbld' and users in that pool are 'nixbld1', 'nixbld2', and so |
13 |
on. There is no fixed limit on a pool size. Nixos creates 32 users: |
14 |
nixbld{1..32}. |
15 |
|
16 |
That way different users can't interfere with one anothers' build. |
17 |
|
18 |
Groups/users have a few properties: |
19 |
- final build results are owned by root:root and never by |
20 |
nixbld{1..10} users |
21 |
- nixbld{1..10} own only temporary build directory while IPC |
22 |
request is handled. Temporary directory is deleted when build |
23 |
is finished. |
24 |
- the more concurrent clients are there the more users should |
25 |
be in the builder group. |
26 |
|
27 |
There is a GID collision: |
28 |
Both nix and guix use GID=30000 for their 'nixbld' |
29 |
and 'guixbuild' groups. As Gentoo allows both to co-exist |
30 |
one of them has to give. I've moved guix down to 31000. |
31 |
|
32 |
I've effectively reserved space for 1000 users for each of them: |
33 |
- 30000..30999 |
34 |
- 31000..31000 |
35 |
and using only 10 of each. |
36 |
|
37 |
Sergei Trofimovich (6): |
38 |
acct-group/nixbld: new group (GID 30000) |
39 |
acct-group/guixbuild: new group (GID 31000) |
40 |
acct-user/nixbld{1..10}: new user (UID {30001..30010) |
41 |
acct-user/guixbuilder{1..10}: new user (UID {31001..31010) |
42 |
sys-apps/nix: switch from user.eclass to acct-*/ depends |
43 |
sys-apps/guix: switch from user.eclass to acct-*/ depends |
44 |
|
45 |
acct-group/guixbuild/guixbuild-0.ebuild | 10 ++ |
46 |
acct-group/guixbuild/metadata.xml | 8 + |
47 |
acct-group/nixbld/metadata.xml | 8 + |
48 |
acct-group/nixbld/nixbld-0.ebuild | 9 + |
49 |
acct-user/guixbuilder1/guixbuilder1-0.ebuild | 13 ++ |
50 |
acct-user/guixbuilder1/metadata.xml | 8 + |
51 |
.../guixbuilder10/guixbuilder10-0.ebuild | 13 ++ |
52 |
acct-user/guixbuilder10/metadata.xml | 8 + |
53 |
acct-user/guixbuilder2/guixbuilder2-0.ebuild | 13 ++ |
54 |
acct-user/guixbuilder2/metadata.xml | 8 + |
55 |
acct-user/guixbuilder3/guixbuilder3-0.ebuild | 13 ++ |
56 |
acct-user/guixbuilder3/metadata.xml | 8 + |
57 |
acct-user/guixbuilder4/guixbuilder4-0.ebuild | 13 ++ |
58 |
acct-user/guixbuilder4/metadata.xml | 8 + |
59 |
acct-user/guixbuilder5/guixbuilder5-0.ebuild | 13 ++ |
60 |
acct-user/guixbuilder5/metadata.xml | 8 + |
61 |
acct-user/guixbuilder6/guixbuilder6-0.ebuild | 13 ++ |
62 |
acct-user/guixbuilder6/metadata.xml | 8 + |
63 |
acct-user/guixbuilder7/guixbuilder7-0.ebuild | 13 ++ |
64 |
acct-user/guixbuilder7/metadata.xml | 8 + |
65 |
acct-user/guixbuilder8/guixbuilder8-0.ebuild | 13 ++ |
66 |
acct-user/guixbuilder8/metadata.xml | 8 + |
67 |
acct-user/guixbuilder9/guixbuilder9-0.ebuild | 13 ++ |
68 |
acct-user/guixbuilder9/metadata.xml | 8 + |
69 |
acct-user/nixbld1/metadata.xml | 8 + |
70 |
acct-user/nixbld1/nixbld1-0.ebuild | 13 ++ |
71 |
acct-user/nixbld10/metadata.xml | 8 + |
72 |
acct-user/nixbld10/nixbld10-0.ebuild | 13 ++ |
73 |
acct-user/nixbld2/metadata.xml | 8 + |
74 |
acct-user/nixbld2/nixbld2-0.ebuild | 13 ++ |
75 |
acct-user/nixbld3/metadata.xml | 8 + |
76 |
acct-user/nixbld3/nixbld3-0.ebuild | 13 ++ |
77 |
acct-user/nixbld4/metadata.xml | 8 + |
78 |
acct-user/nixbld4/nixbld4-0.ebuild | 13 ++ |
79 |
acct-user/nixbld5/metadata.xml | 8 + |
80 |
acct-user/nixbld5/nixbld5-0.ebuild | 13 ++ |
81 |
acct-user/nixbld6/metadata.xml | 8 + |
82 |
acct-user/nixbld6/nixbld6-0.ebuild | 13 ++ |
83 |
acct-user/nixbld7/metadata.xml | 8 + |
84 |
acct-user/nixbld7/nixbld7-0.ebuild | 13 ++ |
85 |
acct-user/nixbld8/metadata.xml | 8 + |
86 |
acct-user/nixbld8/nixbld8-0.ebuild | 13 ++ |
87 |
acct-user/nixbld9/metadata.xml | 8 + |
88 |
acct-user/nixbld9/nixbld9-0.ebuild | 13 ++ |
89 |
sys-apps/guix/guix-1.0.1-r2.ebuild | 165 ++++++++++++++++++ |
90 |
sys-apps/nix/nix-2.3.1-r1.ebuild | 145 +++++++++++++++ |
91 |
46 files changed, 765 insertions(+) |
92 |
create mode 100644 acct-group/guixbuild/guixbuild-0.ebuild |
93 |
create mode 100644 acct-group/guixbuild/metadata.xml |
94 |
create mode 100644 acct-group/nixbld/metadata.xml |
95 |
create mode 100644 acct-group/nixbld/nixbld-0.ebuild |
96 |
create mode 100644 acct-user/guixbuilder1/guixbuilder1-0.ebuild |
97 |
create mode 100644 acct-user/guixbuilder1/metadata.xml |
98 |
create mode 100644 acct-user/guixbuilder10/guixbuilder10-0.ebuild |
99 |
create mode 100644 acct-user/guixbuilder10/metadata.xml |
100 |
create mode 100644 acct-user/guixbuilder2/guixbuilder2-0.ebuild |
101 |
create mode 100644 acct-user/guixbuilder2/metadata.xml |
102 |
create mode 100644 acct-user/guixbuilder3/guixbuilder3-0.ebuild |
103 |
create mode 100644 acct-user/guixbuilder3/metadata.xml |
104 |
create mode 100644 acct-user/guixbuilder4/guixbuilder4-0.ebuild |
105 |
create mode 100644 acct-user/guixbuilder4/metadata.xml |
106 |
create mode 100644 acct-user/guixbuilder5/guixbuilder5-0.ebuild |
107 |
create mode 100644 acct-user/guixbuilder5/metadata.xml |
108 |
create mode 100644 acct-user/guixbuilder6/guixbuilder6-0.ebuild |
109 |
create mode 100644 acct-user/guixbuilder6/metadata.xml |
110 |
create mode 100644 acct-user/guixbuilder7/guixbuilder7-0.ebuild |
111 |
create mode 100644 acct-user/guixbuilder7/metadata.xml |
112 |
create mode 100644 acct-user/guixbuilder8/guixbuilder8-0.ebuild |
113 |
create mode 100644 acct-user/guixbuilder8/metadata.xml |
114 |
create mode 100644 acct-user/guixbuilder9/guixbuilder9-0.ebuild |
115 |
create mode 100644 acct-user/guixbuilder9/metadata.xml |
116 |
create mode 100644 acct-user/nixbld1/metadata.xml |
117 |
create mode 100644 acct-user/nixbld1/nixbld1-0.ebuild |
118 |
create mode 100644 acct-user/nixbld10/metadata.xml |
119 |
create mode 100644 acct-user/nixbld10/nixbld10-0.ebuild |
120 |
create mode 100644 acct-user/nixbld2/metadata.xml |
121 |
create mode 100644 acct-user/nixbld2/nixbld2-0.ebuild |
122 |
create mode 100644 acct-user/nixbld3/metadata.xml |
123 |
create mode 100644 acct-user/nixbld3/nixbld3-0.ebuild |
124 |
create mode 100644 acct-user/nixbld4/metadata.xml |
125 |
create mode 100644 acct-user/nixbld4/nixbld4-0.ebuild |
126 |
create mode 100644 acct-user/nixbld5/metadata.xml |
127 |
create mode 100644 acct-user/nixbld5/nixbld5-0.ebuild |
128 |
create mode 100644 acct-user/nixbld6/metadata.xml |
129 |
create mode 100644 acct-user/nixbld6/nixbld6-0.ebuild |
130 |
create mode 100644 acct-user/nixbld7/metadata.xml |
131 |
create mode 100644 acct-user/nixbld7/nixbld7-0.ebuild |
132 |
create mode 100644 acct-user/nixbld8/metadata.xml |
133 |
create mode 100644 acct-user/nixbld8/nixbld8-0.ebuild |
134 |
create mode 100644 acct-user/nixbld9/metadata.xml |
135 |
create mode 100644 acct-user/nixbld9/nixbld9-0.ebuild |
136 |
create mode 100644 sys-apps/guix/guix-1.0.1-r2.ebuild |
137 |
create mode 100644 sys-apps/nix/nix-2.3.1-r1.ebuild |
138 |
|
139 |
-- |
140 |
2.24.0 |