15
15
16
16
import argparse
17
17
import os
18
- import shutil
19
18
20
19
from lib .utils import run , run_as_root
21
20
from lib .tmpdir import Tmpdir
@@ -32,7 +31,7 @@ def create_configuration_file(args):
32
31
config .write (f"CHROOT={ args .chroot or args .bwrap } \n " )
33
32
config .write (f"UPDATE_CHECKSUMS={ args .update_checksums } \n " )
34
33
config .write (f"JOBS={ args .cores } \n " )
35
- config .write (f"INTERNAL_CI={ args .internal_ci } \n " )
34
+ config .write (f"INTERNAL_CI={ args .internal_ci or False } \n " )
36
35
config .write (f"BARE_METAL={ args .bare_metal } \n " )
37
36
if (args .bare_metal or args .qemu ) and not args .kernel :
38
37
if args .repo or args .external_sources :
@@ -187,50 +186,33 @@ def bootstrap(args, generator, tmpdir, size):
187
186
run_as_root ('env' , '-i' , 'PATH=/bin' , chroot_binary , generator .tmp_dir , init )
188
187
189
188
elif args .bwrap :
189
+ init = '/init'
190
190
if not args .internal_ci or args .internal_ci == "pass1" :
191
191
generator .prepare (tmpdir , using_kernel = False )
192
192
193
193
arch = stage0_arch_map .get (args .arch , args .arch )
194
194
init = os .path .join (os .sep , 'bootstrap-seeds' , 'POSIX' , arch , 'kaem-optional-seed' )
195
- run ('bwrap' , '--unshare-user' ,
196
- '--uid' , '0' ,
197
- '--gid' , '0' ,
198
- '--unshare-net' ,
199
- '--clearenv' ,
200
- '--setenv' , 'PATH' , '/usr/bin' ,
201
- '--bind' , generator .tmp_dir , '/' ,
202
- '--dir' , '/dev' ,
203
- '--dev-bind' , '/dev/null' , '/dev/null' ,
204
- '--dev-bind' , '/dev/zero' , '/dev/zero' ,
205
- '--dev-bind' , '/dev/random' , '/dev/random' ,
206
- '--dev-bind' , '/dev/urandom' , '/dev/urandom' ,
207
- '--dev-bind' , '/dev/ptmx' , '/dev/ptmx' ,
208
- '--dev-bind' , '/dev/tty' , '/dev/tty' ,
209
- init )
195
+ else :
196
+ generator .reuse (tmpdir )
210
197
211
- if not args .internal_ci or args .internal_ci == "pass2" or args .internal_ci == "pass3" :
212
- os .makedirs (os .path .join (generator .tmp_dir , 'stage2' , 'steps' ), exist_ok = True )
213
- shutil .copy2 (os .path .join ('steps' , 'bootstrap.cfg' ),
214
- os .path .join (generator .tmp_dir , 'stage2' , 'steps' , 'bootstrap.cfg' ))
215
- run ('bwrap' , '--unshare-user' ,
216
- '--uid' , '0' ,
217
- '--gid' , '0' ,
218
- '--unshare-net' if args .external_sources else None ,
219
- '--clearenv' ,
220
- '--setenv' , 'PATH' , '/usr/bin' ,
221
- '--bind' , os .path .join (generator .tmp_dir , "stage2" ), '/' ,
222
- '--dir' , '/dev' ,
223
- '--dev-bind' , '/dev/null' , '/dev/null' ,
224
- '--dev-bind' , '/dev/zero' , '/dev/zero' ,
225
- '--dev-bind' , '/dev/random' , '/dev/random' ,
226
- '--dev-bind' , '/dev/urandom' , '/dev/urandom' ,
227
- '--dev-bind' , '/dev/ptmx' , '/dev/ptmx' ,
228
- '--dev-bind' , '/dev/tty' , '/dev/tty' ,
229
- '--tmpfs' , '/dev/shm' ,
230
- '--proc' , '/proc' ,
231
- '--bind' , '/sys' , '/sys' ,
232
- '--tmpfs' , '/tmp' ,
233
- '/init' )
198
+ run ('env' , '-i' , 'bwrap' , '--unshare-user' ,
199
+ '--uid' , '0' ,
200
+ '--gid' , '0' ,
201
+ '--unshare-net' if args .external_sources else None ,
202
+ '--setenv' , 'PATH' , '/usr/bin' ,
203
+ '--bind' , generator .tmp_dir , '/' ,
204
+ '--dir' , '/dev' ,
205
+ '--dev-bind' , '/dev/null' , '/dev/null' ,
206
+ '--dev-bind' , '/dev/zero' , '/dev/zero' ,
207
+ '--dev-bind' , '/dev/random' , '/dev/random' ,
208
+ '--dev-bind' , '/dev/urandom' , '/dev/urandom' ,
209
+ '--dev-bind' , '/dev/ptmx' , '/dev/ptmx' ,
210
+ '--dev-bind' , '/dev/tty' , '/dev/tty' ,
211
+ '--tmpfs' , '/dev/shm' ,
212
+ '--proc' , '/proc' ,
213
+ '--bind' , '/sys' , '/sys' ,
214
+ '--tmpfs' , '/tmp' ,
215
+ init )
234
216
235
217
elif args .bare_metal :
236
218
if args .kernel :
0 commit comments