diff --git a/Cargo.lock b/Cargo.lock index cbb9f372b..1f47a57a7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -141,9 +141,9 @@ checksum = "70033777eb8b5124a81a1889416543dddef2de240019b674c81285a2635a7e1e" [[package]] name = "anyhow" -version = "1.0.91" +version = "1.0.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c042108f3ed77fd83760a5fd79b53be043192bb3b9dba91d8c574c0ada7850c8" +checksum = "4c95c10ba0b00a02636238b814946408b1322d5ac4760326e6fb8ec956d85775" [[package]] name = "arbitrary" @@ -165,7 +165,7 @@ checksum = "a507401cad91ec6a857ed5513a2073c82a9b9048762b885bb98655b306964681" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -256,7 +256,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -337,9 +337,9 @@ dependencies = [ [[package]] name = "cap-fs-ext" -version = "3.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712695628f77a28acd7c9135b9f05f9c1563f8eb91b317f63876bac550032403" +checksum = "e16619ada836f12897a72011fe99b03f0025b87a8dbbea4f3c9f89b458a23bf3" dependencies = [ "cap-primitives", "cap-std", @@ -349,9 +349,9 @@ dependencies = [ [[package]] name = "cap-primitives" -version = "3.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff5bcbaf57897c8f14098cc9ad48a78052930a9948119eea01b80ca224070fa6" +checksum = "82fa6c3f9773feab88d844aa50035a33fb6e7e7426105d2f4bb7aadc42a5f89a" dependencies = [ "ambient-authority", "fs-set-times", @@ -366,9 +366,9 @@ dependencies = [ [[package]] name = "cap-rand" -version = "3.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c780812948b31f362c3bab82d23b902529c26705d0e094888bc7fdb9656908" +checksum = "53774d49369892b70184f8312e50c1b87edccb376691de4485b0ff554b27c36c" dependencies = [ "ambient-authority", "rand", @@ -376,9 +376,9 @@ dependencies = [ [[package]] name = "cap-std" -version = "3.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6cf1a22e6eab501e025a9953532b1e95efb8a18d6364bf8a4a7547b30c49186" +checksum = "7f71b70818556b4fe2a10c7c30baac3f5f45e973f49fc2673d7c75c39d0baf5b" dependencies = [ "cap-primitives", "io-extras", @@ -388,9 +388,9 @@ dependencies = [ [[package]] name = "cap-time-ext" -version = "3.3.0" +version = "3.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e1547a95cd071db92382c649260bcc6721879ef5d1f0f442af33bff75003dd7" +checksum = "69dd48afa2363f746c93f961c211f6f099fb594a3446b8097bc5f79db51b6816" dependencies = [ "ambient-authority", "cap-primitives", @@ -407,7 +407,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "190baaad529bcfbde9e1a19022c42781bdb6ff9de25721abdb8fd98c0807730b" dependencies = [ "libc", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -512,7 +512,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -583,7 +583,7 @@ dependencies = [ "tracing", "tracing-subscriber", "uuid", - "which 6.0.3", + "which 7.0.0", ] [[package]] @@ -650,18 +650,18 @@ dependencies = [ [[package]] name = "cranelift-bforest" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5e7afe85cadb55c4c1176268a2ac046fdff8dfaeca39e18581b9dc319ca9e" +checksum = "540b193ff98b825a1f250a75b3118911af918a734154c69d80bcfcf91e7e9522" dependencies = [ - "cranelift-entity 0.113.0", + "cranelift-entity 0.113.1", ] [[package]] name = "cranelift-bitset" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ab25ef3be935a80680e393183e1f94ef507e93a24a8369494d2c6818aedb3e3" +checksum = "c7cb269598b9557ab942d687d3c1086d77c4b50dcf35813f3a65ba306fd42279" dependencies = [ "serde", "serde_derive", @@ -690,18 +690,18 @@ dependencies = [ [[package]] name = "cranelift-codegen" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900a19b84545924f1851cbfe386962edfc4ecbc3366a254825cf1ecbcda8ba08" +checksum = "46566d7c83a8bff4150748d66020f4c7224091952aa4b4df1ec4959c39d937a1" dependencies = [ "bumpalo", - "cranelift-bforest 0.113.0", + "cranelift-bforest 0.113.1", "cranelift-bitset", - "cranelift-codegen-meta 0.113.0", - "cranelift-codegen-shared 0.113.0", + "cranelift-codegen-meta 0.113.1", + "cranelift-codegen-shared 0.113.1", "cranelift-control", - "cranelift-entity 0.113.0", - "cranelift-isle 0.113.0", + "cranelift-entity 0.113.1", + "cranelift-isle 0.113.1", "gimli 0.31.1", "hashbrown 0.14.3", "log", @@ -722,11 +722,11 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08c73b2395ffe9e7b4fdf7e2ebc052e7e27af13f68a964985346be4da477a5fc" +checksum = "2df8a86a34236cc75a8a6a271973da779c2aeb36c43b6e14da474cf931317082" dependencies = [ - "cranelift-codegen-shared 0.113.0", + "cranelift-codegen-shared 0.113.1", ] [[package]] @@ -737,15 +737,15 @@ checksum = "278e52e29c53fcf32431ef08406c295699a70306d05a0715c5b1bf50e33a9ab7" [[package]] name = "cranelift-codegen-shared" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d9ed0854e96a4ff0879bff39d078de8dea7f002721c9494c1fdb4e1baa86ccc" +checksum = "cf75340b6a57b7c7c1b74f10d3d90883ee6d43a554be8131a4046c2ebcf5eb65" [[package]] name = "cranelift-control" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4aca921dd422e781409de0129c255768fec5dec1dae83239b497fb9138abb89" +checksum = "2e84495bc5d23d86aad8c86f8ade4af765b94882af60d60e271d3153942f1978" dependencies = [ "arbitrary", ] @@ -772,9 +772,9 @@ checksum = "9a59bcbca89c3f1b70b93ab3cbba5e5e0cbf3e63dadb23c7525cb142e21a9d4c" [[package]] name = "cranelift-entity" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d770e6605eccee15b49decdd82cd26f2b6404767802471459ea49c57379a98" +checksum = "963c17147b80df351965e57c04d20dbedc85bcaf44c3436780a59a3f1ff1b1c2" dependencies = [ "cranelift-bitset", "serde", @@ -795,11 +795,11 @@ dependencies = [ [[package]] name = "cranelift-frontend" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29268711cb889cb39215b10faf88b9087d4c9e1d2633581e4f722a2bf4bb4ef9" +checksum = "727f02acbc4b4cb2ba38a6637101d579db50190df1dd05168c68e762851a3dd5" dependencies = [ - "cranelift-codegen 0.113.0", + "cranelift-codegen 0.113.1", "log", "smallvec", "target-lexicon", @@ -813,17 +813,17 @@ checksum = "393bc73c451830ff8dbb3a07f61843d6cb41a084f9996319917c0b291ed785bb" [[package]] name = "cranelift-isle" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc65156f010aed1985767ad1bff0eb8d186743b7b03e23d0c17604a253e3f356" +checksum = "32b00cc2e03c748f2531eea01c871f502b909d30295fdcad43aec7bf5c5b4667" [[package]] name = "cranelift-native" -version = "0.113.0" +version = "0.113.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8bf9b361eaf5a7627647270fabf1dc910d993edbeaf272a652c107861ebe9c2" +checksum = "bbeaf978dc7c1a2de8bbb9162510ed218eb156697bc45590b8fbdd69bb08e8de" dependencies = [ - "cranelift-codegen 0.113.0", + "cranelift-codegen 0.113.1", "libc", "target-lexicon", ] @@ -954,7 +954,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.10.0", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -976,7 +976,7 @@ checksum = "a668eda54683121533a393014d8692171709ff57a7d61f187b6e782719f8933f" dependencies = [ "darling_core 0.20.8", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -1060,7 +1060,7 @@ dependencies = [ "darling 0.20.8", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -1080,7 +1080,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4abae7035bf79b9877b779505d8cf3749285b80c43941eda66604841889451dc" dependencies = [ "derive_builder_core 0.20.1", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -1205,7 +1205,7 @@ dependencies = [ "darling 0.20.8", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -1449,7 +1449,7 @@ checksum = "87750cf4b7a4c0625b1529e4c543c2182106e4dedc60a2a6455e00d212c489ac" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -1835,9 +1835,9 @@ dependencies = [ [[package]] name = "io-extras" -version = "0.18.2" +version = "0.18.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9f046b9af244f13b3bd939f55d16830ac3a201e8a9ba9661bfcb03e2be72b9b" +checksum = "7d45fd7584f9b67ac37bc041212d06bfac0700b36456b05890d36a3b626260eb" dependencies = [ "io-lifetimes", "windows-sys 0.52.0", @@ -1946,9 +1946,9 @@ dependencies = [ [[package]] name = "libbpf-sys" -version = "1.4.5+v1.4.5" +version = "1.5.0+v1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cabee52b6f7e73308d6fd4f8e6bbbdcb97670f49f6e581c5897e4d2410b6019" +checksum = "2d8306b516a70a129cb6afed17c1e51e162d35aadfcc6339364addcebe32de90" dependencies = [ "cc", "nix 0.29.0", @@ -1957,9 +1957,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.161" +version = "0.2.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e9489c2807c139ffd9c1794f4af0ebe86a828db53ecdc7fea2111d0fed085d1" +checksum = "18d287de67fe55fd7e1581fe933d965a5a9477b38e949cfa9f8574ef01506398" [[package]] name = "libcgroups" @@ -1982,7 +1982,7 @@ dependencies = [ "serde_json", "serial_test", "tempfile", - "thiserror", + "thiserror 1.0.66", "tracing", ] @@ -2012,7 +2012,7 @@ dependencies = [ "serde_json", "serial_test", "tempfile", - "thiserror", + "thiserror 1.0.66", "tracing", ] @@ -2252,7 +2252,7 @@ dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -2428,9 +2428,9 @@ dependencies = [ [[package]] name = "oci-spec" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cee185ce7cf1cce45e194e34cd87c0bad7ff0aa2e8917009a2da4f7b31fb363" +checksum = "da406e58efe2eb5986a6139626d611ce426e5324a824133d76367c765cf0b882" dependencies = [ "derive_builder 0.20.1", "getset", @@ -2440,7 +2440,7 @@ dependencies = [ "serde_json", "strum", "strum_macros", - "thiserror", + "thiserror 2.0.3", ] [[package]] @@ -2472,7 +2472,7 @@ checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -2608,7 +2608,7 @@ dependencies = [ "phf_shared", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -2637,7 +2637,7 @@ checksum = "2f38a4412a78282e09a2cf38d195ea5420d15ba0602cb375210efbc877243965" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -2832,7 +2832,7 @@ checksum = "b55bad9126f378a853655831eb7363b7b01b81d19f8cb1218861086ca4a1a61e" dependencies = [ "once_cell", "protobuf-support", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -2847,7 +2847,7 @@ dependencies = [ "protobuf-parse", "regex", "tempfile", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -2862,7 +2862,7 @@ dependencies = [ "protobuf", "protobuf-support", "tempfile", - "thiserror", + "thiserror 1.0.66", "which 4.4.2", ] @@ -2872,7 +2872,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5d4d7b8601c814cfb36bcebb79f0e61e45e1e93640cf778837833bbed05c372" dependencies = [ - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -2917,9 +2917,9 @@ dependencies = [ [[package]] name = "pulley-interpreter" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d68c610ff29655a42eeef41a5b5346e714586971a7d927739477e552fe7e23e3" +checksum = "df33e7f8a43ccc7f93b330fef4baf271764674926f3f4d40f4a196d54de8af26" dependencies = [ "cranelift-bitset", "log", @@ -3032,7 +3032,7 @@ checksum = "bd283d9651eeda4b2a83a43c1c91b266c40fd76ecd39a50a8c630ae69dc72891" dependencies = [ "getrandom", "libredox", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -3281,9 +3281,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.37" +version = "0.38.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8acb788b847c24f28525660c4d7758620a7210875711f79e7f663cc152726811" +checksum = "99e4ea3e1cdc4b559b8e5650f9c8e5998e3e5c1343b4eaf034565f32318d63c0" dependencies = [ "bitflags 2.6.0", "errno", @@ -3456,9 +3456,9 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f55c3193aca71c12ad7890f1785d2b73e1b9f63a0bbc353c08ef26fe03fc56b5" +checksum = "6513c1ad0b11a9376da888e3e0baa0077f1aed55c17f50e7b2397136129fb88f" dependencies = [ "serde_derive", ] @@ -3486,13 +3486,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.214" +version = "1.0.215" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de523f781f095e28fa605cdce0f8307e451cc0fd14e2eb4cd2e98a355b147766" +checksum = "ad1e866f866923f252f05c889987993144fb74e722403468a4ebd70c3cd756c0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -3575,7 +3575,7 @@ checksum = "82fe9db325bcef1fbcde82e078a5cc4efdf787e96b3b9cf45b50b529f2083d67" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -3832,7 +3832,7 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -3848,9 +3848,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.82" +version = "2.0.87" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83540f837a8afc019423a8edb95b52a8effe46957ee402287f4292fae35be021" +checksum = "25aa4ce346d03a6dcd68dd8b4010bcb74e54e62c90c573f394c46eae99aba32d" dependencies = [ "proc-macro2", "quote", @@ -3917,9 +3917,9 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "tar" -version = "0.4.42" +version = "0.4.43" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ff6c40d3aedb5e06b57c6f669ad17ab063dd1e63d977c6a88e7f4dfa4f04020" +checksum = "c65998313f8e17d0d553d28f91a0df93e4dbbbf770279c7bc21ca0f09ea1a1f6" dependencies = [ "filetime", "libc", @@ -3989,22 +3989,42 @@ dependencies = [ [[package]] name = "thiserror" -version = "1.0.65" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d171f59dbaa811dbbb1aee1e73db92ec2b122911a48e1390dfe327a821ddede" +dependencies = [ + "thiserror-impl 1.0.66", +] + +[[package]] +name = "thiserror" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d11abd9594d9b38965ef50805c5e469ca9cc6f197f883f717e0269a3057b3d5" +checksum = "c006c85c7651b3cf2ada4584faa36773bd07bac24acfb39f3c431b36d7e667aa" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.3", ] [[package]] name = "thiserror-impl" -version = "1.0.65" +version = "1.0.66" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b08be0f17bd307950653ce45db00cd31200d82b624b36e181337d9c7d92765b5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.87", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae71770322cbd277e69d762a16c444af02aa0575ac0d174f0b9562d3b37f8602" +checksum = "f077553d607adc1caf65430528a576c757a71ed73944b66ebb58ef2bbd243568" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -4130,7 +4150,7 @@ checksum = "5b8a1e28f2deaa14e508979454cb3a223b10b938b45af148bc0986de36f1923b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -4252,7 +4272,7 @@ checksum = "34704c8d6ebcbc939824180af020566b01a7c01f80641264eba0999f6c2b6be7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -4496,7 +4516,7 @@ dependencies = [ "pin-project-lite", "replace_with", "slab", - "thiserror", + "thiserror 1.0.66", "tokio", "tracing", "webc", @@ -4511,7 +4531,7 @@ dependencies = [ "async-trait", "bytes", "libc", - "thiserror", + "thiserror 1.0.66", "tokio", "tracing", ] @@ -4589,7 +4609,7 @@ dependencies = [ "anyhow", "bitflags 1.3.2", "once_cell", - "thiserror", + "thiserror 1.0.66", "tracing", "wai-bindgen-wasmer-impl", "wasmer", @@ -4653,9 +4673,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasi-common" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30736986c56db528f8086cc81e56abcde4d0c682084cfd9ea37c7237adccde14" +checksum = "165a969c7b4ac223150e2819df36d58b8f24b06320dc314503f90300e5e18bc1" dependencies = [ "anyhow", "bitflags 2.6.0", @@ -4670,7 +4690,7 @@ dependencies = [ "once_cell", "rustix", "system-interface", - "thiserror", + "thiserror 1.0.66", "tracing", "wasmtime", "wiggle", @@ -4797,7 +4817,7 @@ checksum = "dbe80d95a88e9ac87b6aaf7bc9acd1fdfcd92045db2bf41a2262f623e2406a92" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] @@ -4811,7 +4831,7 @@ dependencies = [ "cfg-if", "num-derive", "num-traits", - "thiserror", + "thiserror 1.0.66", "wasmedge-macro", "wasmedge-sys", "wasmedge-types", @@ -4841,7 +4861,7 @@ dependencies = [ "setjmp", "sha256", "tar", - "thiserror", + "thiserror 1.0.66", "wasmedge-macro", "wasmedge-types", "wat", @@ -4853,7 +4873,7 @@ version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17315f552d26bcfe01fc185b874177592d30aab86a10ed898cc8a3f29815c9c4" dependencies = [ - "thiserror", + "thiserror 1.0.66", "wat", ] @@ -4873,7 +4893,7 @@ dependencies = [ "serde", "serde-wasm-bindgen", "target-lexicon", - "thiserror", + "thiserror 1.0.66", "wasm-bindgen", "wasm-bindgen-downcast", "wasmer-compiler", @@ -4901,7 +4921,7 @@ dependencies = [ "more-asserts", "region", "smallvec", - "thiserror", + "thiserror 1.0.66", "wasmer-types", "wasmer-vm", "wasmparser 0.95.0", @@ -4953,7 +4973,7 @@ dependencies = [ "serde_cbor", "serde_json", "serde_yaml 0.9.34+deprecated", - "thiserror", + "thiserror 1.0.66", "toml 0.8.12", ] @@ -4971,7 +4991,7 @@ dependencies = [ "rkyv", "serde", "target-lexicon", - "thiserror", + "thiserror 1.0.66", ] [[package]] @@ -4996,7 +5016,7 @@ dependencies = [ "more-asserts", "region", "scopeguard", - "thiserror", + "thiserror 1.0.66", "wasmer-types", "winapi", ] @@ -5039,7 +5059,7 @@ dependencies = [ "tempfile", "term_size", "termios", - "thiserror", + "thiserror 1.0.66", "tokio", "tracing", "url", @@ -5127,9 +5147,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ffa3230b9ba1ab6568d116df21bf4ca55ed2bfac87723d910471d30d9656ea1" +checksum = "51e762e163fd305770c6c341df3290f0cabb3c264e7952943018e9a1ced8d917" dependencies = [ "addr2line 0.24.2", "anyhow", @@ -5166,7 +5186,7 @@ dependencies = [ "target-lexicon", "wasm-encoder 0.218.0", "wasmparser 0.218.0", - "wasmtime-asm-macros 26.0.0", + "wasmtime-asm-macros 26.0.1", "wasmtime-cache", "wasmtime-component-macro", "wasmtime-component-util", @@ -5176,7 +5196,7 @@ dependencies = [ "wasmtime-jit-debug", "wasmtime-jit-icache-coherence", "wasmtime-slab", - "wasmtime-versioned-export-macros 26.0.0", + "wasmtime-versioned-export-macros 26.0.1", "wasmtime-winch", "wat", "windows-sys 0.59.0", @@ -5193,18 +5213,18 @@ dependencies = [ [[package]] name = "wasmtime-asm-macros" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef15fad08bbaa0e5c5539b76fa5965ca25e24f17a584f83a40b43ba9a2b36f44" +checksum = "63caa7aebb546374e26257a1900fb93579171e7c02514cde26805b9ece3ef812" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da608e953b6ec54afe99dd0b5cdfefff220acb8378dbd72bf846c3745e2f20ed" +checksum = "c7192f71e3afe32e858729454d9d90d6e927bd92427d688a9507d8220bddb256" dependencies = [ "anyhow", "base64", @@ -5222,14 +5242,14 @@ dependencies = [ [[package]] name = "wasmtime-component-macro" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23fb4e179f424260d0739c09d3bc83d34347a55d291d10dcb5244686a75c7733" +checksum = "d61a4b5ce2ad9c15655e830f0eac0c38b8def30c74ecac71f452d3901e491b68" dependencies = [ "anyhow", "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", "wasmtime-component-util", "wasmtime-wit-bindgen", "wit-parser", @@ -5237,22 +5257,22 @@ dependencies = [ [[package]] name = "wasmtime-component-util" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfe3c27d64af5f584014db9381c081223d27a57e1dce2f6280bbafea37575619" +checksum = "35e87a1212270dbb84a49af13d82594e00a92769d6952b0ea7fc4366c949f6ad" [[package]] name = "wasmtime-cranelift" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb56d9ee4a093509624bd0861888cd111f6530e16969a68bb12dc7dd7a2be27f" +checksum = "7cb40dddf38c6a5eefd5ce7c1baf43b00fe44eada11a319fab22e993a960262f" dependencies = [ "anyhow", "cfg-if", - "cranelift-codegen 0.113.0", + "cranelift-codegen 0.113.1", "cranelift-control", - "cranelift-entity 0.113.0", - "cranelift-frontend 0.113.0", + "cranelift-entity 0.113.1", + "cranelift-frontend 0.113.1", "cranelift-native", "gimli 0.31.1", "itertools", @@ -5260,22 +5280,22 @@ dependencies = [ "object 0.36.0", "smallvec", "target-lexicon", - "thiserror", + "thiserror 1.0.66", "wasmparser 0.218.0", "wasmtime-environ", - "wasmtime-versioned-export-macros 26.0.0", + "wasmtime-versioned-export-macros 26.0.1", ] [[package]] name = "wasmtime-environ" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3444c1759d5b906ff76a3cab073dd92135bdd06e5d1f46635ec40a58207d314" +checksum = "8613075e89e94a48c05862243c2b718eef1b9c337f51493ebf951e149a10fa19" dependencies = [ "anyhow", "cpp_demangle", "cranelift-bitset", - "cranelift-entity 0.113.0", + "cranelift-entity 0.113.1", "gimli 0.31.1", "indexmap 2.2.6", "log", @@ -5295,36 +5315,36 @@ dependencies = [ [[package]] name = "wasmtime-fiber" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae2ab757170bf183944ae494cd607bf2f028744414fed7440a39930194bfb869" +checksum = "77acabfbcd89a4d47ad117fb31e340c824e2f49597105402c3127457b6230995" dependencies = [ "anyhow", "cc", "cfg-if", "rustix", - "wasmtime-asm-macros 26.0.0", - "wasmtime-versioned-export-macros 26.0.0", + "wasmtime-asm-macros 26.0.1", + "wasmtime-versioned-export-macros 26.0.1", "windows-sys 0.59.0", ] [[package]] name = "wasmtime-jit-debug" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "077d8382176594ded9e7d837db2f320b45915d40b99f4319b2bd1061bbdf5f4f" +checksum = "f02a0118d471de665565ed200bc56673eaa10cc8e223dfe2cef5d50ed0d9d143" dependencies = [ "object 0.36.0", "once_cell", "rustix", - "wasmtime-versioned-export-macros 26.0.0", + "wasmtime-versioned-export-macros 26.0.1", ] [[package]] name = "wasmtime-jit-icache-coherence" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e458e6a1a010a53f86ac8d75837c0c6b2ce3e54b7503b2f1dc5629a4a541f5a" +checksum = "da47fba49af72581bc0dc67c8faaf5ee550e6f106e285122a184a675193701a5" dependencies = [ "anyhow", "cfg-if", @@ -5334,9 +5354,9 @@ dependencies = [ [[package]] name = "wasmtime-slab" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339c9a2a62b989a3184baff31be3a5b5256ad52629634eb432f9ccf0ab251f83" +checksum = "770e10cdefb15f2b6304152978e115bd062753c1ebe7221c0b6b104fa0419ff6" [[package]] name = "wasmtime-versioned-export-macros" @@ -5346,28 +5366,28 @@ checksum = "09b5575a75e711ca6c36bb9ad647c93541cdc8e34218031acba5da3f35919dd3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] name = "wasmtime-versioned-export-macros" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe01058e422966659e1af00af833147d54658b07c7e74606d73ca9af3f1690a" +checksum = "db8efb877c9e5e67239d4553bb44dd2a34ae5cfb728f3cf2c5e64439c6ca6ee7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] name = "wasmtime-winch" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b65e7d7676280ff58e417053ef8435fd7d0b5c5c4372428d13d47aee00a26bf" +checksum = "4f7a267367382ceec3e7f7ace63a63b83d86f4a680846743dead644e10f08150" dependencies = [ "anyhow", - "cranelift-codegen 0.113.0", + "cranelift-codegen 0.113.1", "gimli 0.31.1", "object 0.36.0", "target-lexicon", @@ -5379,9 +5399,9 @@ dependencies = [ [[package]] name = "wasmtime-wit-bindgen" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c9e85935a1199e96b73e7fcd27a127035d2082265720a67d59268a24892d567" +checksum = "4bef2a726fd8d1ee9b0144655e16c492dc32eb4c7c9f7e3309fcffe637870933" dependencies = [ "anyhow", "heck 0.5.0", @@ -5455,7 +5475,7 @@ dependencies = [ "shared-buffer", "tar", "tempfile", - "thiserror", + "thiserror 1.0.66", "toml 0.7.8", "url", "walkdir", @@ -5488,9 +5508,9 @@ dependencies = [ [[package]] name = "which" -version = "6.0.3" +version = "7.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4ee928febd44d98f2f459a4a79bd4d928591333a494a10a868418ac1b39cf1f" +checksum = "c9cad3279ade7346b96e38731a641d7343dd6a53d55083dd54eadfa5a1b38c6b" dependencies = [ "either", "home", @@ -5500,14 +5520,14 @@ dependencies = [ [[package]] name = "wiggle" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c62986dac93e6de4e542c9861e0bfb375a796e880938bb2f5833a7dfaed07352" +checksum = "b0f25588cf5ea16f56c1af13244486d50c5a2cf67cc0c4e990c665944d741546" dependencies = [ "anyhow", "async-trait", "bitflags 2.6.0", - "thiserror", + "thiserror 1.0.66", "tracing", "wasmtime", "wiggle-macro", @@ -5515,28 +5535,28 @@ dependencies = [ [[package]] name = "wiggle-generate" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b7602686d5d43b23ae28ad5d730921064b634ae6a9d78e8dbdc595326319232" +checksum = "28ff23bed568b335dac6a324b8b167318a0c60555199445fcc89745a5eb42452" dependencies = [ "anyhow", "heck 0.5.0", "proc-macro2", "quote", "shellexpand", - "syn 2.0.82", + "syn 2.0.87", "witx", ] [[package]] name = "wiggle-macro" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a376173abfaaa6cebf8aedd03366fcd528db2b8f5ccc3f422102a3f4014c3855" +checksum = "7f13be83541aa0b033ac5ec8a8b59c9a8d8b32305845b8466dd066e722cb0004" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", "wiggle-generate", ] @@ -5573,12 +5593,12 @@ checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" [[package]] name = "winch-codegen" -version = "26.0.0" +version = "26.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d24d6742c41dcde6860c4b83569264b9cd4549d440a4d2488fed0eace33b92fc" +checksum = "07ab957fc71a36c63834b9b51cc2e087c4260d5ff810a5309ab99f7fbeb19567" dependencies = [ "anyhow", - "cranelift-codegen 0.113.0", + "cranelift-codegen 0.113.1", "gimli 0.31.1", "regalloc2 0.10.2", "smallvec", @@ -5858,7 +5878,7 @@ checksum = "e366f27a5cabcddb2706a78296a40b8fcc451e1a6aba2fc1d94b4a01bdaaef4b" dependencies = [ "anyhow", "log", - "thiserror", + "thiserror 1.0.66", "wast 35.0.2", ] @@ -5939,7 +5959,7 @@ checksum = "9ce1b18ccd8e73a9321186f97e46f9f04b778851177567b1975109d26a08d2a6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.82", + "syn 2.0.87", ] [[package]] diff --git a/README.md b/README.md index 1098c4898..4d1329ea8 100644 --- a/README.md +++ b/README.md @@ -29,7 +29,7 @@ youki is named after the Japanese word 'youki', which means 'a container'. In Ja > $ sudo podman run --cgroup-manager=cgroupfs --runtime /workspaces/youki/youki hello-world > ``` -[User Documentation](https://containers.github.io/youki/user/basic_setup.html#quick-install) +[User Documentation](https://youki-dev.github.io/youki/user/basic_setup.html#quick-install) # 🎯 Motivation @@ -96,7 +96,7 @@ We have [our roadmap](https://github.com/orgs/containers/projects/15). # 🎨 Design and implementation of youki -The User and Developer Documentation for youki is hosted at [https://containers.github.io/youki/](https://containers.github.io/youki/) +The User and Developer Documentation for youki is hosted at [https://youki-dev.github.io/youki/](https://youki-dev.github.io/youki/) ![Architecture](docs/.drawio.svg) @@ -277,7 +277,7 @@ just youki-dev # or youki-release # 👥 Community and Contributing -Please refer to [our community page](https://containers.github.io/youki/community/introduction.html). +Please refer to [our community page](https://youki-dev.github.io/youki/community/introduction.html). Thanks to all the people who already contributed! diff --git a/crates/libcgroups/Cargo.toml b/crates/libcgroups/Cargo.toml index 7a38fa3ef..13663a5d5 100644 --- a/crates/libcgroups/Cargo.toml +++ b/crates/libcgroups/Cargo.toml @@ -4,7 +4,7 @@ version = "0.4.1" # MARK: Version description = "Library for cgroup" license-file = "../../LICENSE" repository = "https://github.com/containers/youki" -homepage = "https://containers.github.io/youki" +homepage = "https://youki-dev.github.io/youki/" readme = "README.md" authors = ["youki team"] edition = "2021" @@ -22,19 +22,19 @@ cgroupsv2_devices = ["rbpf", "libbpf-sys", "errno", "libc", "nix/dir"] [dependencies] nix = { version = "0.28.0", features = ["signal", "user", "fs"] } procfs = "0.16.0" -oci-spec = { version = "~0.7.0", features = ["runtime"] } +oci-spec = { version = "~0.7.1", features = ["runtime"] } fixedbitset = "0.5.7" serde = { version = "1.0", features = ["derive"] } rbpf = { version = "0.3.0", optional = true } -libbpf-sys = { version = "1.4.5", optional = true } +libbpf-sys = { version = "1.5.0", optional = true } errno = { version = "0.3.9", optional = true } -libc = { version = "0.2.161", optional = true } -thiserror = "1.0.65" +libc = { version = "0.2.162", optional = true } +thiserror = "1.0.66" tracing = { version = "0.1.40", features = ["attributes"] } [dev-dependencies] anyhow = "1.0" -oci-spec = { version = "~0.7.0", features = ["proptests", "runtime"] } +oci-spec = { version = "~0.7.1", features = ["proptests", "runtime"] } quickcheck = "1" mockall = { version = "0.13.0", features = [] } clap = "4.1.6" diff --git a/crates/libcontainer/Cargo.toml b/crates/libcontainer/Cargo.toml index 7093f627b..28664aae5 100644 --- a/crates/libcontainer/Cargo.toml +++ b/crates/libcontainer/Cargo.toml @@ -4,7 +4,7 @@ version = "0.4.1" # MARK: Version description = "Library for container control" license-file = "../../LICENSE" repository = "https://github.com/containers/youki" -homepage = "https://containers.github.io/youki" +homepage = "https://youki-dev.github.io/youki/" readme = "README.md" authors = ["youki team"] edition = "2021" @@ -26,7 +26,7 @@ chrono = { version = "0.4", default-features = false, features = [ "serde", ] } fastrand = "^2.1.1" -libc = "0.2.161" +libc = "0.2.162" nix = { version = "0.28.0", features = [ "socket", "sched", @@ -37,7 +37,7 @@ nix = { version = "0.28.0", features = [ "term", "hostname", ] } -oci-spec = { version = "0.7.0", features = ["runtime"] } +oci-spec = { version = "0.7.1", features = ["runtime"] } once_cell = "1.20.2" procfs = "0.16.0" prctl = "1.0.0" @@ -47,13 +47,13 @@ serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" rust-criu = "0.4.0" regex = { version = "1.10.6", default-features = false, features = ["std", "unicode-perl"] } -thiserror = "1.0.65" +thiserror = "1.0.66" tracing = { version = "0.1.40", features = ["attributes"] } safe-path = "0.1.0" nc = "0.9.5" [dev-dependencies] -oci-spec = { version = "~0.7.0", features = ["proptests", "runtime"] } +oci-spec = { version = "~0.7.1", features = ["proptests", "runtime"] } quickcheck = "1" serial_test = "3.1.1" tempfile = "3" diff --git a/crates/libcontainer/src/rootfs/rootfs.rs b/crates/libcontainer/src/rootfs/rootfs.rs index e74138333..a378e52b4 100644 --- a/crates/libcontainer/src/rootfs/rootfs.rs +++ b/crates/libcontainer/src/rootfs/rootfs.rs @@ -31,17 +31,14 @@ impl RootFS { } } - pub fn prepare_rootfs( + pub fn mount_to_rootfs( &self, + linux: &Linux, spec: &Spec, rootfs: &Path, - bind_devices: bool, cgroup_ns: bool, ) -> Result<()> { - tracing::debug!(?rootfs, "prepare rootfs"); let mut flags = MsFlags::MS_REC; - let linux = spec.linux().as_ref().ok_or(MissingSpecError::Linux)?; - match linux.rootfs_propagation().as_deref() { Some("shared") => flags |= MsFlags::MS_SHARED, Some("private") => flags |= MsFlags::MS_PRIVATE, @@ -92,6 +89,20 @@ impl RootFS { mounter.setup_mount(mount, &global_options)?; } } + Ok(()) + } + + pub fn prepare_rootfs( + &self, + spec: &Spec, + rootfs: &Path, + bind_devices: bool, + cgroup_ns: bool, + ) -> Result<()> { + tracing::debug!(?rootfs, "prepare rootfs"); + let linux = spec.linux().as_ref().ok_or(MissingSpecError::Linux)?; + + self.mount_to_rootfs(linux, spec, rootfs, cgroup_ns)?; let symlinker = Symlink::new(); symlinker.setup_kcore_symlink(rootfs)?; diff --git a/crates/liboci-cli/Cargo.toml b/crates/liboci-cli/Cargo.toml index 99fcb8c99..9835a45b7 100644 --- a/crates/liboci-cli/Cargo.toml +++ b/crates/liboci-cli/Cargo.toml @@ -4,7 +4,7 @@ version = "0.4.1" # MARK: Version description = "Parse command line arguments for OCI container runtimes" license-file = "../../LICENSE" repository = "https://github.com/containers/youki" -homepage = "https://containers.github.io/youki" +homepage = "https://youki-dev.github.io/youki/" readme = "README.md" authors = ["youki team"] edition = "2021" diff --git a/crates/youki/Cargo.toml b/crates/youki/Cargo.toml index f3dbcf265..0561760d9 100644 --- a/crates/youki/Cargo.toml +++ b/crates/youki/Cargo.toml @@ -4,7 +4,7 @@ version = "0.4.1" # MARK: Version description = "A container runtime written in Rust" license-file = "../../LICENSE" repository = "https://github.com/containers/youki" -homepage = "https://containers.github.io/youki" +homepage = "https://youki-dev.github.io/youki/" readme = "../../README.md" authors = ["youki team"] edition = "2021" @@ -28,7 +28,7 @@ default-features = false features = ["std", "suggestions", "derive", "cargo", "help", "usage", "error-context"] [dependencies] -anyhow = "1.0.91" +anyhow = "1.0.93" chrono = { version = "0.4", default-features = false, features = ["clock", "serde"] } libcgroups = { path = "../libcgroups", default-features = false, version = "0.4.1" } # MARK: Version libcontainer = { path = "../libcontainer", default-features = false, version = "0.4.1" } # MARK: Version @@ -43,8 +43,8 @@ caps = "0.5.5" wasmer = { version = "4.0.0", optional = true } wasmer-wasix = { version = "0.9.0", optional = true } wasmedge-sdk = { version = "0.14.0", optional = true } -wasmtime = { version = "26.0.0", optional = true } -wasi-common = { version = "26.0.0", optional = true } +wasmtime = { version = "26.0.1", optional = true } +wasi-common = { version = "26.0.1", optional = true } tracing = { version = "0.1.40", features = ["attributes"] } tracing-subscriber = { version = "0.3.18", features = ["json", "env-filter"] } tracing-journald = "0.3.0" @@ -55,5 +55,5 @@ tempfile = "3" scopeguard = "1.2.0" [build-dependencies] -anyhow = "1.0.91" +anyhow = "1.0.93" vergen-gitcl = { version = "1.0.1", features = ["build"] } diff --git a/docs/src/developer/documentation_mdbook.md b/docs/src/developer/documentation_mdbook.md index 65b2d3507..fc76e3044 100644 --- a/docs/src/developer/documentation_mdbook.md +++ b/docs/src/developer/documentation_mdbook.md @@ -4,7 +4,7 @@ This documentation is created using mdbook and aims to provide a concise referen Please make sure that you update this documentation along with newly added features and resources that you found helpful while developing, so that it will be helpful for newcomers. -Currently this documentation is hosted at [https://containers.github.io/youki/](https://containers.github.io/youki/), using GitHub pages. GitHub CI actions are used to automatically check if any files are changed in /docs on each push / PR merge to main branch, and if there are any changes, the mdbook is build and deployed to gh-pages. We use [https://github.com/peaceiris/actions-mdbook](https://github.com/peaceiris/actions-mdbook) to build and then [https://github.com/peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) GitHub action to deploy the mdbook. +Currently this documentation is hosted at [https://youki-dev.github.io/youki/](https://youki-dev.github.io/youki/), using GitHub pages. GitHub CI actions are used to automatically check if any files are changed in /docs on each push / PR merge to main branch, and if there are any changes, the mdbook is build and deployed to gh-pages. We use [https://github.com/peaceiris/actions-mdbook](https://github.com/peaceiris/actions-mdbook) to build and then [https://github.com/peaceiris/actions-gh-pages](https://github.com/peaceiris/actions-gh-pages) GitHub action to deploy the mdbook. When testing locally you can manually test the changes by running `mdbook serve` in the docs directory (after installing mdbook), which will temporarily serve the mdbook at `localhost:3000` by default. You can check the mdbook documentation for more information. diff --git a/experiment/seccomp/Cargo.toml b/experiment/seccomp/Cargo.toml index 0b5bbc8e2..dd44c72cf 100644 --- a/experiment/seccomp/Cargo.toml +++ b/experiment/seccomp/Cargo.toml @@ -4,7 +4,7 @@ version = "0.0.0" description = "Library for seccomp" license-file = "../../LICENSE" repository = "https://github.com/containers/youki" -homepage = "https://containers.github.io/youki" +homepage = "https://youki-dev.github.io/youki/" readme = "README.md" authors = ["youki team"] edition = "2021" diff --git a/experiment/selinux/Cargo.toml b/experiment/selinux/Cargo.toml index 35107f76a..d02d4a6bd 100644 --- a/experiment/selinux/Cargo.toml +++ b/experiment/selinux/Cargo.toml @@ -4,7 +4,7 @@ version = "0.1.0" description = "Library for selinux" license-file = "../../LICENSE" repository = "https://github.com/containers/youki" -homepage = "https://containers.github.io/youki" +homepage = "https://youki-dev.github.io/youki/" readme = "README.md" authors = ["youki team"] edition = "2021" diff --git a/tests/contest/contest/Cargo.toml b/tests/contest/contest/Cargo.toml index d0103b541..1469cbe50 100644 --- a/tests/contest/contest/Cargo.toml +++ b/tests/contest/contest/Cargo.toml @@ -10,7 +10,7 @@ libcgroups = { path = "../../../crates/libcgroups" } libcontainer = { path = "../../../crates/libcontainer" } nix = "0.28.0" num_cpus = "1.16" -oci-spec = { version = "0.7.0", features = ["runtime"] } +oci-spec = { version = "0.7.1", features = ["runtime"] } once_cell = "1.20.2" pnet_datalink = "0.35.0" procfs = "0.16.0" @@ -20,7 +20,7 @@ serde_json = "1.0" tar = "0.4" test_framework = { path = "../test_framework" } uuid = "1.11" -which = "6.0.3" +which = "7.0.0" tempfile = "3" scopeguard = "1.2.0" tracing = { version = "0.1.40", features = ["attributes"]} diff --git a/tests/contest/contest/src/main.rs b/tests/contest/contest/src/main.rs index c8443ced3..6183e2c14 100644 --- a/tests/contest/contest/src/main.rs +++ b/tests/contest/contest/src/main.rs @@ -22,6 +22,7 @@ use crate::tests::mounts_recursive::get_mounts_recursive_test; use crate::tests::no_pivot::get_no_pivot_test; use crate::tests::pidfile::get_pidfile_test; use crate::tests::process::get_process_test; +use crate::tests::process_rlimits::get_process_rlimits_test; use crate::tests::readonly_paths::get_ro_paths_test; use crate::tests::scheduler::get_scheduler_test; use crate::tests::seccomp::get_seccomp_test; @@ -116,6 +117,7 @@ fn main() -> Result<()> { let io_priority_test = get_io_priority_test(); let devices = get_devices_test(); let process = get_process_test(); + let process_rlimtis = get_process_rlimits_test(); let no_pivot = get_no_pivot_test(); tm.add_test_group(Box::new(cl)); @@ -141,6 +143,7 @@ fn main() -> Result<()> { tm.add_test_group(Box::new(scheduler)); tm.add_test_group(Box::new(devices)); tm.add_test_group(Box::new(process)); + tm.add_test_group(Box::new(process_rlimtis)); tm.add_test_group(Box::new(no_pivot)); tm.add_test_group(Box::new(io_priority_test)); diff --git a/tests/contest/contest/src/tests/mod.rs b/tests/contest/contest/src/tests/mod.rs index da7bdb150..236047552 100644 --- a/tests/contest/contest/src/tests/mod.rs +++ b/tests/contest/contest/src/tests/mod.rs @@ -12,6 +12,7 @@ pub mod mounts_recursive; pub mod no_pivot; pub mod pidfile; pub mod process; +pub mod process_rlimits; pub mod readonly_paths; pub mod scheduler; pub mod seccomp; diff --git a/tests/contest/contest/src/tests/process_rlimits/mod.rs b/tests/contest/contest/src/tests/process_rlimits/mod.rs new file mode 100644 index 000000000..2e23c3cfd --- /dev/null +++ b/tests/contest/contest/src/tests/process_rlimits/mod.rs @@ -0,0 +1,2 @@ +mod process_rlimits_test; +pub use process_rlimits_test::get_process_rlimits_test; diff --git a/tests/contest/contest/src/tests/process_rlimits/process_rlimits_test.rs b/tests/contest/contest/src/tests/process_rlimits/process_rlimits_test.rs new file mode 100644 index 000000000..7d5456d50 --- /dev/null +++ b/tests/contest/contest/src/tests/process_rlimits/process_rlimits_test.rs @@ -0,0 +1,67 @@ +use anyhow::{Context, Ok, Result}; +use oci_spec::runtime::{ + PosixRlimit, PosixRlimitBuilder, PosixRlimitType, ProcessBuilder, Spec, SpecBuilder, +}; +use test_framework::{test_result, Test, TestGroup, TestResult}; + +use crate::utils::test_inside_container; + +const GIGABYTES: u64 = 1024 * 1024 * 1024; + +fn create_rlimit( + rlimit_type: PosixRlimitType, + hard_val: u64, + soft_val: u64, +) -> Result { + let rlimit = PosixRlimitBuilder::default() + .typ(rlimit_type) + .hard(hard_val) + .soft(soft_val) + .build()?; + Ok(rlimit) +} + +#[allow(clippy::identity_op)] +fn create_spec() -> Result { + let spec = SpecBuilder::default() + .process( + ProcessBuilder::default() + .args(vec![ + "runtimetest".to_string(), + "process_rlimits".to_string(), + ]) + .rlimits(vec![ + create_rlimit(PosixRlimitType::RlimitAs, 2 * GIGABYTES, 1 * GIGABYTES).unwrap(), + create_rlimit(PosixRlimitType::RlimitCore, 4 * GIGABYTES, 3 * GIGABYTES) + .unwrap(), + create_rlimit(PosixRlimitType::RlimitData, 6 * GIGABYTES, 5 * GIGABYTES) + .unwrap(), + create_rlimit(PosixRlimitType::RlimitFsize, 8 * GIGABYTES, 7 * GIGABYTES) + .unwrap(), + create_rlimit(PosixRlimitType::RlimitStack, 10 * GIGABYTES, 9 * GIGABYTES) + .unwrap(), + create_rlimit(PosixRlimitType::RlimitCpu, 120, 60).unwrap(), + create_rlimit(PosixRlimitType::RlimitNofile, 4000, 3000).unwrap(), + ]) + .build() + .expect("error in creating process config"), + ) + .build() + .context("failed to build spec")?; + + Ok(spec) +} + +fn process_rlimits_test() -> TestResult { + let spec = test_result!(create_spec()); + test_inside_container(spec, &|_| Ok(())) +} + +pub fn get_process_rlimits_test() -> TestGroup { + let mut process_rlimits_test_group = TestGroup::new("process_rlimits"); + + let test = Test::new("process_rlimits_test", Box::new(process_rlimits_test)); + process_rlimits_test_group.add(vec![Box::new(test)]); + + process_rlimits_test_group +} diff --git a/tests/contest/runtimetest/Cargo.toml b/tests/contest/runtimetest/Cargo.toml index 45b9c5ba7..e257bb23c 100644 --- a/tests/contest/runtimetest/Cargo.toml +++ b/tests/contest/runtimetest/Cargo.toml @@ -4,8 +4,8 @@ version = "0.0.1" edition = "2021" [dependencies] -oci-spec = { version = "0.7.0", features = ["runtime"] } +oci-spec = { version = "0.7.1", features = ["runtime"] } nix = "0.28.0" anyhow = "1.0" -libc = "0.2.161" # TODO (YJDoc2) upgrade to latest +libc = "0.2.162" # TODO (YJDoc2) upgrade to latest nc = "0.9.5" diff --git a/tests/contest/runtimetest/src/main.rs b/tests/contest/runtimetest/src/main.rs index 792cbe1c3..5114fed94 100644 --- a/tests/contest/runtimetest/src/main.rs +++ b/tests/contest/runtimetest/src/main.rs @@ -45,6 +45,7 @@ fn main() { "io_priority_class_idle" => tests::test_io_priority_class(&spec, IoprioClassIdle), "devices" => tests::validate_devices(&spec), "process" => tests::validate_process(&spec), + "process_rlimits" => tests::validate_process_rlimits(&spec), "no_pivot" => tests::validate_rootfs(), _ => eprintln!("error due to unexpected execute test name: {execute_test}"), } diff --git a/tests/contest/runtimetest/src/tests.rs b/tests/contest/runtimetest/src/tests.rs index 4695c18f5..b74fa8fff 100644 --- a/tests/contest/runtimetest/src/tests.rs +++ b/tests/contest/runtimetest/src/tests.rs @@ -7,10 +7,13 @@ use std::path::Path; use anyhow::{bail, Result}; use nix::errno::Errno; use nix::libc; +use nix::sys::resource::{getrlimit, Resource}; use nix::sys::utsname; use nix::unistd::getcwd; use oci_spec::runtime::IOPriorityClass::{self, IoprioClassBe, IoprioClassIdle, IoprioClassRt}; -use oci_spec::runtime::{LinuxDevice, LinuxDeviceType, LinuxSchedulerPolicy, Spec}; +use oci_spec::runtime::{ + LinuxDevice, LinuxDeviceType, LinuxSchedulerPolicy, PosixRlimit, PosixRlimitType, Spec, +}; use crate::utils::{self, test_read_access, test_write_access}; @@ -577,6 +580,53 @@ pub fn validate_process(spec: &Spec) { } } +pub fn validate_process_rlimits(spec: &Spec) { + let process = spec.process().as_ref().unwrap(); + let spec_rlimits: &Vec = process.rlimits().as_ref().unwrap(); + + for spec_rlimit in spec_rlimits.iter() { + let (soft_limit, hard_limit) = getrlimit(change_resource_type(spec_rlimit.typ())).unwrap(); + if spec_rlimit.hard() != hard_limit { + eprintln!( + "error type of {:?} hard rlimit expected {:?} , got {:?}", + spec_rlimit.typ(), + spec_rlimit.hard(), + hard_limit + ) + } + + if spec_rlimit.soft() != soft_limit { + eprintln!( + "error type of {:?} soft rlimit expected {:?} , got {:?}", + spec_rlimit.typ(), + spec_rlimit.soft(), + soft_limit + ) + } + } +} + +fn change_resource_type(resource_type: PosixRlimitType) -> Resource { + match resource_type { + PosixRlimitType::RlimitCpu => Resource::RLIMIT_CPU, + PosixRlimitType::RlimitFsize => Resource::RLIMIT_FSIZE, + PosixRlimitType::RlimitData => Resource::RLIMIT_DATA, + PosixRlimitType::RlimitStack => Resource::RLIMIT_STACK, + PosixRlimitType::RlimitCore => Resource::RLIMIT_CORE, + PosixRlimitType::RlimitRss => Resource::RLIMIT_RSS, + PosixRlimitType::RlimitNproc => Resource::RLIMIT_NPROC, + PosixRlimitType::RlimitNofile => Resource::RLIMIT_NOFILE, + PosixRlimitType::RlimitMemlock => Resource::RLIMIT_MEMLOCK, + PosixRlimitType::RlimitAs => Resource::RLIMIT_AS, + PosixRlimitType::RlimitLocks => Resource::RLIMIT_LOCKS, + PosixRlimitType::RlimitSigpending => Resource::RLIMIT_SIGPENDING, + PosixRlimitType::RlimitMsgqueue => Resource::RLIMIT_MSGQUEUE, + PosixRlimitType::RlimitNice => Resource::RLIMIT_NICE, + PosixRlimitType::RlimitRtprio => Resource::RLIMIT_RTPRIO, + PosixRlimitType::RlimitRttime => Resource::RLIMIT_RTTIME, + } +} + // the validate_rootfs function is used to validate the rootfs of the container is // as expected. This function is used in the no_pivot test to validate the rootfs pub fn validate_rootfs() { diff --git a/tests/contest/test_framework/Cargo.toml b/tests/contest/test_framework/Cargo.toml index cd337b863..bc623b7dc 100644 --- a/tests/contest/test_framework/Cargo.toml +++ b/tests/contest/test_framework/Cargo.toml @@ -6,5 +6,5 @@ edition = "2021" # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -anyhow = "1.0.91" +anyhow = "1.0.93" crossbeam = "0.8.4" diff --git a/tools/wasm-sample/README.md b/tools/wasm-sample/README.md index 3485ef03f..1800471d0 100644 --- a/tools/wasm-sample/README.md +++ b/tools/wasm-sample/README.md @@ -4,7 +4,7 @@ This is a simple wasm module for testing purposes. It prints out the arguments g cargo build --target wasm32-wasi ``` -If you want youki to execute the module you must copy it to the root file system of the container and reference it in the args of the config.json. You must also ensure that the annotations contain `"run.oci.handler": "wasm"` and that youki has been compiled with one of the supported wasm runtimes. For further information please check the [documentation](https://containers.github.io/youki/user/webassembly.html). +If you want youki to execute the module you must copy it to the root file system of the container and reference it in the args of the config.json. You must also ensure that the annotations contain `"run.oci.handler": "wasm"` and that youki has been compiled with one of the supported wasm runtimes. For further information please check the [documentation](https://youki-dev.github.io/youki/user/webassembly.html). ``` "ociVersion": "1.0.2-dev",