@@ -249,10 +249,21 @@ pub(crate) struct InstallConfigOpts {
249249
250250#[ derive( Debug , Clone , clap:: Parser , Serialize , Deserialize , PartialEq , Eq ) ]
251251pub ( 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
252258 #[ clap( long, default_value_t) ]
253259 #[ serde( default ) ]
254260 pub ( crate ) insecure : bool ,
255261
262+ /// The bootloader to use.
263+ /// Currently supported:
264+ ///
265+ /// - systemd-boot
266+ /// - grub
256267 #[ clap( long, default_value_t) ]
257268 #[ serde( default ) ]
258269 pub ( crate ) bootloader : Bootloader ,
@@ -288,11 +299,6 @@ pub(crate) struct InstallToDiskOpts {
288299 #[ serde( default ) ]
289300 pub ( crate ) via_loopback : bool ,
290301
291- #[ clap( long) ]
292- #[ serde( default ) ]
293- #[ cfg( feature = "composefs-backend" ) ]
294- pub ( crate ) composefs_native : bool ,
295-
296302 #[ clap( flatten) ]
297303 #[ serde( flatten) ]
298304 #[ cfg( feature = "composefs-backend" ) ]
@@ -373,10 +379,6 @@ pub(crate) struct InstallToFilesystemOpts {
373379 #[ clap( flatten) ]
374380 pub ( crate ) config_opts : InstallConfigOpts ,
375381
376- #[ clap( long) ]
377- #[ cfg( feature = "composefs-backend" ) ]
378- pub ( crate ) composefs_native : bool ,
379-
380382 #[ cfg( feature = "composefs-backend" ) ]
381383 #[ clap( flatten) ]
382384 pub ( crate ) compoesfs_opts : InstallComposefsOpts ,
@@ -446,9 +448,9 @@ pub(crate) struct State {
446448 pub ( crate ) container_root : Dir ,
447449 pub ( crate ) tempdir : TempDir ,
448450
449- // If Some, then --composefs_native is passed
451+ // If Some, then --composefs-backend is passed
450452 #[ cfg( feature = "composefs-backend" ) ]
451- pub ( crate ) composefs_options : Option < InstallComposefsOpts > ,
453+ pub ( crate ) composefs_options : InstallComposefsOpts ,
452454}
453455
454456impl State {
@@ -578,10 +580,10 @@ impl FromStr for MountSpec {
578580#[ cfg( all( feature = "install-to-disk" , feature = "composefs-backend" ) ) ]
579581impl InstallToDiskOpts {
580582 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
583585 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 " ) ;
585587 }
586588 }
587589
@@ -1234,7 +1236,7 @@ async fn prepare_install(
12341236 config_opts : InstallConfigOpts ,
12351237 source_opts : InstallSourceOpts ,
12361238 target_opts : InstallTargetOpts ,
1237- _composefs_opts : Option < InstallComposefsOpts > ,
1239+ # [ cfg ( feature = "composefs-backend" ) ] composefs_options : InstallComposefsOpts ,
12381240) -> Result < Arc < State > > {
12391241 tracing:: trace!( "Preparing install" ) ;
12401242 let rootfs = cap_std:: fs:: Dir :: open_ambient_dir ( "/" , cap_std:: ambient_authority ( ) )
@@ -1380,7 +1382,7 @@ async fn prepare_install(
13801382 tempdir,
13811383 host_is_container,
13821384 #[ cfg( feature = "composefs-backend" ) ]
1383- composefs_options : _composefs_opts ,
1385+ composefs_options,
13841386 } ) ;
13851387
13861388 Ok ( state)
@@ -1545,7 +1547,7 @@ async fn install_to_filesystem_impl(
15451547 }
15461548
15471549 #[ cfg( feature = "composefs-backend" ) ]
1548- if state. composefs_options . is_some ( ) {
1550+ if state. composefs_options . composefs_backend {
15491551 // Load a fd for the mounted target physical root
15501552
15511553 let ( id, verity) = initialize_composefs_repository ( state, rootfs) . await ?;
@@ -1622,21 +1624,12 @@ pub(crate) async fn install_to_disk(mut opts: InstallToDiskOpts) -> Result<()> {
16221624 anyhow:: bail!( "Not a block device: {}" , block_opts. device) ;
16231625 }
16241626
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-
16351627 let state = prepare_install (
16361628 opts. config_opts ,
16371629 opts. source_opts ,
16381630 opts. target_opts ,
1639- composefs_arg,
1631+ #[ cfg( feature = "composefs-backend" ) ]
1632+ opts. composefs_opts ,
16401633 )
16411634 . await ?;
16421635
@@ -1874,9 +1867,7 @@ pub(crate) async fn install_to_filesystem(
18741867 opts. source_opts ,
18751868 opts. target_opts ,
18761869 #[ 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 ,
18801871 )
18811872 . await ?;
18821873
@@ -2148,9 +2139,8 @@ pub(crate) async fn install_to_existing_root(opts: InstallToExistingRootOpts) ->
21482139 target_opts : opts. target_opts ,
21492140 config_opts : opts. config_opts ,
21502141 #[ cfg( feature = "composefs-backend" ) ]
2151- composefs_native : false ,
2152- #[ cfg( feature = "composefs-backend" ) ]
21532142 compoesfs_opts : InstallComposefsOpts {
2143+ composefs_backend : true ,
21542144 insecure : false ,
21552145 bootloader : Bootloader :: Grub ,
21562146 uki_addon : None ,
0 commit comments