From 8e6537de397a080a8b895aab40061c8e73a0fbdd Mon Sep 17 00:00:00 2001 From: Victoria Brekenfeld Date: Wed, 28 Sep 2022 15:18:04 +0200 Subject: [PATCH] deps: Update smithay --- Cargo.lock | 314 ++++++++++++------------- Cargo.toml | 6 +- src/backend/kms/mod.rs | 39 +-- src/backend/kms/session_fd.rs | 33 ++- src/backend/x11.rs | 3 +- src/main.rs | 7 +- src/wayland/protocols/export_dmabuf.rs | 7 +- 7 files changed, 210 insertions(+), 199 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e0abd9e8..3e15fee6 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,9 +4,9 @@ version = 3 [[package]] name = "ab_glyph" -version = "0.2.15" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24606928a235e73cdef55a0c909719cadd72fce573e5713d58cb2952d8f5794c" +checksum = "04a9283dace1c41c265496614998d5b9c4a97b3eb770e804f007c5144bf03f2b" dependencies = [ "ab_glyph_rasterizer", "owned_ttf_parser", @@ -14,9 +14,9 @@ dependencies = [ [[package]] name = "ab_glyph_rasterizer" -version = "0.1.5" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e" +checksum = "330223a1aecc308757b9926e9391c9b47f8ef2dbd8aea9df88312aea18c5e8d6" [[package]] name = "addr2line" @@ -33,12 +33,6 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" -[[package]] -name = "adler32" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae1277d39aeec15cb388266ecc24b11c80469deae6067e17a1a7aa9e5c1f234" - [[package]] name = "ahash" version = "0.7.6" @@ -52,18 +46,18 @@ dependencies = [ [[package]] name = "aho-corasick" -version = "0.7.18" +version = "0.7.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f" +checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" dependencies = [ "memchr", ] [[package]] name = "anyhow" -version = "1.0.61" +version = "1.0.65" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "508b352bb5c066aac251f6daf6b36eccd03e8a88e8081cd44959ea277a3af9a8" +checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" dependencies = [ "backtrace", ] @@ -153,33 +147,33 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a" [[package]] name = "block-buffer" -version = "0.10.2" +version = "0.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf7fe51849ea569fd452f37822f606a5cabb684dc918707a0193fd4664ff324" +checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" dependencies = [ "generic-array", ] [[package]] name = "bumpalo" -version = "3.10.0" +version = "3.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3" +checksum = "c1ad822118d20d2c234f427000d5acc36eabe1e29a348c89b63dd60b13f28e5d" [[package]] name = "bytemuck" -version = "1.12.0" +version = "1.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44f8cb64b4147a528e1e9e77583739e683541973295b35f3bd7e78d42c5971fd" +checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.2.0" +version = "1.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339cdf1eb047d1c96cb8be64f4bc28975821222ec1736edfa06e140cf18d0064" +checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" dependencies = [ "proc-macro2", "quote", @@ -322,7 +316,7 @@ dependencies = [ "smithay-egui", "thiserror", "wayland-backend", - "wayland-scanner 0.30.0-beta.9", + "wayland-scanner 0.30.0-beta.10", "xcursor", "xdg", "xkbcommon 0.4.1", @@ -335,16 +329,16 @@ source = "git+https://github.com/pop-os/cosmic-protocols?branch=main#3ff11df30ef dependencies = [ "bitflags", "wayland-backend", - "wayland-protocols 0.30.0-beta.9", - "wayland-scanner 0.30.0-beta.9", + "wayland-protocols 0.30.0-beta.10", + "wayland-scanner 0.30.0-beta.10", "wayland-server", ] [[package]] name = "cpufeatures" -version = "0.2.2" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59a6001667ab124aebae2a495118e11d30984c3a653e99d86d58971708cf5e4b" +checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" dependencies = [ "libc", ] @@ -429,20 +423,11 @@ dependencies = [ "syn", ] -[[package]] -name = "deflate" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c86f7e25f518f4b81808a2cf1c50996a61f5c2eb394b2393bd87f2a4780a432f" -dependencies = [ - "adler32", -] - [[package]] name = "digest" -version = "0.10.3" +version = "0.10.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2fb860ca6fafa5552fb6d0e816a69c8e49f0908bf524e30a90d97c85892d506" +checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" dependencies = [ "block-buffer", "crypto-common", @@ -616,6 +601,16 @@ dependencies = [ "instant", ] +[[package]] +name = "flate2" +version = "1.0.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f82b0f4c27ad9f8bfd1f3208d882da2b09c301bc1c828fd3a00d0216d2fbbff6" +dependencies = [ + "crc32fast", + "miniz_oxide", +] + [[package]] name = "fnv" version = "1.0.7" @@ -789,6 +784,16 @@ dependencies = [ "web-sys", ] +[[package]] +name = "io-lifetimes" +version = "1.0.0-rc1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f65dae1d3aa98e6877917ab4e6fdbfdfb00e95885ea7c4f4f29e3a5dfc08fdf" +dependencies = [ + "libc", + "windows-sys", +] + [[package]] name = "itoa" version = "1.0.3" @@ -803,9 +808,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" [[package]] name = "js-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2" +checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" dependencies = [ "wasm-bindgen", ] @@ -824,9 +829,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" [[package]] name = "libc" -version = "0.2.131" +version = "0.2.133" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c3b4822ccebfa39c02fc03d1534441b22ead323fa0f48bb7ddd8e6ba076a40" +checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966" [[package]] name = "libloading" @@ -840,21 +845,25 @@ dependencies = [ [[package]] name = "libseat" -version = "0.1.4" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55ad314f75263a2135fb09bf96af96eb573582a4a36f6ef9bfdb5f7cec7686fc" +checksum = "845e5c255462c9bc7c71c17b996766b76e3c66f2ddd5846bfbc83f18382aa648" dependencies = [ "cc", "errno", "libseat-sys", + "pkg-config", "slog", ] [[package]] name = "libseat-sys" -version = "0.1.1" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b72fcf823d256aa619f93c81bc192e6dfbf051835990e28238cd14ad81136397" +checksum = "3671cb5e03871f1d6bf0b3b5daa9275549e348fa6359e0f9adb910ca163d4c34" +dependencies = [ + "pkg-config", +] [[package]] name = "libsystemd" @@ -886,9 +895,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" dependencies = [ "autocfg", "scopeguard", @@ -944,9 +953,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "miniz_oxide" -version = "0.5.3" +version = "0.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f5c75688da582b8ffc1f1799e9db273f32133c49e048f614d22ec3256773ccc" +checksum = "96590ba8f175222643a85693f33d26e9c8a015f599c216509b1a6894af675d34" dependencies = [ "adler", ] @@ -1021,19 +1030,6 @@ dependencies = [ "jni-sys", ] -[[package]] -name = "nix" -version = "0.22.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf" -dependencies = [ - "bitflags", - "cc", - "cfg-if", - "libc", - "memoffset", -] - [[package]] name = "nix" version = "0.23.1" @@ -1134,15 +1130,15 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.13.0" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1" +checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" [[package]] name = "owned_ttf_parser" -version = "0.15.1" +version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ef1a404ae479dd6906f4fa2c88b3c94028f1284beb42a47c183a7c27ee9a3e" +checksum = "05e6affeb1632d6ff6a23d2cd40ffed138e82f1532571a26f527c8a284bb2fbb" dependencies = [ "ttf-parser", ] @@ -1172,9 +1168,9 @@ dependencies = [ [[package]] name = "percent-encoding" -version = "2.1.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pkg-config" @@ -1184,13 +1180,13 @@ checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae" [[package]] name = "png" -version = "0.17.5" +version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc38c0ad57efb786dd57b9864e5b18bae478c00c824dc55a38bbc9da95dde3ba" +checksum = "8f0e7f4c94ec26ff209cee506314212639d6c91b80afb82984819fafce9df01c" dependencies = [ "bitflags", "crc32fast", - "deflate", + "flate2", "miniz_oxide", ] @@ -1213,18 +1209,18 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.43" +version = "1.0.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2ca2c61bc9f3d74d2886294ab7b9853abd9c1ad903a3ac7815c58989bb7bab" +checksum = "7bd7356a8122b6c4a24a82b278680c73357984ca2fc79a0f9fa6dea7dced7c58" dependencies = [ "unicode-ident", ] [[package]] name = "quick-xml" -version = "0.23.0" +version = "0.23.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9279fbdacaad3baf559d8cabe0acc3d06e30ea14931af31af79578ac0946decc" +checksum = "11bafc859c6815fbaffbbbf4229ecb767ac913fecb27f9ad4343662e9ef099ea" dependencies = [ "memchr", ] @@ -1261,9 +1257,9 @@ dependencies = [ [[package]] name = "rand_core" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ "getrandom", ] @@ -1390,18 +1386,18 @@ dependencies = [ [[package]] name = "serde" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e8e5d5b70924f74ff5c6d64d9a5acd91422117c60f48c4e07855238a254553" +checksum = "728eb6351430bccb993660dfffc5a72f91ccc1295abaa8ce19b27ebe4f75568b" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.143" +version = "1.0.145" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3d8e8de557aee63c26b85b947f5e59b690d0454c753f3adeb5cd7835ab88391" +checksum = "81fa1584d3d1bcacd84c277a0dfe21f5b0f6accf4a23d04d4c6d61f1af522b4c" dependencies = [ "proc-macro2", "quote", @@ -1410,9 +1406,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.83" +version = "1.0.85" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38dd04e3c8279e75b31ef29dbdceebfe5ad89f4d0937213c53f7d49d01b3d5a7" +checksum = "e55a28e3aaef9d5ce0506d0a14dbba8054ddc7e499ef522dd8b26859ec9d4a44" dependencies = [ "itoa", "ryu", @@ -1421,9 +1417,9 @@ dependencies = [ [[package]] name = "sha2" -version = "0.10.2" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55deaec60f81eefe3cce0dc50bda92d6d8e88f2a27df7c5033b42afeb1ed2676" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" dependencies = [ "cfg-if", "cpufeatures", @@ -1501,7 +1497,7 @@ checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" [[package]] name = "smithay" version = "0.3.0" -source = "git+https://github.com/Smithay//smithay?rev=355513d3#355513d3f675dbf5c61196cd98f5134bba53582c" +source = "git+https://github.com/Smithay//smithay?rev=625cbca5#625cbca54981021000d5a33c1bdc711056ff6000" dependencies = [ "appendlist", "bitflags", @@ -1515,6 +1511,7 @@ dependencies = [ "gl_generator", "indexmap", "input", + "io-lifetimes", "lazy_static", "libc", "libloading", @@ -1530,11 +1527,11 @@ dependencies = [ "udev", "wayland-backend", "wayland-egl", - "wayland-protocols 0.30.0-beta.9", + "wayland-protocols 0.30.0-beta.10", "wayland-protocols-misc", "wayland-protocols-wlr", "wayland-server", - "wayland-sys 0.30.0-beta.9", + "wayland-sys 0.30.0-beta.10", "winit", "x11rb", "xkbcommon 0.5.0", @@ -1556,7 +1553,7 @@ dependencies = [ "pkg-config", "wayland-client", "wayland-cursor", - "wayland-protocols 0.29.4", + "wayland-protocols 0.29.5", ] [[package]] @@ -1593,9 +1590,9 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.99" +version = "1.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58dbef6ec655055e20b86b15a8cc6d439cca19b667537ac6a1369572d151ab13" +checksum = "e90cde112c4b9690b8cbe810cba9ddd8bc1d7472e2cae317b69e9438c1cba7d2" dependencies = [ "proc-macro2", "quote", @@ -1635,18 +1632,18 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5f6586b7f764adc0231f4c79be7b920e766bb2f3e51b3661cdb263828f19994" +checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.32" +version = "1.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12bafc5b54507e0149cdf1b145a5d80ab80a90bcd9275df43d4fff68460f6c21" +checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" dependencies = [ "proc-macro2", "quote", @@ -1664,9 +1661,9 @@ dependencies = [ [[package]] name = "time" -version = "0.3.13" +version = "0.3.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db76ff9fa4b1458b3c7f077f3ff9887394058460d21e634355b273aaf11eea45" +checksum = "3c3f9a28b618c3a6b9251b6908e9c99e04b9e5c02e6581ccbb67d59c34ef7f9b" dependencies = [ "itoa", "libc", @@ -1714,9 +1711,9 @@ dependencies = [ [[package]] name = "unicode-ident" -version = "1.0.3" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4f5b37a154999a8f3f98cc23a628d850e154479cd94decf3414696e12e31aaf" +checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" [[package]] name = "uuid" @@ -1747,9 +1744,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d" +checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -1757,9 +1754,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f" +checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" dependencies = [ "bumpalo", "log", @@ -1772,9 +1769,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602" +checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1782,9 +1779,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da" +checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" dependencies = [ "proc-macro2", "quote", @@ -1795,129 +1792,130 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.82" +version = "0.2.83" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a" +checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" [[package]] name = "wayland-backend" -version = "0.1.0-beta.9" +version = "0.1.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d83397002f3bec4c8d8f0c4dd1cc4ce564e7aaf00615b6473185318011a827a" +checksum = "30c089c872513a8dcc2b5cc26209d83f5ffab1841d8c7973edf2583620ebc018" dependencies = [ "cc", "downcast-rs", + "io-lifetimes", "nix 0.24.2", "scoped-tls", "smallvec", - "wayland-sys 0.30.0-beta.9", + "wayland-sys 0.30.0-beta.10", ] [[package]] name = "wayland-client" -version = "0.29.4" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91223460e73257f697d9e23d401279123d36039a3f7a449e983f123292d4458f" +checksum = "3f3b068c05a039c9f755f881dc50f01732214f5685e379829759088967c46715" dependencies = [ "bitflags", "downcast-rs", "libc", - "nix 0.22.3", + "nix 0.24.2", "scoped-tls", "wayland-commons", - "wayland-scanner 0.29.4", - "wayland-sys 0.29.4", + "wayland-scanner 0.29.5", + "wayland-sys 0.29.5", ] [[package]] name = "wayland-commons" -version = "0.29.4" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94f6e5e340d7c13490eca867898c4cec5af56c27a5ffe5c80c6fc4708e22d33e" +checksum = "8691f134d584a33a6606d9d717b95c4fa20065605f798a3f350d78dced02a902" dependencies = [ - "nix 0.22.3", + "nix 0.24.2", "once_cell", "smallvec", - "wayland-sys 0.29.4", + "wayland-sys 0.29.5", ] [[package]] name = "wayland-cursor" -version = "0.29.4" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c52758f13d5e7861fc83d942d3d99bf270c83269575e52ac29e5b73cb956a6bd" +checksum = "6865c6b66f13d6257bef1cd40cbfe8ef2f150fb8ebbdb1e8e873455931377661" dependencies = [ - "nix 0.22.3", + "nix 0.24.2", "wayland-client", "xcursor", ] [[package]] name = "wayland-egl" -version = "0.30.0-beta.9" +version = "0.30.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "393d480911d3021abf6828dc09926c975a417133874dcbdbf7a6e3b4c047b4a4" +checksum = "b6cb5591d75142e1b180691df4d27f164a09abbd6efc7cba9b119ca40646809c" dependencies = [ "thiserror", "wayland-backend", - "wayland-sys 0.30.0-beta.9", + "wayland-sys 0.30.0-beta.10", ] [[package]] name = "wayland-protocols" -version = "0.29.4" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60147ae23303402e41fe034f74fb2c35ad0780ee88a1c40ac09a3be1e7465741" +checksum = "b950621f9354b322ee817a23474e479b34be96c2e909c14f7bc0100e9a970bc6" dependencies = [ "bitflags", "wayland-client", "wayland-commons", - "wayland-scanner 0.29.4", + "wayland-scanner 0.29.5", ] [[package]] name = "wayland-protocols" -version = "0.30.0-beta.9" +version = "0.30.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c411b907898bbb0b589b4d9768cba34f899ca9003dd008497933b0e71b272c" +checksum = "60406a2fb43ff670ece4976cdd0537bbcd1e583b54c3cd9a1b61065e966df0a7" dependencies = [ "bitflags", "wayland-backend", - "wayland-scanner 0.30.0-beta.9", + "wayland-scanner 0.30.0-beta.10", "wayland-server", ] [[package]] name = "wayland-protocols-misc" -version = "0.1.0-beta.9" +version = "0.1.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "555dfad2cecb2ef227a25ba96f64f044e5161d127faf1d95515ca96d60cacfc9" +checksum = "653c3e200343bcfae719b668959efb9475bf9fcf43591cccfead308d32d67049" dependencies = [ "bitflags", "wayland-backend", - "wayland-protocols 0.30.0-beta.9", - "wayland-scanner 0.30.0-beta.9", + "wayland-protocols 0.30.0-beta.10", + "wayland-scanner 0.30.0-beta.10", "wayland-server", ] [[package]] name = "wayland-protocols-wlr" -version = "0.1.0-beta.9" +version = "0.1.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "256b26eecbd27bd190bbed648034d7244f89e4186d9d2b436fb03b678ac29996" +checksum = "f1cfe42e0cfcce47a421844ee82e49316cfab3ec6bcbb3a1076a0a2dd6c8d61e" dependencies = [ "bitflags", "wayland-backend", - "wayland-protocols 0.30.0-beta.9", - "wayland-scanner 0.30.0-beta.9", + "wayland-protocols 0.30.0-beta.10", + "wayland-scanner 0.30.0-beta.10", "wayland-server", ] [[package]] name = "wayland-scanner" -version = "0.29.4" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39a1ed3143f7a143187156a2ab52742e89dac33245ba505c17224df48939f9e0" +checksum = "8f4303d8fa22ab852f789e75a967f0a2cdc430a607751c0499bada3e451cbd53" dependencies = [ "proc-macro2", "quote", @@ -1926,9 +1924,9 @@ dependencies = [ [[package]] name = "wayland-scanner" -version = "0.30.0-beta.9" +version = "0.30.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f5f5b0892a8a2dcd51d65ec843cd9350d407eae476ebbf10ff35650f510f761" +checksum = "a1398566f240c3ef845bdfd310c8ee6ba800d4db695d007f23f2190eeedfff93" dependencies = [ "proc-macro2", "quick-xml", @@ -1938,23 +1936,23 @@ dependencies = [ [[package]] name = "wayland-server" -version = "0.30.0-beta.9" +version = "0.30.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09f4aebf7374a9bcadb01631dc5f80e8b0b6c4d6adfe60227b54905d7adfaa01" +checksum = "030557c71dfa3d7e0d0b5975bbdfee2eee319fde3e4c420cde63474c61331347" dependencies = [ "bitflags", "downcast-rs", "nix 0.24.2", "thiserror", "wayland-backend", - "wayland-scanner 0.30.0-beta.9", + "wayland-scanner 0.30.0-beta.10", ] [[package]] name = "wayland-sys" -version = "0.29.4" +version = "0.29.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9341df79a8975679188e37dab3889bfa57c44ac2cb6da166f519a81cbe452d4" +checksum = "be12ce1a3c39ec7dba25594b97b42cb3195d54953ddb9d3d95a7c3902bc6e9d4" dependencies = [ "dlib", "lazy_static", @@ -1963,9 +1961,9 @@ dependencies = [ [[package]] name = "wayland-sys" -version = "0.30.0-beta.9" +version = "0.30.0-beta.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "efcfeb926ec16a184f83b98c3f9d9d76699035ebb229740377724e10993926ef" +checksum = "bacc6b678c3350910e5ad6c057b7503666080952c4ece0a7e8958fd33937b1f5" dependencies = [ "dlib", "libc", @@ -1976,9 +1974,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.59" +version = "0.3.60" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1" +checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" dependencies = [ "js-sys", "wasm-bindgen", @@ -2060,9 +2058,9 @@ checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" [[package]] name = "winit" -version = "0.27.2" +version = "0.27.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a8f3e9d742401efcfe833b8f84960397482ff049cb7bf59a112e14a4be97f7" +checksum = "a22e94ba35ca3ff11820044bfa0dc48b95a3a15569c0068555566a12ef41c9e5" dependencies = [ "bitflags", "cocoa", @@ -2084,7 +2082,7 @@ dependencies = [ "smithay-client-toolkit", "wasm-bindgen", "wayland-client", - "wayland-protocols 0.29.4", + "wayland-protocols 0.29.5", "web-sys", "windows-sys", "x11-dl", diff --git a/Cargo.toml b/Cargo.toml index b53075a2..d351a463 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -30,8 +30,8 @@ xdg = "^2.1" ron = "0.7" atomic_float = "0.1" libsystemd = "0.5" -wayland-backend = "=0.1.0-beta.9" -wayland-scanner = "=0.30.0-beta.9" +wayland-backend = "=0.1.0-beta.10" +wayland-scanner = "=0.30.0-beta.10" cosmic-protocols = { git = "https://github.com/pop-os/cosmic-protocols", branch = "main", default-features = false, features = ["server"] } [dependencies.smithay] @@ -62,4 +62,4 @@ debug = true lto = "fat" [patch."https://github.com/Smithay/smithay.git"] -smithay = { git = "https://github.com/Smithay//smithay", rev = "355513d3" } +smithay = { git = "https://github.com/Smithay//smithay", rev = "625cbca5" } diff --git a/src/backend/kms/mod.rs b/src/backend/kms/mod.rs index ce728847..fd860432 100644 --- a/src/backend/kms/mod.rs +++ b/src/backend/kms/mod.rs @@ -48,6 +48,7 @@ use smithay::{ use std::{ cell::RefCell, collections::{HashMap, HashSet}, + os::unix::io::{FromRawFd, OwnedFd}, path::PathBuf, rc::Rc, time::{Duration, Instant}, @@ -308,21 +309,23 @@ impl State { return Ok(()); } - let fd = SessionFd::new( - self.backend - .kms() - .session - .open( - &path, - OFlag::O_RDWR | OFlag::O_CLOEXEC | OFlag::O_NOCTTY | OFlag::O_NONBLOCK, - ) - .with_context(|| { - format!( - "Failed to optain file descriptor for drm device: {}", - path.display() + let fd = SessionFd::new(unsafe { + OwnedFd::from_raw_fd( + self.backend + .kms() + .session + .open( + &path, + OFlag::O_RDWR | OFlag::O_CLOEXEC | OFlag::O_NOCTTY | OFlag::O_NONBLOCK, ) - })?, - ); + .with_context(|| { + format!( + "Failed to optain file descriptor for drm device: {}", + path.display() + ) + })?, + ) + }); let mut drm = DrmDevice::new(fd.clone(), false, None) .with_context(|| format!("Failed to initialize drm device for: {}", path.display()))?; let drm_node = DrmNode::from_dev_id(dev)?; @@ -330,9 +333,11 @@ impl State { let gbm = GbmDevice::new(fd) .with_context(|| format!("Failed to initialize GBM device for {}", path.display()))?; - let egl_display = EGLDisplay::new(&gbm, None).with_context(|| { - format!("Failed to create EGLDisplay for device: {}", path.display()) - })?; + let egl_display = unsafe { + EGLDisplay::new(&gbm, None).with_context(|| { + format!("Failed to create EGLDisplay for device: {}", path.display()) + })? + }; let egl_device = EGLDevice::device_for_display(&egl_display).with_context(|| { format!("Unable to find matching egl device for {}", path.display()) })?; diff --git a/src/backend/kms/session_fd.rs b/src/backend/kms/session_fd.rs index 3ae413e3..ffd3032b 100644 --- a/src/backend/kms/session_fd.rs +++ b/src/backend/kms/session_fd.rs @@ -1,39 +1,38 @@ // SPDX-License-Identifier: GPL-3.0-only -use smithay::reexports::nix::unistd::close; use std::{ fmt, - os::unix::io::{AsRawFd, RawFd}, + os::unix::io::{AsFd, AsRawFd, BorrowedFd, OwnedFd, RawFd}, sync::Arc, }; #[derive(Clone)] -pub struct SessionFd(Arc); - -struct DropFd(RawFd); +pub struct SessionFd(Arc); impl SessionFd { - pub fn new(fd: RawFd) -> SessionFd { - SessionFd(Arc::new(DropFd(fd))) + pub fn new(fd: OwnedFd) -> SessionFd { + SessionFd(Arc::new(fd)) } } impl fmt::Debug for SessionFd { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { - write!(f, "Session-provided File Descriptor [{}]", self.0 .0) + write!( + f, + "Session-provided File Descriptor [{}]", + self.0.as_raw_fd() + ) + } +} + +impl AsFd for SessionFd { + fn as_fd(&self) -> BorrowedFd<'_> { + self.0.as_fd() } } impl AsRawFd for SessionFd { fn as_raw_fd(&self) -> RawFd { - self.0 .0 - } -} - -impl Drop for DropFd { - fn drop(&mut self) { - if let Err(err) = close(self.0) { - slog_scope::warn!("Failed to close file descriptor {}: {}", self.0, err); - } + self.0.as_raw_fd() } } diff --git a/src/backend/x11.rs b/src/backend/x11.rs index eb6b802f..53c4c1ca 100644 --- a/src/backend/x11.rs +++ b/src/backend/x11.rs @@ -242,7 +242,8 @@ pub fn init_backend( let device = unsafe { GbmDevice::new_from_fd(fd) }.with_context(|| "Failed to create GBM device")?; // Initialize EGL using the GBM device. - let egl = EGLDisplay::new(&device, None).with_context(|| "Failed to create EGL display")?; + let egl = + unsafe { EGLDisplay::new(&device, None).with_context(|| "Failed to create EGL display")? }; // Create the OpenGL context let context = EGLContext::new(&egl, None).with_context(|| "Failed to create EGL context")?; // Create a renderer diff --git a/src/main.rs b/src/main.rs index e14f29c8..4231f427 100644 --- a/src/main.rs +++ b/src/main.rs @@ -11,6 +11,7 @@ use smithay::{ use anyhow::{Context, Result}; use std::{ ffi::OsString, + os::unix::prelude::AsRawFd, sync::{atomic::Ordering, Arc}, }; @@ -117,7 +118,11 @@ fn init_wayland_display( event_loop .handle() .insert_source( - Generic::new(display.backend().poll_fd(), Interest::READ, Mode::Level), + Generic::new( + display.backend().poll_fd().as_raw_fd(), + Interest::READ, + Mode::Level, + ), move |_, _, data: &mut state::Data| match data.display.dispatch_clients(&mut data.state) { Ok(_) => Ok(PostAction::Continue), diff --git a/src/wayland/protocols/export_dmabuf.rs b/src/wayland/protocols/export_dmabuf.rs index 4e6eff99..0288eebf 100644 --- a/src/wayland/protocols/export_dmabuf.rs +++ b/src/wayland/protocols/export_dmabuf.rs @@ -14,7 +14,7 @@ use smithay::{ use std::{ fs::File, io::{Seek, SeekFrom}, - os::unix::io::{FromRawFd, IntoRawFd}, + os::unix::io::{AsRawFd, FromRawFd, IntoRawFd}, time::Instant, }; @@ -243,7 +243,8 @@ fn handle_capture(capture: Capture, frame: ZcosmicExportDmabufFrameV1, start_tim .zip(dmabuf.offsets().zip(dmabuf.strides())) .enumerate() { - let mut file = unsafe { File::from_raw_fd(handle) }; + // SAFETY: BorrowedFd is used for seeking + let mut file = unsafe { File::from_raw_fd(handle.as_raw_fd()) }; let size = match file.seek(SeekFrom::End(0)) { Ok(size) => size, Err(err) => { @@ -257,7 +258,9 @@ fn handle_capture(capture: Capture, frame: ZcosmicExportDmabufFrameV1, start_tim frame.cancel(zcosmic_export_dmabuf_frame_v1::CancelReason::Temporary); return; } + // SAFETY: Converted back to raw_fd, no chance in ownership let handle = file.into_raw_fd(); + // FDs are dup'ed by wayland-rs before sending them frame.object(i as u32, handle, size as u32, offset, stride, i as u32); }