From a0f6b83f791bc161536102d36fdf20027f930d7e Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Wed, 8 Jul 2026 09:41:38 -0400 Subject: [PATCH] Update composefs-rs Bump our own ocidir and containers-image-proxy pins to match what composefs-oci now uses, so the dependency graph doesn't end up with two copies. Disable composefs-ctl's "ostree" feature for now: it pulls in reqwest (for remote pulls), which drags in rustls-webpki/untrusted/webpki-root-certs whose licenses aren't in our cargo-deny allow list. bootc doesn't use the ostree support in composefs-ctl yet, so just turn it off until the licensing is sorted out upstream or in our deny.toml. Signed-off-by: Colin Walters --- Cargo.lock | 1069 +++-------------- Cargo.toml | 12 +- crates/initramfs/src/lib.rs | 2 +- crates/lib/Cargo.toml | 2 +- crates/lib/src/bootc_composefs/boot.rs | 7 +- crates/ostree-ext/Cargo.toml | 4 +- .../src/container/update_detachedmeta.rs | 1 + crates/ostree-ext/src/fixture.rs | 1 + crates/ostree-ext/src/integrationtest.rs | 2 +- crates/ostree-ext/tests/it/main.rs | 1 + 10 files changed, 200 insertions(+), 901 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 5060b8bc7..8c6097aff 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -213,7 +213,7 @@ version = "0.1.0" source = "git+https://github.com/bootc-dev/bcvk?rev=22a4223d4101cb3f9306e942a79ceb13f173927e#22a4223d4101cb3f9306e942a79ceb13f173927e" dependencies = [ "camino", - "cap-std-ext 5.1.2", + "cap-std-ext", "color-eyre", "data-encoding", "libc", @@ -272,7 +272,7 @@ name = "bootc-initramfs-setup" version = "0.1.0" dependencies = [ "anyhow", - "cap-std-ext 5.1.2", + "cap-std-ext", "clap", "composefs-ctl", "fn-error-context", @@ -280,7 +280,7 @@ dependencies = [ "linux-kernel-cmdline", "rustix", "serde", - "toml 1.1.2+spec-1.1.0", + "toml", "tracing", ] @@ -292,7 +292,7 @@ dependencies = [ "bootc-internal-mount", "bootc-internal-utils", "camino", - "cap-std-ext 5.1.2", + "cap-std-ext", "fn-error-context", "indoc", "libc", @@ -311,7 +311,7 @@ dependencies = [ "anyhow", "bootc-internal-utils", "camino", - "cap-std-ext 5.1.2", + "cap-std-ext", "fn-error-context", "indoc", "libc", @@ -327,7 +327,7 @@ version = "1.16.3" dependencies = [ "anstream", "anyhow", - "cap-std-ext 5.1.2", + "cap-std-ext", "chrono", "owo-colors", "rustix", @@ -358,7 +358,7 @@ dependencies = [ "bootc-tmpfiles", "camino", "canon-json", - "cap-std-ext 5.1.2", + "cap-std-ext", "cfg-if", "chrono", "clap", @@ -373,7 +373,7 @@ dependencies = [ "http-body-util", "hyper", "hyper-util", - "indicatif 0.18.4", + "indicatif", "indoc", "libc", "liboverdrop", @@ -400,7 +400,7 @@ dependencies = [ "tini", "tokio", "tokio-util", - "toml 1.1.2+spec-1.1.0", + "toml", "tracing", "uapi-version", "unicode-width", @@ -415,7 +415,7 @@ dependencies = [ "anyhow", "bootc-internal-utils", "camino", - "cap-std-ext 5.1.2", + "cap-std-ext", "fn-error-context", "hex", "indoc", @@ -433,7 +433,7 @@ dependencies = [ "anyhow", "bootc-internal-utils", "camino", - "cap-std-ext 5.1.2", + "cap-std-ext", "fn-error-context", "indoc", "rustix", @@ -493,24 +493,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "cap-primitives" -version = "3.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6cf3aea8a5081171859ef57bc1606b1df6999df4f1110f8eef68b30098d1d3a" -dependencies = [ - "ambient-authority", - "fs-set-times", - "io-extras 0.18.4", - "io-lifetimes 2.0.4", - "ipnet", - "maybe-owned", - "rustix", - "rustix-linux-procfs", - "windows-sys 0.59.0", - "winx", -] - [[package]] name = "cap-primitives" version = "4.0.2" @@ -519,7 +501,7 @@ checksum = "cdadbd7c002d3a484b35243669abdae85a0ebaded5a61117169dc3400f9a7ff0" dependencies = [ "ambient-authority", "fs-set-times", - "io-extras 0.19.0", + "io-extras", "io-lifetimes 3.0.1", "ipnet", "maybe-owned", @@ -529,18 +511,6 @@ dependencies = [ "winx", ] -[[package]] -name = "cap-std" -version = "3.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6dc3090992a735d23219de5c204927163d922f42f575a0189b005c62d37549a" -dependencies = [ - "cap-primitives 3.4.5", - "io-extras 0.18.4", - "io-lifetimes 2.0.4", - "rustix", -] - [[package]] name = "cap-std" version = "4.0.2" @@ -548,49 +518,24 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7281235d6e96d3544ca18bba9049be92f4190f8d923e3caef1b5f66cfa752608" dependencies = [ "camino", - "cap-primitives 4.0.2", - "io-extras 0.19.0", + "cap-primitives", + "io-extras", "io-lifetimes 3.0.1", "rustix", ] -[[package]] -name = "cap-std-ext" -version = "4.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fe962d42e07c22aec2618191c3683412735b7e6dcd7bab2eec811ab4697c58e" -dependencies = [ - "cap-primitives 3.4.5", - "cap-tempfile 3.4.5", - "libc", - "rustix", -] - [[package]] name = "cap-std-ext" version = "5.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c6c5ac70c4465b47c3a322330f87c2df31e42ac527497d94dc1f1d1cb8989f9" dependencies = [ - "cap-primitives 4.0.2", - "cap-tempfile 4.0.2", + "cap-primitives", + "cap-tempfile", "libc", "rustix", ] -[[package]] -name = "cap-tempfile" -version = "3.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68d8ad5cfac469e58e632590f033d45c66415ef7a8aa801409884818036706f5" -dependencies = [ - "cap-std 3.4.5", - "rand 0.8.6", - "rustix", - "rustix-linux-procfs", - "uuid", -] - [[package]] name = "cap-tempfile" version = "4.0.2" @@ -598,7 +543,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "42f22d5c0b1147e8bd9105fa004450f673c139d7e632f7edc3980f94a51f20f3" dependencies = [ "camino", - "cap-std 4.0.2", + "cap-std", "rand 0.9.4", "rustix", "rustix-linux-procfs", @@ -719,6 +664,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0a7a9bfdb35811f9e59832f0f05975114d2251b415fb534108e6f34060fd772" dependencies = [ "clap", + "clap_lex", + "is_executable", + "shlex 1.3.0", ] [[package]] @@ -802,7 +750,7 @@ checksum = "55b672471b4e9f9e95499ea597ff64941a309b2cdbffcc46f2cc5e2d971fd335" [[package]] name = "composefs" version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" dependencies = [ "anyhow", "composefs-ioctls", @@ -829,7 +777,7 @@ dependencies = [ [[package]] name = "composefs-boot" version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" dependencies = [ "anyhow", "composefs", @@ -845,20 +793,22 @@ dependencies = [ [[package]] name = "composefs-ctl" version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" dependencies = [ "anyhow", + "cap-std-ext", "clap", + "clap_complete", "comfy-table", "composefs", "composefs-boot", + "composefs-fuse", "composefs-oci", - "composefs-ostree", "composefs-storage", "env_logger", "fn-error-context", "hex", - "indicatif 0.17.11", + "indicatif", "libsystemd", "log", "rustix", @@ -868,10 +818,25 @@ dependencies = [ "zlink", ] +[[package]] +name = "composefs-fuse" +version = "0.7.0" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" +dependencies = [ + "anyhow", + "composefs", + "fuser", + "log", + "memmap2", + "rustix", + "tempfile", + "zerocopy", +] + [[package]] name = "composefs-ioctls" version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" dependencies = [ "rustix", "thiserror 2.0.18", @@ -880,13 +845,13 @@ dependencies = [ [[package]] name = "composefs-oci" version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" dependencies = [ "anyhow", "async-compression", "base64 0.22.1", "bytes", - "cap-std-ext 5.1.2", + "cap-std-ext", "composefs", "composefs-boot", "composefs-storage", @@ -894,7 +859,7 @@ dependencies = [ "flate2", "fn-error-context", "hex", - "indicatif 0.17.11", + "indicatif", "ocidir", "rustix", "serde", @@ -909,49 +874,27 @@ dependencies = [ "zstd", ] -[[package]] -name = "composefs-ostree" -version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" -dependencies = [ - "anyhow", - "chrono", - "composefs", - "configparser", - "flate2", - "gvariant", - "hex", - "indicatif 0.17.11", - "reqwest", - "rustix", - "sha2 0.11.0", - "tokio", - "tokio-stream", - "tokio-util", - "zerocopy", -] - [[package]] name = "composefs-storage" version = "0.7.0" -source = "git+https://github.com/composefs/composefs-rs?rev=679a342db28c536d3bfa79a6225a888484a9742e#679a342db28c536d3bfa79a6225a888484a9742e" +source = "git+https://github.com/composefs/composefs-rs?rev=6a34615fcbf9db6845949044be7543ef79a08f0a#6a34615fcbf9db6845949044be7543ef79a08f0a" dependencies = [ "anyhow", "base64 0.22.1", - "cap-std 4.0.2", - "cap-std-ext 4.0.7", + "cap-std", + "cap-std-ext", "crc", "flate2", "jsonrpc-fdpass", - "oci-spec 0.9.0", + "oci-spec", "rustix", "serde", "serde_json", - "sha2 0.10.9", + "sha2 0.11.0", "tar-core", "thiserror 2.0.18", "tokio", - "toml 0.8.23", + "toml", "tracing", "zstd", ] @@ -984,24 +927,6 @@ dependencies = [ "crossbeam-utils", ] -[[package]] -name = "configparser" -version = "3.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b46dec724fd22199ebde05033a0cbae453bc3b1ecff11eb6a6bb3eec4b90c6a4" - -[[package]] -name = "console" -version = "0.15.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "054ccb5b10f9f2cbf51eb355ca1d05c2d279ce1804688d0db74b4733a5aeafd8" -dependencies = [ - "encode_unicode", - "libc", - "once_cell", - "windows-sys 0.59.0", -] - [[package]] name = "console" version = "0.16.3" @@ -1014,6 +939,12 @@ dependencies = [ "windows-sys 0.61.2", ] +[[package]] +name = "const-oid" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a6ef517f0926dd24a1582492c791b6a4818a4d94e789a334894aa15b0d12f55c" + [[package]] name = "const_format" version = "0.2.36" @@ -1037,18 +968,20 @@ dependencies = [ [[package]] name = "containers-image-proxy" -version = "0.10.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75af58c668f3331f80098044f39832e4bde15e5a58b4c9fb4beb0afa78bc3466" +checksum = "a3246dd5271aa01ab3d2a5346ef5059ff158e135d59da2d5d3a27954c6704f2c" dependencies = [ - "cap-std-ext 5.1.2", + "cap-std-ext", "futures-util", - "itertools", - "oci-spec 0.9.0", + "hex", + "itertools 0.15.0", + "oci-spec", "rustix", "semver", "serde", "serde_json", + "sha2 0.11.0", "thiserror 2.0.18", "tokio", "tracing", @@ -1063,26 +996,6 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "core-foundation" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91e195e091a93c46f7102ec7818a2aa394e1e1771c3ab4825963fa03e45afb8f" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2a6cd9ae233e7f62ba4e9353e81a88df7fc8a5987b8d445b4d90c879bd156f6" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "core-foundation-sys" version = "0.8.7" @@ -1289,7 +1202,7 @@ version = "0.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25f104b501bf2364e78d0d3974cbc774f738f5865306ed128e1e0d7499c0ad96" dependencies = [ - "console 0.16.3", + "console", "shell-words", "tempfile", "zeroize", @@ -1313,20 +1226,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4850db49bf08e663084f7fb5c87d202ef91a3907271aff24a94eb97ff039153c" dependencies = [ "block-buffer 0.12.0", + "const-oid", "crypto-common 0.2.1", ] -[[package]] -name = "displaydoc" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ac70aa55017e108007fbaf5aa0f54b021c98f92ff8af59d42eda9da96e3dd4f" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "document-features" version = "0.2.12" @@ -1354,15 +1257,6 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" -[[package]] -name = "encoding_rs" -version = "0.8.35" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75030f3c4f45dafd7586dd6780965a8c7e8e285a5ecb86713e63a79c5b2766f3" -dependencies = [ - "cfg-if", -] - [[package]] name = "env_filter" version = "1.0.1" @@ -1411,7 +1305,7 @@ version = "0.1.0" dependencies = [ "anstream", "anyhow", - "cap-std-ext 5.1.2", + "cap-std-ext", "composefs-ctl", "fn-error-context", "hex", @@ -1524,15 +1418,6 @@ version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b" -[[package]] -name = "form_urlencoded" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb4cb245038516f5f85277875cdaa4f7d2c9a0fa0468de06ed190163b1581fcf" -dependencies = [ - "percent-encoding", -] - [[package]] name = "fs-set-times" version = "0.20.3" @@ -1544,6 +1429,26 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "fuser" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80a5eca878900c2e39e9e52fd797954b7fc39eeefc8558257114bfea6a698fcf" +dependencies = [ + "bitflags 2.11.1", + "libc", + "log", + "memchr", + "nix 0.30.1", + "num_enum", + "page_size", + "parking_lot", + "pkg-config", + "ref-cast", + "smallvec", + "zerocopy", +] + [[package]] name = "futures" version = "0.3.32" @@ -1966,60 +1871,19 @@ dependencies = [ "want", ] -[[package]] -name = "hyper-rustls" -version = "0.27.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "33ca68d021ef39cf6463ab54c1d0f5daf03377b70561305bb89a8f83aab66e0f" -dependencies = [ - "http", - "hyper", - "hyper-util", - "rustls", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "hyper-tls" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0" -dependencies = [ - "bytes", - "http-body-util", - "hyper", - "hyper-util", - "native-tls", - "tokio", - "tokio-native-tls", - "tower-service", -] - [[package]] name = "hyper-util" version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "96547c2556ec9d12fb1578c4eaf448b04993e7fb79cbaad930a656880a6bdfa0" dependencies = [ - "base64 0.22.1", "bytes", - "futures-channel", - "futures-util", "http", "http-body", "hyper", - "ipnet", - "libc", - "percent-encoding", "pin-project-lite", - "socket2", - "system-configuration", "tokio", "tower-service", - "tracing", - "windows-registry", ] [[package]] @@ -2046,88 +1910,6 @@ dependencies = [ "cc", ] -[[package]] -name = "icu_collections" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" -dependencies = [ - "displaydoc", - "potential_utf", - "utf8_iter", - "yoke", - "zerofrom", - "zerovec", -] - -[[package]] -name = "icu_locale_core" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" -dependencies = [ - "displaydoc", - "litemap", - "tinystr", - "writeable", - "zerovec", -] - -[[package]] -name = "icu_normalizer" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" -dependencies = [ - "icu_collections", - "icu_normalizer_data", - "icu_properties", - "icu_provider", - "smallvec", - "zerovec", -] - -[[package]] -name = "icu_normalizer_data" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" - -[[package]] -name = "icu_properties" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" -dependencies = [ - "icu_collections", - "icu_locale_core", - "icu_properties_data", - "icu_provider", - "zerotrie", - "zerovec", -] - -[[package]] -name = "icu_properties_data" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" - -[[package]] -name = "icu_provider" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" -dependencies = [ - "displaydoc", - "icu_locale_core", - "writeable", - "yoke", - "zerofrom", - "zerotrie", - "zerovec", -] - [[package]] name = "id-arena" version = "2.3.0" @@ -2140,27 +1922,6 @@ version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" -[[package]] -name = "idna" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b0875f23caa03898994f6ddc501886a45c7d3d62d04d2d90788d47be1b1e4de" -dependencies = [ - "idna_adapter", - "smallvec", - "utf8_iter", -] - -[[package]] -name = "idna_adapter" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb68373c0d6620ef8105e855e7745e18b0d00d3bdb07fb532e434244cdb9a714" -dependencies = [ - "icu_normalizer", - "icu_properties", -] - [[package]] name = "indenter" version = "0.3.4" @@ -2179,25 +1940,13 @@ dependencies = [ "serde_core", ] -[[package]] -name = "indicatif" -version = "0.17.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "183b3088984b400f4cfac3620d5e076c84da5364016b4f49473de574b2586235" -dependencies = [ - "console 0.15.11", - "number_prefix", - "portable-atomic", - "web-time", -] - [[package]] name = "indicatif" version = "0.18.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "25470f23803092da7d239834776d653104d551bc4d7eacaf31e6837854b8e9eb" dependencies = [ - "console 0.16.3", + "console", "portable-atomic", "unicode-width", "unit-prefix", @@ -2213,16 +1962,6 @@ dependencies = [ "rustversion", ] -[[package]] -name = "io-extras" -version = "0.18.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2285ddfe3054097ef4b2fe909ef8c3bcd1ea52a8f0d274416caebeef39f04a65" -dependencies = [ - "io-lifetimes 2.0.4", - "windows-sys 0.59.0", -] - [[package]] name = "io-extras" version = "0.19.0" @@ -2251,6 +1990,15 @@ version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" +[[package]] +name = "is_executable" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82cb6a9f675da968c63b6208c641b9dca58fc0133ae53375736b1767b0cab8bd" +dependencies = [ + "windows-sys 0.61.2", +] + [[package]] name = "is_terminal_polyfill" version = "1.70.2" @@ -2266,6 +2014,15 @@ dependencies = [ "either", ] +[[package]] +name = "itertools" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b4baf93f58d4425749ca49a51c50ebab072c5df6994d08fed93541c331481dc" +dependencies = [ + "either", +] + [[package]] name = "itoa" version = "1.0.18" @@ -2288,8 +2045,6 @@ version = "0.3.95" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2964e92d1d9dc3364cae4d718d93f227e3abb088e747d92e0395bfdedf1c12ca" dependencies = [ - "cfg-if", - "futures-util", "once_cell", "wasm-bindgen", ] @@ -2371,7 +2126,7 @@ dependencies = [ "tokio", "tokio-stream", "tokio-util", - "tower 0.4.13", + "tower", "tracing", ] @@ -2518,12 +2273,6 @@ version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" -[[package]] -name = "litemap" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" - [[package]] name = "litrs" version = "1.0.0" @@ -2586,6 +2335,15 @@ version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +[[package]] +name = "memmap2" +version = "0.9.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1219ed1b7f229ee7104d281dd01d6802fe28bb6e95d292942c4daacdeb798c0" +dependencies = [ + "libc", +] + [[package]] name = "memoffset" version = "0.9.1" @@ -2595,12 +2353,6 @@ dependencies = [ "autocfg", ] -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - [[package]] name = "miniz_oxide" version = "0.8.9" @@ -2624,27 +2376,23 @@ dependencies = [ ] [[package]] -name = "native-tls" -version = "0.2.18" +name = "nix" +version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2" +checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ + "bitflags 2.11.1", + "cfg-if", + "cfg_aliases", "libc", - "log", - "openssl", - "openssl-probe", - "openssl-sys", - "schannel", - "security-framework", - "security-framework-sys", - "tempfile", + "memoffset", ] [[package]] name = "nix" -version = "0.29.0" +version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" +checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ "bitflags 2.11.1", "cfg-if", @@ -2693,35 +2441,34 @@ dependencies = [ ] [[package]] -name = "number_prefix" -version = "0.4.0" +name = "num_enum" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" +dependencies = [ + "num_enum_derive", + "rustversion", +] [[package]] -name = "object" -version = "0.37.3" +name = "num_enum_derive" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ - "memchr", + "proc-macro-crate", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] -name = "oci-spec" -version = "0.9.0" +name = "object" +version = "0.37.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8445a2631507cec628a15fdd6154b54a3ab3f20ed4fe9d73a3b8b7a4e1ba03a" +checksum = "ff76201f031d8863c38aa7f905eca4f53abbfa15f609db4277d44cd8938f33fe" dependencies = [ - "const_format", - "derive_builder", - "getset", - "regex", - "serde", - "serde_json", - "strum", - "strum_macros", - "thiserror 2.0.18", + "memchr", ] [[package]] @@ -2743,17 +2490,17 @@ dependencies = [ [[package]] name = "ocidir" -version = "0.7.2" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdb92f511503ca78a6b3c2a5415c49aa9bb03169d2715f67b1c0dc1654ed9636" +checksum = "a778b15397a580c0b7343969fd4b2a26abc5de08cdfd713d36f65b94803c9226" dependencies = [ "camino", "canon-json", - "cap-std-ext 5.1.2", + "cap-std-ext", "chrono", "flate2", "hex", - "oci-spec 0.9.0", + "oci-spec", "openssl", "serde", "serde_json", @@ -2812,12 +2559,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "openssl-probe" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe" - [[package]] name = "openssl-sys" version = "0.9.114" @@ -2855,7 +2596,7 @@ dependencies = [ "bootc-internal-utils", "camino", "canon-json", - "cap-std-ext 5.1.2", + "cap-std-ext", "chrono", "clap", "clap_mangen", @@ -2868,7 +2609,7 @@ dependencies = [ "gvariant", "hex", "indexmap", - "indicatif 0.18.4", + "indicatif", "indoc", "io-lifetimes 3.0.1", "libc", @@ -2913,6 +2654,16 @@ version = "4.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d211803b9b6b570f68772237e415a029d5a50c65d382910b879fb19d3271f94d" +[[package]] +name = "page_size" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d5b2194ed13191c1999ae0704b7839fb18384fa22e49b57eeaa97d79ce40da" +dependencies = [ + "libc", + "winapi", +] + [[package]] name = "parking" version = "2.2.1" @@ -3028,15 +2779,6 @@ version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" -[[package]] -name = "potential_utf" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" -dependencies = [ - "zerovec", -] - [[package]] name = "ppv-lite86" version = "0.2.21" @@ -3062,7 +2804,7 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e67ba7e9b2b56446f1d419b1d807906278ffa1a658a8a5d8a39dcb1f5a78614f" dependencies = [ - "toml_edit 0.25.11+spec-1.1.0", + "toml_edit", ] [[package]] @@ -3290,49 +3032,6 @@ version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" -[[package]] -name = "reqwest" -version = "0.12.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147" -dependencies = [ - "base64 0.22.1", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "http-body-util", - "hyper", - "hyper-rustls", - "hyper-tls", - "hyper-util", - "js-sys", - "log", - "mime", - "native-tls", - "percent-encoding", - "pin-project-lite", - "rustls-pki-types", - "serde", - "serde_json", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tokio-native-tls", - "tokio-util", - "tower 0.5.3", - "tower-http", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", -] - [[package]] name = "rexpect" version = "0.7.0" @@ -3346,20 +3045,6 @@ dependencies = [ "thiserror 2.0.18", ] -[[package]] -name = "ring" -version = "0.17.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4689e6c2294d81e88dc6261c768b63bc4fcdb852be6d1352498b114f61383b7" -dependencies = [ - "cc", - "cfg-if", - "getrandom 0.2.17", - "libc", - "untrusted", - "windows-sys 0.52.0", -] - [[package]] name = "roff" version = "1.1.1" @@ -3416,39 +3101,6 @@ dependencies = [ "rustix", ] -[[package]] -name = "rustls" -version = "0.23.41" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b92b125634d9b795e7beca796cc790df15a7fb38323bf3196fda83292d06b1f" -dependencies = [ - "once_cell", - "rustls-pki-types", - "rustls-webpki", - "subtle", - "zeroize", -] - -[[package]] -name = "rustls-pki-types" -version = "1.14.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a7197ae7eb376e574fe940d068c30fe0462554a3ddbe4eca7838e049c937a9" -dependencies = [ - "zeroize", -] - -[[package]] -name = "rustls-webpki" -version = "0.103.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61c429a8649f110dddef65e2a5ad240f747e85f7758a6bccc7e5777bd33f756e" -dependencies = [ - "ring", - "rustls-pki-types", - "untrusted", -] - [[package]] name = "rustversion" version = "1.0.22" @@ -3461,15 +3113,6 @@ version = "1.0.23" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" -[[package]] -name = "schannel" -version = "0.1.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" -dependencies = [ - "windows-sys 0.61.2", -] - [[package]] name = "schemars" version = "1.2.1" @@ -3502,29 +3145,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "security-framework" -version = "3.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7f4bc775c73d9a02cde8bf7b2ec4c9d12743edf609006c7facc23998404cd1d" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.10.1", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "semver" version = "1.0.28" @@ -3610,15 +3230,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "serde_spanned" -version = "0.6.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf41e0cfaf7226dca15e8197172c295a782857fcb97fad1808a166870dee75a3" -dependencies = [ - "serde", -] - [[package]] name = "serde_spanned" version = "1.1.1" @@ -3628,18 +3239,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde", -] - [[package]] name = "serde_yaml" version = "0.9.34+deprecated" @@ -3766,7 +3365,7 @@ version = "2.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "997e6ca38e97437973fc9f7f50a50d1274cacd874341a4960fea90067291038c" dependencies = [ - "console 0.16.3", + "console", "similar", ] @@ -3808,12 +3407,6 @@ dependencies = [ "sha1", ] -[[package]] -name = "stable_deref_trait" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce2be8dc25455e1f91df71bfa12ad37d7af1092ae736f3a6cd0e37bc7810596" - [[package]] name = "static_assertions" version = "1.1.0" @@ -3872,47 +3465,6 @@ dependencies = [ "unicode-ident", ] -[[package]] -name = "sync_wrapper" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf256ce5efdfa370213c1dabab5935a12e49f2c58d15e9eac2870d3b4f27263" -dependencies = [ - "futures-core", -] - -[[package]] -name = "synstructure" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - -[[package]] -name = "system-configuration" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13f3d0daba03132c0aa9767f98351b3488edc2c100cda2d2ec2b04f3d8d3c8b" -dependencies = [ - "bitflags 2.11.1", - "core-foundation 0.9.4", - "system-configuration-sys", -] - -[[package]] -name = "system-configuration-sys" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e1d1b10ced5ca923a1fcb8d03e96b8d3268065d724548c0211415ff6ac6bac4" -dependencies = [ - "core-foundation-sys", - "libc", -] - [[package]] name = "system-deps" version = "7.0.8" @@ -3922,7 +3474,7 @@ dependencies = [ "cfg-expr", "heck", "pkg-config", - "toml 1.1.2+spec-1.1.0", + "toml", "version-compare", ] @@ -3938,7 +3490,7 @@ dependencies = [ "crossterm", "dialoguer", "fn-error-context", - "indicatif 0.18.4", + "indicatif", "indoc", "log", "openssh-keys", @@ -4009,15 +3561,15 @@ dependencies = [ "anyhow", "bcvk-qemu", "camino", - "cap-std-ext 5.1.2", + "cap-std-ext", "clap", "data-encoding", "fn-error-context", - "indicatif 0.18.4", + "indicatif", "indoc", "libtest-mimic", "linux-kernel-cmdline", - "oci-spec 0.10.0", + "oci-spec", "rand 0.10.1", "rexpect", "rustix", @@ -4085,16 +3637,6 @@ version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e004df4c5f0805eb5f55883204a514cfa43a6d924741be29e871753a53d5565a" -[[package]] -name = "tinystr" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" -dependencies = [ - "displaydoc", - "zerovec", -] - [[package]] name = "tokio" version = "1.52.1" @@ -4124,26 +3666,6 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "tokio-native-tls" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2" -dependencies = [ - "native-tls", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.26.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" -dependencies = [ - "rustls", - "tokio", -] - [[package]] name = "tokio-stream" version = "0.1.18" @@ -4170,18 +3692,6 @@ dependencies = [ "tokio", ] -[[package]] -name = "toml" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc1beb996b9d83529a9e75c17a1686767d148d70663143c7854d8b4a09ced362" -dependencies = [ - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "toml_edit 0.22.27", -] - [[package]] name = "toml" version = "1.1.2+spec-1.1.0" @@ -4190,20 +3700,11 @@ checksum = "81f3d15e84cbcd896376e6730314d59fb5a87f31e4b038454184435cd57defee" dependencies = [ "indexmap", "serde_core", - "serde_spanned 1.1.1", - "toml_datetime 1.1.1+spec-1.1.0", + "serde_spanned", + "toml_datetime", "toml_parser", "toml_writer", - "winnow 1.0.2", -] - -[[package]] -name = "toml_datetime" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22cddaf88f4fbc13c51aebbf5f8eceb5c7c5a9da2ac40a13519eb5b0a0e8f11c" -dependencies = [ - "serde", + "winnow", ] [[package]] @@ -4215,19 +3716,6 @@ dependencies = [ "serde_core", ] -[[package]] -name = "toml_edit" -version = "0.22.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41fe8c660ae4257887cf66394862d21dbca4a6ddd26f04a3560410406a2f819a" -dependencies = [ - "indexmap", - "serde", - "serde_spanned 0.6.9", - "toml_datetime 0.6.11", - "winnow 0.7.15", -] - [[package]] name = "toml_edit" version = "0.25.11+spec-1.1.0" @@ -4235,9 +3723,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b59c4d22ed448339746c59b905d24568fcbb3ab65a500494f7b8c3e97739f2b" dependencies = [ "indexmap", - "toml_datetime 1.1.1+spec-1.1.0", + "toml_datetime", "toml_parser", - "winnow 1.0.2", + "winnow", ] [[package]] @@ -4246,7 +3734,7 @@ version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 1.0.2", + "winnow", ] [[package]] @@ -4270,44 +3758,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "tower" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebe5ef63511595f1344e2d5cfa636d973292adc0eec1f0ad45fae9f0851ab1d4" -dependencies = [ - "futures-core", - "futures-util", - "pin-project-lite", - "sync_wrapper", - "tokio", - "tower-layer", - "tower-service", -] - -[[package]] -name = "tower-http" -version = "0.6.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cfcf7e2740e6fc6d4d688b4ef00650406bb94adf4731e43c096c3a19fe40840" -dependencies = [ - "async-compression", - "bitflags 2.11.1", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-body-util", - "pin-project-lite", - "tokio", - "tokio-util", - "tower 0.5.3", - "tower-layer", - "tower-service", - "url", -] - [[package]] name = "tower-layer" version = "0.3.3" @@ -4463,30 +3913,6 @@ version = "0.2.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "673aac59facbab8a9007c7f6108d11f63b603f7cabff99fabf650fea5c32b861" -[[package]] -name = "untrusted" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ecb6da28b8a351d773b68d5825ac39017e680750f980f3a1a85cd8dd28a47c1" - -[[package]] -name = "url" -version = "2.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff67a8a4397373c3ef660812acab3268222035010ab8680ec4215f38ba3d0eed" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", - "serde", -] - -[[package]] -name = "utf8_iter" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be" - [[package]] name = "utf8parse" version = "0.2.2" @@ -4595,16 +4021,6 @@ dependencies = [ "wasm-bindgen-shared", ] -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f371d383f2fb139252e0bfac3b81b265689bf45b6874af544ffa4c975ac1ebf8" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "wasm-bindgen-macro" version = "0.2.118" @@ -4659,19 +4075,6 @@ dependencies = [ "wasmparser", ] -[[package]] -name = "wasm-streams" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15053d8d85c7eccdbefef60f06769760a563c7f0a9d6902a13d35c7800b0ad65" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - [[package]] name = "wasmparser" version = "0.244.0" @@ -4684,16 +4087,6 @@ dependencies = [ "semver", ] -[[package]] -name = "web-sys" -version = "0.3.95" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f2dfbb17949fa2088e5d39408c48368947b86f7834484e87b73de55bc14d97d" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - [[package]] name = "web-time" version = "1.1.0" @@ -4776,17 +4169,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f0805222e57f7521d6a62e36fa9163bc891acd422f971defe97d64e70d0a4fe5" -[[package]] -name = "windows-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02752bf7fbdcce7f2a27a742f798510f3e5ad88dbe84871e5168e2120c3d5720" -dependencies = [ - "windows-link", - "windows-result", - "windows-strings", -] - [[package]] name = "windows-result" version = "0.4.1" @@ -4805,15 +4187,6 @@ dependencies = [ "windows-link", ] -[[package]] -name = "windows-sys" -version = "0.52.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "282be5f36a8ce781fad8c8ae18fa3f9beff57ec1b52cb3de0789201425d9a33d" -dependencies = [ - "windows-targets 0.52.6", -] - [[package]] name = "windows-sys" version = "0.59.0" @@ -4970,15 +4343,6 @@ version = "0.53.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" -[[package]] -name = "winnow" -version = "0.7.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" -dependencies = [ - "memchr", -] - [[package]] name = "winnow" version = "1.0.2" @@ -5092,12 +4456,6 @@ dependencies = [ "wasmparser", ] -[[package]] -name = "writeable" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ffae5123b2d3fc086436f8834ae3ab053a283cfac8fe0a0b8eaae044768a4c4" - [[package]] name = "xattr" version = "1.6.1" @@ -5134,7 +4492,7 @@ dependencies = [ "chrono", "clap", "fn-error-context", - "itertools", + "itertools 0.14.0", "mandown", "owo-colors", "rand 0.10.1", @@ -5143,7 +4501,7 @@ dependencies = [ "serde_yaml", "tar", "tempfile", - "toml 1.1.2+spec-1.1.0", + "toml", "xshell", ] @@ -5153,29 +4511,6 @@ version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fdd20c5420375476fbd4394763288da7eb0cc0b8c11deed431a91562af7335d3" -[[package]] -name = "yoke" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709fe23a0424b6a435d82152b1bd3fdfb0833487d5fa90d05d42762a9891fef5" -dependencies = [ - "stable_deref_trait", - "yoke-derive", - "zerofrom", -] - -[[package]] -name = "yoke-derive" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", - "synstructure", -] - [[package]] name = "zerocopy" version = "0.8.48" @@ -5196,66 +4531,12 @@ dependencies = [ "syn 2.0.117", ] -[[package]] -name = "zerofrom" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ec05a11813ea801ff6d75110ad09cd0824ddba17dfe17128ea0d5f68e6c5272" -dependencies = [ - "zerofrom-derive", -] - -[[package]] -name = "zerofrom-derive" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", - "synstructure", -] - [[package]] name = "zeroize" version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" -[[package]] -name = "zerotrie" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" -dependencies = [ - "displaydoc", - "yoke", - "zerofrom", -] - -[[package]] -name = "zerovec" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" -dependencies = [ - "yoke", - "zerofrom", - "zerovec-derive", -] - -[[package]] -name = "zerovec-derive" -version = "0.11.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.117", -] - [[package]] name = "zlink" version = "0.5.0" diff --git a/Cargo.toml b/Cargo.toml index 439588072..963461824 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -44,7 +44,17 @@ clap_mangen = { version = "0.3.0" } # [patch."https://github.com/composefs/composefs-rs"] # composefs-ctl = { path = "/path/to/composefs-rs/crates/composefs-ctl" } # The Justfile will auto-detect these and bind-mount them into container builds. -composefs-ctl = { git = "https://github.com/composefs/composefs-rs", rev = "679a342db28c536d3bfa79a6225a888484a9742e" } +# The "ostree" feature is disabled for now: it pulls in reqwest (for remote +# pulls), which drags in rustls-webpki/untrusted/webpki-root-certs whose +# licenses aren't in our cargo-deny allow list. Re-enable once that's sorted. +# See: https://github.com/bootc-dev/bootc/pull/2295 +composefs-ctl = { git = "https://github.com/composefs/composefs-rs", rev = "6a34615fcbf9db6845949044be7543ef79a08f0a", default-features = false, features = [ + "pre-6.15", + "pre-6.16", + "oci", + "containers-storage", + "fuse", +] } fn-error-context = "0.2.1" futures-util = "0.3" hex = "0.4.3" diff --git a/crates/initramfs/src/lib.rs b/crates/initramfs/src/lib.rs index 079256529..8d2de2191 100644 --- a/crates/initramfs/src/lib.rs +++ b/crates/initramfs/src/lib.rs @@ -273,7 +273,7 @@ fn build_overlay_fd( fsconfig_set_string(overlayfs.as_fd(), "source", source)?; overlayfs_set_fd(overlayfs.as_fd(), "workdir", work.as_fd())?; overlayfs_set_fd(overlayfs.as_fd(), "upperdir", upper.as_fd())?; - overlayfs_set_lower_and_data_fds(&overlayfs, base.as_fd(), None::)?; + overlayfs_set_lower_and_data_fds(&overlayfs, base.as_fd(), &[])?; fsconfig_create(overlayfs.as_fd())?; Ok(fsmount( overlayfs.as_fd(), diff --git a/crates/lib/Cargo.toml b/crates/lib/Cargo.toml index d56ef1655..990cf355e 100644 --- a/crates/lib/Cargo.toml +++ b/crates/lib/Cargo.toml @@ -67,7 +67,7 @@ unicode-width = "0.2" libsystemd = "0.7" linkme = "0.3" nom = "8.0.0" -ocidir = "0.7.0" +ocidir = "0.8.0" schemars = { version = "1.0.4", features = ["chrono04"] } serde_ignored = "0.1.10" serde_yaml = "0.9.34" diff --git a/crates/lib/src/bootc_composefs/boot.rs b/crates/lib/src/bootc_composefs/boot.rs index dd4079c7a..ecd333735 100644 --- a/crates/lib/src/bootc_composefs/boot.rs +++ b/crates/lib/src/bootc_composefs/boot.rs @@ -802,7 +802,12 @@ fn write_pe_to_esp( // UKI/Addons would always be large enough to be an external object anyhow::bail!("File too small to be UKI/Addon") } - RegularFile::External(id, ..) => std::fs::File::from(repo.open_object(id)?), + RegularFile::External(id, ..) | RegularFile::ExternalNoVerity(id, ..) => { + std::fs::File::from(repo.open_object(id)?) + } + RegularFile::Sparse(..) => { + anyhow::bail!("Sparse file cannot be a UKI/Addon") + } }; let mut boot_label: Option = None; diff --git a/crates/ostree-ext/Cargo.toml b/crates/ostree-ext/Cargo.toml index b1fa2458b..3aea5b911 100644 --- a/crates/ostree-ext/Cargo.toml +++ b/crates/ostree-ext/Cargo.toml @@ -39,14 +39,14 @@ xshell = { workspace = true, optional = true } # Crate-specific dependencies comfy-table = "7.1.1" -containers-image-proxy = "0.10.1" +containers-image-proxy = "0.11.0" flate2 = { features = ["zlib"], default-features = false, version = "1.0.20" } futures-util = "0.3.13" gvariant = "0.5.0" indexmap = { version = "2.2.2", features = ["serde"] } io-lifetimes = "3" libsystemd = "0.7.0" -ocidir = "0.7.2" +ocidir = "0.8.0" # We re-export this library too. ostree = { features = ["v2025_3"], version = "0.20.5" } pin-project = "1.0" diff --git a/crates/ostree-ext/src/container/update_detachedmeta.rs b/crates/ostree-ext/src/container/update_detachedmeta.rs index e80934bdf..d822aff78 100644 --- a/crates/ostree-ext/src/container/update_detachedmeta.rs +++ b/crates/ostree-ext/src/container/update_detachedmeta.rs @@ -6,6 +6,7 @@ use camino::Utf8Path; use cap_std::fs::Dir; use cap_std_ext::cap_std; use containers_image_proxy::oci_spec::image as oci_image; +use ocidir::OciRead; use std::io::{BufReader, BufWriter}; /// Given an OSTree container image reference, update the detached metadata (e.g. GPG signature) diff --git a/crates/ostree-ext/src/fixture.rs b/crates/ostree-ext/src/fixture.rs index 20a349f67..7b8e024f6 100644 --- a/crates/ostree-ext/src/fixture.rs +++ b/crates/ostree-ext/src/fixture.rs @@ -22,6 +22,7 @@ use fn_error_context::context; use gvariant::aligned_bytes::TryAsAligned; use gvariant::{Marker, Structure}; use io_lifetimes::AsFd; +use ocidir::OciRead; use ocidir::cap_std::fs::{DirBuilder, DirBuilderExt as _}; use ocidir::oci_spec::image::ImageConfigurationBuilder; use regex::Regex; diff --git a/crates/ostree-ext/src/integrationtest.rs b/crates/ostree-ext/src/integrationtest.rs index 89b605d6c..8c05c961e 100644 --- a/crates/ostree-ext/src/integrationtest.rs +++ b/crates/ostree-ext/src/integrationtest.rs @@ -13,7 +13,7 @@ use fn_error_context::context; use gio::prelude::*; use oci_spec::image as oci_image; use ocidir::{ - LayerWriter, + LayerWriter, OciRead, oci_spec::image::{Arch, Platform}, }; use ostree::gio; diff --git a/crates/ostree-ext/tests/it/main.rs b/crates/ostree-ext/tests/it/main.rs index 14c6dd3b3..e43aab027 100644 --- a/crates/ostree-ext/tests/it/main.rs +++ b/crates/ostree-ext/tests/it/main.rs @@ -9,6 +9,7 @@ use gvariant::aligned_bytes::TryAsAligned; use gvariant::{Marker, Structure}; use oci_image::ImageManifest; use oci_spec::image as oci_image; +use ocidir::OciRead; use ocidir::oci_spec::distribution::Reference; use ocidir::oci_spec::image::{Arch, DigestAlgorithm}; use ostree_ext::chunking::ObjectMetaSized;