@@ -249,10 +249,21 @@ pub(crate) struct InstallConfigOpts {
249
249
250
250
#[ derive( Debug , Clone , clap:: Parser , Serialize , Deserialize , PartialEq , Eq ) ]
251
251
pub ( crate ) struct InstallComposefsOpts {
252
+ /// If true, composefs backend is used, else ostree backend is used
253
+ #[ clap( long, default_value_t) ]
254
+ #[ serde( default ) ]
255
+ pub ( crate ) composefs_backend : bool ,
256
+
257
+ /// Make fs-verity validation optional in case the filesystem doesn't support it
252
258
#[ clap( long, default_value_t) ]
253
259
#[ serde( default ) ]
254
260
pub ( crate ) insecure : bool ,
255
261
262
+ /// The bootloader to use.
263
+ /// Currently supported:
264
+ ///
265
+ /// - systemd-boot
266
+ /// - grub
256
267
#[ clap( long, default_value_t) ]
257
268
#[ serde( default ) ]
258
269
pub ( crate ) bootloader : Bootloader ,
@@ -288,11 +299,6 @@ pub(crate) struct InstallToDiskOpts {
288
299
#[ serde( default ) ]
289
300
pub ( crate ) via_loopback : bool ,
290
301
291
- #[ clap( long) ]
292
- #[ serde( default ) ]
293
- #[ cfg( feature = "composefs-backend" ) ]
294
- pub ( crate ) composefs_native : bool ,
295
-
296
302
#[ clap( flatten) ]
297
303
#[ serde( flatten) ]
298
304
#[ cfg( feature = "composefs-backend" ) ]
@@ -373,10 +379,6 @@ pub(crate) struct InstallToFilesystemOpts {
373
379
#[ clap( flatten) ]
374
380
pub ( crate ) config_opts : InstallConfigOpts ,
375
381
376
- #[ clap( long) ]
377
- #[ cfg( feature = "composefs-backend" ) ]
378
- pub ( crate ) composefs_native : bool ,
379
-
380
382
#[ cfg( feature = "composefs-backend" ) ]
381
383
#[ clap( flatten) ]
382
384
pub ( crate ) compoesfs_opts : InstallComposefsOpts ,
@@ -446,9 +448,9 @@ pub(crate) struct State {
446
448
pub ( crate ) container_root : Dir ,
447
449
pub ( crate ) tempdir : TempDir ,
448
450
449
- // If Some, then --composefs_native is passed
451
+ // If Some, then --composefs-backend is passed
450
452
#[ cfg( feature = "composefs-backend" ) ]
451
- pub ( crate ) composefs_options : Option < InstallComposefsOpts > ,
453
+ pub ( crate ) composefs_options : InstallComposefsOpts ,
452
454
}
453
455
454
456
impl State {
@@ -578,10 +580,10 @@ impl FromStr for MountSpec {
578
580
#[ cfg( all( feature = "install-to-disk" , feature = "composefs-backend" ) ) ]
579
581
impl InstallToDiskOpts {
580
582
pub ( crate ) fn validate ( & self ) -> Result < ( ) > {
581
- if !self . composefs_native {
582
- // Reject using --insecure without --composefs
583
+ if !self . composefs_opts . composefs_backend {
584
+ // Reject using --insecure without --composefs-backend
583
585
if self . composefs_opts . insecure != false {
584
- anyhow:: bail!( "--insecure must not be provided without --composefs" ) ;
586
+ anyhow:: bail!( "--insecure must not be provided without --composefs-backend " ) ;
585
587
}
586
588
}
587
589
@@ -1234,7 +1236,7 @@ async fn prepare_install(
1234
1236
config_opts : InstallConfigOpts ,
1235
1237
source_opts : InstallSourceOpts ,
1236
1238
target_opts : InstallTargetOpts ,
1237
- _composefs_opts : Option < InstallComposefsOpts > ,
1239
+ # [ cfg ( feature = "composefs-backend" ) ] composefs_options : InstallComposefsOpts ,
1238
1240
) -> Result < Arc < State > > {
1239
1241
tracing:: trace!( "Preparing install" ) ;
1240
1242
let rootfs = cap_std:: fs:: Dir :: open_ambient_dir ( "/" , cap_std:: ambient_authority ( ) )
@@ -1380,7 +1382,7 @@ async fn prepare_install(
1380
1382
tempdir,
1381
1383
host_is_container,
1382
1384
#[ cfg( feature = "composefs-backend" ) ]
1383
- composefs_options : _composefs_opts ,
1385
+ composefs_options,
1384
1386
} ) ;
1385
1387
1386
1388
Ok ( state)
@@ -1545,7 +1547,7 @@ async fn install_to_filesystem_impl(
1545
1547
}
1546
1548
1547
1549
#[ cfg( feature = "composefs-backend" ) ]
1548
- if state. composefs_options . is_some ( ) {
1550
+ if state. composefs_options . composefs_backend {
1549
1551
// Load a fd for the mounted target physical root
1550
1552
1551
1553
let ( id, verity) = initialize_composefs_repository ( state, rootfs) . await ?;
@@ -1622,21 +1624,12 @@ pub(crate) async fn install_to_disk(mut opts: InstallToDiskOpts) -> Result<()> {
1622
1624
anyhow:: bail!( "Not a block device: {}" , block_opts. device) ;
1623
1625
}
1624
1626
1625
- #[ cfg( feature = "composefs-backend" ) ]
1626
- let composefs_arg = if opts. composefs_native {
1627
- Some ( opts. composefs_opts )
1628
- } else {
1629
- None
1630
- } ;
1631
-
1632
- #[ cfg( not( feature = "composefs-backend" ) ) ]
1633
- let composefs_arg = None ;
1634
-
1635
1627
let state = prepare_install (
1636
1628
opts. config_opts ,
1637
1629
opts. source_opts ,
1638
1630
opts. target_opts ,
1639
- composefs_arg,
1631
+ #[ cfg( feature = "composefs-backend" ) ]
1632
+ opts. composefs_opts ,
1640
1633
)
1641
1634
. await ?;
1642
1635
@@ -1874,9 +1867,7 @@ pub(crate) async fn install_to_filesystem(
1874
1867
opts. source_opts ,
1875
1868
opts. target_opts ,
1876
1869
#[ cfg( feature = "composefs-backend" ) ]
1877
- opts. composefs_native . then_some ( opts. compoesfs_opts ) ,
1878
- #[ cfg( not( feature = "composefs-backend" ) ) ]
1879
- None ,
1870
+ opts. compoesfs_opts ,
1880
1871
)
1881
1872
. await ?;
1882
1873
@@ -2148,9 +2139,8 @@ pub(crate) async fn install_to_existing_root(opts: InstallToExistingRootOpts) ->
2148
2139
target_opts : opts. target_opts ,
2149
2140
config_opts : opts. config_opts ,
2150
2141
#[ cfg( feature = "composefs-backend" ) ]
2151
- composefs_native : false ,
2152
- #[ cfg( feature = "composefs-backend" ) ]
2153
2142
compoesfs_opts : InstallComposefsOpts {
2143
+ composefs_backend : true ,
2154
2144
insecure : false ,
2155
2145
bootloader : Bootloader :: Grub ,
2156
2146
uki_addon : None ,
0 commit comments