@@ -29,6 +29,7 @@ def __init__(self, arch, external_sources, early_preseed, repo_path):
2929 self .external_sources = external_sources
3030 self .repo_path = repo_path
3131 self .source_manifest = self .get_source_manifest (not self .external_sources )
32+ self .early_source_manifest = self .get_source_manifest (True )
3233 self .target_dir = None
3334 self .external_dir = None
3435
@@ -59,26 +60,16 @@ def prepare(self, target, using_kernel=False, kernel_bootstrap=False, target_siz
5960 # argument matrix ... or we could just use ext3 instead which
6061 # is effectively universally the same
6162 if kernel_bootstrap :
62- init_path = os .path .join (self .target_dir , 'init' )
63+ self .target_dir = os .path .join (self .target_dir , 'init' )
64+ os .mkdir (self .target_dir )
6365
64- os .mkdir (init_path )
65- self .target_dir = init_path
66-
67- if self .repo_path or self .external_sources :
68- target .add_disk ("external" , filesystem = "ext3" )
69- target .mount_disk ("external" , "external" )
70- else :
66+ if not self .repo_path and not self .external_sources :
7167 self .external_dir = os .path .join (self .target_dir , 'external' )
7268 elif using_kernel :
7369 self .target_dir = os .path .join (self .target_dir , 'disk' )
74- target .add_disk ("disk" ,
75- filesystem = "ext3" ,
76- size = (str (target_size ) + "M" ) if target_size else "16G" ,
77- bootable = True )
78- target .mount_disk ("disk" , "disk" )
7970 self .external_dir = os .path .join (self .target_dir , 'external' )
8071
81- os .makedirs (self .external_dir , exist_ok = True )
72+ os .makedirs (self .external_dir )
8273
8374 if self .early_preseed :
8475 # Extract tar containing preseed
@@ -103,10 +94,16 @@ def prepare(self, target, using_kernel=False, kernel_bootstrap=False, target_siz
10394 if kernel_bootstrap :
10495 self .create_builder_hex0_disk_image (self .target_dir + '.img' , target_size )
10596
106- if kernel_bootstrap and (self .external_sources or self .repo_path ):
107- target .umount_disk ('external' )
97+ if self .repo_path or self .external_sources :
98+ mkfs_args = ['-d' , os .path .join (target .path , 'external' )]
99+ target .add_disk ("external" , filesystem = "ext3" , mkfs_args = mkfs_args )
108100 elif using_kernel :
109- target .umount_disk ('disk' )
101+ mkfs_args = ['-d' , os .path .join (target .path , 'disk' )]
102+ target .add_disk ("disk" ,
103+ filesystem = "ext3" ,
104+ size = (str (target_size ) + "M" ) if target_size else "16G" ,
105+ bootable = True ,
106+ mkfs_args = mkfs_args )
110107
111108 def steps (self ):
112109 """Copy in steps."""
@@ -163,9 +160,10 @@ def create_fiwix_file_list(self):
163160
164161 def distfiles (self ):
165162 """Copy in distfiles"""
166- def copy_no_network_distfiles (out ):
163+ def copy_no_network_distfiles (out , early ):
167164 # Note that "no disk" implies "no network" for kernel bootstrap mode
168- for file in self .source_manifest :
165+ manifest = self .early_source_manifest if early else self .source_manifest
166+ for file in manifest :
169167 file = file [3 ].strip ()
170168 shutil .copy2 (os .path .join (self .distfiles_dir , file ),
171169 os .path .join (out , file ))
@@ -175,13 +173,13 @@ def copy_no_network_distfiles(out):
175173
176174 if early_distfile_dir != main_distfile_dir :
177175 os .makedirs (early_distfile_dir , exist_ok = True )
178- copy_no_network_distfiles (early_distfile_dir )
176+ copy_no_network_distfiles (early_distfile_dir , True )
179177
180178 if self .external_sources :
181179 shutil .copytree (self .distfiles_dir , main_distfile_dir , dirs_exist_ok = True )
182180 else :
183181 os .mkdir (main_distfile_dir )
184- copy_no_network_distfiles (main_distfile_dir )
182+ copy_no_network_distfiles (main_distfile_dir , False )
185183
186184 @staticmethod
187185 def output_dir (srcfs_file , dirpath ):
0 commit comments