diff --git a/.github/workflows/push.yaml b/.github/workflows/push.yaml index 981b60325..ce74edcd0 100644 --- a/.github/workflows/push.yaml +++ b/.github/workflows/push.yaml @@ -31,7 +31,7 @@ jobs: name: coliasgroup authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' - name: Build and check - run: make -C hacking/ci/github-actions check + run: make -C hacking/ci/github-actions check J=$(nproc) - name: Expose docs run: make -C hacking/ci/github-actions docs - name: Upload Pages artifact @@ -54,3 +54,17 @@ jobs: - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v2 + check-dependencies: + name: Check dependencies + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: cachix/install-nix-action@v22 + with: + nix_path: nixpkgs=channel:nixos-unstable + - uses: cachix/cachix-action@v12 + with: + name: coliasgroup + authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}' + - name: Check dependencies + run: make -C hacking/ci/github-actions check-dependencies diff --git a/Cargo.lock b/Cargo.lock index a6ea63422..f7128cba8 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4,13 +4,24 @@ version = 3 [[package]] name = "aarch64-cpu" -version = "9.3.1" +version = "9.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb711c57d60565ba8f6523eb371e6243639617d817b4df1ae09af250af1af411" +checksum = "ac42a04a61c19fc8196dd728022a784baecc5d63d7e256c01ad1b3fbfab26287" dependencies = [ "tock-registers", ] +[[package]] +name = "ab_glyph" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1061f3ff92c2f65800df1f12fc7b4ff44ee14783104187dd04dfee6f11b0fd2" +dependencies = [ + "ab_glyph_rasterizer", + "libm", + "owned_ttf_parser", +] + [[package]] name = "ab_glyph_rasterizer" version = "0.1.8" @@ -48,15 +59,16 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" dependencies = [ "cfg-if", + "getrandom", "once_cell", "version_check", ] [[package]] name = "aho-corasick" -version = "1.0.4" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6748e8def348ed4d14996fa801f4122cd763fff530258cdc03f64b25f89d3a5a" +checksum = "ea5d730647d4fadd988536d06fecce94b7b4f2a7efdae548f1cf4b63205518ab" dependencies = [ "memchr", ] @@ -88,30 +100,29 @@ dependencies = [ [[package]] name = "anstream" -version = "0.3.2" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +checksum = "2ab91ebe16eb252986481c5b62f6098f3b698a45e34b5b98200cf20dd2484a44" dependencies = [ "anstyle", "anstyle-parse", "anstyle-query", "anstyle-wincon", "colorchoice", - "is-terminal", "utf8parse", ] [[package]] name = "anstyle" -version = "1.0.1" +version = "1.0.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" +checksum = "7079075b41f533b8c61d2a4d073c4676e1f8b249ff94a393b0595db304e0dd87" [[package]] name = "anstyle-parse" -version = "0.2.1" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" +checksum = "317b9a89c1868f5ea6ff1d9539a69f45dffc21ce321ac1fd1160dfa48c8e2140" dependencies = [ "utf8parse", ] @@ -127,9 +138,9 @@ dependencies = [ [[package]] name = "anstyle-wincon" -version = "1.0.2" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c677ab05e09154296dd37acecd46420c17b9713e8366facafa8fc0885167cf4c" +checksum = "f0699d10d2f4d628a98ee7b57b289abbc98ff3bad977cb3152709d4bf2330628" dependencies = [ "anstyle", "windows-sys 0.48.0", @@ -141,6 +152,12 @@ version = "1.0.75" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a4668cab20f66d8d020e1fbc0ebe47217433c1b6c8f2040faf858554e394ace6" +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + [[package]] name = "arrayvec" version = "0.5.2" @@ -155,7 +172,7 @@ checksum = "bc00ceb34980c03614e35a3a4e218276a0a824e911d07651cd0d858a51e8c0f0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -173,17 +190,6 @@ dependencies = [ "critical-section", ] -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - [[package]] name = "autocfg" version = "1.1.0" @@ -225,9 +231,9 @@ dependencies = [ name = "banscii-assistant-core" version = "0.1.0" dependencies = [ - "libm", + "ab_glyph", "log", - "rusttype", + "num-traits", ] [[package]] @@ -272,15 +278,9 @@ checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" [[package]] name = "base64" -version = "0.13.1" +version = "0.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "604178f6c5c21f02dc555784810edfb88d34ac2c73b2eae109655649ee73ce3d" +checksum = "9ba43ea6f343b788c8764558649e08df62f86c6ef251fdaeb1ffd010a9ae50a2" [[package]] name = "base64ct" @@ -308,7 +308,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.29", + "syn 2.0.37", "which", ] @@ -331,7 +331,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", - "syn 2.0.29", + "syn 2.0.37", "which", ] @@ -379,20 +379,29 @@ dependencies = [ [[package]] name = "bstr" -version = "1.6.0" +version = "1.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6798148dccfbff0fae41c7574d2fa8f1ef3492fba0face179de5d8d447d67b05" +checksum = "4c2f7349907b712260e64b0afe2f84692af14a454be26187d9df565c7f69266a" dependencies = [ "memchr", "regex-automata", "serde", ] +[[package]] +name = "btoi" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dd6407f73a9b8b6162d8a2ef999fe6afd7cc15902ebf42c5cd296addf17e0ad" +dependencies = [ + "num-traits", +] + [[package]] name = "bumpalo" -version = "3.13.0" +version = "3.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e2c3daef883ecc1b5d58c15adae93470a91d425f3532ba1695849656af3fc1" +checksum = "7f30e7476521f6f8af1a1c4c0b8cc94f0bee37d91763d0ca2665f299b6cd8aec" [[package]] name = "bytemuck" @@ -411,7 +420,7 @@ checksum = "965ab7eb5f8f97d2a083c799f3a1b994fc397b2fe2da5d1da1626ce15a39f2b1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -420,24 +429,30 @@ version = "1.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" +[[package]] +name = "bytes" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2bd12c1caf447e69cd4528f47f94d203fd2582878ecb9e9465484c4148a8223" + [[package]] name = "bytesize" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38fcc2979eff34a4b84e1cf9a1e3da42a7d44b3b690a40cdcb23e3d556cfb2e5" +checksum = "a3e368af43e418a04d52505cf3dbc23dda4e3407ae2fa99fd0e4f308ce546acc" [[package]] name = "cargo" -version = "0.70.1" +version = "0.73.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "798a2174afcd5e45e75aa8b82a84dc6ab086a7abe4b4ae7991ada37a9fff6dbb" +checksum = "77a6fe1f5394d14b81d2f3f605832a3ce35ed0bf120bc7ef437ce27fd4929c6a" dependencies = [ "anyhow", - "base64 0.13.1", + "base64", "bytesize", "cargo-platform", "cargo-util", - "clap 4.3.23", + "clap", "crates-io", "curl", "curl-sys", @@ -447,6 +462,8 @@ dependencies = [ "fwdansi", "git2", "git2-curl", + "gix", + "gix-features", "glob", "hex", "hmac", @@ -456,10 +473,8 @@ dependencies = [ "ignore", "im-rc", "indexmap 1.9.3", - "is-terminal", "itertools", "jobserver", - "lazy_static", "lazycell", "libc", "libgit2-sys", @@ -469,7 +484,8 @@ dependencies = [ "os_info", "pasetors", "pathdiff", - "rustc-workspace-hack", + "pulldown-cmark", + "rand", "rustfix", "semver", "serde", @@ -479,17 +495,18 @@ dependencies = [ "sha1", "shell-escape", "strip-ansi-escapes", + "syn 2.0.37", "tar", "tempfile", "termcolor", - "time 0.3.27", + "time", "toml", "toml_edit", "unicode-width", "unicode-xid", "url", "walkdir", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -498,7 +515,7 @@ version = "0.1.0" dependencies = [ "cargo", "cargo-util", - "clap 3.2.25", + "clap", ] [[package]] @@ -512,9 +529,9 @@ dependencies = [ [[package]] name = "cargo-util" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5e2320a2b1242f9181a3347ae0884bb497e1853d299da99780fa1e96f9abe23" +checksum = "dd54c8b94a0c851d687924460637361c355afafa72d973fe8644499fbdee8fae" dependencies = [ "anyhow", "core-foundation", @@ -529,7 +546,7 @@ dependencies = [ "shell-escape", "tempfile", "walkdir", - "windows-sys 0.45.0", + "windows-sys 0.48.0", ] [[package]] @@ -559,17 +576,16 @@ checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" [[package]] name = "chrono" -version = "0.4.26" +version = "0.4.31" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec837a71355b28f6556dbd569b37b3f363091c0bd4b2e735674521b4c5fd9bc5" +checksum = "7f2c685bad3eb3d45a01354cedb7d5faa66194d1d58ba6e267a8de788f79db38" dependencies = [ "android-tzdata", "iana-time-zone", "js-sys", "num-traits", - "time 0.1.45", "wasm-bindgen", - "winapi", + "windows-targets", ] [[package]] @@ -585,54 +601,37 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.25" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags 1.3.2", - "clap_lex 0.2.4", - "indexmap 1.9.3", - "strsim", - "termcolor", - "textwrap", -] - -[[package]] -name = "clap" -version = "4.3.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03aef18ddf7d879c15ce20f04826ef8418101c7e528014c3eeea13321047dca3" +checksum = "d04704f56c2cde07f43e8e2c154b43f216dc5c92fc98ada720177362f953b956" dependencies = [ "clap_builder", ] [[package]] name = "clap_builder" -version = "4.3.23" +version = "4.4.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8ce6fffb678c9b80a70b6b6de0aad31df727623a70fd9a842c30cd573e2fa98" +checksum = "0e231faeaca65ebd1ea3c737966bf858971cd38c3849107aa3ea7de90a804e45" dependencies = [ "anstream", "anstyle", - "clap_lex 0.5.0", + "clap_lex", "strsim", + "terminal_size", ] [[package]] name = "clap_lex" -version = "0.2.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] +checksum = "cd7cc57abe963c6d3b9d8be5b06ba7c8957a930305ca90304f24ef040aa6f961" [[package]] -name = "clap_lex" -version = "0.5.0" +name = "clru" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" +checksum = "b8191fa7302e03607ff0e237d4246cc043ff5b3cb9409d995172ba3bea16b807" [[package]] name = "cmake" @@ -697,9 +696,9 @@ dependencies = [ [[package]] name = "crates-io" -version = "0.36.0" +version = "0.37.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ab9973744e6d1f35e47df29ad99f9bb6a8270e8feaea79c5a5f1febb4c99f1b" +checksum = "876aa69b4afca5f2eb5e23daa3445930faf829bcb67075a20ffa884f11f8c57c" dependencies = [ "anyhow", "curl", @@ -739,11 +738,30 @@ version = "1.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7059fff8937831a9ae6f0fe4d658ffabf58f2ca96aa9dec1c889f936f705f216" +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a22b2d63d4d1dc0b7f1b6b2747dd0088008a9be28b6ddf0b1e7d335e3037294" +dependencies = [ + "cfg-if", +] + [[package]] name = "crypto-bigint" -version = "0.5.2" +version = "0.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +checksum = "740fe28e594155f10cfc383984cbefd529d7396050557148f79cb0f621204124" dependencies = [ "generic-array", "rand_core", @@ -784,9 +802,9 @@ dependencies = [ [[package]] name = "curl-sys" -version = "0.4.65+curl-8.2.1" +version = "0.4.66+curl-8.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "961ba061c9ef2fe34bbd12b807152d96f0badd2bebe7b90ce6c8c8b7572a0986" +checksum = "70c44a72e830f0e40ad90dda8a6ab6ed6314d39776599a58a2e5e37fbc6db5b9" dependencies = [ "cc", "libc", @@ -795,7 +813,7 @@ dependencies = [ "openssl-sys", "pkg-config", "vcpkg", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -818,7 +836,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -879,6 +897,12 @@ dependencies = [ "libc", ] +[[package]] +name = "dunce" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ce8c6da7551ec6c462cbaf3bfbc75131ebbfa1c944aeaa9dab51ca1c5f0c3b" + [[package]] name = "ecdsa" version = "0.16.8" @@ -910,9 +934,9 @@ checksum = "a26ae43d7bcc3b814de94796a5e736d4029efb0ee900c12e2d54c993ad1a1e07" [[package]] name = "elliptic-curve" -version = "0.13.5" +version = "0.13.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "968405c8fdc9b3bf4df0a6638858cc0b52462836ab6b1c87377785dd09cf1c0b" +checksum = "d97ca172ae9dc9f9b779a6e3a65d308f2af74e5b8c921299075bdb4a0370e914" dependencies = [ "base16ct", "crypto-bigint", @@ -949,6 +973,12 @@ dependencies = [ "void", ] +[[package]] +name = "embedded-io" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef1a6892d9eef45c8fa6b9e0086428a2cca8491aca8f787c534a3d6d0bcb3ced" + [[package]] name = "env_logger" version = "0.10.0" @@ -970,9 +1000,9 @@ checksum = "5443807d6dff69373d433ab9ef5378ad8df50ca6298caf15de6e52e24aaf54d5" [[package]] name = "errno" -version = "0.3.2" +version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b30f669a7961ef1631673d2766cc92f52d64f7ef354d4fe0ddfd30ed52f0f4f" +checksum = "add4f07d43996f76ef320709726a556a9d4f965d9410d8d0271132d2f8293480" dependencies = [ "errno-dragonfly", "libc", @@ -1017,11 +1047,20 @@ version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2acce4a10f12dc2fb14a218589d4f1f62ef011b2d0cc4b3cb1bba8e94da14649" +[[package]] +name = "faster-hex" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "239f7bfb930f820ab16a9cd95afc26f88264cf6905c960b340a615384aa3338a" +dependencies = [ + "serde", +] + [[package]] name = "fastrand" -version = "2.0.0" +version = "2.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6999dc1837253364c2ebb0704ba97994bd874e8f195d665c50b7548f6ea92764" +checksum = "25cbce373ec4653f1a01a31e8a5e5ec0c622dc27ff9c4e6606eefef5cbbed4a5" [[package]] name = "fdt" @@ -1041,9 +1080,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.20" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" +checksum = "d0870c84016d4b481be5c9f323c24f65e31e901ae618f0e80f4308fb00de1d2d" [[package]] name = "filetime" @@ -1127,7 +1166,7 @@ checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -1186,7 +1225,7 @@ dependencies = [ "cfg-if", "js-sys", "libc", - "wasi 0.11.0+wasi-snapshot-preview1", + "wasi", "wasm-bindgen", ] @@ -1208,9 +1247,9 @@ dependencies = [ [[package]] name = "git2" -version = "0.16.0" +version = "0.17.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be36bc9e0546df253c0cc41fd0af34f5e92845ad8509462ec76672fac6997f5b" +checksum = "7b989d6a7ca95a362cf2cfc5ad688b3a467be1f87e480b8dad07fee8c79b0044" dependencies = [ "bitflags 1.3.2", "libc", @@ -1222,15 +1261,665 @@ dependencies = [ ] [[package]] -name = "git2-curl" -version = "0.17.0" +name = "git2-curl" +version = "0.18.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8f8b7432b72928cff76f69e59ed5327f94a52763731e71274960dee72fe5f8c" +dependencies = [ + "curl", + "git2", + "log", + "url", +] + +[[package]] +name = "gix" +version = "0.45.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf2a03ec66ee24d1b2bae3ab718f8d14f141613810cb7ff6756f7db667f1cd82" +dependencies = [ + "gix-actor", + "gix-attributes", + "gix-commitgraph", + "gix-config", + "gix-credentials", + "gix-date", + "gix-diff", + "gix-discover", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-hashtable", + "gix-ignore", + "gix-index", + "gix-lock", + "gix-mailmap", + "gix-negotiate", + "gix-object", + "gix-odb", + "gix-pack", + "gix-path", + "gix-prompt", + "gix-protocol", + "gix-ref", + "gix-refspec", + "gix-revision", + "gix-sec", + "gix-tempfile", + "gix-transport", + "gix-traverse", + "gix-url", + "gix-utils", + "gix-validate", + "gix-worktree", + "log", + "once_cell", + "prodash", + "signal-hook", + "smallvec", + "thiserror", + "unicode-normalization", +] + +[[package]] +name = "gix-actor" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fe73f9f6be1afbf1bd5be919a9636fa560e2f14d42262a934423ed6760cd838" +dependencies = [ + "bstr", + "btoi", + "gix-date", + "itoa", + "nom", + "thiserror", +] + +[[package]] +name = "gix-attributes" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b79590ac382f80d87e06416f5fcac6fee5d83dcb152a00ed0bdbaa988acc31" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "gix-quote", + "kstring", + "log", + "smallvec", + "thiserror", + "unicode-bom", +] + +[[package]] +name = "gix-bitmap" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ccab4bc576844ddb51b78d81b4a42d73e6229660fa614dfc3d3999c874d1959" +dependencies = [ + "thiserror", +] + +[[package]] +name = "gix-chunk" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b42ea64420f7994000130328f3c7a2038f639120518870436d31b8bde704493" +dependencies = [ + "thiserror", +] + +[[package]] +name = "gix-command" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f28f654184b5f725c5737c7e4f466cbd8f0102ac352d5257eeab19647ee4256" +dependencies = [ + "bstr", +] + +[[package]] +name = "gix-commitgraph" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8490ae1b3d55c47e6a71d247c082304a2f79f8d0332c1a2f5693d42a2021a09" +dependencies = [ + "bstr", + "gix-chunk", + "gix-features", + "gix-hash", + "memmap2", + "thiserror", +] + +[[package]] +name = "gix-config" +version = "0.23.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f310120ae1ba8f0ca52fb22876ce9bad5b15c8ffb3eb7302e4b64a3b9f681c" +dependencies = [ + "bstr", + "gix-config-value", + "gix-features", + "gix-glob", + "gix-path", + "gix-ref", + "gix-sec", + "log", + "memchr", + "nom", + "once_cell", + "smallvec", + "thiserror", + "unicode-bom", +] + +[[package]] +name = "gix-config-value" +version = "0.12.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e874f41437441c02991dcea76990b9058fadfc54b02ab4dd06ab2218af43897" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "gix-path", + "libc", + "thiserror", +] + +[[package]] +name = "gix-credentials" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6f89fea8acd28f5ef8fa5042146f1637afd4d834bc8f13439d8fd1e5aca0d65" +dependencies = [ + "bstr", + "gix-command", + "gix-config-value", + "gix-path", + "gix-prompt", + "gix-sec", + "gix-url", + "thiserror", +] + +[[package]] +name = "gix-date" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc164145670e9130a60a21670d9b6f0f4f8de04e5dd256c51fa5a0340c625902" +dependencies = [ + "bstr", + "itoa", + "thiserror", + "time", +] + +[[package]] +name = "gix-diff" +version = "0.30.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9029ad0083cc286a4bd2f5b3bf66bb66398abc26f2731a2824cd5edfc41a0e33" +dependencies = [ + "gix-hash", + "gix-object", + "imara-diff", + "thiserror", +] + +[[package]] +name = "gix-discover" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aba9c6c0d1f2b2efe65581de73de4305004612d49c83773e783202a7ef204f46" +dependencies = [ + "bstr", + "dunce", + "gix-hash", + "gix-path", + "gix-ref", + "gix-sec", + "thiserror", +] + +[[package]] +name = "gix-features" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8c493409bf6060d408eec9bbdd1b12ea351266b50012e2a522f75dfc7b8314" +dependencies = [ + "bytes", + "crc32fast", + "crossbeam-channel", + "flate2", + "gix-hash", + "libc", + "once_cell", + "parking_lot", + "prodash", + "sha1_smol", + "thiserror", + "walkdir", +] + +[[package]] +name = "gix-fs" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30da8997008adb87f94e15beb7ee229f8a48e97af585a584bfee4a5a1880aab5" +dependencies = [ + "gix-features", +] + +[[package]] +name = "gix-glob" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0ade1e80ab1f079703d1824e1daf73009096386aa7fd2f0477f6e4ac0a558e" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "gix-features", + "gix-path", +] + +[[package]] +name = "gix-hash" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b422ff2ad9a0628baaad6da468cf05385bf3f5ab495ad5a33cce99b9f41092f" +dependencies = [ + "hex", + "thiserror", +] + +[[package]] +name = "gix-hashtable" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "385f4ce6ecf3692d313ca3aa9bd3b3d8490de53368d6d94bedff3af8b6d9c58d" +dependencies = [ + "gix-hash", + "hashbrown 0.14.1", + "parking_lot", +] + +[[package]] +name = "gix-ignore" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc6f7f101a0ccce808dbf7008ba131dede94e20257e7bde7a44cbb2f8c775625" +dependencies = [ + "bstr", + "gix-glob", + "gix-path", + "unicode-bom", +] + +[[package]] +name = "gix-index" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "616ba958fabfb11263fa042c35690d48a6c7be4e9277e2c7e24ff263b3fe7b82" +dependencies = [ + "bitflags 2.4.0", + "bstr", + "btoi", + "filetime", + "gix-bitmap", + "gix-features", + "gix-hash", + "gix-lock", + "gix-object", + "gix-traverse", + "itoa", + "memmap2", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-lock" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ec5d5e6f07316d3553aa7425e3ecd935ec29882556021fe1696297a448af8d2" +dependencies = [ + "gix-tempfile", + "gix-utils", + "thiserror", +] + +[[package]] +name = "gix-mailmap" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4653701922c920e009f1bc4309feaff14882ade017770788f9a150928da3fa6a" +dependencies = [ + "bstr", + "gix-actor", + "thiserror", +] + +[[package]] +name = "gix-negotiate" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "945c3ef1e912e44a5f405fc9e924edf42000566a1b257ed52cb1293300f6f08c" +dependencies = [ + "bitflags 2.4.0", + "gix-commitgraph", + "gix-hash", + "gix-object", + "gix-revision", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-object" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8926c8f51c44dec3e709cb5dbc93deb9e8d4064c43c9efc54c158dcdfe8446c7" +dependencies = [ + "bstr", + "btoi", + "gix-actor", + "gix-features", + "gix-hash", + "gix-validate", + "hex", + "itoa", + "nom", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-odb" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b234d806278eeac2f907c8b5a105c4ba537230c1a9d9236d822bf0db291f8f3" +dependencies = [ + "arc-swap", + "gix-features", + "gix-hash", + "gix-object", + "gix-pack", + "gix-path", + "gix-quote", + "parking_lot", + "tempfile", + "thiserror", +] + +[[package]] +name = "gix-pack" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d2a14cb3156037eedb17d6cb7209b7180522b8949b21fd0fe3184c0a1d0af88" +dependencies = [ + "clru", + "gix-chunk", + "gix-diff", + "gix-features", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-traverse", + "memmap2", + "parking_lot", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-packetline" +version = "0.16.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6df0b75361353e7c0a6d72d49617a37379a7a22cba4569ae33a7720a4c8755a" +dependencies = [ + "bstr", + "faster-hex", + "thiserror", +] + +[[package]] +name = "gix-path" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18609c8cbec8508ea97c64938c33cd305b75dfc04a78d0c3b78b8b3fd618a77c" +dependencies = [ + "bstr", + "gix-trace", + "home", + "once_cell", + "thiserror", +] + +[[package]] +name = "gix-prompt" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c22decaf4a063ccae2b2108820c8630c01bd6756656df3fe464b32b8958a5ea" +dependencies = [ + "gix-command", + "gix-config-value", + "parking_lot", + "rustix", + "thiserror", +] + +[[package]] +name = "gix-protocol" +version = "0.33.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92a17058b45c461f0847528c5fb6ee6e76115e026979eb2d2202f98ee94f6c24" +dependencies = [ + "bstr", + "btoi", + "gix-credentials", + "gix-features", + "gix-hash", + "gix-transport", + "maybe-async", + "nom", + "thiserror", +] + +[[package]] +name = "gix-quote" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "475c86a97dd0127ba4465fbb239abac9ea10e68301470c9791a6dd5351cdc905" +dependencies = [ + "bstr", + "btoi", + "thiserror", +] + +[[package]] +name = "gix-ref" +version = "0.30.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebdd999256f4ce8a5eefa89999879c159c263f3493a951d62aa5ce42c0397e1c" +dependencies = [ + "gix-actor", + "gix-features", + "gix-fs", + "gix-hash", + "gix-lock", + "gix-object", + "gix-path", + "gix-tempfile", + "gix-validate", + "memmap2", + "nom", + "thiserror", +] + +[[package]] +name = "gix-refspec" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72bfd622abc86dd8ad1ec51b9eb77b4f1a766b94e3a1b87cf4a022c5b5570cf4" +dependencies = [ + "bstr", + "gix-hash", + "gix-revision", + "gix-validate", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-revision" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5044f56cd7a487ce9b034cbe0252ae0b6b47ff56ca3dabd79bc30214d0932cd7" +dependencies = [ + "bstr", + "gix-date", + "gix-hash", + "gix-hashtable", + "gix-object", + "gix-revwalk", + "thiserror", +] + +[[package]] +name = "gix-revwalk" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2623ba8747914f151f5e12b65adac576ab459dbed5f50a36c7a3e9cbf2d3ca" +dependencies = [ + "gix-commitgraph", + "gix-hash", + "gix-hashtable", + "gix-object", + "smallvec", + "thiserror", +] + +[[package]] +name = "gix-sec" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9615cbd6b456898aeb942cd75e5810c382fbfc48dbbff2fa23ebd2d33dcbe9c7" +dependencies = [ + "bitflags 2.4.0", + "gix-path", + "libc", + "windows", +] + +[[package]] +name = "gix-tempfile" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3785cb010e9dc5c446dfbf02bc1119fc17d3a48a27c029efcb3a3c32953eb10" +dependencies = [ + "gix-fs", + "libc", + "once_cell", + "parking_lot", + "signal-hook", + "signal-hook-registry", + "tempfile", +] + +[[package]] +name = "gix-trace" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96b6d623a1152c3facb79067d6e2ecdae48130030cf27d6eb21109f13bd7b836" + +[[package]] +name = "gix-transport" +version = "0.32.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a39ffed9a9078ed700605e064b15d7c6ae50aa65e7faa36ca6919e8081df15" +dependencies = [ + "base64", + "bstr", + "curl", + "gix-command", + "gix-credentials", + "gix-features", + "gix-packetline", + "gix-quote", + "gix-sec", + "gix-url", + "thiserror", +] + +[[package]] +name = "gix-traverse" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0842e984cb4bf26339dc559f3a1b8bf8cdb83547799b2b096822a59f87f33d9" +dependencies = [ + "gix-hash", + "gix-hashtable", + "gix-object", + "thiserror", +] + +[[package]] +name = "gix-url" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1663df25ac42047a2547618d2a6979a26f478073f6306997429235d2cd4c863" +dependencies = [ + "bstr", + "gix-features", + "gix-path", + "home", + "thiserror", + "url", +] + +[[package]] +name = "gix-utils" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b85d89dc728613e26e0ed952a19583744e7f5240fcd4aa30d6c824ffd8b52f0f" +dependencies = [ + "fastrand", +] + +[[package]] +name = "gix-validate" +version = "0.7.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ba9b3737b2cef3dcd014633485f0034b0f1a931ee54aeb7d8f87f177f3c89040" +dependencies = [ + "bstr", + "thiserror", +] + +[[package]] +name = "gix-worktree" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7577f4e6341ba7c90d883511130a45b956c274ba5f4d205d9f9da990f654cd33" +checksum = "d388ad962e8854402734a7387af8790f6bdbc8d05349052dab16ca4a0def50f6" dependencies = [ - "curl", - "git2", - "log", - "url", + "bstr", + "filetime", + "gix-attributes", + "gix-features", + "gix-fs", + "gix-glob", + "gix-hash", + "gix-ignore", + "gix-index", + "gix-object", + "gix-path", + "io-close", + "thiserror", ] [[package]] @@ -1301,9 +1990,9 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.14.0" +version = "0.14.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c6201b9ff9fd90a5a3bac2e56a830d0caa509576f0e503818ee82c181b3437a" +checksum = "7dfda62a12f55daeae5015f81b0baea145391cb4520f86c248fc615d72640d12" dependencies = [ "ahash", ] @@ -1332,18 +2021,9 @@ dependencies = [ [[package]] name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" +checksum = "d77f7ec81a6d05a3abb01ab6eb7590f6083d08449fe5a1c8b1e620283546ccb7" [[package]] name = "hex" @@ -1463,6 +2143,16 @@ dependencies = [ "version_check", ] +[[package]] +name = "imara-diff" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e98c1d0ad70fc91b8b9654b1f33db55e59579d3b3de2bffdced0fdb810570cb8" +dependencies = [ + "ahash", + "hashbrown 0.12.3", +] + [[package]] name = "indexmap" version = "1.9.3" @@ -1475,12 +2165,22 @@ dependencies = [ [[package]] name = "indexmap" -version = "2.0.0" +version = "2.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5477fe2230a79769d8dc68e0eabf5437907c0457a5614a9e8dddb67f65eb65d" +checksum = "8adf3ddd720272c6ea8bf59463c04e0f93d0bbf7c5439b691bca2987e0270897" dependencies = [ "equivalent", - "hashbrown 0.14.0", + "hashbrown 0.14.1", +] + +[[package]] +name = "io-close" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cadcf447f06744f8ce713d2d6239bb5bde2c357a452397a9ed90c625da390bc" +dependencies = [ + "libc", + "winapi", ] [[package]] @@ -1489,7 +2189,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" dependencies = [ - "hermit-abi 0.3.2", + "hermit-abi", "rustix", "windows-sys 0.48.0", ] @@ -1527,6 +2227,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kstring" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec3066350882a1cd6d950d055997f379ac37fd39f81cd4d8ed186032eb3c5747" +dependencies = [ + "static_assertions", +] + [[package]] name = "lazy_static" version = "1.4.0" @@ -1544,15 +2253,15 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.147" +version = "0.2.148" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" +checksum = "9cdc71e17332e86d2e1d38c1f99edcb6288ee11b815fb1a4b049eaa2114d369b" [[package]] name = "libgit2-sys" -version = "0.14.1+1.5.0" +version = "0.15.2+1.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4a07fb2692bc3593bda59de45a502bb3071659f2c515e28c71e728306b038e17" +checksum = "a80df2e11fb4a61f4ba2ab42dbe7f74468da143f1a75c74e11dee7c813f694fa" dependencies = [ "cc", "libc", @@ -1590,9 +2299,9 @@ dependencies = [ [[package]] name = "libssh2-sys" -version = "0.2.23" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b094a36eb4b8b8c8a7b4b8ae43b2944502be3e59cd87687595cf6b0a71b3f4ca" +checksum = "2dc8a030b787e2119a731f1951d6a773e2280c660f8ec4b0f5e1505a386e71ee" dependencies = [ "cc", "libc", @@ -1616,9 +2325,9 @@ dependencies = [ [[package]] name = "linux-raw-sys" -version = "0.4.5" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57bcfdad1b858c2db7c38303a6d2ad4dfaf5eb53dfeb0910128b2c26d6158503" +checksum = "3852614a3bd9ca9804678ba6be5e3b8ce76dfc902cae004e3e0c44051b6e88db" [[package]] name = "lock_api" @@ -1651,10 +2360,21 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0ca88d725a0a943b096803bd34e73a4437208b6077654cc4ecb2947a5f91618d" +[[package]] +name = "maybe-async" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f1b8c13cb1f814b634a96b2c725449fe7ed464a7b8781de8688be5ffbd3f305" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "mbedtls" version = "0.11.0" -source = "git+https://github.com/coliasgroup/rust-mbedtls?tag=keep/6eef662dbf636d1ccf86078143b6854f#6eef662dbf636d1ccf86078143b6854f97469dd6" +source = "git+https://github.com/coliasgroup/rust-mbedtls?tag=keep/30d001b63baea36135b2590c4fd05e95#30d001b63baea36135b2590c4fd05e95e464234c" dependencies = [ "async-trait", "bitflags 1.3.2", @@ -1672,7 +2392,7 @@ dependencies = [ [[package]] name = "mbedtls-platform-support" version = "0.3.0" -source = "git+https://github.com/coliasgroup/rust-mbedtls?tag=keep/6eef662dbf636d1ccf86078143b6854f#6eef662dbf636d1ccf86078143b6854f97469dd6" +source = "git+https://github.com/coliasgroup/rust-mbedtls?tag=keep/30d001b63baea36135b2590c4fd05e95#30d001b63baea36135b2590c4fd05e95e464234c" dependencies = [ "cc", "cfg-if", @@ -1686,7 +2406,7 @@ dependencies = [ [[package]] name = "mbedtls-sys-auto" version = "3.5.0-alpha.3+0b3de6f" -source = "git+https://github.com/coliasgroup/rust-mbedtls?tag=keep/6eef662dbf636d1ccf86078143b6854f#6eef662dbf636d1ccf86078143b6854f97469dd6" +source = "git+https://github.com/coliasgroup/rust-mbedtls?tag=keep/30d001b63baea36135b2590c4fd05e95#30d001b63baea36135b2590c4fd05e95e464234c" dependencies = [ "bindgen 0.65.1", "cc", @@ -1700,19 +2420,9 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memmap" -version = "0.7.0" +version = "2.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b" -dependencies = [ - "libc", - "winapi", -] +checksum = "f665ee40bc4a3c5590afb1e9677db74a508659dfd71e126420da8274909a0167" [[package]] name = "memmap2" @@ -2015,17 +2725,6 @@ dependencies = [ "num-traits", ] -[[package]] -name = "num-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e6a0fd4f737c707bd9086cc16c925f294943eb62eb71499e9fd4cf71f8b9f4e" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.29", -] - [[package]] name = "num-integer" version = "0.1.45" @@ -2089,6 +2788,15 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "num_threads" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2819ce041d2ee131036f4fc9d6ae7ae125a3a40e97ba64d04fe799ad9dabbb44" +dependencies = [ + "libc", +] + [[package]] name = "object" version = "0.32.1" @@ -2097,8 +2805,8 @@ checksum = "9cf5f9dd3933bd50a9e1f149ec995f39ae2c496d31fd772c1fd45ebc27e902b0" dependencies = [ "crc32fast", "flate2", - "hashbrown 0.14.0", - "indexmap 2.0.0", + "hashbrown 0.14.1", + "indexmap 2.0.2", "memchr", "ruzstd", "wasmparser", @@ -2128,9 +2836,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "openssl-sys" -version = "0.9.91" +version = "0.9.93" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "866b5f16f90776b9bb8dc1e1802ac6f0513de3a7a7465867bfbc563dc737faac" +checksum = "db4d56a4c0478783083cfafcc42493dd4a981d41669da64b4572a2a089b51b1d" dependencies = [ "cc", "libc", @@ -2149,9 +2857,9 @@ dependencies = [ [[package]] name = "orion" -version = "0.17.5" +version = "0.17.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b11468cc6afd61a126fe3f91cc4cc8a0dbe7917d0a4b5e8357ba91cc47444462" +checksum = "7abdb10181903c8c4b016ba45d6d6d5af1a1e2a461aa4763a83b87f5df4695e5" dependencies = [ "fiat-crypto", "subtle", @@ -2169,17 +2877,11 @@ dependencies = [ "winapi", ] -[[package]] -name = "os_str_bytes" -version = "6.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d5d9eb14b174ee9aa2ef96dc2b94637a2d4b6e7cb873c7e171f0c20c6cf3eac" - [[package]] name = "owned_ttf_parser" -version = "0.15.2" +version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e6affeb1632d6ff6a23d2cd40ffed138e82f1532571a26f527c8a284bb2fbb" +checksum = "706de7e2214113d63a8238d1910463cfce781129a6f263d13fdb09ff64355ba4" dependencies = [ "ttf-parser", ] @@ -2196,6 +2898,29 @@ dependencies = [ "sha2", ] +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93f00c865fe7cabf650081affecd3871070f26767e7b2070a3ffae14c654b447" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall", + "smallvec", + "windows-targets", +] + [[package]] name = "pasetors" version = "0.6.7" @@ -2213,7 +2938,7 @@ dependencies = [ "serde_json", "sha2", "subtle", - "time 0.3.27", + "time", "zeroize", ] @@ -2231,11 +2956,11 @@ checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" [[package]] name = "pem" -version = "2.0.1" +version = "3.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b13fe415cdf3c8e44518e18a7c95a13431d9bdf6d15367d82b23c377fdd441a" +checksum = "3163d2912b7c3b52d651a055f2c7eec9ba5cd22d26ef75b8dd3a59980b185923" dependencies = [ - "base64 0.21.2", + "base64", "serde", ] @@ -2265,19 +2990,20 @@ checksum = "9b2a4787296e9989611394c33f193f676704af1686e70b8f8033ab5ba9a35a94" [[package]] name = "pest" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1acb4a4365a13f749a93f1a094a7805e5cfa0955373a9de860d962eaa3a5fe5a" +checksum = "c022f1e7b65d6a24c0dbbd5fb344c66881bc01f3e5ae74a1c8100f2f985d98a4" dependencies = [ + "memchr", "thiserror", "ucd-trie", ] [[package]] name = "pest_derive" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "666d00490d4ac815001da55838c500eafb0320019bbaa44444137c48b443a853" +checksum = "35513f630d46400a977c4cb58f78e1bfbe01434316e60c37d27b9ad6139c66d8" dependencies = [ "pest", "pest_generator", @@ -2285,22 +3011,22 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68ca01446f50dbda87c1786af8770d535423fa8a53aec03b8f4e3d7eb10e0929" +checksum = "bc9fc1b9e7057baba189b5c626e2d6f40681ae5b6eb064dc7c7834101ec8123a" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] name = "pest_meta" -version = "2.7.2" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56af0a30af74d0445c0bf6d9d051c979b516a1a5af790d251daee76005420a48" +checksum = "1df74e9e7ec4053ceb980e7c0c8bd3594e977fde1af91daba9c928e8e8c6708d" dependencies = [ "once_cell", "pest", @@ -2309,9 +3035,9 @@ dependencies = [ [[package]] name = "pin-project-lite" -version = "0.2.12" +version = "0.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cc1b0bf1727a77a54b6654e7b5f1af8604923edc8b81885f8ec92f9e3f0a05" +checksum = "8afb450f006bf6385ca15ef45d71d2288452bc3683ce2e2cacc0d18e4be60b58" [[package]] name = "pin-utils" @@ -2359,11 +3085,12 @@ checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "postcard" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9ee729232311d3cd113749948b689627618133b1c5012b77342c1950b25eaeb" +checksum = "a55c51ee6c0db07e68448e336cf8ea4131a620edefebf9893e759b2d793420f8" dependencies = [ "cobs", + "embedded-io", "serde", ] @@ -2375,12 +3102,12 @@ checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" [[package]] name = "prettyplease" -version = "0.2.12" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c64d9ba0963cdcea2e1b2230fbae2bab30eb25a174be395c41e764bfb65dd62" +checksum = "ae005bd773ab59b4725093fd7df83fd7892f7d8eafb48dbd7de6e024e4215f9d" dependencies = [ "proc-macro2", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -2418,13 +3145,33 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.66" +version = "1.0.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" +checksum = "3d433d9f1a3e8c1263d9456598b16fec66f4acc9a74dacffd35c7bb09b3a1328" dependencies = [ "unicode-ident", ] +[[package]] +name = "prodash" +version = "25.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d67eb4220992a4a052a4bb03cf776e493ecb1a3a36bab551804153d63486af7" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "pulldown-cmark" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a1a2f1f0a7ecff9c31abbe177637be0e97a0aef46cf8738ece09327985d998" +dependencies = [ + "bitflags 1.3.2", + "memchr", + "unicase", +] + [[package]] name = "quote" version = "1.0.33" @@ -2475,13 +3222,13 @@ dependencies = [ [[package]] name = "rcgen" -version = "0.11.1" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4954fbc00dcd4d8282c987710e50ba513d351400dbdd00e803a05172a90d8976" +checksum = "52c4f3084aa3bc7dfbba4eff4fab2a54db4324965d8872ab933565e6fbd83bc6" dependencies = [ "pem", "ring", - "time 0.3.27", + "time", "yasna", ] @@ -2496,9 +3243,9 @@ dependencies = [ [[package]] name = "regex" -version = "1.9.3" +version = "1.9.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "81bc1d4caf89fac26a70747fe603c130093b53c773888797a6329091246d651a" +checksum = "ebee201405406dbf528b8b672104ae6d6d63e6d118cb10e4d51abbc7b58044ff" dependencies = [ "aho-corasick", "memchr", @@ -2508,9 +3255,9 @@ dependencies = [ [[package]] name = "regex-automata" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed1ceff11a1dddaee50c9dc8e4938bd106e9d89ae372f192311e7da498e3b69" +checksum = "59b23e92ee4318893fa3fe3e6fb365258efbfe6ac6ab30f090cdcbb7aa37efa9" dependencies = [ "aho-corasick", "memchr", @@ -2519,9 +3266,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.7.4" +version = "0.7.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ea92a5b6195c6ef2a0295ea818b312502c6fc94dde986c5553242e18fd4ce2" +checksum = "dbb5fb1acd8a1a18b3dd5be62d25485eb770e05afb408a9627d14d451bae12da" [[package]] name = "rfc6979" @@ -2602,12 +3349,6 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" -[[package]] -name = "rustc-workspace-hack" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc71d2faa173b74b232dedc235e3ee1696581bb132fc116fa3626d6151a1a8fb" - [[package]] name = "rustc_version" version = "0.4.0" @@ -2631,9 +3372,9 @@ dependencies = [ [[package]] name = "rustix" -version = "0.38.8" +version = "0.38.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19ed4fa021d81c8392ce04db050a3da9a60299050b7ae1cf482d862b54a7218f" +checksum = "d2f9da0cbd88f9f09e7814e388301c8414c51c62aa6ce1e4b5c551d49d96e531" dependencies = [ "bitflags 2.4.0", "errno", @@ -2642,17 +3383,6 @@ dependencies = [ "windows-sys 0.48.0", ] -[[package]] -name = "rusttype" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ff8374aa04134254b7995b63ad3dc41c7f7236f69528b28553da7d72efaa967" -dependencies = [ - "ab_glyph_rasterizer", - "libm", - "owned_ttf_parser", -] - [[package]] name = "ruzstd" version = "0.4.0" @@ -2732,8 +3462,7 @@ dependencies = [ "gpt_disk_types", "log", "lru", - "num-derive", - "num-traits", + "num_enum", ] [[package]] @@ -2745,7 +3474,7 @@ dependencies = [ "log", "lru", "sel4-async-block-io", - "zerocopy", + "zerocopy 0.7.6", ] [[package]] @@ -2759,7 +3488,6 @@ dependencies = [ "log", "lru", "sel4-async-block-io", - "zerocopy", ] [[package]] @@ -2839,9 +3567,8 @@ name = "sel4-backtrace-cli" version = "0.1.0" dependencies = [ "addr2line", - "clap 3.2.25", + "clap", "hex", - "memmap", "object", "sel4-backtrace-types", ] @@ -2859,7 +3586,7 @@ dependencies = [ name = "sel4-backtrace-embedded-debug-info-cli" version = "0.1.0" dependencies = [ - "clap 3.2.25", + "clap", "num", "sel4-render-elf-with-data", ] @@ -2895,7 +3622,7 @@ dependencies = [ name = "sel4-bitfield-parser-test" version = "0.1.0" dependencies = [ - "clap 3.2.25", + "clap", "glob", "sel4-bitfield-parser", ] @@ -2935,7 +3662,7 @@ name = "sel4-capdl-initializer-add-spec" version = "0.1.0" dependencies = [ "anyhow", - "clap 3.2.25", + "clap", "fallible-iterator 0.2.0", "num", "object", @@ -3095,7 +3822,7 @@ dependencies = [ name = "sel4-generate-target-specs" version = "0.1.0" dependencies = [ - "clap 3.2.25", + "clap", "serde_json", ] @@ -3141,7 +3868,6 @@ dependencies = [ "sel4-platform-info", "sel4-rustfmt-helper", "serde", - "serde_yaml", "smccc", "spin 0.9.8", "tock-registers", @@ -3152,7 +3878,7 @@ name = "sel4-kernel-loader-add-payload" version = "0.1.0" dependencies = [ "anyhow", - "clap 3.2.25", + "clap", "fallible-iterator 0.2.0", "heapless", "num", @@ -3244,7 +3970,7 @@ dependencies = [ "num_enum", "postcard", "serde", - "zerocopy", + "zerocopy 0.7.6", ] [[package]] @@ -3297,7 +4023,6 @@ name = "sel4-render-elf-with-data" version = "0.1.0" dependencies = [ "anyhow", - "clap 3.2.25", "fallible-iterator 0.2.0", "num", "object", @@ -3347,7 +4072,7 @@ version = "0.1.0" dependencies = [ "log", "sel4-externally-shared", - "zerocopy", + "zerocopy 0.7.6", ] [[package]] @@ -3371,7 +4096,7 @@ version = "0.1.0" dependencies = [ "num_enum", "sel4-shared-ring-buffer", - "zerocopy", + "zerocopy 0.7.6", ] [[package]] @@ -3439,7 +4164,7 @@ name = "sel4-simple-task-runtime-config-types" version = "0.1.0" dependencies = [ "serde", - "zerocopy", + "zerocopy 0.7.6", ] [[package]] @@ -3496,18 +4221,18 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.18" +version = "1.0.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0293b4b29daaf487284529cc2f5675b8e57c61f70167ba415a463651fd6a918" +checksum = "ad977052201c6de01a8ef2aa3378c4bd23217a056337d1d6da40468d267a4fb0" dependencies = [ "serde", ] [[package]] name = "serde" -version = "1.0.185" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be9b6f69f1dfd54c3b568ffa45c310d6973a5e5148fd40cf515acaf38cf5bc31" +checksum = "cf9e0fcba69a370eed61bcf2b728575f726b50b55cba78064753d708ddc7549e" dependencies = [ "serde_derive", ] @@ -3524,13 +4249,13 @@ dependencies = [ [[package]] name = "serde_derive" -version = "1.0.185" +version = "1.0.188" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc59dfdcbad1437773485e0367fea4b090a2e0a16d9ffc46af47764536a298ec" +checksum = "4eca7ac642d82aa35b60049a6eccb4be6be75e599bd2e9adb5f875a737654af2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -3544,9 +4269,9 @@ dependencies = [ [[package]] name = "serde_json" -version = "1.0.105" +version = "1.0.107" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "693151e1ac27563d6dbcec9dee9fbd5da8539b20fa14ad3752b2e6d363ace360" +checksum = "6b420ce6e3d8bd882e9b243c6eed35dbc9a6110c9769e74b584e0d68d1f20c65" dependencies = [ "itoa", "ryu", @@ -3568,7 +4293,7 @@ version = "0.9.25" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1a49e178e4452f45cb61d0cd8cebc1b0fafd3e41929e996cef79aa3aca91f574" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.0.2", "itoa", "ryu", "serde", @@ -3577,20 +4302,26 @@ dependencies = [ [[package]] name = "sha1" -version = "0.10.5" +version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +checksum = "e3bf829a2d51ab4a5ddf1352d8470c140cadc8301b2ae1789db023f01cedd6ba" dependencies = [ "cfg-if", "cpufeatures", "digest", ] +[[package]] +name = "sha1_smol" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae1a47186c03a32177042e55dbc5fd5aee900b8e0069a8d70fba96a9375cd012" + [[package]] name = "sha2" -version = "0.10.7" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "479fb9d862239e610720565ca91403019f2f00410f1864c5aa7479b950a76ed8" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" dependencies = [ "cfg-if", "cpufeatures", @@ -3605,9 +4336,28 @@ checksum = "45bb67a18fa91266cc7807181f62f9178a6873bfad7dc788c42e6430db40184f" [[package]] name = "shlex" -version = "1.1.0" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7cee0529a6d40f580e7a5e6c495c8fbfe21b7b52795ed4bb5e62cdf92bc6380" + +[[package]] +name = "signal-hook" +version = "0.3.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" +checksum = "8621587d4798caf8eb44879d42e56b9a93ea5dcd315a6487c357130095b62801" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] [[package]] name = "signature" @@ -3631,9 +4381,9 @@ dependencies = [ [[package]] name = "smallvec" -version = "1.11.0" +version = "1.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62bb4feee49fdd9f707ef802e22365a35de4b7b299de4763d44bfea899442ff9" +checksum = "942b4a808e05215192e39f4ab80813e599068285906cc91aa64f923db842bd5a" [[package]] name = "smccc" @@ -3746,9 +4496,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.29" +version = "2.0.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +checksum = "7303ef2c05cd654186cb250d29049a24840ca25d2747c25c0381c8d9e2f582e8" dependencies = [ "proc-macro2", "quote", @@ -3792,13 +4542,23 @@ dependencies = [ [[package]] name = "termcolor" -version = "1.2.0" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" +checksum = "6093bad37da69aab9d123a8091e4be0aa4a03e4d601ec641c327398315f62b64" dependencies = [ "winapi-util", ] +[[package]] +name = "terminal_size" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "21bebf2b7c9e0a515f6e0f8c51dc0f8e4696391e6f1ff30379559f8365fb0df7" +dependencies = [ + "rustix", + "windows-sys 0.48.0", +] + [[package]] name = "tests-capdl-threads-components-test" version = "0.1.0" @@ -3918,17 +4678,11 @@ dependencies = [ "sel4-root-task", ] -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - [[package]] name = "thiserror" -version = "1.0.47" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97a802ec30afc17eee47b2855fc72e0c4cd62be9b4efe6591edde0ec5bd68d8f" +checksum = "1177e8c6d7ede7afde3585fd2513e611227efd6481bd78d2e82ba1ce16557ed4" dependencies = [ "thiserror-impl", ] @@ -3955,13 +4709,13 @@ dependencies = [ [[package]] name = "thiserror-impl" -version = "1.0.47" +version = "1.0.49" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bb623b56e39ab7dcd4b1b98bb6c8f8d907ed255b18de254088016b27a8ee19b" +checksum = "10712f02019e9288794769fba95cd6847df9874d49d871d062172f9dd41bc4cc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] @@ -3976,23 +4730,14 @@ dependencies = [ [[package]] name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.27" +version = "0.3.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb39ee79a6d8de55f48f2293a830e040392f1c5f16e336bdd1788cd0aadce07" +checksum = "426f806f4089c493dcac0d24c29c01e2c38baf8e30f1b716ee37e83d200b18fe" dependencies = [ "deranged", "itoa", + "libc", + "num_threads", "serde", "time-core", "time-macros", @@ -4000,15 +4745,15 @@ dependencies = [ [[package]] name = "time-core" -version = "0.1.1" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" +checksum = "ef927ca75afb808a4d64dd374f00a2adf8d0fcff8e7b184af886c3c87ec4a3f3" [[package]] name = "time-macros" -version = "0.2.13" +version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "733d258752e9303d392b94b75230d07b0b9c489350c69b851fc6c065fde3e8f9" +checksum = "4ad70d68dba9e1f8aceda7aa6711965dfec1cac869f311a51bd08b3a2ccbce20" dependencies = [ "time-core", ] @@ -4036,9 +4781,9 @@ checksum = "696941a0aee7e276a165a978b37918fd5d22c55c3d6bda197813070ca9c0f21c" [[package]] name = "toml" -version = "0.7.6" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c17e963a819c331dcacd7ab957d80bc2b9a9c1e71c804826d2f283dd65306542" +checksum = "dd79e69d3b627db300ff956027cc6c3798cef26d22526befdfcd12feeb6d2257" dependencies = [ "serde", "serde_spanned", @@ -4057,11 +4802,11 @@ dependencies = [ [[package]] name = "toml_edit" -version = "0.19.14" +version = "0.19.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8123f27e969974a3dfba720fdb560be359f57b44302d280ba72e76a74480e8a" +checksum = "1b5bb770da30e5cbfde35a2d7b9b8a2c4b8ef89548a7a6aeab5c9a576e3e7421" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.0.2", "serde", "serde_spanned", "toml_datetime", @@ -4070,9 +4815,9 @@ dependencies = [ [[package]] name = "ttf-parser" -version = "0.15.2" +version = "0.19.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd" +checksum = "49d64318d8311fc2668e48b63969f4343e0a85c4a109aa8460d6672e364b8bd1" [[package]] name = "twox-hash" @@ -4086,9 +4831,9 @@ dependencies = [ [[package]] name = "typenum" -version = "1.16.0" +version = "1.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" [[package]] name = "ucd-trie" @@ -4114,17 +4859,32 @@ dependencies = [ "bytemuck", ] +[[package]] +name = "unicase" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7d2d4dafb69621809a81864c9c1b864479e1235c0dd4e199924b9742439ed89" +dependencies = [ + "version_check", +] + [[package]] name = "unicode-bidi" version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" +[[package]] +name = "unicode-bom" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98e90c70c9f0d4d1ee6d0a7d04aa06cb9bbd53d8cfbdd62a0269a7c2eb640552" + [[package]] name = "unicode-ident" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" [[package]] name = "unicode-normalization" @@ -4137,9 +4897,9 @@ dependencies = [ [[package]] name = "unicode-width" -version = "0.1.10" +version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" +checksum = "e51733f11c9c4f72aa0c160008246859e340b00807569a0da0e7a1079b27ba85" [[package]] name = "unicode-xid" @@ -4170,9 +4930,9 @@ dependencies = [ [[package]] name = "url" -version = "2.4.0" +version = "2.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50bff7831e19200a85b17131d085c25d7811bc4e186efdaf54bbd132994a88cb" +checksum = "143b538f18257fac9cad154828a57c6bf5157e1aa604d4816b5995bf6de87ae5" dependencies = [ "form_urlencoded", "idna", @@ -4205,7 +4965,7 @@ checksum = "6c1b8da1e59e77cdae29b32fb936614dc849352d7f58da199072067fe402bbcf" dependencies = [ "bitflags 2.4.0", "log", - "zerocopy", + "zerocopy 0.6.4", ] [[package]] @@ -4237,20 +4997,14 @@ dependencies = [ [[package]] name = "walkdir" -version = "2.3.3" +version = "2.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +checksum = "d71d857dc86794ca4c280d616f7da00d2dbfd8cd788846559a6813e6aa4b54ee" dependencies = [ "same-file", "winapi-util", ] -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - [[package]] name = "wasi" version = "0.11.0+wasi-snapshot-preview1" @@ -4278,7 +5032,7 @@ dependencies = [ "once_cell", "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", "wasm-bindgen-shared", ] @@ -4300,7 +5054,7 @@ checksum = "54681b18a46765f095758388f2d0cf16eb8d4169b639ab575a8f5693af210c7b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", "wasm-bindgen-backend", "wasm-bindgen-shared", ] @@ -4317,7 +5071,7 @@ version = "0.110.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1dfcdb72d96f01e6c85b6bf20102e7423bdbaad5c337301bab2bbf253d26413c" dependencies = [ - "indexmap 2.0.0", + "indexmap 2.0.2", "semver", ] @@ -4333,13 +5087,14 @@ dependencies = [ [[package]] name = "which" -version = "4.4.0" +version = "4.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +checksum = "87ba24419a2078cd2b0f2ede2691b6c66d8e47836da3b6db8265ebad47afbfc7" dependencies = [ "either", - "libc", + "home", "once_cell", + "rustix", ] [[package]] @@ -4360,9 +5115,9 @@ checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" [[package]] name = "winapi-util" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "f29e6f9198ba0d26b4c9f07dbe6f9ed633e1f3d5b8b414090084349e46a52596" dependencies = [ "winapi", ] @@ -4379,7 +5134,7 @@ version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows-targets 0.48.5", + "windows-targets", ] [[package]] @@ -4397,37 +5152,13 @@ dependencies = [ "windows_x86_64_msvc 0.42.2", ] -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - [[package]] name = "windows-sys" version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" dependencies = [ - "windows-targets 0.48.5", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", + "windows-targets", ] [[package]] @@ -4531,18 +5262,18 @@ checksum = "ed94fce61571a4006852b7389a063ab983c02eb1bb37b47f8272ce92d06d9538" [[package]] name = "winnow" -version = "0.5.14" +version = "0.5.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d09770118a7eb1ccaf4a594a221334119a44a814fcb0d31c5b85e83e97227a97" +checksum = "7c2e3184b9c4e92ad5167ca73039d0c42476302ab603e2fec4487511f38ccefc" dependencies = [ "memchr", ] [[package]] name = "xml-rs" -version = "0.8.16" +version = "0.8.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47430998a7b5d499ccee752b41567bc3afc57e1327dc855b1a2aa44ce29b5fa1" +checksum = "0fcb9cbac069e033553e8bb871be2fbdffcab578eb25bd0f7c508cedc6dcd75a" [[package]] name = "xmltree" @@ -4568,28 +5299,49 @@ version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" dependencies = [ - "time 0.3.27", + "time", ] [[package]] name = "zerocopy" -version = "0.6.3" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20707b61725734c595e840fb3704378a0cd2b9c74cc9e6e20724838fc6a1e2f9" +dependencies = [ + "byteorder", + "zerocopy-derive 0.6.4", +] + +[[package]] +name = "zerocopy" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3b9c234616391070b0b173963ebc65a9195068e7ed3731c6edac2ec45ebe106" +checksum = "3acf0fc2746d3e32f07be6067e170628e3b3d558c68f5dbada298039a6726331" dependencies = [ "byteorder", - "zerocopy-derive", + "zerocopy-derive 0.7.6", ] [[package]] name = "zerocopy-derive" -version = "0.6.3" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56097d5b91d711293a42be9289403896b68654625021732067eac7a4ca388a1f" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.37", +] + +[[package]] +name = "zerocopy-derive" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f7f3a471f98d0a61c34322fbbfd10c384b07687f680d4119813713f72308d91" +checksum = "b539ef18157ab9e248758ab68041c0179e639024ca17c794c6afa7a691f4c271" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.37", ] [[package]] diff --git a/Makefile b/Makefile index 5c4eb5ad1..3083506e1 100644 --- a/Makefile +++ b/Makefile @@ -60,6 +60,12 @@ check-generic-formatting: .PHONY: check-source check-source: check-generated-sources check-fmt check-generic-formatting +.PHONY: check-dependencies +check-dependencies: + tool=$$($(nix_build) -A pkgs.build.cargo-audit --no-out-link) && \ + lockfile=$$($(nix_build) -A pkgs.build.this.publicCratesCargoLock --no-out-link) && \ + $$tool/bin/cargo-audit audit -f $$lockfile + try_restore_terminal := tput smam 2> /dev/null || true .PHONY: run-tests diff --git a/crates/examples/microkit/banscii/pds/assistant/core/Cargo.toml b/crates/examples/microkit/banscii/pds/assistant/core/Cargo.toml index cc48a28e7..bd811be54 100644 --- a/crates/examples/microkit/banscii/pds/assistant/core/Cargo.toml +++ b/crates/examples/microkit/banscii/pds/assistant/core/Cargo.toml @@ -6,6 +6,6 @@ edition = "2021" license = "BSD-2-Clause" [dependencies] -libm = { version = "0.2.1", default-features = false } +ab_glyph = { version = "0.2.22", default-features = false, features = ["libm"] } log = "0.4.17" -rusttype = { version = "0.9.3", default-features = false, features = ["has-atomics", "libm-math"] } +num-traits = { version = "0.2.16", default-features = false, features = ["libm"] } diff --git a/crates/examples/microkit/banscii/pds/assistant/core/src/lib.rs b/crates/examples/microkit/banscii/pds/assistant/core/src/lib.rs index aa09269ba..3022b9c13 100644 --- a/crates/examples/microkit/banscii/pds/assistant/core/src/lib.rs +++ b/crates/examples/microkit/banscii/pds/assistant/core/src/lib.rs @@ -5,11 +5,8 @@ extern crate alloc; use alloc::vec; use alloc::vec::Vec; -use rusttype::{point, Font, Scale}; - -mod nostd_float; - -use nostd_float::FloatExt; +use ab_glyph::{point, Font, FontRef, Glyph, Point, PxScale, ScaleFont}; +use num_traits::Float; pub struct Draft { pub width: usize, @@ -19,61 +16,77 @@ pub struct Draft { impl Draft { // Derived from: - // https://github.com/redox-os/rusttype/blob/master/dev/examples/ascii.rs + // https://github.com/alexheretic/ab-glyph/blob/main/dev/examples/ascii.rs pub fn new(subject: &str) -> Self { let font_data = include_bytes!("../assets/fonts/rock-salt/RockSalt-Regular.ttf"); - let font = Font::try_from_bytes(font_data as &[u8]).unwrap(); + let font = FontRef::try_from_slice(font_data).unwrap(); // Desired font pixel height let height: f32 = 12.4; // to get 80 chars across (fits most terminals); adjust as desired - let pixel_height = height.ceil() as usize; + let px_height = height.ceil() as usize; // 2x scale in x direction to counter the aspect ratio of monospace characters. - let scale = Scale { + let scale = PxScale { x: height * 2.0, y: height, }; - // The origin of a line of text is at the baseline (roughly where - // non-descending letters sit). We don't want to clip the text, so we shift - // it down with an offset when laying it out. v_metrics.ascent is the - // distance between the baseline and the highest edge of any glyph in - // the font. That's enough to guarantee that there's no clipping. - let v_metrics = font.v_metrics(scale); - let offset = point(0.0, v_metrics.ascent); + let scaled_font = font.into_scaled(scale); - let glyphs = font.layout(subject, scale, offset).collect::>(); + let mut glyphs = Vec::new(); + layout(&scaled_font, point(0.0, 0.0), subject, &mut glyphs); // Find the most visually pleasing width to display - let width = glyphs + let px_width = glyphs .iter() .rev() - .map(|g| g.position().x + g.unpositioned().h_metrics().advance_width) + .map(|g| g.position.x + scaled_font.h_advance(g.id)) .next() .unwrap_or(0.0) .ceil() as usize; - // Rasterise to greyscale - let mut pixel_data = vec![0; width * pixel_height]; + // Rasterize to greyscale + let mut pixel_data = vec![0; px_width * px_height]; for g in glyphs { - if let Some(bb) = g.pixel_bounding_box() { - g.draw(|x, y, v| { - let x = x as i32 + bb.min.x; - let y = y as i32 + bb.min.y; + if let Some(og) = scaled_font.outline_glyph(g) { + let bounds = og.px_bounds(); + og.draw(|x, y, v| { + let x = x as f32 + bounds.min.x; + let y = y as f32 + bounds.min.y; // There's still a possibility that the glyph clips the boundaries of the bitmap - if x >= 0 && x < width as i32 && y >= 0 && y < pixel_height as i32 { - let x = x as usize; - let y = y as usize; - pixel_data[x + y * width] = (v * 255.0 + 0.5) as u8; + if x >= 0.0 && (x as usize) < px_width && y >= 0.0 && (y as usize) < px_height { + pixel_data[(x as usize) + (y as usize) * px_width] = + (v * 255.0 + 0.5) as u8; } }) } } Self { - width, - height: pixel_height, + width: px_width, + height: px_height, pixel_data, } } } + +pub fn layout(font: SF, position: Point, text: &str, target: &mut Vec) +where + F: Font, + SF: ScaleFont, +{ + let mut caret = position + point(0.0, font.ascent()); + let mut last_glyph: Option = None; + for c in text.chars() { + let mut glyph = font.scaled_glyph(c); + if let Some(previous) = last_glyph.take() { + caret.x += font.kern(previous.id, glyph.id); + } + glyph.position = caret; + + last_glyph = Some(glyph.clone()); + caret.x += font.h_advance(glyph.id); + + target.push(glyph); + } +} diff --git a/crates/examples/microkit/banscii/pds/assistant/core/src/nostd_float.rs b/crates/examples/microkit/banscii/pds/assistant/core/src/nostd_float.rs deleted file mode 100644 index cf85e10be..000000000 --- a/crates/examples/microkit/banscii/pds/assistant/core/src/nostd_float.rs +++ /dev/null @@ -1,35 +0,0 @@ -pub(crate) trait FloatExt { - fn floor(self) -> Self; - fn ceil(self) -> Self; - fn fract(self) -> Self; - fn trunc(self) -> Self; - fn round(self) -> Self; - fn abs(self) -> Self; -} - -impl FloatExt for f32 { - #[inline] - fn floor(self) -> Self { - libm::floorf(self) - } - #[inline] - fn ceil(self) -> Self { - libm::ceilf(self) - } - #[inline] - fn fract(self) -> Self { - self - self.trunc() - } - #[inline] - fn trunc(self) -> Self { - libm::truncf(self) - } - #[inline] - fn round(self) -> Self { - libm::roundf(self) - } - #[inline] - fn abs(self) -> Self { - libm::fabsf(self) - } -} diff --git a/crates/examples/microkit/http-server/pds/server/core/Cargo.toml b/crates/examples/microkit/http-server/pds/server/core/Cargo.toml index fff7724c3..6887c70d1 100644 --- a/crates/examples/microkit/http-server/pds/server/core/Cargo.toml +++ b/crates/examples/microkit/http-server/pds/server/core/Cargo.toml @@ -22,7 +22,7 @@ sel4-panicking-env = { path = "../../../../../../sel4-panicking/env" } [dependencies.mbedtls] git = "https://github.com/coliasgroup/rust-mbedtls" -tag = "keep/6eef662dbf636d1ccf86078143b6854f" +tag = "keep/30d001b63baea36135b2590c4fd05e95" default-features = false features = ["no_std_deps"] diff --git a/crates/private/support/cargo-helpers/Cargo.toml b/crates/private/support/cargo-helpers/Cargo.toml index 8b74f1cdf..e964570ed 100644 --- a/crates/private/support/cargo-helpers/Cargo.toml +++ b/crates/private/support/cargo-helpers/Cargo.toml @@ -6,6 +6,6 @@ edition = "2021" license = "BSD-2-Clause" [dependencies] -cargo = "0.70.1" +cargo = "0.73.1" cargo-util = "0.2.3" -clap = "3.2.23" +clap = "4.4.6" diff --git a/crates/private/support/sel4-simple-task/runtime/config/types/Cargo.toml b/crates/private/support/sel4-simple-task/runtime/config/types/Cargo.toml index 808eca304..ee436d04f 100644 --- a/crates/private/support/sel4-simple-task/runtime/config/types/Cargo.toml +++ b/crates/private/support/sel4-simple-task/runtime/config/types/Cargo.toml @@ -11,4 +11,4 @@ serde = ["dep:serde"] [dependencies] serde = { version = "1.0.147", default-features = false, features = ["derive"], optional = true } -zerocopy = "0.6.1" +zerocopy = { version = "0.7.6", features = ["derive"] } diff --git a/crates/private/support/sel4-simple-task/runtime/config/types/src/lib.rs b/crates/private/support/sel4-simple-task/runtime/config/types/src/lib.rs index 0dc35ecf2..08714c1e6 100644 --- a/crates/private/support/sel4-simple-task/runtime/config/types/src/lib.rs +++ b/crates/private/support/sel4-simple-task/runtime/config/types/src/lib.rs @@ -8,7 +8,7 @@ extern crate alloc; use core::ops::Range; use core::str; -use zerocopy::{AsBytes, FromBytes, LayoutVerified}; +use zerocopy::{AsBytes, FromBytes, FromZeroes, Ref}; mod zerocopy_helpers; @@ -27,7 +27,7 @@ pub type Address = NativeWord; pub type CPtrBits = NativeWord; #[repr(C)] -#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] struct Head { static_heap: ZerocopyOptionWordRange, static_heap_mutex_notification: ZerocopyOptionWord, @@ -38,7 +38,7 @@ struct Head { } #[repr(C)] -#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] struct Thread { ipc_buffer_addr: ZerocopyWord, endpoint: ZerocopyOptionWord, @@ -71,7 +71,7 @@ impl<'a> RuntimeConfig<'a> { } pub fn threads(&self) -> &[RuntimeThreadConfig] { - LayoutVerified::new_slice(self.index(self.head().threads.try_into_native().unwrap())) + Ref::new_slice(self.index(self.head().threads.try_into_native().unwrap())) .unwrap() .into_slice() } @@ -89,7 +89,7 @@ impl<'a> RuntimeConfig<'a> { } fn head(&self) -> &Head { - let (head, _) = LayoutVerified::<_, Head>::new_from_prefix(self.bytes).unwrap(); + let (head, _) = Ref::<_, Head>::new_from_prefix(self.bytes).unwrap(); head.into_ref() } @@ -99,7 +99,7 @@ impl<'a> RuntimeConfig<'a> { } #[repr(transparent)] -#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] pub struct RuntimeThreadConfig { inner: Thread, } diff --git a/crates/private/support/sel4-simple-task/runtime/config/types/src/zerocopy_helpers.rs b/crates/private/support/sel4-simple-task/runtime/config/types/src/zerocopy_helpers.rs index 74fd99641..be923ae0d 100644 --- a/crates/private/support/sel4-simple-task/runtime/config/types/src/zerocopy_helpers.rs +++ b/crates/private/support/sel4-simple-task/runtime/config/types/src/zerocopy_helpers.rs @@ -1,7 +1,7 @@ use core::fmt; use core::ops::Range; -use zerocopy::{AsBytes, BigEndian, FromBytes, U64}; +use zerocopy::{AsBytes, BigEndian, FromBytes, FromZeroes, U64}; pub type ZerocopyWord = U64; @@ -41,7 +41,7 @@ impl fmt::Display for InvalidZerocopyOptionTagOr { // #[repr(C)] -#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] pub struct ZerocopyWordRange { start: ZerocopyWord, end: ZerocopyWord, @@ -87,7 +87,7 @@ impl + Copy> TryFrom<&Range> for ZerocopyWordRange { // #[repr(C)] -#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] pub struct ZerocopyOptionWord { is_present: u8, value: ZerocopyWord, @@ -150,7 +150,7 @@ impl TryFrom<&ZerocopyOptionWord> for Option { // #[repr(C)] -#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Debug, Clone, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] pub struct ZerocopyOptionWordRange { is_present: u8, value: ZerocopyWordRange, diff --git a/crates/private/tests/root-task/mbedtls/Cargo.toml b/crates/private/tests/root-task/mbedtls/Cargo.toml index 1abc7ce38..63134b62a 100644 --- a/crates/private/tests/root-task/mbedtls/Cargo.toml +++ b/crates/private/tests/root-task/mbedtls/Cargo.toml @@ -13,18 +13,18 @@ sel4-root-task = { path = "../../../../sel4-root-task" } [dependencies.mbedtls] git = "https://github.com/coliasgroup/rust-mbedtls" -tag = "keep/6eef662dbf636d1ccf86078143b6854f" +tag = "keep/30d001b63baea36135b2590c4fd05e95" default-features = false features = ["no_std_deps", "debug"] [dependencies.mbedtls-platform-support] git = "https://github.com/coliasgroup/rust-mbedtls" -tag = "keep/6eef662dbf636d1ccf86078143b6854f" +tag = "keep/30d001b63baea36135b2590c4fd05e95" default-features = false [dependencies.mbedtls-sys-auto] git = "https://github.com/coliasgroup/rust-mbedtls" -tag = "keep/6eef662dbf636d1ccf86078143b6854f" +tag = "keep/30d001b63baea36135b2590c4fd05e95" default-features = false [dependencies.sel4-newlib] diff --git a/crates/sel4-async/block-io/Cargo.toml b/crates/sel4-async/block-io/Cargo.toml index fcb34a78c..3641bce3c 100644 --- a/crates/sel4-async/block-io/Cargo.toml +++ b/crates/sel4-async/block-io/Cargo.toml @@ -15,5 +15,4 @@ futures = { version = "0.3.28", default-features = false } gpt_disk_types = { version = "0.15.0", features = ["bytemuck"] } log = "0.4.17" lru = { version = "0.10.0", optional = true } -num-derive = "0.4.0" -num-traits = { version = "0.2.16", default-features = false } +num_enum = { version = "0.5.9", default-features = false } diff --git a/crates/sel4-async/block-io/cpiofs/Cargo.toml b/crates/sel4-async/block-io/cpiofs/Cargo.toml index 7e5d5d276..c01580afb 100644 --- a/crates/sel4-async/block-io/cpiofs/Cargo.toml +++ b/crates/sel4-async/block-io/cpiofs/Cargo.toml @@ -11,4 +11,4 @@ hex = { version = "0.4.3", default-features = false } log = "0.4.17" lru = "0.10.0" sel4-async-block-io = { path = ".." } -zerocopy = "0.6.1" +zerocopy = { version = "0.7.6", features = ["derive"] } diff --git a/crates/sel4-async/block-io/cpiofs/src/lib.rs b/crates/sel4-async/block-io/cpiofs/src/lib.rs index 9ef0246f8..07fda16af 100644 --- a/crates/sel4-async/block-io/cpiofs/src/lib.rs +++ b/crates/sel4-async/block-io/cpiofs/src/lib.rs @@ -11,7 +11,7 @@ use alloc::vec; use core::mem; use hex::FromHex; -use zerocopy::{AsBytes, FromBytes}; +use zerocopy::{AsBytes, FromBytes, FromZeroes}; use sel4_async_block_io::ByteIO; @@ -20,7 +20,7 @@ const CPIO_ALIGN: usize = 4; const END_OF_ARCHIVE: &str = "TRAILER!!!"; #[repr(C)] -#[derive(Debug, Copy, Clone, AsBytes, FromBytes)] +#[derive(Debug, Copy, Clone, AsBytes, FromBytes, FromZeroes)] struct HexEncodedU32 { encoded: [u8; 8], } @@ -32,7 +32,7 @@ impl HexEncodedU32 { } #[repr(C)] -#[derive(Debug, Copy, Clone, AsBytes, FromBytes)] +#[derive(Debug, Copy, Clone, AsBytes, FromBytes, FromZeroes)] struct Header { c_magic: [u8; 6], c_ino: HexEncodedU32, diff --git a/crates/sel4-async/block-io/fat/Cargo.toml b/crates/sel4-async/block-io/fat/Cargo.toml index 71baf9505..efdf4a5d4 100644 --- a/crates/sel4-async/block-io/fat/Cargo.toml +++ b/crates/sel4-async/block-io/fat/Cargo.toml @@ -12,7 +12,6 @@ hex = { version = "0.4.3", default-features = false } log = "0.4.17" lru = "0.10.0" sel4-async-block-io = { path = ".." } -zerocopy = "0.6.1" [dependencies.embedded-fat] git = "https://github.com/coliasgroup/rust-embedded-fat.git" diff --git a/crates/sel4-async/block-io/src/disk.rs b/crates/sel4-async/block-io/src/disk.rs index 5d31010b8..664c7e453 100644 --- a/crates/sel4-async/block-io/src/disk.rs +++ b/crates/sel4-async/block-io/src/disk.rs @@ -2,8 +2,7 @@ use core::mem; use core::ops::Range; use gpt_disk_types::{GptHeader, MasterBootRecord, MbrPartitionRecord}; -use num_derive::{FromPrimitive, ToPrimitive}; -use num_traits::cast::FromPrimitive; +use num_enum::{IntoPrimitive, TryFromPrimitive}; use crate::{read_bytes, BlockIO, Partition}; @@ -68,7 +67,7 @@ impl MbrPartitionEntry { } } -#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, FromPrimitive, ToPrimitive)] +#[derive(Copy, Clone, Debug, Eq, PartialEq, Ord, PartialOrd, TryFromPrimitive, IntoPrimitive)] #[repr(u8)] pub enum KnownPartitionId { Free = 0x00, @@ -83,9 +82,9 @@ pub enum PartitionId { impl From for PartitionId { fn from(val: u8) -> Self { - KnownPartitionId::from_u8(val) + KnownPartitionId::try_from(val) .map(Self::Known) - .unwrap_or_else(|| Self::Unknown(val)) + .unwrap_or_else(|_| Self::Unknown(val)) } } diff --git a/crates/sel4-async/network/mbedtls/Cargo.toml b/crates/sel4-async/network/mbedtls/Cargo.toml index 464f3b6c9..bb05c7229 100644 --- a/crates/sel4-async/network/mbedtls/Cargo.toml +++ b/crates/sel4-async/network/mbedtls/Cargo.toml @@ -14,6 +14,6 @@ sel4-async-network-mbedtls-mozilla-ca-list = { path = "./mozilla-ca-list" } [dependencies.mbedtls] git = "https://github.com/coliasgroup/rust-mbedtls" -tag = "keep/6eef662dbf636d1ccf86078143b6854f" +tag = "keep/30d001b63baea36135b2590c4fd05e95" default-features = false features = ["no_std_deps"] diff --git a/crates/sel4-backtrace/cli/Cargo.toml b/crates/sel4-backtrace/cli/Cargo.toml index 34f02ccc2..ce36ada20 100644 --- a/crates/sel4-backtrace/cli/Cargo.toml +++ b/crates/sel4-backtrace/cli/Cargo.toml @@ -7,8 +7,7 @@ license = "BSD-2-Clause" [dependencies] addr2line = "0.21.0" -clap = "3.2.23" +clap = "4.4.6" hex = "0.4.3" -memmap = "0.7.0" object = "0.32.1" sel4-backtrace-types = { path = "../types", features = ["full"] } diff --git a/crates/sel4-backtrace/cli/src/bin/sel4-symbolize-backtrace.rs b/crates/sel4-backtrace/cli/src/bin/sel4-symbolize-backtrace.rs index e34962dd4..70e3d0af5 100644 --- a/crates/sel4-backtrace/cli/src/bin/sel4-symbolize-backtrace.rs +++ b/crates/sel4-backtrace/cli/src/bin/sel4-symbolize-backtrace.rs @@ -1,25 +1,23 @@ -use std::fs::File; +use std::fs; use addr2line::Context; -use clap::{App, Arg}; -use memmap::Mmap; +use clap::{arg, Command}; use sel4_backtrace_types::Backtrace; fn main() { - let matches = App::new("") - .arg(Arg::from_usage("-f --file=[ELF]")) - .arg(Arg::from_usage("")) + let matches = Command::new("") + .arg(arg!(-f --file )) + .arg(arg!()) .get_matches(); - let bt_hex = matches.value_of("raw_backtrace").unwrap(); + let bt_hex = matches.get_one::("raw_backtrace").unwrap(); let bt = Backtrace::>::recv(&hex::decode(bt_hex).unwrap()).unwrap(); let elf_file_path = matches - .value_of("file") - .or(bt.preamble.image.as_deref()) + .get_one("file") + .or(bt.preamble.image.as_ref()) .expect("ELF file neither embedded nor provided"); - let elf_file = File::open(elf_file_path).unwrap(); - let map = unsafe { Mmap::map(&elf_file).unwrap() }; - let elf_obj = &object::File::parse(&*map).unwrap(); + let elf_file_contents = fs::read(elf_file_path).unwrap(); + let elf_obj = &object::File::parse(&*elf_file_contents).unwrap(); let ctx = Context::new(elf_obj).unwrap(); println!("backtrace: {}", elf_file_path); let mut s = String::new(); diff --git a/crates/sel4-backtrace/embedded-debug-info/cli/Cargo.toml b/crates/sel4-backtrace/embedded-debug-info/cli/Cargo.toml index ab049564e..23126e09a 100644 --- a/crates/sel4-backtrace/embedded-debug-info/cli/Cargo.toml +++ b/crates/sel4-backtrace/embedded-debug-info/cli/Cargo.toml @@ -6,6 +6,6 @@ edition = "2021" license = "BSD-2-Clause" [dependencies] -clap = "3.2.23" +clap = "4.4.6" num = "0.4.1" sel4-render-elf-with-data = { path = "../../../sel4-render-elf-with-data" } diff --git a/crates/sel4-backtrace/embedded-debug-info/cli/src/bin/sel4-embed-debug-info.rs b/crates/sel4-backtrace/embedded-debug-info/cli/src/bin/sel4-embed-debug-info.rs index ba989053a..55a1487d5 100644 --- a/crates/sel4-backtrace/embedded-debug-info/cli/src/bin/sel4-embed-debug-info.rs +++ b/crates/sel4-backtrace/embedded-debug-info/cli/src/bin/sel4-embed-debug-info.rs @@ -3,7 +3,7 @@ use std::fs; use std::io; -use clap::{App, Arg}; +use clap::{Arg, Command}; use num::{NumCast, One, PrimInt, Zero}; use sel4_render_elf_with_data::{ @@ -12,7 +12,7 @@ use sel4_render_elf_with_data::{ }; fn main() -> Result<(), io::Error> { - let matches = App::new("") + let matches = Command::new("") .arg( Arg::new("image_elf") .short('i') diff --git a/crates/sel4-capdl-initializer/add-spec/Cargo.toml b/crates/sel4-capdl-initializer/add-spec/Cargo.toml index aa0a3342b..5c825f716 100644 --- a/crates/sel4-capdl-initializer/add-spec/Cargo.toml +++ b/crates/sel4-capdl-initializer/add-spec/Cargo.toml @@ -7,7 +7,7 @@ license = "BSD-2-Clause" [dependencies] anyhow = "1.0.66" -clap = "3.2.23" +clap = "4.4.6" fallible-iterator = "0.2.0" num = "0.4.1" object = { version = "0.32.1", features = ["all"] } diff --git a/crates/sel4-capdl-initializer/add-spec/src/args.rs b/crates/sel4-capdl-initializer/add-spec/src/args.rs index 869eb16cb..bea129489 100644 --- a/crates/sel4-capdl-initializer/add-spec/src/args.rs +++ b/crates/sel4-capdl-initializer/add-spec/src/args.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use clap::{App, Arg, ArgAction}; +use clap::{Arg, ArgAction, Command}; use sel4_capdl_initializer_types::ObjectNamesLevel; @@ -16,7 +16,7 @@ pub struct Args { impl Args { pub fn parse() -> Result { - let matches = App::new("") + let matches = Command::new("") .arg( Arg::new("initializer_elf") .short('e') diff --git a/crates/sel4-generate-target-specs/Cargo.toml b/crates/sel4-generate-target-specs/Cargo.toml index 2de40ca8c..eac0eaf81 100644 --- a/crates/sel4-generate-target-specs/Cargo.toml +++ b/crates/sel4-generate-target-specs/Cargo.toml @@ -6,5 +6,5 @@ edition = "2021" license = "BSD-2-Clause" [dependencies] -clap = "3.2.23" +clap = "4.4.6" serde_json = "1.0.87" diff --git a/crates/sel4-generate-target-specs/src/main.rs b/crates/sel4-generate-target-specs/src/main.rs index b9bc1105f..cb3929f76 100644 --- a/crates/sel4-generate-target-specs/src/main.rs +++ b/crates/sel4-generate-target-specs/src/main.rs @@ -214,7 +214,7 @@ fn main() -> std::io::Result<()> { do_list(); } Some(("write", sub_matches)) => { - let target_dir = sub_matches.value_of("target_dir").unwrap(); + let target_dir = sub_matches.get_one::("target_dir").unwrap(); let targets = sub_matches .get_many::("targets") .map(|many| many.cloned().collect::>()) diff --git a/crates/sel4-kernel-loader/Cargo.toml b/crates/sel4-kernel-loader/Cargo.toml index f97bf11fd..40892bb0e 100644 --- a/crates/sel4-kernel-loader/Cargo.toml +++ b/crates/sel4-kernel-loader/Cargo.toml @@ -33,7 +33,6 @@ sel4-kernel-loader-payload-types = { path = "./payload-types" } sel4-platform-info = { path = "../sel4-platform-info" } sel4-rustfmt-helper = { path = "../sel4-rustfmt-helper" } serde = "1.0.147" -serde_yaml = "0.9.14" [target."cfg(any(target_arch = \"riscv32\", target_arch = \"riscv64\"))".dependencies] riscv = "0.10.0" diff --git a/crates/sel4-kernel-loader/add-payload/Cargo.toml b/crates/sel4-kernel-loader/add-payload/Cargo.toml index cee36989d..6cf6b02a4 100644 --- a/crates/sel4-kernel-loader/add-payload/Cargo.toml +++ b/crates/sel4-kernel-loader/add-payload/Cargo.toml @@ -7,7 +7,7 @@ license = "BSD-2-Clause" [dependencies] anyhow = "1.0.66" -clap = "3.2.23" +clap = "4.4.6" fallible-iterator = "0.2.0" heapless = "0.7.16" num = "0.4.1" diff --git a/crates/sel4-kernel-loader/add-payload/src/args.rs b/crates/sel4-kernel-loader/add-payload/src/args.rs index 57771eea0..11dff3d07 100644 --- a/crates/sel4-kernel-loader/add-payload/src/args.rs +++ b/crates/sel4-kernel-loader/add-payload/src/args.rs @@ -1,5 +1,5 @@ use anyhow::Result; -use clap::{App, Arg, ArgAction}; +use clap::{Arg, ArgAction, Command}; #[derive(Debug)] pub struct Args { @@ -15,7 +15,7 @@ pub struct Args { impl Args { pub fn parse() -> Result { - let matches = App::new("") + let matches = Command::new("") .arg( Arg::new("sel4-prefix") .long("sel4-prefix") diff --git a/crates/sel4-microkit/message/types/Cargo.toml b/crates/sel4-microkit/message/types/Cargo.toml index e0d9cd4fb..f411e7dd8 100644 --- a/crates/sel4-microkit/message/types/Cargo.toml +++ b/crates/sel4-microkit/message/types/Cargo.toml @@ -13,4 +13,4 @@ postcard = ["dep:postcard", "dep:serde"] num_enum = { version = "0.5.9", default-features = false } postcard = { version = "1.0.2", default-features = false, optional = true } serde = { version = "1.0.147", default-features = false, optional = true } -zerocopy = "0.6.1" +zerocopy = "0.7.6" diff --git a/crates/sel4-render-elf-with-data/Cargo.toml b/crates/sel4-render-elf-with-data/Cargo.toml index 5af68189f..2083ec77d 100644 --- a/crates/sel4-render-elf-with-data/Cargo.toml +++ b/crates/sel4-render-elf-with-data/Cargo.toml @@ -7,7 +7,6 @@ license = "BSD-2-Clause" [dependencies] anyhow = "1.0.66" -clap = "3.2.23" fallible-iterator = "0.2.0" num = "0.4.1" object = { version = "0.32.1", features = ["all"] } diff --git a/crates/sel4-shared-ring-buffer/Cargo.toml b/crates/sel4-shared-ring-buffer/Cargo.toml index 7cc19a06b..6000a6fcb 100644 --- a/crates/sel4-shared-ring-buffer/Cargo.toml +++ b/crates/sel4-shared-ring-buffer/Cargo.toml @@ -8,4 +8,4 @@ license = "BSD-2-Clause" [dependencies] log = "0.4.17" sel4-externally-shared = { path = "../sel4-externally-shared", features = ["unstable"] } -zerocopy = "0.6.1" +zerocopy = { version = "0.7.6", features = ["derive"] } diff --git a/crates/sel4-shared-ring-buffer/block-io/types/Cargo.toml b/crates/sel4-shared-ring-buffer/block-io/types/Cargo.toml index 0b5da03b5..553662b39 100644 --- a/crates/sel4-shared-ring-buffer/block-io/types/Cargo.toml +++ b/crates/sel4-shared-ring-buffer/block-io/types/Cargo.toml @@ -8,4 +8,4 @@ license = "BSD-2-Clause" [dependencies] num_enum = { version = "0.5.9", default-features = false } sel4-shared-ring-buffer = { path = "../.." } -zerocopy = "0.6.1" +zerocopy = { version = "0.7.6", features = ["derive"] } diff --git a/crates/sel4-shared-ring-buffer/block-io/types/src/lib.rs b/crates/sel4-shared-ring-buffer/block-io/types/src/lib.rs index d05109bcf..1dc388732 100644 --- a/crates/sel4-shared-ring-buffer/block-io/types/src/lib.rs +++ b/crates/sel4-shared-ring-buffer/block-io/types/src/lib.rs @@ -1,11 +1,11 @@ #![no_std] use num_enum::{IntoPrimitive, TryFromPrimitive, TryFromPrimitiveError}; -use zerocopy::{AsBytes, FromBytes}; +use zerocopy::{AsBytes, FromBytes, FromZeroes}; use sel4_shared_ring_buffer::Descriptor; -#[derive(Copy, Clone, Debug, PartialOrd, Ord, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Copy, Clone, Debug, PartialOrd, Ord, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] #[repr(C)] pub struct BlockIORequest { status: i32, diff --git a/crates/sel4-shared-ring-buffer/src/lib.rs b/crates/sel4-shared-ring-buffer/src/lib.rs index 79e59a98b..efb88f58c 100644 --- a/crates/sel4-shared-ring-buffer/src/lib.rs +++ b/crates/sel4-shared-ring-buffer/src/lib.rs @@ -4,7 +4,7 @@ use core::num::Wrapping; use core::ptr::NonNull; use core::sync::atomic::Ordering; -use zerocopy::{AsBytes, FromBytes}; +use zerocopy::{AsBytes, FromBytes, FromZeroes}; use sel4_externally_shared::{map_field, ExternallySharedPtr, ExternallySharedRef}; @@ -70,7 +70,7 @@ pub struct RawRingBuffer { } #[repr(C)] -#[derive(Copy, Clone, Debug, PartialOrd, Ord, PartialEq, Eq, AsBytes, FromBytes)] +#[derive(Copy, Clone, Debug, PartialOrd, Ord, PartialEq, Eq, AsBytes, FromBytes, FromZeroes)] pub struct Descriptor { encoded_addr: usize, len: u32, diff --git a/crates/sel4/bitfield-parser/test/Cargo.toml b/crates/sel4/bitfield-parser/test/Cargo.toml index e0b72fb6c..8b488aa88 100644 --- a/crates/sel4/bitfield-parser/test/Cargo.toml +++ b/crates/sel4/bitfield-parser/test/Cargo.toml @@ -6,6 +6,6 @@ edition = "2021" license = "BSD-2-Clause" [dependencies] -clap = "3.2.23" +clap = "4.4.6" glob = "0.3.0" sel4-bitfield-parser = { path = ".." } diff --git a/crates/sel4/bitfield-parser/test/src/main.rs b/crates/sel4/bitfield-parser/test/src/main.rs index 37df9fe85..09f5f47f9 100644 --- a/crates/sel4/bitfield-parser/test/src/main.rs +++ b/crates/sel4/bitfield-parser/test/src/main.rs @@ -1,11 +1,11 @@ use std::fs; use std::path::Path; -use clap::{App, Arg, ArgAction}; +use clap::{Arg, ArgAction, Command}; use glob::glob; fn main() { - let matches = App::new("") + let matches = Command::new("") .arg( Arg::new("dir") .short('d') diff --git a/hacking/cargo-manifest-sources/crates/examples/microkit/banscii/pds/assistant/core/crate.nix b/hacking/cargo-manifest-sources/crates/examples/microkit/banscii/pds/assistant/core/crate.nix index 07e21ef36..b53bec21c 100644 --- a/hacking/cargo-manifest-sources/crates/examples/microkit/banscii/pds/assistant/core/crate.nix +++ b/hacking/cargo-manifest-sources/crates/examples/microkit/banscii/pds/assistant/core/crate.nix @@ -3,8 +3,8 @@ mk { package.name = "banscii-assistant-core"; dependencies = { - rusttype = { version = "0.9.3"; default-features = false; features = [ "has-atomics" "libm-math" ]; }; - libm = { version = "0.2.1"; default-features = false; }; + ab_glyph = { version = "0.2.22"; default-features = false; features = [ "libm" ]; }; + num-traits = { version = versions.num-traits; default-features = false; features = [ "libm" ]; }; inherit (versions) log; }; } diff --git a/hacking/cargo-manifest-sources/crates/private/support/cargo-helpers/crate.nix b/hacking/cargo-manifest-sources/crates/private/support/cargo-helpers/crate.nix index bf54cb022..d982ddb87 100644 --- a/hacking/cargo-manifest-sources/crates/private/support/cargo-helpers/crate.nix +++ b/hacking/cargo-manifest-sources/crates/private/support/cargo-helpers/crate.nix @@ -1,10 +1,10 @@ -{ mk }: +{ mk, versions }: mk { package.name = "cargo-helpers"; dependencies = { + inherit (versions) clap; cargo-util = "0.2.3"; - cargo = "0.70.1"; - clap = "3.2.23"; + cargo = "0.73.1"; }; } diff --git a/hacking/cargo-manifest-sources/crates/private/support/sel4-simple-task/runtime/config/types/crate.nix b/hacking/cargo-manifest-sources/crates/private/support/sel4-simple-task/runtime/config/types/crate.nix index bd9c5c50e..69aa1d43f 100644 --- a/hacking/cargo-manifest-sources/crates/private/support/sel4-simple-task/runtime/config/types/crate.nix +++ b/hacking/cargo-manifest-sources/crates/private/support/sel4-simple-task/runtime/config/types/crate.nix @@ -1,10 +1,10 @@ -{ mk, versions, serdeWith }: +{ mk, versions, zerocopyWith, serdeWith }: mk { package.name = "sel4-simple-task-runtime-config-types"; dependencies = { - inherit (versions) zerocopy; serde = serdeWith [ "derive" ] // { optional = true; }; + zerocopy = zerocopyWith [ "derive" ]; }; features = { alloc = [ diff --git a/hacking/cargo-manifest-sources/crates/sel4-async/block-io/cpiofs/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-async/block-io/cpiofs/crate.nix index 2bd667707..07b086ce4 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-async/block-io/cpiofs/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-async/block-io/cpiofs/crate.nix @@ -1,9 +1,10 @@ -{ mk, localCrates, versions }: +{ mk, localCrates, versions, zerocopyWith }: mk { package.name = "sel4-async-block-io-cpiofs"; dependencies = rec { - inherit (versions) log zerocopy; + inherit (versions) log; + zerocopy = zerocopyWith [ "derive" ]; hex = { version = "0.4.3"; default-features = false; }; lru = "0.10.0"; futures = { diff --git a/hacking/cargo-manifest-sources/crates/sel4-async/block-io/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-async/block-io/crate.nix index 2280dcb78..b18921e14 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-async/block-io/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-async/block-io/crate.nix @@ -3,12 +3,12 @@ mk { package.name = "sel4-async-block-io"; dependencies = rec { - inherit (versions) log num-derive; + inherit (versions) log; + num_enum = { version = versions.num_enum; default-features = false; }; futures = { version = versions.futures; default-features = false; }; - num-traits = { version = versions.num-traits; default-features = false; }; bytemuck = { version = "1.4.0"; default-features = false; }; gpt_disk_types = { version = "0.15.0"; features = [ "bytemuck" ]; }; lru = { version = "0.10.0"; optional = true; }; diff --git a/hacking/cargo-manifest-sources/crates/sel4-async/block-io/fat/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-async/block-io/fat/crate.nix index 706c85e60..f50e50d60 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-async/block-io/fat/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-async/block-io/fat/crate.nix @@ -3,7 +3,7 @@ mk { package.name = "sel4-async-block-io-fat"; dependencies = rec { - inherit (versions) log zerocopy heapless; + inherit (versions) log heapless; hex = { version = "0.4.3"; default-features = false; }; lru = "0.10.0"; futures = { diff --git a/hacking/cargo-manifest-sources/crates/sel4-backtrace/cli/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-backtrace/cli/crate.nix index 0bd493ae1..090695410 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-backtrace/cli/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-backtrace/cli/crate.nix @@ -4,10 +4,8 @@ mk { package.name = "sel4-backtrace-cli"; dependencies = { sel4-backtrace-types.features = [ "full" ]; - clap = "3.2.23"; - memmap = "0.7.0"; hex = "0.4.3"; - inherit (versions) object addr2line; + inherit (versions) object addr2line clap; }; nix.local.dependencies = with localCrates; [ sel4-backtrace-types diff --git a/hacking/cargo-manifest-sources/crates/sel4-backtrace/embedded-debug-info/cli/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-backtrace/embedded-debug-info/cli/crate.nix index 4f937c9b7..4acf60637 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-backtrace/embedded-debug-info/cli/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-backtrace/embedded-debug-info/cli/crate.nix @@ -3,8 +3,7 @@ mk { package.name = "sel4-backtrace-embedded-debug-info-cli"; dependencies = { - inherit (versions) num; - clap = "3.2.23"; + inherit (versions) num clap; }; nix.local.dependencies = with localCrates; [ sel4-render-elf-with-data diff --git a/hacking/cargo-manifest-sources/crates/sel4-capdl-initializer/add-spec/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-capdl-initializer/add-spec/crate.nix index be7b7804d..38e43f376 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-capdl-initializer/add-spec/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-capdl-initializer/add-spec/crate.nix @@ -4,7 +4,6 @@ mk { package.name = "sel4-capdl-initializer-add-spec"; dependencies = { sel4-capdl-initializer-types.features = [ "std" "serde" "deflate" ]; - clap = "3.2.23"; object = { version = versions.object; features = [ "all" ]; }; postcard = postcardWith [ "alloc" ]; inherit (versions) @@ -12,6 +11,7 @@ mk { fallible-iterator serde_json num + clap ; }; nix.local.dependencies = with localCrates; [ diff --git a/hacking/cargo-manifest-sources/crates/sel4-generate-target-specs/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-generate-target-specs/crate.nix index ade7bee49..a03cfb629 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-generate-target-specs/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-generate-target-specs/crate.nix @@ -3,7 +3,6 @@ mk { package.name = "sel4-generate-target-specs"; dependencies = { - inherit (versions) serde_json; - clap = "3.2.23"; + inherit (versions) serde_json clap; }; } diff --git a/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/add-payload/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/add-payload/crate.nix index ebe431676..8ef5ad2df 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/add-payload/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/add-payload/crate.nix @@ -6,7 +6,6 @@ mk { sel4-kernel-loader-payload-types.features = [ "serde" ]; sel4-config-generic-types.features = [ "serde" ]; object = { version = versions.object; features = [ "all" ]; }; - clap = "3.2.23"; postcard = postcardWith [ "alloc" ]; serde = serdeWith [ "alloc" "derive" ]; inherit (versions) @@ -16,6 +15,7 @@ mk { serde_yaml heapless num + clap ; }; nix.local.dependencies = with localCrates; [ diff --git a/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/crate.nix index edc8a963b..f5482043e 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-kernel-loader/crate.nix @@ -26,7 +26,6 @@ mk { quote object serde - serde_yaml ; }; nix.local.dependencies = with localCrates; [ diff --git a/hacking/cargo-manifest-sources/crates/sel4-render-elf-with-data/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-render-elf-with-data/crate.nix index 100e634f5..27c14c56a 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-render-elf-with-data/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-render-elf-with-data/crate.nix @@ -4,7 +4,6 @@ mk { package.name = "sel4-render-elf-with-data"; dependencies = { object = { version = versions.object; features = [ "all" ]; }; - clap = "3.2.23"; inherit (versions) anyhow fallible-iterator num; }; } diff --git a/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/block-io/types/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/block-io/types/crate.nix index ee4552dc8..4f5a6a147 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/block-io/types/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/block-io/types/crate.nix @@ -1,10 +1,10 @@ -{ mk, localCrates, versions }: +{ mk, localCrates, versions, zerocopyWith }: mk { package.name = "sel4-shared-ring-buffer-block-io-types"; dependencies = { - inherit (versions) zerocopy; num_enum = { version = versions.num_enum; default-features = false; }; + zerocopy = zerocopyWith [ "derive" ]; }; nix.local.dependencies = with localCrates; [ sel4-shared-ring-buffer diff --git a/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/crate.nix b/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/crate.nix index 3a4a80e45..f0d3fd0f4 100644 --- a/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4-shared-ring-buffer/crate.nix @@ -1,9 +1,10 @@ -{ mk, localCrates, versions }: +{ mk, localCrates, versions, zerocopyWith }: mk { package.name = "sel4-shared-ring-buffer"; dependencies = rec { - inherit (versions) log zerocopy; + inherit (versions) log; + zerocopy = zerocopyWith [ "derive" ]; sel4-externally-shared.features = [ "unstable" ]; }; nix.local.dependencies = with localCrates; [ diff --git a/hacking/cargo-manifest-sources/crates/sel4/bitfield-parser/test/crate.nix b/hacking/cargo-manifest-sources/crates/sel4/bitfield-parser/test/crate.nix index feedd4856..8b4e2bad0 100644 --- a/hacking/cargo-manifest-sources/crates/sel4/bitfield-parser/test/crate.nix +++ b/hacking/cargo-manifest-sources/crates/sel4/bitfield-parser/test/crate.nix @@ -1,9 +1,9 @@ -{ mk, localCrates }: +{ mk, localCrates, versions }: mk { package.name = "sel4-bitfield-parser-test"; dependencies = { - clap = "3.2.23"; + inherit (versions) clap; glob = "0.3.0"; }; nix.local.dependencies = with localCrates; [ diff --git a/hacking/ci/github-actions/Makefile b/hacking/ci/github-actions/Makefile index a97fae79f..24ea82ca3 100644 --- a/hacking/ci/github-actions/Makefile +++ b/hacking/ci/github-actions/Makefile @@ -13,3 +13,7 @@ check: .PHONY: docs docs: $(MAKE) -C $(root_dir) html + +.PHONY: check-dependencies +check-dependencies: + $(MAKE) -C $(root_dir) check-dependencies diff --git a/hacking/nix/scope/crates.nix b/hacking/nix/scope/crates.nix index 85cdeb6c0..2cbd14c86 100644 --- a/hacking/nix/scope/crates.nix +++ b/hacking/nix/scope/crates.nix @@ -1,4 +1,5 @@ { lib +, writeText , crateUtils , sources }: @@ -52,13 +53,22 @@ let # }; }; - crates = lib.listToAttrs (lib.forEach workspaceMemberPaths (cratePath: rec { + unAugmentedCrates = lib.listToAttrs (lib.forEach workspaceMemberPaths (cratePath: rec { name = (crateUtils.crateManifest cratePath).package.name; # TODO redundant value = crateUtils.mkCrate cratePath (overrides.${name} or {}); })); - augmentedCrates = crateUtils.augmentCrates crates; + augmentedCrates = crateUtils.augmentCrates unAugmentedCrates; -in { crates = augmentedCrates; + + isPrivate = crateName: builtins.match "^sel4-.*" crateName == null; + + publicCrates = lib.flip lib.filterAttrs crates (k: v: !isPrivate k); + + publicCratesTxt = writeText "public-crates.txt" + (lib.concatMapStrings (crateName: "${crateName}\n") (lib.attrNames publicCrates)); + +in { + inherit crates publicCrates publicCratesTxt; } diff --git a/hacking/nix/scope/default.nix b/hacking/nix/scope/default.nix index 661f47c97..4213922b0 100644 --- a/hacking/nix/scope/default.nix +++ b/hacking/nix/scope/default.nix @@ -119,7 +119,7 @@ superCallPackage ../rust-utils {} self // then "${rustToolchain}/lib/rustlib/${buildPlatform.config}/bin/rust-lld" else null; - inherit (callPackage ./crates.nix {}) crates; + inherit (callPackage ./crates.nix {}) crates publicCrates publicCratesTxt; distribution = callPackage ./distribution.nix {}; @@ -134,6 +134,12 @@ superCallPackage ../rust-utils {} self // vendoredTopLevelLockfile = vendorLockfile { lockfile = topLevelLockfile; }; + publicCratesCargoLock = pruneLockfile { + superLockfile = topLevelLockfile; + superLockfileVendoringConfig = vendoredTopLevelLockfile.configFragment; + rootCrates = lib.attrValues publicCrates; + }; + # HACK: reduce closure size, llvm now depends on targetPackage libclangPath = "${lib.getLib pkgsBuildBuild.llvmPackages.libclang}/lib"; diff --git a/hacking/nix/scope/generated-cargo-manifests/default.nix b/hacking/nix/scope/generated-cargo-manifests/default.nix index 35dd6e530..e39f50a77 100644 --- a/hacking/nix/scope/generated-cargo-manifests/default.nix +++ b/hacking/nix/scope/generated-cargo-manifests/default.nix @@ -83,15 +83,15 @@ let addr2line = "0.21.0"; anyhow = "1.0.66"; cfg-if = "1.0.0"; + clap = "4.4.6"; fallible-iterator = "0.2.0"; futures = "0.3.28"; gimli = "0.28.0"; heapless = "0.7.16"; log = "0.4.17"; num = "0.4.1"; - num-derive = "0.4.0"; - num-traits = "0.2.16"; num_enum = "0.5.9"; + num-traits = "0.2.16"; object = "0.32.1"; postcard = "1.0.2"; proc-macro2 = "1.0.50"; @@ -105,28 +105,13 @@ let tock-registers = "0.8.1"; unwinding = "0.1.6"; virtio-drivers = "0.5.0"; - zerocopy = "0.6.1"; - }; - - mbedtlsSource = { - git = "https://github.com/coliasgroup/rust-mbedtls"; - tag = "keep/6eef662dbf636d1ccf86078143b6854f"; # branch sel4 + zerocopy = "0.7.6"; }; - mbedtlsWith = features: filterOutEmptyFeatureList (mbedtlsSource // { - default-features = false; - features = [ "no_std_deps" ] ++ features; - }); - - mbedtlsSysAutoWith = features: filterOutEmptyFeatureList (mbedtlsSource // { - default-features = false; - inherit features; - }); - - mbedtlsPlatformSupportWith = features: filterOutEmptyFeatureList (mbedtlsSource // { - default-features = false; + zerocopyWith = features: filterOutEmptyFeatureList { + version = versions.zerocopy; inherit features; - }); + }; serdeWith = features: filterOutEmptyFeatureList { version = versions.serde; @@ -184,6 +169,27 @@ let tag = "keep/e1465a43c9f550ef58701a275b313310"; # branch sel4 }; + + mbedtlsSource = { + git = "https://github.com/coliasgroup/rust-mbedtls"; + tag = "keep/30d001b63baea36135b2590c4fd05e95"; # branch sel4 + }; + + mbedtlsWith = features: filterOutEmptyFeatureList (mbedtlsSource // { + default-features = false; + features = [ "no_std_deps" ] ++ features; + }); + + mbedtlsSysAutoWith = features: filterOutEmptyFeatureList (mbedtlsSource // { + default-features = false; + inherit features; + }); + + mbedtlsPlatformSupportWith = features: filterOutEmptyFeatureList (mbedtlsSource // { + default-features = false; + inherit features; + }); + virtioDriversWith = features: filterOutEmptyFeatureList { version = versions.virtio-drivers; # git = "https://github.com/rcore-os/virtio-drivers.git";