diff --git a/Cargo.lock b/Cargo.lock index 683d6aa..5c430a6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -13,23 +13,23 @@ dependencies = [ [[package]] name = "alsa" -version = "0.11.0" +version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "812947049edcd670a82cd5c73c3661d2e58468577ba8489de58e1a73c04cbd5d" +checksum = "7c88dbbce13b232b26250e1e2e6ac18b6a891a646b8148285036ebce260ac5c3" dependencies = [ "alsa-sys", - "bitflags 2.11.0", + "bitflags 2.10.0", "cfg-if", - "libc 0.2.182", + "libc 0.2.177", ] [[package]] name = "alsa-sys" -version = "0.4.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad7569085a265dd3f607ebecce7458eaab2132a84393534c95b18dcbc3f31e04" +checksum = "db8fee663d06c4e303404ef5f40488a53e062f89ba8bfed81f42325aafad1527" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "pkg-config", ] @@ -95,18 +95,15 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.102" +version = "1.0.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" +checksum = "a23eb6b1614318a8071c9b2521f36b424b2c83db5eb3a0fead4a6c0809af6e61" [[package]] name = "arc-swap" -version = "1.8.2" +version = "1.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" -dependencies = [ - "rustversion", -] +checksum = "69f7f8c3906b62b754cd5326047894316021dcfe5a194c8ea52bdd94934a3457" [[package]] name = "assert_matches" @@ -142,7 +139,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "993776b509cfb49c750f11b8f07a46fa23e0a1386ffc01fb1e7d343efc387895" dependencies = [ "annotate-snippets", - "bitflags 2.11.0", + "bitflags 2.10.0", "cexpr", "clang-sys", "itertools 0.13.0", @@ -164,9 +161,9 @@ checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" [[package]] name = "bitflags" -version = "2.11.0" +version = "2.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "843867be96c8daad0d758b57df9392b6d8d271134fce549de6ce169ff98a92af" +checksum = "812e12b5285cc515a9c72a5c1d3b6d46a19dac5acfef5265968c166106e31dd3" [[package]] name = "bitvec" @@ -182,15 +179,15 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.20.2" +version = "3.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" +checksum = "46c5e41b57b8bba42a04676d81cb89e9ee8e859a1a66f80a5a72e1cb76b34d43" [[package]] name = "bytemuck" -version = "1.25.0" +version = "1.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8efb64bd706a16a1bdde310ae86b351e4d21550d98d056f22f8a7f7a2183fec" +checksum = "1fbdf580320f38b612e485521afda1ee26d10cc9884efaaa750d383e13e3c5f4" [[package]] name = "byteorder" @@ -200,9 +197,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "c481bdbf0ed3b892f6f806287d72acd515b352a4ec27a208489b8c1bc839633a" dependencies = [ "find-msvc-tools", "shlex", @@ -219,9 +216,9 @@ dependencies = [ [[package]] name = "cfg-expr" -version = "0.20.6" +version = "0.20.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78cef5b5a1a6827c7322ae2a636368a573006b27cfa76c7ebd53e834daeaab6a" +checksum = "9acd0bdbbf4b2612d09f52ba61da432140cb10930354079d0d53fafc12968726" dependencies = [ "smallvec", "target-lexicon", @@ -239,17 +236,6 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" -[[package]] -name = "chacha20" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f8d983286843e49675a4b7a2d174efe136dc93a18d69130dd18198a6c167601" -dependencies = [ - "cfg-if", - "cpufeatures", - "rand_core 0.10.0", -] - [[package]] name = "clang-sys" version = "1.8.1" @@ -257,15 +243,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b023947811758c97c59bf9d1c188fd619ad4718dcaa767947df1cadb14f39f4" dependencies = [ "glob", - "libc 0.2.182", + "libc 0.2.177", "libloading", ] [[package]] name = "clap" -version = "4.5.60" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +checksum = "c9e340e012a1bf4935f5282ed1436d1489548e8f72308207ea5df0e23d2d03f8" dependencies = [ "clap_builder", "clap_derive", @@ -273,9 +259,9 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.60" +version = "4.5.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +checksum = "d76b5d13eaa18c901fd2f7fca939fefe3a0727a953561fefdf3b2922b8569d00" dependencies = [ "anstream", "anstyle", @@ -285,9 +271,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.5.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "2a0b5487afeab2deb2ff4e03a807ad1a03ac532ff5a2cee5d86884440c7f7671" dependencies = [ "heck", "proc-macro2", @@ -297,9 +283,9 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "a1d728cc89cf3aee9ff92b05e62b19ee65a02b5702cff7d5a377e32c6ae29d8d" [[package]] name = "clap_mangen" @@ -319,17 +305,26 @@ checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" [[package]] name = "console" -version = "0.16.2" +version = "0.16.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03e45a4a8926227e4197636ba97a9fc9b00477e9f4bd711395687c5f0734bec4" +checksum = "b430743a6eb14e9764d4260d4c0d8123087d504eeb9c48f2b2a5e810dd369df4" dependencies = [ "encode_unicode", - "libc 0.2.182", + "libc 0.2.177", "once_cell", "unicode-width", "windows-sys 0.61.1", ] +[[package]] +name = "convert_case" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb402b8d4c85569410425650ce3eddc7d698ed96d39a73f941b08fb63082f1e7" +dependencies = [ + "unicode-segmentation", +] + [[package]] name = "convert_case" version = "0.8.0" @@ -339,37 +334,19 @@ dependencies = [ "unicode-segmentation", ] -[[package]] -name = "convert_case" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "633458d4ef8c78b72454de2d54fd6ab2e60f9e02be22f3c6104cdc8a4e0fceb9" -dependencies = [ - "unicode-segmentation", -] - [[package]] name = "cookie-factory" version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9885fa71e26b8ab7855e2ec7cae6e9b380edff76cd052e07c683a0319d51b3a2" -[[package]] -name = "cpufeatures" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" -dependencies = [ - "libc 0.2.182", -] - [[package]] name = "crossterm" version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d8b9f2e4c67f833b660cdb0a3523065869fb35570177239812ed4c905aeff87b" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "crossterm_winapi", "derive_more", "document-features", @@ -392,23 +369,22 @@ dependencies = [ [[package]] name = "derive_more" -version = "2.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d751e9e49156b02b44f9c1815bcb94b984cdcc4396ecc32521c739452808b134" +checksum = "093242cf7570c207c83073cf82f79706fe7b8317e98620a47d5be7c3d8497678" dependencies = [ "derive_more-impl", ] [[package]] name = "derive_more-impl" -version = "2.1.1" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799a97264921d8623a957f6c3b9011f3b5492f557bbb7a5a19b7fa6d06ba8dcb" +checksum = "bda628edc44c4bb645fbe0f758797143e4e07926f7ebf4e9bdfbd3d2ce621df3" dependencies = [ - "convert_case 0.10.0", + "convert_case 0.7.1", "proc-macro2", "quote", - "rustc_version", "syn 2.0.106", ] @@ -450,9 +426,9 @@ checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" [[package]] name = "env_filter" -version = "1.0.0" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" dependencies = [ "log", "regex", @@ -460,9 +436,9 @@ dependencies = [ [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" dependencies = [ "anstream", "anstyle", @@ -477,8 +453,8 @@ version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e74d68fe2927dbf47aa976d14d93db9b23dced457c7bb2bdc6925a16d31b736e" dependencies = [ - "bitflags 2.11.0", - "libc 0.2.182", + "bitflags 2.10.0", + "libc 0.2.177", ] [[package]] @@ -493,7 +469,7 @@ version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "windows-sys 0.61.1", ] @@ -505,7 +481,7 @@ checksum = "25b686663ba7f08d92880ff6ba22170f1df4e83629341cba34cf82cd65ebea99" dependencies = [ "bitvec", "cfg-if", - "libc 0.2.182", + "libc 0.2.177", "nix 0.29.0", ] @@ -530,9 +506,9 @@ dependencies = [ [[package]] name = "find-msvc-tools" -version = "0.1.9" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5baebc0774151f905a1a2cc41989300b1e6fbb29aff0ceffa1064fdd3088d582" +checksum = "3a3076410a55c90011c298b04d0cfa770b00fa04e1e3c97d3f6c9de105a03844" [[package]] name = "fnv" @@ -540,12 +516,6 @@ version = "1.0.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" -[[package]] -name = "foldhash" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9c4f5dac5e15c24eb999c26181a6ca40b39fe946cbe4c263c7209467bc83af2" - [[package]] name = "fragile" version = "2.0.1" @@ -569,15 +539,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" +checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" [[package]] name = "futures-executor" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" +checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" dependencies = [ "futures-core", "futures-task", @@ -586,9 +556,9 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" +checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" dependencies = [ "proc-macro2", "quote", @@ -597,15 +567,15 @@ dependencies = [ [[package]] name = "futures-sink" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" +checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" [[package]] name = "futures-task" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" +checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" [[package]] name = "futures-timer" @@ -615,14 +585,15 @@ checksum = "f288b0a4f20f9a56b5d1da57e2227c661b7b16168e2f72365f57b63326e29b24" [[package]] name = "futures-util" -version = "0.3.32" +version = "0.3.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" +checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" dependencies = [ "futures-core", "futures-macro", "futures-task", "pin-project-lite", + "pin-utils", "slab", ] @@ -633,45 +604,31 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "899def5c37c4fd7b2664648c28120ecec138e4d395b459e5ca34f9cce2dd77fd" dependencies = [ "cfg-if", - "libc 0.2.182", + "libc 0.2.177", "r-efi", "wasip2", ] -[[package]] -name = "getrandom" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" -dependencies = [ - "cfg-if", - "libc 0.2.182", - "r-efi", - "rand_core 0.10.0", - "wasip2", - "wasip3", -] - [[package]] name = "gio-sys" -version = "0.21.5" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0071fe88dba8e40086c8ff9bbb62622999f49628344b1d1bf490a48a29d80f22" +checksum = "171ed2f6dd927abbe108cfd9eebff2052c335013f5879d55bab0dc1dee19b706" dependencies = [ "glib-sys", "gobject-sys", - "libc 0.2.182", + "libc 0.2.177", "system-deps", "windows-sys 0.61.1", ] [[package]] name = "glib" -version = "0.21.5" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16de123c2e6c90ce3b573b7330de19be649080ec612033d397d72da265f1bd8b" +checksum = "5b9dbecb1c33e483a98be4acfea2ab369e1c28f517c6eadb674537409c25c4b2" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "futures-channel", "futures-core", "futures-executor", @@ -681,16 +638,16 @@ dependencies = [ "glib-macros", "glib-sys", "gobject-sys", - "libc 0.2.182", + "libc 0.2.177", "memchr", "smallvec", ] [[package]] name = "glib-macros" -version = "0.21.5" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf59b675301228a696fe01c3073974643365080a76cc3ed5bc2cbc466ad87f17" +checksum = "880e524e0085f3546cfb38532b2c202c0d64741d9977a6e4aa24704bfc9f19fb" dependencies = [ "heck", "proc-macro-crate", @@ -701,11 +658,11 @@ dependencies = [ [[package]] name = "glib-sys" -version = "0.21.5" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d95e1a3a19ae464a7286e14af9a90683c64d70c02532d88d87ce95056af3e6c" +checksum = "d09d3d0fddf7239521674e57b0465dfbd844632fec54f059f7f56112e3f927e1" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "system-deps", ] @@ -717,20 +674,20 @@ checksum = "0cc23270f6e1808e30a928bdc84dea0b9b4136a8bc82338574f23baf47bbd280" [[package]] name = "gobject-sys" -version = "0.21.5" +version = "0.21.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dca35da0d19a18f4575f3cb99fe1c9e029a2941af5662f326f738a21edaf294" +checksum = "538e41d8776173ec107e7b0f2aceced60abc368d7e1d81c1f0e2ecd35f59080d" dependencies = [ "glib-sys", - "libc 0.2.182", + "libc 0.2.177", "system-deps", ] [[package]] name = "gstreamer" -version = "0.24.5" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e8251db223ca38d9aefaf3d19f6f11581a9123cd12dacebd8b9e182da965023" +checksum = "69ac2f12970a2f85a681d2ceaa40c32fe86cc202ead315e0dfa2223a1217cd24" dependencies = [ "cfg-if", "futures-channel", @@ -740,7 +697,7 @@ dependencies = [ "gstreamer-sys", "itertools 0.14.0", "kstring", - "libc 0.2.182", + "libc 0.2.177", "muldiv", "num-integer", "num-rational", @@ -748,14 +705,14 @@ dependencies = [ "pastey", "pin-project-lite", "smallvec", - "thiserror 2.0.18", + "thiserror 2.0.17", ] [[package]] name = "gstreamer-app" -version = "0.24.5" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3da7017b2a2fa5cdf9123b1603947ea24174f6d8cea0ea673411df824c811921" +checksum = "0af5d403738faf03494dfd502d223444b4b44feb997ba28ab3f118ee6d40a0b2" dependencies = [ "futures-core", "futures-sink", @@ -763,100 +720,91 @@ dependencies = [ "gstreamer", "gstreamer-app-sys", "gstreamer-base", - "libc 0.2.182", + "libc 0.2.177", ] [[package]] name = "gstreamer-app-sys" -version = "0.24.5" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa9f1b12b546aea543c15a0fdbc5a53617902a74f6d357a32b6a9fb4bc4725c" +checksum = "aaf1a3af017f9493c34ccc8439cbce5c48f6ddff6ec0514c23996b374ff25f9a" dependencies = [ "glib-sys", "gstreamer-base-sys", "gstreamer-sys", - "libc 0.2.182", + "libc 0.2.177", "system-deps", ] [[package]] name = "gstreamer-audio" -version = "0.24.5" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76c058cce8d32bfb6dd578a3d6d1d874b855a638b738d8bb34cd7aedd65aeddd" +checksum = "68e540174d060cd0d7ee2c2356f152f05d8262bf102b40a5869ff799377269d8" dependencies = [ "cfg-if", "glib", "gstreamer", "gstreamer-audio-sys", "gstreamer-base", - "libc 0.2.182", + "libc 0.2.177", "smallvec", ] [[package]] name = "gstreamer-audio-sys" -version = "0.24.5" +version = "0.24.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "807e476f555c4e7409d8c8fe4fd10fa9989b8e8f2898762d9551e1adfde98a2d" +checksum = "626cd3130bc155a8b6d4ac48cfddc15774b5a6cc76fcb191aab09a2655bad8f5" dependencies = [ "glib-sys", "gobject-sys", "gstreamer-base-sys", "gstreamer-sys", - "libc 0.2.182", + "libc 0.2.177", "system-deps", ] [[package]] name = "gstreamer-base" -version = "0.24.5" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9375f9a12120a8ee17b765c816c9b23861ce258def77b0ee40a05acb00c74972" +checksum = "71ff9b0bbc8041f0c6c8a53b206a6542f86c7d9fa8a7dff3f27d9c374d9f39b4" dependencies = [ "atomic_refcell", "cfg-if", "glib", "gstreamer", "gstreamer-base-sys", - "libc 0.2.182", + "libc 0.2.177", ] [[package]] name = "gstreamer-base-sys" -version = "0.24.5" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b844f3559b6ab0379b4b771261643783ae4e0ffa71d5f5f46e33b7acf66b752" +checksum = "fed78852b92db1459b8f4288f86e6530274073c20be2f94ba642cddaca08b00e" dependencies = [ "glib-sys", "gobject-sys", "gstreamer-sys", - "libc 0.2.182", + "libc 0.2.177", "system-deps", ] [[package]] name = "gstreamer-sys" -version = "0.24.5" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5d37c1a599ae57b8186948bd5699f2dbfc044baea9d400228b489a85bcf2759" +checksum = "a24ae2930e683665832a19ef02466094b09d1f2da5673f001515ed5486aa9377" dependencies = [ "cfg-if", "glib-sys", "gobject-sys", - "libc 0.2.182", + "libc 0.2.177", "system-deps", ] -[[package]] -name = "hashbrown" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9229cfe53dfd69f0609a49f65461bd93001ea1ef889cd5529dd176593f5338a1" -dependencies = [ - "foldhash", -] - [[package]] name = "hashbrown" version = "0.16.1" @@ -875,22 +823,14 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "indexmap" -version = "2.13.0" +version = "2.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7714e70437a7dc3ac8eb7e6f8df75fd8eb422675fc7678aff7364301092b1017" +checksum = "0ad4bb2b565bca0645f4d68c5c9af97fba094e9791da685bf83cb5f3ce74acf2" dependencies = [ "equivalent", - "hashbrown 0.16.1", - "serde", - "serde_core", + "hashbrown", ] [[package]] @@ -925,15 +865,15 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.22" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819b44bc7c87d9117eb522f14d46e918add69ff12713c475946b0a29363ed1c2" +checksum = "49cce2b81f2098e7e3efc35bc2e0a6b7abec9d34128283d7a26fa8f32a6dbb35" dependencies = [ "jiff-static", "log", @@ -944,9 +884,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.22" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "470252db18ecc35fd766c0891b1e3ec6cbbcd62507e85276c01bf75d8e94d4a1" +checksum = "980af8b43c3ad5d8d349ace167ec8170839f753a42d233ba19e08afe1850fa69" dependencies = [ "proc-macro2", "quote", @@ -955,9 +895,9 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "464a3709c7f55f1f721e5389aa6ea4e3bc6aba669353300af094b29ffbdde1d8" dependencies = [ "once_cell", "wasm-bindgen", @@ -972,17 +912,11 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "leb128fmt" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" - [[package]] name = "libc" -version = "0.2.182" +version = "0.2.177" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "2874a2af47a2325c2001a6e6fad9b16a53b802102b528163885171cf92b15976" [[package]] name = "libc" @@ -998,9 +932,9 @@ checksum = "9e395c45c5a3d87e601c2691acb100cda22286b1dba1101515dcc1928d5b6899" dependencies = [ "errno", "intmap", - "libc 0.2.182", + "libc 0.2.177", "libgpiod-sys", - "thiserror 2.0.18", + "thiserror 2.0.17", ] [[package]] @@ -1029,11 +963,11 @@ version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6b8cfa2a7656627b4c92c6b9ef929433acd673d5ab3708cda1b18478ac00df4" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "cc", "convert_case 0.8.0", "cookie-factory", - "libc 0.2.182", + "libc 0.2.177", "libspa-sys", "nix 0.30.1", "nom 8.0.0", @@ -1053,9 +987,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.12.1" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" +checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" [[package]] name = "litrs" @@ -1074,9 +1008,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.29" +version = "0.4.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e5032e24019045c762d3c0f28f5b6b8bbf38563a65908389bf7978758920897" +checksum = "34080505efa8e45a4b816c349525ebe327ceaa8559756f0356cba97ef3bf7432" [[package]] name = "markdown" @@ -1089,9 +1023,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.8.0" +version = "2.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ca58f447f06ed17d5fc4043ce1b10dd205e060fb3ce5b979b8ed8e59ff3f79" +checksum = "f52b00d39961fc5b2736ea853c9cc86238e165017a493d1d5c8eac6bdc4cc273" [[package]] name = "memoffset" @@ -1109,7 +1043,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61c76e90ba0bde4c5eb7c1b23d9b0b87333ce3e3db9a3f5fd44b2caae3c99358" dependencies = [ "cfg-if", - "libc 0.2.182", + "libc 0.2.177", "log", "remain", "rustix", @@ -1125,11 +1059,11 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "mio" -version = "1.1.1" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "69d83b0086dc8ecf3ce9ae2874b2d1290252e2a30720bea58a5c6639b0092873" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "log", "wasi", "windows-sys 0.61.1", @@ -1180,7 +1114,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "93062a0dce6da2517ea35f301dfc88184ce18d3601ec786a727a87bf535deca9" dependencies = [ "byteorder", - "libc 0.2.182", + "libc 0.2.177", "log", "neli-proc-macros", ] @@ -1204,10 +1138,10 @@ version = "0.29.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "71e2746dc3a24dd78b3cfcb7be93368c6de9963d30f43a6a73998a9cf4b17b46" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", - "libc 0.2.182", + "libc 0.2.177", "memoffset", ] @@ -1217,25 +1151,13 @@ version = "0.30.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "74523f3a35e05aba87a1d978330aef40f67b0304ac79c1c00b294c9830543db6" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "cfg-if", "cfg_aliases", - "libc 0.2.182", + "libc 0.2.177", "memoffset", ] -[[package]] -name = "nix" -version = "0.31.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" -dependencies = [ - "bitflags 2.11.0", - "cfg-if", - "cfg_aliases", - "libc 0.2.182", -] - [[package]] name = "nom" version = "7.1.3" @@ -1297,9 +1219,9 @@ checksum = "384b8ab6d37215f3c5301a95a4accb5d64aa607f1fcb26a11b5303878451b4fe" [[package]] name = "option-operations" -version = "0.6.1" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aca39cf52b03268400c16eeb9b56382ea3c3353409309b63f5c8f0b1faf42754" +checksum = "b31ce827892359f23d3cd1cc4c75a6c241772bbd2db17a92dcf27cbefdf52689" dependencies = [ "pastey", ] @@ -1321,7 +1243,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2621685985a2ebf1c516881c026032ac7deafcda1a2c9b7850dc81e3dfcb64c1" dependencies = [ "cfg-if", - "libc 0.2.182", + "libc 0.2.177", "redox_syscall", "smallvec", "windows-link", @@ -1329,15 +1251,21 @@ dependencies = [ [[package]] name = "pastey" -version = "0.2.1" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b867cad97c0791bbd3aaa6472142568c6c9e8f71937e98379f584cfb0cf35bec" +checksum = "35fb2e5f958ec131621fdd531e9fc186ed768cbe395337403ae56c17a74c68ec" [[package]] name = "pin-project-lite" -version = "0.2.17" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" +checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "pipewire" @@ -1346,14 +1274,14 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9688b89abf11d756499f7c6190711d6dbe5a3acdb30c8fbf001d6596d06a8d44" dependencies = [ "anyhow", - "bitflags 2.11.0", - "libc 0.2.182", + "bitflags 2.10.0", + "libc 0.2.177", "libspa", "libspa-sys", "nix 0.30.1", "once_cell", "pipewire-sys", - "thiserror 2.0.18", + "thiserror 2.0.17", ] [[package]] @@ -1375,15 +1303,15 @@ checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" [[package]] name = "portable-atomic" -version = "1.13.1" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c33a9471896f1c69cecef8d20cbe2f7accd12527ce60845ff44c153bb2a21b49" +checksum = "f84267b20a16ea918e43c6a88433c2d54fa145c92a811b5b047ccbe153674483" [[package]] name = "portable-atomic-util" -version = "0.2.5" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a9db96d7fa8782dd8c15ce32ffe8680bbd1e978a43bf51a34d39483540495f5" +checksum = "d8a2f0d8d040d7848a709caf78912debcc3f33ee4b3cac47d73d1e1069e83507" dependencies = [ "portable-atomic", ] @@ -1399,9 +1327,9 @@ dependencies = [ [[package]] name = "predicates" -version = "3.1.4" +version = "3.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ada8f2932f28a27ee7b70dd6c1c39ea0675c55a36879ab92f3a715eaa1e63cfe" +checksum = "a5d19ee57562043d37e82899fade9a22ebab7be9cef5026b07fda9cdd4293573" dependencies = [ "anstyle", "predicates-core", @@ -1409,15 +1337,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.10" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" +checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" [[package]] name = "predicates-tree" -version = "1.0.13" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" +checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" dependencies = [ "predicates-core", "termtree", @@ -1444,9 +1372,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.106" +version = "1.0.103" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fd00f0bb2e90d81d1044c2b32617f68fcb9fa3bb7640c23e9c748e53fb30934" +checksum = "5ee95bc4ef87b8d5ba32e8b7714ccc834865276eab0aed5c9958d00ec45f49e8" dependencies = [ "unicode-ident", ] @@ -1465,9 +1393,9 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" [[package]] name = "quote" -version = "1.0.44" +version = "1.0.42" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "a338cc41d27e6cc6dce6cefc13a0729dfbb81c262b1f519331575dd80ef3067f" dependencies = [ "proc-macro2", ] @@ -1491,18 +1419,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6db2770f06117d490610c7488547d543617b21bfa07796d7a12f6f1bd53850d1" dependencies = [ "rand_chacha", - "rand_core 0.9.5", -] - -[[package]] -name = "rand" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc266eb313df6c5c09c1c7b1fbe2510961e5bcd3add930c1e31f7ed9da0feff8" -dependencies = [ - "chacha20", - "getrandom 0.4.1", - "rand_core 0.10.0", + "rand_core", ] [[package]] @@ -1512,38 +1429,32 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3022b5f1df60f26e1ffddd6c66e8aa15de382ae63b3a0c1bfc0e4d3e3f325cb" dependencies = [ "ppv-lite86", - "rand_core 0.9.5", + "rand_core", ] [[package]] name = "rand_core" -version = "0.9.5" +version = "0.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76afc826de14238e6e8c374ddcc1fa19e374fd8dd986b0d2af0d02377261d83c" +checksum = "99d9a13982dcf210057a8a78572b2217b667c3beacbf3a0d8b454f6f82837d38" dependencies = [ - "getrandom 0.3.4", + "getrandom", ] -[[package]] -name = "rand_core" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c8d0fd677905edcbeedbf2edb6494d676f0e98d54d5cf9bda0b061cb8fb8aba" - [[package]] name = "redox_syscall" version = "0.5.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ed2bf2547551a7053d6fdfafda3f938979645c44812fbfcda098faae3f1a362d" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", ] [[package]] name = "regex" -version = "1.12.3" +version = "1.12.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10754a14b9137dd7b1e3e5b0493cc9171fdd105e0ab477f51b72e7f3ac0e276" +checksum = "843bc0191f75f3e22651ae5f1e72939ab2f72a4bc30fa80a066bd66edefc24d4" dependencies = [ "aho-corasick", "memchr", @@ -1553,9 +1464,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.4.14" +version = "0.4.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e1dd4122fc1595e8162618945476892eefca7b88c52820e74af6262213cae8f" +checksum = "5276caf25ac86c8d810222b3dbb938e512c55c6831a10f3e6ed1c93b84041f1c" dependencies = [ "aho-corasick", "memchr", @@ -1564,9 +1475,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.10" +version = "0.8.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" +checksum = "7a2d987857b319362043e95f5353c0535c1f58eec5336fdfcf626430af7def58" [[package]] name = "relative-path" @@ -1637,13 +1548,13 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.4" +version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" +checksum = "cd15f8a2c5551a84d56efdc1cd049089e409ac19a3072d5037a17fd70719ff3e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "errno", - "libc 0.2.182", + "libc 0.2.177", "linux-raw-sys", "windows-sys 0.61.1", ] @@ -1673,7 +1584,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f517ff4f36da6a1bae02e05a59865736a5e594329ff1f958eac5865989ba2e3" dependencies = [ "cfg-if", - "libc 0.2.182", + "libc 0.2.177", "log", "mesa3d_util", "pkg-config", @@ -1686,9 +1597,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.23" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9774ba4a74de5f7b1c1451ed6cd5285a32eddb5cccb8cc655a4e50009e06477f" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "scopeguard" @@ -1734,22 +1645,22 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.149" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83fc039473c5595ace860d8c4fafa220ff474b3fc6bfdb4293327f1a37e94d86" +checksum = "402a6f66d8c709116cf22f558eab210f5a50187f702eb4d7e5ef38d9a7f1c79c" dependencies = [ "itoa", "memchr", + "ryu", "serde", "serde_core", - "zmij", ] [[package]] name = "serde_spanned" -version = "1.0.4" +version = "1.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8bbf91e5a4d6315eee45e704372590b30e260ee83af6639d64557f51b067776" +checksum = "e24345aa0fe688594e73770a5f6d1b216508b4f93484c0026d521acd30134392" dependencies = [ "serde_core", ] @@ -1779,7 +1690,7 @@ version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d881a16cf4426aa584979d30bd82cb33429027e42122b169753d6ef1085ed6e2" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "signal-hook-registry", ] @@ -1789,26 +1700,25 @@ version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b75a19a7a740b25bc7944bdee6172368f988763b744e3d4dfe753f6b4ece40cc" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "mio", "signal-hook", ] [[package]] name = "signal-hook-registry" -version = "1.4.8" +version = "1.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4db69cba1110affc0e9f7bcd48bbf87b3f4fc7c61fc9155afd4c469eb3d6c1b" +checksum = "7664a098b8e616bdfcc2dc0e9ac44eb231eedf41db4e9fe95d8d32ec728dedad" dependencies = [ - "errno", - "libc 0.2.182", + "libc 0.2.177", ] [[package]] name = "slab" -version = "0.4.12" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c790de23124f9ab44544d7ac05d60440adc586479ce501c1d6d7da3cd8c9cf5" +checksum = "7a2ae44ef20feb57a68b23d846850f861394c2e02dc425a50098ae8c90267589" [[package]] name = "smallvec" @@ -1822,7 +1732,7 @@ version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e22376abed350d73dd1cd119b57ffccad95b4e585a7cda43e286245ce23c0678" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "windows-sys 0.52.0", ] @@ -1832,17 +1742,17 @@ version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7654092b2859221c29ac4b43dc502a8e156a7f2533e8617aaaa056b664d1230e" dependencies = [ - "bitflags 2.11.0", + "bitflags 2.10.0", "embedded-can", "hex", "itertools 0.13.0", - "libc 0.2.182", + "libc 0.2.177", "log", "nb", "neli", "nix 0.29.0", "socket2", - "thiserror 2.0.18", + "thiserror 2.0.17", ] [[package]] @@ -1906,12 +1816,12 @@ checksum = "df7f62577c25e07834649fc3b39fafdc597c0a3527dc1c60129201ccfcbaa50c" [[package]] name = "tempfile" -version = "3.26.0" +version = "3.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" +checksum = "2d31c77bdf42a745371d260a26ca7163f1e0924b64afa0b688e61b5a9fa02f16" dependencies = [ "fastrand", - "getrandom 0.4.1", + "getrandom", "once_cell", "rustix", "windows-sys 0.61.1", @@ -1934,11 +1844,11 @@ dependencies = [ [[package]] name = "thiserror" -version = "2.0.18" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4288b5bcbc7920c07a1149a35cf9590a2aa808e0bc1eafaade0b80947865fbc4" +checksum = "f63587ca0f12b72a0600bcba1d40081f830876000bb46dd2337a3051618f4fc8" dependencies = [ - "thiserror-impl 2.0.18", + "thiserror-impl 2.0.17", ] [[package]] @@ -1954,9 +1864,9 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "2.0.18" +version = "2.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" +checksum = "3ff15c8ecd7de3849db632e14d18d2571fa09dfc5ed93479bc4485c7a517c913" dependencies = [ "proc-macro2", "quote", @@ -1965,9 +1875,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.9.11+spec-1.1.0" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3afc9a848309fe1aaffaed6e1546a7a14de1f935dc9d89d32afd9a44bab7c46" +checksum = "f0dc8b1fb61449e27716ec0e1bdf0f6b8f3e8f6b05391e8497b8b6d7804ea6d8" dependencies = [ "indexmap", "serde_core", @@ -1980,18 +1890,18 @@ dependencies = [ [[package]] name = "toml_datetime" -version = "0.7.5+spec-1.1.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e1cfed4a3038bc5a127e35a2d360f145e1f4b971b551a2ba5fd7aedf7e1347" +checksum = "f2cdb639ebbc97961c51720f858597f7f24c4fc295327923af55b74c3c724533" dependencies = [ "serde_core", ] [[package]] name = "toml_edit" -version = "0.23.10+spec-1.0.0" +version = "0.23.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c8b9f757e028cee9fa244aea147aab2a9ec09d5325a9b01e0a49730c2b5269" +checksum = "6485ef6d0d9b5d0ec17244ff7eb05310113c3f316f2d14200d4de56b3cb98f8d" dependencies = [ "indexmap", "toml_datetime", @@ -2001,18 +1911,18 @@ dependencies = [ [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "c0cbe268d35bdb4bb5a56a2de88d0ad0eb70af5384a99d648cd4b3d04039800e" dependencies = [ "winnow", ] [[package]] name = "toml_writer" -version = "1.0.6+spec-1.1.0" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +checksum = "df8b2b54733674ad286d16267dcfc7a71ed5c776e4ac7aa3c3e2561f7c637bf2" [[package]] name = "uncased" @@ -2031,9 +1941,9 @@ checksum = "70ba288e709927c043cbe476718d37be306be53fb1fafecd0dbe36d072be2580" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.22" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "9312f7c4f6ff9069b165498234ce8be658059c6728633667c526e27dc2cf1df5" [[package]] name = "unicode-segmentation" @@ -2047,12 +1957,6 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b4ac048d71ede7ee76d585517add45da530660ef4390e49b098733c6e897f254" -[[package]] -name = "unicode-xid" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebc1c04c71510c7f702b52b7c350734c9ff1295c464a03335b00bb84fc54f853" - [[package]] name = "unsafe-libyaml" version = "0.2.11" @@ -2067,13 +1971,13 @@ checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" [[package]] name = "uuid" -version = "1.21.0" +version = "1.18.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b672338555252d43fd2240c714dc444b8c6fb0a5c5335e65a07bba7742735ddb" +checksum = "2f87b8aa10b915a06587d0dec516c282ff295b475d94abf425d62b57710070a2" dependencies = [ - "getrandom 0.4.1", + "getrandom", "js-sys", - "rand 0.9.2", + "rand", "wasm-bindgen", ] @@ -2089,14 +1993,25 @@ version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" +[[package]] +name = "vhost" +version = "0.15.0" +dependencies = [ + "bitflags 2.10.0", + "libc 0.2.177", + "uuid", + "vm-memory", + "vmm-sys-util", +] + [[package]] name = "vhost" version = "0.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c76d90ce3c6b37d610a5304c9a445cfff580cf8b4b9fd02fb256aaf68552c28a" dependencies = [ - "bitflags 2.11.0", - "libc 0.2.182", + "bitflags 2.10.0", + "libc 0.2.177", "uuid", "vm-memory", "vmm-sys-util", @@ -2112,9 +2027,9 @@ dependencies = [ "log", "queues", "socketcan", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2133,9 +2048,9 @@ dependencies = [ "epoll", "log", "queues", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2149,12 +2064,12 @@ dependencies = [ "assert_matches", "clap", "env_logger", - "libc 0.2.182", + "libc 0.2.177", "libgpiod", "log", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2163,21 +2078,21 @@ dependencies = [ [[package]] name = "vhost-device-gpu" -version = "0.2.0" +version = "0.1.0" dependencies = [ "assert_matches", - "bitflags 2.11.0", + "bitflags 2.10.0", "clap", "env_logger", - "libc 0.2.182", + "libc 0.2.177", "log", "mockall", "rusty-fork", "rutabaga_gfx", "tempfile", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0", + "vhost-user-backend 0.21.0", "virglrenderer", "virtio-bindings", "virtio-queue", @@ -2192,11 +2107,11 @@ dependencies = [ "assert_matches", "clap", "env_logger", - "libc 0.2.182", + "libc 0.2.177", "log", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2212,14 +2127,14 @@ dependencies = [ "env_logger", "epoll", "evdev", - "libc 0.2.182", + "libc 0.2.177", "log", - "nix 0.31.2", - "rand 0.10.0", + "nix 0.30.1", + "rand", "tempfile", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2234,13 +2149,13 @@ dependencies = [ "clap", "env_logger", "epoll", - "libc 0.2.182", + "libc 0.2.177", "log", - "rand 0.10.0", + "rand", "tempfile", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2256,9 +2171,9 @@ dependencies = [ "env_logger", "itertools 0.14.0", "log", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2275,9 +2190,9 @@ dependencies = [ "epoll", "log", "tempfile", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2296,13 +2211,13 @@ dependencies = [ "gstreamer-audio", "log", "pipewire", - "rand 0.10.0", + "rand", "rstest", "rusty-fork", "tempfile", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2314,14 +2229,14 @@ name = "vhost-device-spi" version = "0.1.0" dependencies = [ "assert_matches", - "bitflags 2.11.0", + "bitflags 2.10.0", "clap", "env_logger", - "libc 0.2.182", + "libc 0.2.177", "log", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2335,11 +2250,11 @@ dependencies = [ "assert_matches", "clap", "env_logger", - "libc 0.2.182", + "libc 0.2.177", "log", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2356,13 +2271,13 @@ dependencies = [ "env_logger", "epoll", "figment", - "libc 0.2.182", + "libc 0.2.177", "log", "serde", "tempfile", - "thiserror 2.0.18", - "vhost", - "vhost-user-backend", + "thiserror 2.0.17", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", + "vhost-user-backend 0.21.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "virtio-vsock", @@ -2371,15 +2286,28 @@ dependencies = [ "vsock", ] +[[package]] +name = "vhost-user-backend" +version = "0.21.0" +dependencies = [ + "libc 0.2.177", + "log", + "vhost 0.15.0", + "virtio-bindings", + "virtio-queue", + "vm-memory", + "vmm-sys-util", +] + [[package]] name = "vhost-user-backend" version = "0.21.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "783587813a59c42c36519a6e12bb31eb2d7fa517377428252ba4cc2312584243" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "log", - "vhost", + "vhost 0.15.0 (registry+https://github.com/rust-lang/crates.io-index)", "virtio-bindings", "virtio-queue", "vm-memory", @@ -2388,21 +2316,21 @@ dependencies = [ [[package]] name = "virglrenderer" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6906bec0a34658c4a81933153a784f9f8d8bcdbe67dcf9e58ea7b67fd1f8ec0b" +checksum = "14b3ceb5f84adcbd531661a6c6c0883c3d6cd83427886d3179675b19268f4450" dependencies = [ "libc 1.0.0-alpha.1", "log", - "thiserror 2.0.18", + "thiserror 2.0.17", "virglrenderer-sys", ] [[package]] name = "virglrenderer-sys" -version = "0.1.3" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1cd0732acd1881433c4689bb2d359d64b9a64ddf64ab7231d9db35edbd181a" +checksum = "b3b62ecfe310dacb7a9cd5b9e4c2e25fa5663a9c860c3396ed3b11ee1e06e4b4" dependencies = [ "bindgen", "pkg-config", @@ -2420,7 +2348,7 @@ version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e358084f32ed165fddb41d98ff1b7ff3c08b9611d8d6114a1b422e2e85688baf" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "log", "virtio-bindings", "vm-memory", @@ -2445,9 +2373,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f39348a049689cabd3377cdd9182bf526ec76a6f823b79903896452e9d7a7380" dependencies = [ "arc-swap", - "bitflags 2.11.0", - "libc 0.2.182", - "thiserror 2.0.18", + "bitflags 2.10.0", + "libc 0.2.177", + "thiserror 2.0.17", "vmm-sys-util", "winapi", ] @@ -2459,7 +2387,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "506c62fdf617a5176827c2f9afbcf1be155b03a9b4bf9617a60dbc07e3a1642f" dependencies = [ "bitflags 1.3.2", - "libc 0.2.182", + "libc 0.2.177", ] [[package]] @@ -2468,7 +2396,7 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e2da6e4ac76cd19635dce0f98985378bb62f8044ee2ff80abd2a7334b920ed63" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", "nix 0.30.1", ] @@ -2478,7 +2406,7 @@ version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ - "libc 0.2.182", + "libc 0.2.177", ] [[package]] @@ -2489,27 +2417,18 @@ checksum = "ccf3ec651a847eb01de73ccad15eb7d99f80485de043efb2f370cd654f4ea44b" [[package]] name = "wasip2" -version = "1.0.2+wasi-0.2.9" +version = "1.0.1+wasi-0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9517f9239f02c069db75e65f174b3da828fe5f5b945c4dd26bd25d89c03ebcf5" -dependencies = [ - "wit-bindgen", -] - -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" +checksum = "0562428422c63773dad2c345a1882263bbf4d65cf3f42e90921f787ef5ad58e7" dependencies = [ "wit-bindgen", ] [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "0d759f433fa64a2d763d1340820e46e111a7a5ab75f993d1852d70b03dbb80fd" dependencies = [ "cfg-if", "once_cell", @@ -2520,9 +2439,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "48cb0d2638f8baedbc542ed444afc0644a29166f1595371af4fecf8ce1e7eeb3" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -2530,9 +2449,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "cefb59d5cd5f92d9dcf80e4683949f15ca4b511f4ac0a6e14d4e1ac60c6ecd40" dependencies = [ "bumpalo", "proc-macro2", @@ -2543,47 +2462,13 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.106" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "cbc538057e648b67f72a982e708d485b2efa771e1ac05fec311f9f63e5800db4" dependencies = [ "unicode-ident", ] -[[package]] -name = "wasm-encoder" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "990065f2fe63003fe337b932cfb5e3b80e0b4d0f5ff650e6985b1048f62c8319" -dependencies = [ - "leb128fmt", - "wasmparser", -] - -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap", - "wasm-encoder", - "wasmparser", -] - -[[package]] -name = "wasmparser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" -dependencies = [ - "bitflags 2.11.0", - "hashbrown 0.15.5", - "indexmap", - "semver", -] - [[package]] name = "winapi" version = "0.3.9" @@ -2705,91 +2590,9 @@ dependencies = [ [[package]] name = "wit-bindgen" -version = "0.51.0" +version = "0.46.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck", - "indexmap", - "prettyplease", - "syn 2.0.106", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] - -[[package]] -name = "wit-bindgen-rust-macro" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.106", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.0", - "indexmap", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser", -] +checksum = "f17a85883d4e6d00e8a97c586de764dabcc06133f7f1d55dce5cdc070ad7fe59" [[package]] name = "wyz" @@ -2812,26 +2615,20 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.40" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" +checksum = "fd74ec98b9250adb3ca554bdde269adf631549f51d8a8f8f0a10b50f1cb298c3" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.40" +version = "0.8.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" +checksum = "d8a8d209fdf45cf5138cbb5a506f6b52522a25afccc534d1475dad8e31105c6a" dependencies = [ "proc-macro2", "quote", "syn 2.0.106", ] - -[[package]] -name = "zmij" -version = "1.0.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8848ee67ecc8aedbaf3e4122217aff892639231befc6a1b58d29fff4c2cabaa" diff --git a/vhost-device-gpu/src/backend/gfxstream.rs b/vhost-device-gpu/src/backend/gfxstream.rs index 95a1814..b26f090 100644 --- a/vhost-device-gpu/src/backend/gfxstream.rs +++ b/vhost-device-gpu/src/backend/gfxstream.rs @@ -21,7 +21,7 @@ use vhost::vhost_user::{ gpu_message::{ VhostUserGpuCursorPos, VhostUserGpuEdidRequest, VhostUserGpuScanout, VhostUserGpuUpdate, }, - GpuBackend, + Backend, GpuBackend, }; use vhost_user_backend::{VringRwLock, VringT}; use vm_memory::{GuestAddress, GuestMemory, GuestMemoryMmap, VolatileSlice}; @@ -96,6 +96,8 @@ thread_local! { } pub struct GfxstreamAdapter { + #[allow(dead_code)] + backend: Backend, gpu_backend: Option, resources: BTreeMap, fence_state: Arc>, @@ -105,6 +107,7 @@ pub struct GfxstreamAdapter { impl GfxstreamAdapter { pub fn new( queue_ctl: &VringRwLock, + backend: Backend, gpu_config: &GpuConfig, gpu_backend: Option, ) -> Self { @@ -121,6 +124,7 @@ impl GfxstreamAdapter { }); Self { + backend, gpu_backend, fence_state, resources: BTreeMap::new(), @@ -769,6 +773,11 @@ mod gfx_fence_tests { GpuBackend::from_stream(backend) } + fn dummy_backend() -> Backend { + let (_, backend) = UnixStream::pair().unwrap(); + Backend::from_stream(backend) + } + /// Attempts to create a GPU adapter for testing. /// Returns None if gfxstream initialization fails (e.g., in CI without GPU /// drivers). @@ -813,6 +822,7 @@ mod gfx_fence_tests { }); Some(GfxstreamAdapter { + backend: dummy_backend(), gpu_backend: Some(dummy_gpu_backend()), resources: BTreeMap::default(), fence_state, diff --git a/vhost-device-gpu/src/backend/virgl.rs b/vhost-device-gpu/src/backend/virgl.rs index 7e9fb5f..10be1b4 100644 --- a/vhost-device-gpu/src/backend/virgl.rs +++ b/vhost-device-gpu/src/backend/virgl.rs @@ -20,7 +20,7 @@ use vhost::vhost_user::{ VhostUserGpuCursorPos, VhostUserGpuDMABUFScanout, VhostUserGpuDMABUFScanout2, VhostUserGpuEdidRequest, VhostUserGpuUpdate, }, - GpuBackend, + Backend, GpuBackend, }; use vhost_user_backend::{VringRwLock, VringT}; use virglrenderer::{ @@ -150,6 +150,8 @@ impl FenceHandler for VirglFenceHandler { pub struct VirglRendererAdapter { renderer: VirglRenderer, capsets: GpuCapset, + #[allow(dead_code)] + backend: Backend, gpu_backend: Option, fence_state: Arc>, resources: BTreeMap, @@ -159,6 +161,7 @@ pub struct VirglRendererAdapter { impl VirglRendererAdapter { pub fn new( queue_ctl: &VringRwLock, + backend: Backend, config: &GpuConfig, gpu_backend: Option, ) -> io::Result { @@ -193,6 +196,7 @@ impl VirglRendererAdapter { Ok(Self { capsets, renderer, + backend, gpu_backend, fence_state, resources: BTreeMap::new(), @@ -727,6 +731,11 @@ mod virgl_cov_tests { GpuBackend::from_stream(backend) } + fn dummy_backend() -> Backend { + let (_, backend) = UnixStream::pair().unwrap(); + Backend::from_stream(backend) + } + #[test] fn sglist_to_iovecs_err_on_invalid_slice() { // Single region: 0x1000..0x2000 (4 KiB) @@ -813,8 +822,9 @@ mod virgl_cov_tests { let (vring, _outs, _call_evt) = create_vring(&mem, &[] as &[TestingDescChainArgs], GuestAddress(0x2000), GuestAddress(0x4000), 64); - let backend = dummy_gpu_backend(); - let mut gpu = VirglRendererAdapter::new(&vring, &cfg, Some(backend)).unwrap(); + let backend = dummy_backend(); + let gpu_backend = dummy_gpu_backend(); + let mut gpu = VirglRendererAdapter::new(&vring, backend, &cfg, Some(gpu_backend)).unwrap(); gpu.event_poll(); let edid_req = VhostUserGpuEdidRequest { diff --git a/vhost-device-gpu/src/device.rs b/vhost-device-gpu/src/device.rs index ccd04ef..6b3ad60 100644 --- a/vhost-device-gpu/src/device.rs +++ b/vhost-device-gpu/src/device.rs @@ -22,9 +22,10 @@ macro_rules! handle_adapter { Some(renderer) => renderer, None => { // Pass $vrings to the call - let (control_vring, gpu_backend) = $self.extract_backend_and_vring($vrings)?; + let (control_vring, backend, gpu_backend) = + $self.extract_backend_and_vring($vrings)?; - let renderer = $new_adapter(control_vring, gpu_backend)?; + let renderer = $new_adapter(control_vring, backend, gpu_backend)?; event_poll_fd = renderer.get_event_poll_fd(); maybe_renderer.insert(renderer) @@ -52,7 +53,7 @@ use thiserror::Error as ThisError; use vhost::vhost_user::{ gpu_message::{VhostUserGpuCursorPos, VhostUserGpuEdidRequest}, message::{VhostUserProtocolFeatures, VhostUserVirtioFeatures}, - GpuBackend, + Backend, GpuBackend, }; use vhost_user_backend::{VhostUserBackend, VringEpollHandler, VringRwLock, VringT}; use virtio_bindings::{ @@ -140,6 +141,7 @@ impl From for io::Error { struct VhostUserGpuBackendInner { virtio_cfg: VirtioGpuConfig, event_idx_enabled: bool, + backend: Option, gpu_backend: Option, exit_consumer: EventConsumer, exit_notifier: EventNotifier, @@ -173,6 +175,7 @@ impl VhostUserGpuBackend { num_capsets: Le32::from(gpu_config.capsets().num_capsets()), }, event_idx_enabled: false, + backend: None, gpu_backend: None, exit_consumer, exit_notifier, @@ -592,17 +595,21 @@ impl VhostUserGpuBackendInner { fn extract_backend_and_vring<'a>( &mut self, vrings: &'a [VringRwLock], - ) -> IoResult<(&'a VringRwLock, Option)> { + ) -> IoResult<(&'a VringRwLock, Backend, Option)> { let control_vring = &vrings[CONTROL_QUEUE as usize]; - let backend = self.gpu_backend.take(); + let backend = self + .backend + .take() + .ok_or_else(|| io::Error::other("set_backend_req_fd() not called, Backend missing"))?; + let gpu_backend = self.gpu_backend.take(); - if !self.gpu_config.flags().headless && backend.is_none() { + if !self.gpu_config.flags().headless && gpu_backend.is_none() { return Err(io::Error::other( "set_gpu_socket() not called, GpuBackend missing", )); } - Ok((control_vring, backend)) + Ok((control_vring, backend, gpu_backend)) } fn lazy_init_and_handle_event( @@ -622,9 +629,10 @@ impl VhostUserGpuBackendInner { GpuMode::Gfxstream => handle_adapter!( GfxstreamAdapter, TLS_GFXSTREAM, - |control_vring, gpu_backend| -> io::Result { + |control_vring, backend, gpu_backend| -> io::Result { Ok(GfxstreamAdapter::new( control_vring, + backend, &self.gpu_config, gpu_backend, )) @@ -638,8 +646,8 @@ impl VhostUserGpuBackendInner { GpuMode::VirglRenderer => handle_adapter!( VirglRendererAdapter, TLS_VIRGL, - |control_vring, gpu_backend| { - VirglRendererAdapter::new(control_vring, &self.gpu_config, gpu_backend) + |control_vring, backend, gpu_backend| { + VirglRendererAdapter::new(control_vring, backend, &self.gpu_config, gpu_backend) }, self, device_event, @@ -649,7 +657,7 @@ impl VhostUserGpuBackendInner { GpuMode::Null => handle_adapter!( NullAdapter, TLS_NULL, - |control_vring, gpu_backend| -> io::Result { + |control_vring, _backend, gpu_backend| -> io::Result { Ok(NullAdapter::new( control_vring, &self.gpu_config, @@ -713,7 +721,10 @@ impl VhostUserBackend for VhostUserGpuBackend { fn protocol_features(&self) -> VhostUserProtocolFeatures { debug!("Protocol features called"); - VhostUserProtocolFeatures::CONFIG | VhostUserProtocolFeatures::MQ + VhostUserProtocolFeatures::CONFIG + | VhostUserProtocolFeatures::MQ + | VhostUserProtocolFeatures::BACKEND_REQ + | VhostUserProtocolFeatures::BACKEND_SEND_FD } fn set_event_idx(&self, enabled: bool) { @@ -727,6 +738,11 @@ impl VhostUserBackend for VhostUserGpuBackend { Ok(()) } + fn set_backend_req_fd(&self, backend: Backend) { + trace!("Got set_backend_req_fd"); + self.inner.lock().unwrap().backend = Some(backend); + } + fn set_gpu_socket(&self, backend: GpuBackend) -> IoResult<()> { self.inner.lock().unwrap().gpu_backend = Some(backend); Ok(()) @@ -935,6 +951,11 @@ mod tests { (frontend, backend) } + fn dummy_backend_request_socket() -> Backend { + let (_frontend, backend) = UnixStream::pair().unwrap(); + Backend::from_stream(backend) + } + #[test] fn test_process_gpu_command() { let (_, mem) = init(); @@ -1436,7 +1457,10 @@ mod tests { assert_eq!(backend.features(), 0x0101_7100_001B); assert_eq!( backend.protocol_features(), - VhostUserProtocolFeatures::CONFIG | VhostUserProtocolFeatures::MQ + VhostUserProtocolFeatures::CONFIG + | VhostUserProtocolFeatures::MQ + | VhostUserProtocolFeatures::BACKEND_REQ + | VhostUserProtocolFeatures::BACKEND_SEND_FD ); assert_eq!(backend.queues_per_thread(), vec![0xffff_ffff]); assert_eq!(backend.get_config(0, 0), Vec::::new()); @@ -1458,7 +1482,7 @@ mod tests { let vring = VringRwLock::new(mem, 0x1000).unwrap(); vring.set_queue_info(0x100, 0x200, 0x300).unwrap(); vring.set_queue_ready(true); - + backend.set_backend_req_fd(dummy_backend_request_socket()); assert_eq!( backend .handle_event(0, EventSet::OUT, &[vring.clone()], 0) @@ -1477,6 +1501,7 @@ mod tests { // Hit the loop part backend.set_event_idx(true); + backend.set_backend_req_fd(dummy_backend_request_socket()); backend .handle_event(0, EventSet::IN, &[vring.clone()], 0) .unwrap(); @@ -1579,6 +1604,7 @@ mod tests { .unwrap(); backend.set_gpu_socket(gpu_backend).unwrap(); + backend.set_backend_req_fd(dummy_backend_request_socket()); // Unfortunately, there is no way to create a VringEpollHandler directly (the ::new is not public) // So we create a daemon to create the epoll handler for us here