From 02773a4fb535922698f22b5ad365784fffd4bb82 Mon Sep 17 00:00:00 2001 From: Ananth Bhaskararaman Date: Wed, 8 Jul 2026 17:22:25 +0530 Subject: [PATCH 1/5] bcachefs: add Flatcar OS sysext for bcachefs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces a `flatcar-bcachefs` sysext following the shape of the existing `flatcar-zfs` sysext. Ships both the bcachefs userspace utilities and the bcachefs.ko kernel module, built together from a single ebuild against the exact kernel Flatcar's SDK produces. Files: - sdk_container/.../portage-stable/sys-fs/bcachefs-tools/: verbatim vendor of Gentoo's sys-fs/bcachefs-tools 1.38.6 from the main tree. Gentoo's ebuild has MODULES_OPTIONAL_IUSE=+modules and inherits linux-mod-r1, so with USE="modules" (default-on) it produces both the userspace binaries and bcachefs.ko in one pass. - sdk_container/.../coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools: the same SKIP_KERNEL_BINPKG_ENV_RESET / LINUX_INFO_BINARY_RESET env pattern used by sys-fs/zfs-kmod so binpkg installs pick up Flatcar's kernel headers correctly. - build_library/sysext_mangle_flatcar-bcachefs: prunes dev/debug bits and calls the shared configure_modprobe helper (from sysext_mangle_kmod) to wire bcachefs.ko through the overlay-based modprobe helper — same shape as the ZFS mangle script. - build_library/extra_sysexts.sh: registers `bcachefs|sys-fs/bcachefs-tools|modules|amd64`. amd64-only for now; arm64 keywording follows once upstream marks it stable. - changelog/changes/2026-07-08-bcachefs.md: user-facing note. Kernel requirement: bcachefs's DKMS harness has BUILD_EXCLUSIVE_KERNEL_MIN=6.16, so the sysext will only build cleanly on channels whose kernel meets that floor (currently alpha). This is enforced by the ebuild — no additional gating is added here. Stable and lts channels will start producing the sysext once their kernels reach 6.16+. Background: bcachefs was mainlined in Linux 6.7 and removed in 6.18 after Kent Overstreet moved it to a DKMS-shape out-of-tree module. See https://lwn.net/Articles/1040120/ for the removal context. bcachefs is pre-1.0 for on-disk format stability, so this sysext is opt-in (users enable it by writing 'bcachefs' to /etc/flatcar/enabled-sysext.conf) and not supported for the root partition — matching the ZFS experimental posture. Signed-off-by: Ananth Bhaskararaman --- build_library/extra_sysexts.sh | 1 + build_library/sysext_mangle_flatcar-bcachefs | 36 ++ changelog/changes/2026-07-08-bcachefs.md | 1 + .../coreos/config/env/sys-fs/bcachefs-tools | 11 + .../sys-fs/bcachefs-tools/Manifest | 154 ++++++++ .../bcachefs-tools-1.38.6.ebuild | 343 ++++++++++++++++++ .../sys-fs/bcachefs-tools/metadata.xml | 14 + 7 files changed, 560 insertions(+) create mode 100755 build_library/sysext_mangle_flatcar-bcachefs create mode 100644 changelog/changes/2026-07-08-bcachefs.md create mode 100644 sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools create mode 100644 sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/Manifest create mode 100644 sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild create mode 100644 sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml diff --git a/build_library/extra_sysexts.sh b/build_library/extra_sysexts.sh index 13eaafcfbb6..b558de2618b 100644 --- a/build_library/extra_sysexts.sh +++ b/build_library/extra_sysexts.sh @@ -1,4 +1,5 @@ EXTRA_SYSEXTS=( + "bcachefs|sys-fs/bcachefs-tools|modules|amd64" "overlaybd|sys-fs/overlaybd,app-containers/accelerated-container-image" "incus|app-containers/incus" "nvidia-drivers-535|x11-drivers/nvidia-drivers:0/535|-kernel-open persistenced|amd64" diff --git a/build_library/sysext_mangle_flatcar-bcachefs b/build_library/sysext_mangle_flatcar-bcachefs new file mode 100755 index 00000000000..da9ef064cec --- /dev/null +++ b/build_library/sysext_mangle_flatcar-bcachefs @@ -0,0 +1,36 @@ +#!/bin/bash + +set -euo pipefail +rootfs="${1}" + +DIR="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" +. "$DIR/sysext_mangle_kmod" + +pushd "${rootfs}" + +# Drop dev/debug/initramfs files — the sysext only needs runtime bits. +rm -rf ./usr/{lib/debug/,lib64/cmake/,include/} +rm -rf ./usr/lib/dracut/ +rm -rf ./usr/share/initramfs-tools +rm -rf ./usr/src +rm -rf ./usr/share/man +rm -rf ./usr/share/doc +rm -rf ./usr/lib/pkgconfig +rm -rf ./usr/lib64/pkgconfig + +# /usr/sbin on Flatcar is a symlink to /usr/bin; shipping a /usr/sbin +# directory in a sysext would clobber the symlink at merge time. Relocate +# anything the tools ebuild installed there. +if [ -d ./usr/sbin ]; then + mkdir -p ./usr/bin + mv ./usr/sbin/* ./usr/bin/ 2>/dev/null || true + rmdir ./usr/sbin +fi + +# Wire up the out-of-tree module through the shared kmod helper. This +# installs modprobe.d entries and a helper script that overlays the +# kernel-modules directory at load time so bcachefs.ko can be inserted +# without violating the read-only /usr guarantee. +configure_modprobe flatcar-bcachefs + +popd diff --git a/changelog/changes/2026-07-08-bcachefs.md b/changelog/changes/2026-07-08-bcachefs.md new file mode 100644 index 00000000000..3bdb9226857 --- /dev/null +++ b/changelog/changes/2026-07-08-bcachefs.md @@ -0,0 +1 @@ +- Provided a bcachefs Flatcar extension as an optional systemd-sysext image with the release. Write 'bcachefs' to `/etc/flatcar/enabled-sysext.conf` through Ignition and the sysext will be installed during provisioning. Ships both the userspace utilities (mkfs.bcachefs, mount.bcachefs, ...) and the `bcachefs.ko` kernel module built out-of-tree via the upstream DKMS harness. bcachefs support is experimental (pre-1.0 on-disk format) and bcachefs is not supported for the root partition. Requires kernel ≥ 6.16, so the extension only builds on channels whose kernel meets that floor. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools new file mode 100644 index 00000000000..0fac479881c --- /dev/null +++ b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools @@ -0,0 +1,11 @@ +# This addresses an issue with the kernel version compatibility check +# when installing the bcachefs kernel module to /build/ +# (e.g. via build_packages) from its binpkg (i.e. not recompiling it). +SKIP_KERNEL_BINPKG_ENV_RESET=1 + +# Necessary to prevent KV_FULL & KV_OUT_DIR from being unset +# when building kernel modules for sysext. See also eclass/linux-info.eclass. +cros_pre_pkg_setup_kernel_version() { + LINUX_INFO_BINARY_RESET=1 + get_version +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/Manifest b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/Manifest new file mode 100644 index 00000000000..694e8022a80 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/Manifest @@ -0,0 +1,154 @@ +DIST aho-corasick-1.1.3.crate 183311 BLAKE2B 8dfcbba0b9d94e55eae739b16f5c6474baa43ee7854c5ca792f426a9f46fb0eece79cd493b804e51449181bcad338b96819fe977c02c9907654d713e26b9f830 SHA512 ba422a54688c4678fcf16e34fdf3ed06c333e6e3fc8b75af9272a215add494d43ebaef319021134b61327fd5d3572aec0dc655b714ffb3bc71ba3c265c9ebb69 +DIST android_system_properties-0.1.5.crate 5243 BLAKE2B 86f68ec3bdabf8c6ec47881d794970f08a9eefc7417fc8a2bf4fe9faf9bdd2a2024a94adb0cbf96673409f5fbbd4d0111a1ac371339e7a90a277b6cd5003524e SHA512 b09f51339f9772c0e2e4241b36cf51573c6b96b19ffc1fbbc94b1c1d1d2fdfe8eac3134af54174a675ab05d18ef4f6bcb2c7fcc20114bbeef6e17e3692202191 +DIST anstream-0.6.15.crate 29231 BLAKE2B cc4cf0f381c210fecc20b5796fe872b533419e5f957021b0c3be3cdc23fb84ce029fbef6f9b6f174a76ad713c07f0811145a70572de7c24cfab060fdd990f49a SHA512 1cb01a0293b4c9bcc010909707e71c464416d3ec6fc9789060b7aa9fe4cc04424fefa8013cc8765ccdae6dfd9a1c50a11f7b30b39a32c4aeaf525f28167ddb92 +DIST anstyle-1.0.8.crate 15771 BLAKE2B c039613e7de27cc990e5764810f9351754b160928a8954dc19041354cf9fef1422ed964237a5d39d16e4e9f8592ed52c523ccf36b0b5506f464d4f818f3332ff SHA512 3b867f73df0b2f69a0c7d5d6e62c7515045e053656afaa303e5aade8012e838cdf5d15d2c3d7c297db9e297d08ea69a9c8eed04b97922a83f56c58962c1c0b69 +DIST anstyle-parse-0.2.5.crate 22680 BLAKE2B 7473651b1eee08857a6ed1419d3d62ba4b9a9aa0d6657965ad9c67bddd793d825737d3804961716a89bdebed9879ac43b42c897cd229c6e7bd780859e1e3c247 SHA512 cd94ad0e88ad4547a660da1473bf4e6dfed805a066782124204143c7f754c12db719bd3a1774c299f1a035740bfc4830919da191bd14e0acede410f6dbd1e2ef +DIST anstyle-query-1.1.1.crate 9891 BLAKE2B c298114c1864a5233fb39c365e079a7f1f4ef23499dc330e5deb06f83f27bc727015befef79075c7e39952547f799b4135d7db287cf72dfc914191df784a4989 SHA512 1b2e888f025142a0d9b01314cf083831a2a45d8da737c1be3a6a9aa177e73e0d2ae7999fe7610dd450b7096115e8cf38c5da23723cebf1deaa7d3501d3dbd5ce +DIST anstyle-wincon-3.0.4.crate 12234 BLAKE2B 23294d6ed7715c55c8f796eb7b860450c57b22b57e32a5c75847f2e2bd68a52b33c24797db662aa5fd7e799b9644075c8c939d93b0cf8598b16ee80fc817b77f SHA512 24b3a9a44382609ad449425a657d4b42a792d4703c36e0953f09a03817759c266a2f0ff4ecc9e8b93ea8403df2badef1f1af6a6e50af56205176c41b13501ae6 +DIST anyhow-1.0.89.crate 47078 BLAKE2B fc824e72891bff0cc7aa3b538adfb9af7dc843ab6ed12b8b04eb70e62d32aae1decb9090621d3245dbe89841e73080d2d86973b4aee50873e798956da9b3faa6 SHA512 3c09317089ed78601a56c626700d12c0b49396e25fed9a9f05a2dbfbd6f91ad426c430633006a4043decd1f70a85c161c4f8dd7de0e4c00b82a169b89dda8da0 +DIST ascii-1.1.0.crate 36075 BLAKE2B 7e68e7b3d5e6aef132c52db8c078fdf2e70462d9238b637015d7964312737fc09b35719143ce1fbd3e5b8072c21717f33e5061adf4da1913a9b9f11ac9c453ec SHA512 d74982ad87796f0d745bfd654450dc74174fdc6aa2a0047e5d250f76dd6079189dc0f05d02a73a85b1d3a86c163524d1f43f5d014de0153cd69fad4de26cf0ec +DIST autocfg-1.5.0.crate 18729 BLAKE2B 27580e39b366c6fca02c9db09997b6415c409f12068f1249184268bf96fd85ba659e25ec730f99e10caf452f96c486f3d7442bf09c4552b5f39519b21d6f88cc SHA512 f279856f234d39d369623576acf9546a1ca24d7fe449f36d4fb93ea75a7efaf2c4015b9616a69bbbed358c5e5882e16b045352f046aa4c049b3d13b1e8257b08 +DIST bcachefs-tools-1.38.6.tar.sign 833 BLAKE2B a5fc90361e553f12052b428521950468fa4548cb60843b4eb3f8a1b60d5ff156232955df23784ae7d90f401a6a5cb57aa236527789a9f708df3012d25f8a0e49 SHA512 58ed1431565e655ef626a54e1835eba12f7ffee8d93794f363d87c774b2a31947e3f0f31a0c51945b21bca519f6235afba3f54964c7af767c0ae61a3bc60de4a +DIST bcachefs-tools-1.38.6.tar.zst 1814369 BLAKE2B b7bd99f981f8426a06a6ba9dd4de47acb39716316cc949f6924abdef1a84153843e4178e60db50bdc57f05984e52988665c6a87bc897df7e9fa27fe92a7f8fa5 SHA512 df6e54fbff4d2252195dd17ae7f42e40e386bd18b01c1c7bd537e2cc64b182f7e2a0bdd073374e1907da12389fc536beac453430f299626d99c5c2709ad51cb9 +DIST bindgen-0.69.5.crate 221128 BLAKE2B b89edbf883e1bc11a074c2f37f84bb966749823a6408b9765d6a61ee1179451d67dadde41d27838e8ddc6172dee9c342429f42fbe6959ff9fd7dcbc73d7506ea SHA512 b232b906af7535f8b87198f0a4037a0f09af367e0c913575f3d16453a2c272e7d76033cb3fd12d4223ebda4a0f8130629e67c5883e026a2422db3e0659ed3c3f +DIST bindgen-0.72.1.crate 246071 BLAKE2B b6db53ca86fa3b5f71abbf6d2fd5f83553e167507db2e869ed7f3acf8865478e49430eddce8c255a8fabf8f6e408e7dcc78a9088201cdeea1e48bc387f8a6f28 SHA512 14f4277b62cfc91661400ed1bacb82a9f28b7e6caa17dd4bb4dbeedd5784299d5915c2235af9da42a8a216fa0b14b49f1e38eaa530f1e906bcd74f864ae8a7e2 +DIST bitfield-0.14.0.crate 16776 BLAKE2B abca546581d912133e7344f049d93b8d793de323eba7780fab162c53a244b845582ec2bd14b529b9491c363c2da6228b7de58407afc554cc718a9df8370f5535 SHA512 703d534f0684b19af68a18048ecff37367ccbe5a52a3e8d987f2420b980e4a20da9640019ca610b1a73841cbe45dbf4d6a1cfb10cf0e7d09f53199b1fcd141fe +DIST bitflags-1.3.2.crate 23021 BLAKE2B eb990bb27b2bdeb66fd7212ce582cb36e1c616debbac85df642d0c82b25439e6bf9b1e811fac76b59e58ea3c1bbea6170d03a61e8f9a395e4334a0e2e2987eda SHA512 3c698f757b5cc62f815f9a1cce365c3d2dd88e4db71f331dff8bba86c2865f755b81cb4c9bfc59bd86b7643b0943f9e09a7c4f8ad75eb2ab0e714803d0129f62 +DIST bitflags-2.11.0.crate 48906 BLAKE2B 35764719b3070c5f9b51d35297803306ce01823ef07d720e5ea5e112c072b45c4d497f6b63285b1a0fce2842b1468bc252b00564c2ece14211d2af2cd26c2faa SHA512 d6c0de6c06ed8d1249dd69de035dfe5b23d9f1a8fcdc7535756622cf660807c5e1c692dee1ac832c06be1ce41b225e3d60f36be4d1896bab7d986d18946f6c48 +DIST bitflags-2.6.0.crate 45357 BLAKE2B 3a368bd2eb58c095b7b4a46680cc2d90a28e24b2e37c854bbf8647c861c4b8fb37eca827599673c5c7df763048149dd82123d1ede1f8a0e58a6bc23c8250f7e6 SHA512 f9bb3c48931ed7e7e05ec6d13305af5da6b6c18861ff307d7dc17c658f63972c87b70b0527287b3625c8592befc207cfe15550654995faf3862bb12a6d95bacf +DIST bumpalo-3.19.1.crate 96477 BLAKE2B 8716eecc9918c69dd07d6840f9b55114e290de053fddd11c187e11fb396d8a8825422378ec7a2e131674546d158b909a1a4c3e29d52cf3ed001658333c153807 SHA512 105a84bbf8c2b8fc130055713eab7b598c67d34ac01fe95b4c9f10fe956130870c0d12ac237c5dad3a44991a1b8611e5028e749024b6497d6b2f8a2702a4f655 +DIST cc-1.1.28.crate 84424 BLAKE2B 9d617066957c9aa8d3ae86943be8494551624e34d8b1060d86959751fc3f874ef6d83c78235a7905e12ed72c16bfc45666fb36172708c3a53639c99342d34edf SHA512 98571ba96e7967579b70988d9308c8d3616cb1940b84c0d7dbeae837bf31c5a62731fa369b8b9d968ca843638efc7a9791ab76c3cf06deed4348d9d853ddacba +DIST cc-1.2.55.crate 93756 BLAKE2B 559d6dd3524897ccd371bb806a181c43a3ce79e21c9978085eaf7e131d9bc2b563b59eef5c06f9b50afcb75ea8a8f06be4b48b7276fe2bcc20b850cd5331b9ed SHA512 51b047f6690aa618466157bb16ec0cd3203a3a7229ca51077d1b0c37cd2059318a113639c7995b82dfb2ef9272a338cfcdf61843c28000450c5044eed52a5dfb +DIST cexpr-0.6.0.crate 17966 BLAKE2B cb46f066eb1f4dbac00ec86dc3e562db7ee8ea5ff17d16a60004fa020405e455b8aeb3d001f669cb33d1b62525bfd04ec657ffca4ed44a83af4a5e75b2c820e3 SHA512 766bff7ca7f9bf0885aee6f014bcfc084e7fdfcd567a49443d5340acfe8f257db109de17b24588504fc35c53f2d4303e2d22da21f73669125cfca984950cf886 +DIST cfg-if-1.0.0.crate 7934 BLAKE2B e99a5589c11d79d77a4537b34ce0a45d37b981c123b79b807cea836c89fc3926d693458893baca2882448d3d44e3f64e06141f6d916b748daa10b8cc1ae16d1b SHA512 0fb16a8882fd30e86b62c5143b1cb18ab564e84e75bd1f28fd12f24ffdc4a42e0d2e012a99abb606c12efe3c11061ff5bf8e24ab053e550ae083f7d90f6576ff +DIST cfg_aliases-0.2.1.crate 6355 BLAKE2B a758d9c88527f0e6e7cfd6d4c83eda1bcb4d6e2438189fe08e8ecbcaa78d56afc5a4873f3b82bf7da96afd690b44cdf1e44466b6da0f37c358b340481017103e SHA512 74969d12d5d24002a29e08d52e30fbce014dd481a7c35ee0162e69333c5f2d7755f3b02439b31522e12444cf1ac8e65880ce33fe6778dac03757e362cbf8a72c +DIST chrono-0.4.43.crate 240392 BLAKE2B 7d900703e48061b0e5c6e0b0633f2d55e4fe012786149d258e38776eb39dc57a153b7475e56c06284d7926c20cd1b95fb741662b4836920cb75aacd12a094b59 SHA512 6c0c5548a22021c9219ff63e79c60b20aa0278718b7038a83e247d89b5dfdca63222f27d24b40d254d5f1a44bba0f7a49928736ba3d38e5d940dc1a3ff9a86b4 +DIST chunked_transfer-1.5.0.crate 9779 BLAKE2B 5a26e784e9de06b8026edd56685d9767cab5cbd25e787f642c308be944194d78de5a38ca061b815e234952008c4981d68f591780ae9dcc0d76693857dffda3fe SHA512 e4888b19e7e650889a531e0e07f4d724826f5fb78c9c05966f066ff7898ef8bb1280f89e9e7951914b7b52fc0e831bf205b7a4813bb204989f2f72adc5868975 +DIST clang-sys-1.8.1.crate 44009 BLAKE2B 9173de6dfbd3ef9d5d1fdc559700cd3a52f95cd77302063a97e8cf311a35825825e030b47f252c857853663ae8a16709e1f7bd0c608d67c2a74eb36ed588e778 SHA512 a68c426c20110fddb8bba07d6631517b0528fad45802e5a34a22561d7e6dad82dc5001387019a03f275e9a671b09ee0a06b6e86793c4fb4ec655700bb0f5e125 +DIST clap-4.5.20.crate 56376 BLAKE2B 8efa9c3e171ef38c98a25c526f528629e7e72850c6ec27e7e89a212403ee90d7d005b00750769e4335423ecec1d86abb35c19b0bf7f2c063bc7c6a8bd59d6804 SHA512 e432a118a2ec15b273a404c3cb75bbe579b11034ba55def1823d4670c6553e3d8611074a24f50a0f4adc8bda184213b06106c44c68a19d267342c53e345351d4 +DIST clap_builder-4.5.20.crate 163812 BLAKE2B 689110f2e4f46e8c4c779b6c39cb5f5758c3a32ea5bbfa1faaa6642da7d650cac0827a3e5b503c5054a85e0e7dbf04e7c53d65991a45f3be90c75070cc9c200a SHA512 e914c8b6592f9d230b4f4290cf4b4d73d0160c12a1fa3976c74bad21ff16da532d6af792f0a33fa472166f1cd551291b5d1d71fe8b359040040418694ec52000 +DIST clap_complete-4.5.33.crate 47470 BLAKE2B 7d97949397aab211f786a0141c6d6f40268c03c2ecea5032522aff980c217224a25c0139e1345e6b3dc67670fc090d7ddf7a53129b06d281ee6fb144ec8ff43c SHA512 71aab57a9c80ab6169250d056cc2177e2392d2caab1cf123eb36faa39d83656f306c43afdd00b95f6ea39a1d471549d1422be51694fcbe3cb9bb1e77e4d6308d +DIST clap_derive-4.5.18.crate 30131 BLAKE2B ff962e52d8d8afcc9639365e27753c6c6943fd809ef89d9e555e8be5b2f13efa650bf1f9ae451f4c127c1529a0af1d892c3b02153b46deb912029b45983e01cb SHA512 035bb918bc7e9badd59341560f23e3a8a2e7cf945b6d8183f74052c4edfcbecf07c9ea6fce0ceef0b84c89a99d62b11760af39398897e4ee7dad0170a96cfefa +DIST clap_lex-0.7.2.crate 12805 BLAKE2B 952bf3f3885ae7bedd0e8add236590da5fce72a7ccd88ebda063410aef337ce7ccdb5e5e929cb870bc993891610edc0197150a3aa82a62fadc4bbfd96324fcdf SHA512 a8726397e5372fca3389748efdfdbd016b6baedad5b4bd95f33e4e820d4f40e0b94c88b1918ded3678aecf23911028e2261837e73d58ba7fd6f091eb47267380 +DIST colorchoice-1.0.2.crate 7924 BLAKE2B a4027d5f870b4d9a718ac3f9d89ce04e2ed38406658c4a55ffaf39ed0cb1ce7e1c691eb56c66596b519ca82309e8ec7eebac65e69394cdd277f44f9b6280d560 SHA512 f34d5f66f84e90f473b6b9a62a61a59575e712d3e9b140324683f80af42d40c1d079701aa2ed651d0dd95a5ac8838e1f6f6c034e2adef79509d32357b8093117 +DIST core-foundation-sys-0.8.7.crate 37712 BLAKE2B 0e1dd99a5bbb0fe92f55181a37426f6e86445cb20e355f553b3162c88ccc075644461731a0cdcd93dcca65b6cef1de62b409afbd73ba3070a199ab8e7422dcfa SHA512 17492d5314db03abdb3b1998bf0c396ec8ed0f83bc978ae22d6026afdc86c50b58cbac073b3a0d97b92da7e98be11302faf1249d24313494bc058add4f4cb63a +DIST crossterm-0.28.1.crate 132275 BLAKE2B 30a5bf5b48a4bddbfb53726b675adfdf6d64cc387e027a69d6ab721f5ebe574abed3a862504f0db723a733662fbf0ed13163730a7ab49ac9c7fc05681a3545dd SHA512 0d53e328eb606cabc3e309cc6193b34a14c8746081a7b2c9645c1c03d66dbcda99656d629c0dcfcd43bada7a863df3e83fded6b642b2474035165ed7b16f7931 +DIST either-1.13.0.crate 19169 BLAKE2B d6223c76421babf163a694aa513fe07adcf4cea329872c02f5af5956e89b2c353a899f5708e5a2924e5a92d871ba748490350ba30c17dcd78dd4379e229f6e11 SHA512 72e803079bae621d282136ab1e423ba71415bf12038b6f386f294cae68a67ad9ff16e4fdf4344eb3fee4418e853f9cac344c248f6befa3006d1c954668b36322 +DIST env_logger-0.10.2.crate 36402 BLAKE2B 34ef02d0f53fea474e7284fd7021ed3b44b11be2c0d0c9a66ace8792bac74d1a6b43997e0e7d043ef89e14903f6ab6d42c169bbb164f05cfe4e1688611639edb SHA512 c44131efb703eed984d8f4edcf18c77ef14036edf013e8bf445703c74a4386e4c3f4b55a272490da1ccb47a692ccde4670772c74d35c5723601c870416144b69 +DIST equivalent-1.0.2.crate 7419 BLAKE2B 7ce4fb7b911961cd4ccfb48323eea4952110a069789c6bd177a63391c270df861afadd00c07db7b22768f0864f320e429e0200c433284f528336e2f81d071eff SHA512 8e0e2dc070794a85b276e93f9e4a65d3bbb8587b33fda211c34479a0b88504c913d8bef9e84d7996254aeabe1efe4ff1ef6259ff4fe3f9ccb90dd90070b3e4d4 +DIST errno-0.2.8.crate 9276 BLAKE2B b73738deb47d1f76ec91ffd15558126d32312647b82677290725669edb01b8f34a503172fad6518ebf0ffb1633ef0afaf0750982b9384a9fb87833d31721c9a8 SHA512 1f513743224cd9a9b7e4caaf33dab075a4a79efa90c9f46c9edfb0c8600daccd3ad2677ba2116621e19fcf8be456954da5d611cbcea4b6f1410f7731828b50d1 +DIST errno-0.3.9.crate 10690 BLAKE2B 8deb19cf0c830ff2adebb733ab961558cb4463f256604f9c76d5c5952f34a79b70dce47e28f68f459977ef34d4821ab5d0f7e79a7a110693700f80b49ba56651 SHA512 777fbac5730d420d58275ef63b7579997d8e6c72106d483ee1e3b1f1ce3977f1f66c56870a05acaa4cfacacb820eaf963e9c763748759cff3668fa2e6f89f04a +DIST errno-dragonfly-0.1.2.crate 1810 BLAKE2B 781fc26dce5c33d83b9a1fd9be2b2ce9ac2559aaa858957ba6777e143b1e44cdfee48e1b47e3c91a95075a51921d1a421d0b45eb3d8de827cf4dd0ad744a7d8c SHA512 f853f1e1b8dd0f359a8f9a0399b3384c1103cd090d96e2b2204f91a40d40a9eb99383d4aa6a11e5470c51557afacf452d4be2049600d4235d27f59870fa3b916 +DIST fiemap-0.2.0.crate 3081 BLAKE2B 59a792a55e0aa497d61097e6e92914a4bdff0fead869b2dc8df6838407e6d4367aa81a3bf6282bbc5eef326c8ac7e4b8b2499c592efc918ff2f49757c406ca30 SHA512 d3ae902db2fd144ded5ed03f017248b6a85d048e552b5a274854fbb162c374a88f57e09c7d05247a5e7e472888ec433fd1dec3e3c69ca5863ad11b17449091e4 +DIST find-msvc-tools-0.1.9.crate 31493 BLAKE2B 4137592addf8b58f4e4c02be537a72b132b38cecc1c263c2569fe40e2cfe4377e7141679f32661f44ed467cf9723343ab13732b3d6f4a2a84c610d0958e7e30b SHA512 729b3c1c1d520dffe5d88fc8b58e47fb7e86dc26e568fc317eea5ca8de0ee953fbafaa20ab34a6bfb43173bab39a90ff6954c11dab8d545e902305dafc8cd3de +DIST fuser-0.17.0.crate 117808 BLAKE2B 5602da55f39d1396aaaab64a99366beff50bd9f57743e6d8bf1aa4fa5c19fd8179a93ca9461b667e7fc57be852ca4b4245b03236b09db8fd16d17227fd970061 SHA512 83bbb9a34d0c65c9f11002889f53aaa88b76b64bada7188d7168d8d6dbe1a6c72a1afb4e61d65ac6e5c65f1d55937e024e8100da6221e8af1e59b441843cd1ea +DIST getrandom-0.2.17.crate 40780 BLAKE2B 49168490a12561828bb324273c1a2dcb98017577f8500fe08a8bb7c3accc37afdc459af264da7b95a4608e53c4edf8fcec3cb240741b2ee7b128012fab975ede SHA512 23033dde606eaeacc0557e21b3c5ef732e083b17ae086dc95ac7d1a8bc1b695a9a6a7073b8ae774ec62e7477a8ea0644d417fa5da7841a3c8118694c21813d1a +DIST glob-0.3.1.crate 18880 BLAKE2B dc89b3a664e810264dd7a01ad892e865ce35b504bfe5dba12d7ea8084da7de84feaa94c2208f1a1eefed90297e552636ad61ccebf6fc8cb4d01f27d605ad0a09 SHA512 29368160138bcb7ea5660f9f30c5711cfca8bc8ba836bbade3fbe8c424e7b4118daf27cffa677962e37e36f025fd2bb5a9c2aea865b0ff155cace455dfbb658b +DIST hashbrown-0.16.1.crate 147785 BLAKE2B c506e64340b65fb462545c52e85a192b21e33025c91adf1d8255e799e8a5743814c60be971db56c0b9b1208dff8147ed4a28d8e37caf8f5646fd367d8d0bc9d7 SHA512 0739f1b2101488f88778e221d86738ce557b8ae12470e2a4444099eb90d876382030d00e789dd4ee44dcd7833a87a6e570fa11ba5823beb1cab3a56784ec2669 +DIST heck-0.5.0.crate 11517 BLAKE2B 5365ec43b2239a76b33a174f1a4292ece4147f9d382a68c6c60db78fdc8bad0afb1d51a65bcb25e96675372faa4ea37c318265030b0546ba51942f7c929e1835 SHA512 f044fc9c3d22466629fd8f772ec0555350fd611c0cfadca51d99a3d2f10e155f77c1091916c8a95a6b9b499f366c2e99a5fbf45b010f988bfb9b2501bf9f6a76 +DIST home-0.5.9.crate 8760 BLAKE2B 02277a6d0e54a88e62a50ceb5b50b08cd5dc1ca5ddc17a799db0f49a17fee8560df53f616ae22cd16020ae2a89ce7c6ec22e5e2c0d513405bc2859a6e3ec61f9 SHA512 3f1f7b619f1a47694cda92321a11d66ebbb2dc0b0c33446a7a4b886f547ee88231b61c038de04bb82acd50e617f19b5085893b8401206d32cd54502033e04bf1 +DIST httpdate-1.0.3.crate 10639 BLAKE2B ce0b401c69f76252639c10f6c2e4a823574a58565d7c5cc3633c72837aa4ec3630b34b148de4378ec498db196e3b2e1413ca0e5a4d9247855380fe19a8c20f94 SHA512 0586888fe89f40b838d5ceb083084d0b8058feff1d2933faedb96896dc86eec68b541a0374a508fd11b86eeadab3c62f88568ffe2c53206fad438373a50b2e5a +DIST iana-time-zone-0.1.65.crate 34079 BLAKE2B 4d84dd4655dd42ed9cf49ed8d93d0ad244f42433faa2894a1f8240a49f65021864e8aadb816d5725984bcd5c1a6e8e1ac210b50751e3af8b3ad2a61421a74e4d SHA512 4443d5a01ef4b10eb27ed8c866ed71619ccb594dee81a0350106f39575b9373c6199d925b92112fdf0aaa20f5d955d09fab1867dc1b4cba2841c713d40cde6d6 +DIST iana-time-zone-haiku-0.1.2.crate 7185 BLAKE2B 37fa14b589ff092377b9271c414d4e584c5a531f13f70ac48df26df3cc03353db635b4630ba192fc65b800cce11823e91b91f03dfad85e4bed55aa18398156cb SHA512 448224ecafa935472ff6f0aab7cb71f9dabdbe71569c4b94fcc65baea925ef48841577687c9a31106a1826c2105e8dd73c748e9d27fd002648e5b0ce838af6b2 +DIST indexmap-2.13.0.crate 102206 BLAKE2B 7f3d070b645741f5960647f64759840b1941c1e28f61ee04d44d7eba0d8f600949cf139bec5fddb1507e4d5a9e12fb709a16415aa014eaff8f5e87cce41a9394 SHA512 f5efe0010603a3f1da8955f5f97c9a39e4d2c5042c0829c057ad739687d990c100d1276022dec23e7cd70efecceca07ad735693bd8a1b21b507b8892110198ad +DIST is_terminal_polyfill-1.70.1.crate 7492 BLAKE2B fa663f858ab8e5fd56202d731b572bfdd4ab0e8262100424e27360a9ffd2820182bc57d6718a305ef82d04c3798111841c0d9f9dcfe219765c0f63edb560dc1e SHA512 4730fa09401cb4e69c92b38b2b43afd74699c61f5bd7b37605efbc0c08ca7a1318d43e4a844e46e0f84f83f42432f01e33771be2b18eb5977702ab9f894837e1 +DIST itertools-0.12.1.crate 137761 BLAKE2B d7db67feb7418d6a779dc17d8a2f33481114cd81a4d53a10cffe08e13f0d3cf4525a5ef43368fe979d5a3ce230872eaf993f7065885531aeb5a6479351857708 SHA512 0d9c1849dcc0ddf7555b0aeb7e4f2ef3b101cfc6f03310ce1b6072d70ac8c8d3387ef4c726146102012e75171e0b0bf13465704b6edfc02752e349dc6af7cf68 +DIST itoa-1.0.17.crate 15905 BLAKE2B 105796a6438bfccbb4676cc0beefd89abb05dedf077794dae48dcebd63cc745bfa4664c0eaf7bacaf989ea9051c98703e7ce85683f5c8c234fd1639c391aa3fb SHA512 4f1b09fd0152a8c837c40045c46779c992b8b5a4737565b8ce3a92bf2fb884bc6609bc597c2b54c33855bd108311adf46471b5ed5ff7ce32549b8c72c8119c04 +DIST js-sys-0.3.85.crate 56436 BLAKE2B a5c35cde1d01b7e5eac3bf59f360e9f8b418009a3b30c81af850a181f14596fca25a4cacec213844b4d59f9ac21e154531700f223fc6e3a22047a5f43833c6e9 SHA512 dc7361feebd63457e0e3aafac86653297994004bc61b3734d1b9ffd05312c2c9b2a2708ad07ad469b326811598925b7f07e49fce2e7c611c8138210bd70fecae +DIST lazy_static-1.5.0.crate 14025 BLAKE2B df29e0e3d1c061815bdd608b41074436024dc407d454f32517705ab04b2fe06075e310086c5e4961df0b4885e91021589d0bca2c1cbe6f0aeffa3ff1b3fd4637 SHA512 6d2f9887cd7f34f019644e42f02f2bf0111accd73aeaa60973ba0b039b6774670debece1ea9a6978e923208ef5d3ab7326473ee3560c078817f0f7ab8ed0f65f +DIST lazycell-1.3.0.crate 12502 BLAKE2B dca2d3f46823a52dcf87b7d6103fc4f1f83bc5247ce361946ac2d9df239fb43ce4b418104503698dff0242480cd014996e77da4ae0a88f3cedbce4eb9d3c9ef8 SHA512 f9d627afc28b61e9687a3f72260eb013401fd64057647641ff2e763770d7380ab1d2d8cbb4a3c8818d53d504c618a3b46aaf701f72f4d7b25d226042824c2f8d +DIST libc-0.2.159.crate 755366 BLAKE2B 70f46eb6228b4a8958dfbee00cdfa3c7d218f30d66c8591f4ccc9c5d8eda411d83ce9450552384ac4bc29deb2869561a2111dd157c9f228f617baf8f6b537bc4 SHA512 c803939ceea5ad9bdfdd122726c7a5f12ffd8b0cb66cf0bc62c9670e1e5904a504def388c1e043c520f4ece484addf6dac465aebd58578aa6b79995077bbdf9f +DIST libc-0.2.180.crate 812207 BLAKE2B 086681e1f488aa2ab8a477655e01bc27dc6c578fbf9eb2bb429828164825a5d450dee9bf1bc38afc8e1be5d849eddf384db75b9f4d3c64a0fde6cc37919c1b80 SHA512 5427ac2a7c03d02f14acc66c3a187fbb4e336a88e8cccf7f8281fe95f958b845c0205ec47aac2f6ba6ab8b8c4b5cd0d943205c3f78ad2830d44c3b7779c317ef +DIST libloading-0.8.5.crate 28902 BLAKE2B a0fca8f8876092e874964b3dcbaacd417451704fc1d687669a95a0b9df22ccda73a754118ac0bd706a7c7d86e4eceb2ad012e20e341d71548b34ea8d629bbfdf SHA512 f332884fa75cf210460f4678d45091345b23469c09301614c476e95bc54163afd6d4f098a34f9e0d529fa1ec63892395b50957598070ff327743e4c3b0871074 +DIST libudev-sys-0.1.4.crate 6177 BLAKE2B c513b5cd68fc60a7a33ba281e4fc4f9a5896946aeb1fe31abb8af22d279c39c3d781fd34109f98fd010fe8aa817b9d91726887f0ee8bf0f66a3bf313b01c9ff3 SHA512 185bd84a729a5dda6fb274584c7a731652418da9435d844870a9d09662918c9230287f4ad002273599d0a3e9709a36ae06d59a6686dfba978fb7cd1c51bbc2c7 +DIST linux-raw-sys-0.4.14.crate 1826665 BLAKE2B 804af73daf396bb20da14f831f26ce06325181de14f0c277350bd22d21789f2bdd663a964cc0e7c5cbd2e084285d02a401a6bfbb3e8a8f079c120f9488b56f99 SHA512 28149660bd975ede05624af3582d5c78f498239f5d89713c2c32f5372fc16f4ca024dec35f81ea973a2cf986098890395dbda06ac6cf4ee29df3f9a0e11eaea7 +DIST lock_api-0.4.14.crate 29249 BLAKE2B 52d2f3a3eb5c3cbb4e7f01a2932f90200e3361155f53f282228f436211c54d1e429bddfd9e305a78b9c26b022b3234ae8ad3bee209bd4feed5b64a86af5b3d85 SHA512 73164d411c9899323b3bbff4fd6824e2b9ff44971ddd267629ae5a70b456c1ca945716e952412790d35331993ae71600b0e6a2aeefcdda117b26a7222ed97bf0 +DIST log-0.4.22.crate 44027 BLAKE2B 831dc5092db05123bf2e909eafa708339983edece9bc8cb802f0ab418d47ddc5045a72c1b58bc7c46ffa68080eebd0fd55d6e4f5b3d5ad3b0bc6b2ea0dcaace1 SHA512 bd7baa9c8a5523fd0864a53bcde955d484cacd782412b5b02c890b89dbf62137624da3a27337a310dd8f62bcc6606925a42bbd4ca161a3b7936ea4ff96bc0d71 +DIST memchr-2.7.4.crate 96670 BLAKE2B da38114beca670467c3e1fbf4e415af6f22d52e3223715d52e181babb89b872b46511563985bcc16d7ff4e82f812c6e83ad904b0fe2501b14445119dfa8240e6 SHA512 8d0e8b9c30208897d4b1b920f1bdcccd0c2b75d92a06abe4a1b2407938768abb6487d63de56c6a80419798fe69517210643dfaf11f5f5540185f0eccf220adb2 +DIST memoffset-0.9.1.crate 9032 BLAKE2B 0aab55fe084134bb599c52d77c96400db40949b1013e7037747ada4fcec8dc4a124b6f3755f04b36e057eb2fb4a6bd6f07d6eebcf166f8a71405ef434d802fbf SHA512 3a236c0f481e36973b9f805e454c2efe4dd375e6b4ee406b57145136c70d5fbf4e1183d563ebf3b5fbde7363bbf5f08f0d88e507aae5bda4cc75664ecd0e33aa +DIST minimal-lexical-0.2.1.crate 94841 BLAKE2B e6b8919b80d938d0b98d60d4f5f29ce43d77ebfcf8b18bde08909141915c6ef4f0d07a543538d4f3ba8527a9f55926d4a8e83473248469d087e80b274d701d61 SHA512 385fab51884bdcc7b0f2728a219ab164d0dc8efe42160b918f2c09f79ecf853fb12bda006d11e649f097bae1499dcd41ddf2a8784ee7d178cf2c28059e46078c +DIST mio-1.1.1.crate 105630 BLAKE2B db279c3e46108375f5391a5ebc3ae07e8ccbcc9f6a71aa41996adb862c5d2b965af3cb0da25becdadb16d401ae69ccf5a07e21b0b6fb36e07294633cdf690141 SHA512 0b1c82773f5cc3f33ccb80a2cfbd58e48ffac82934afa7d9ec632b36484f8a13a079802dd8a658dbc94fc158e597e4d7a2c02a799f7b506a7de98fe74e80e684 +DIST nix-0.30.1.crate 342015 BLAKE2B efe5faaf142fbf8d97366d11f28189167d3d22c1ed76b65e7887064f2fd146ae27282aeb230eb798d7c1b3850ea1502bcb325dc23536800690f0be3d66d37b63 SHA512 80df8102a3a387d9cd73cd8d756b9fad5c4c4b57f6e94d9acfa24ee07af51f28ba2db70b8d37ddd6c7eae883c7acf9fc366a0100659856939210ffde1b124d87 +DIST nom-7.1.3.crate 117570 BLAKE2B 5643b67990b7305e101b16b8cd27c447e162a7adc6d0dfac00920b0cb50fea98c9d4edca63c34f6845cba05f8d0acb407cf3045cf64a4cb28e53c8b6bc9090cf SHA512 1ffce08dde299bc0e0367ad59c7b6a83e23decfa11115ee076ab91ec53cdd9ef37e4c2103c96eff23a7b6b8b5c3f67c83ce1917928c7d4c6462083bdfa0c9cad +DIST num-traits-0.2.19.crate 51631 BLAKE2B 78637360cbf32d172510a62bd9442708af9730c0296a2bb4ebd200c08facd49bc31bf8ddd58967e0df7273a938832b620265d9f8f4d26ad16049bf6dac1cb4e5 SHA512 180018a5eceb45085e4e8d103ff21bb4d5079cea874c42a0ad4c76c99d275d434bbc1cc289f0cdec172866daa89dbfe0871410b2cc3407233fe1129786905956 +DIST num_enum-0.7.5.crate 21570 BLAKE2B fd291db8ebbfec7d57fc3269e9305703a3edb8815c0a5617710ef608c574a6cd44f255cd506bd407ad4d929757a62c8f66e29e2e16f5159243d76178c4cd15ba SHA512 ec108a291341c0a380be9cfda841ebcc18241378c5c732700fa613a07bccf93b243e87996d5d858a0a7cab4948b0431dcad74c5d4466f65eddd210470636e1af +DIST num_enum_derive-0.7.5.crate 18760 BLAKE2B 00f7b70aaacb058529980bcaeefcf34014cbc4a99beaa0dba450353b839eb1b864ded0d883d6e115f7004b1a0256baa5485e09e463d82a349052e81faed129d5 SHA512 7d05b7f1352f3350de5fe75250de974cb8dcf87665e743fc15f0633fec864613f47979a4a9ed08b4a81cc94fb25f088e021bf4d0143387e66dde907ad399cee6 +DIST once_cell-1.20.2.crate 33394 BLAKE2B 79dd394fcf1637adfef28b4159ec653c8b71d2bda0e0e36a940c04e3d87698f039dc30c97f26648ecf0d9742962f1f0a117568f7c705a8a3fc167085b0ca3e80 SHA512 bc6005bdab7a154c01e2203fb553a68695727475a9a882cf906d49c054ce886ad92cb491d380b6b9fe71a81b2fd690ce91c9a6cf8dfa8508470ac9acfc8a31c8 +DIST owo-colors-4.1.0.crate 31414 BLAKE2B 4c936531a6eca2c77bf54e77b1bfbf63bd957299e6b604f97de59bd8e06aee90187045197fe2a5ba607548245035e644b40981e5020113b7122f5a36785f4cbb SHA512 e514520ebd86f92be6f893727a71b68faddbda77763a4f5d5a907c2becbf032c629362cb4c27c184a98aad27963449da8dae38d1fe35741b0fef11ce61235fd0 +DIST page_size-0.6.0.crate 8479 BLAKE2B c90699135f158a0dea1acf80acfab002a4f4971188dac853af03c0bb79c2ad5b67f4decf7df5157f390cc3fa5b62a265c6e7948ce9ca9e7f2dc3595c60f07ac1 SHA512 204faf102760e9f3edc480302a7d7e6b995b7a40850372ebb332cab82b9c8301e761351c7abce93bde9473ad9e944bb07e6c4447d4ee1891f5ae2c261b74b8e5 +DIST parking_lot-0.12.5.crate 46735 BLAKE2B 36d82b682f7cd0a2c308fbc672f0c7023a3b6ba6ff0f9de75067bb26227d2ca460a09ba37a0a5b3867ed788d72a523a5900b99241bc30a67606481aaec30536c SHA512 432639d4a14acfa20127f03741e1101fa591fc63048b0b0369b44ad269d3dcb6fbab7947eb9995c7948f6fba90245abf82154a70df2b7a99aa7365b0b88666ca +DIST parking_lot_core-0.9.12.crate 34110 BLAKE2B 4c1b3fe163c843c05effee9cd0a0461e39875040298b8a8b880c05a7db038c55ed84d1e4534417fa0e7a0395e06200d909fc16031514e3ba0ec03f011a86598e SHA512 6ce29df4aa9eb0ccfe9020b066832f2ba27afe41a48792d935d0051a595367f71d50f6862b921d91312a1ea80f087a416388d4b29a11de17373483e529f12d8d +DIST paste-1.0.15.crate 18374 BLAKE2B 69ee7def55e658a9aa72405bad62325e8d6021a4989fbf11c88d1bf05fbac520f7b04d467bc3c6eb45043a41119f65aceecc4a6a1418a9192d73f33134545062 SHA512 5026d3ec7141ec4e2517a0b1283912d0801e9356f77b703d954b379439b8d85e3886d42fb28f7835edaeeac465582da14233564fb010c71425a59c9e1cbd46b4 +DIST pkg-config-0.3.31.crate 20880 BLAKE2B ab7676e810751f89639b60ae70bdebe1d57edc76319f83077c3680049a701a26e72e8cc485fe77cdc4346fe3571d32c59e7384c8c86fef17e00d7d81df5daf43 SHA512 ac3e8062ee8831a4e4fc717b5247dc7f113da7bf6d64ec95cbca7875959a2afa1497bf81d9dfc27206b5fb10027a2509d51dd9ca1c10139d7b4c78128864fdf4 +DIST prettyplease-0.2.22.crate 58169 BLAKE2B 74b78f69b167d253643780b007726afde3a272c68b334b2b610d14bca1a2b02ece1b92f793341990a401b71357a858c4c9bf6c0bf965c61bc22a0a2cce84903e SHA512 bd3a3ed1395fb1e2eaff6231a9c54ce68ddd4be2cc30a6a871e32c943f7201b5c0956b16b3c478872daa521b92424060012d90be9bb45199e19e0b65860e7c18 +DIST proc-macro-crate-3.4.0.crate 12690 BLAKE2B d65a1be2058cbbd5458870153bd2758be63aa900f4daf012b7c527ecda915c6589f4778b4a5140b6c1a77e3bf1b954e0146de0ed6332ff12d3b9821640534d35 SHA512 bcfa9550d1938f2d92c3fce823cb7fa088c16b43a430962028df77682acd5227e7195042379a843007cf5b71b2d53a2dde649c89b92a1b87d982acbc088d78ad +DIST proc-macro2-1.0.87.crate 49121 BLAKE2B 4a5136e28b5174c1382037d294dfec51cd7211eb7876c06a98600768d071915e76c81a7958a780cb7b843b98d9df4bd4e01d4f280db226d241bf84de348593f2 SHA512 32ce9c8b5bad55cfae537882c3fffc4d56824f6214ea97aede89ad460e3f66956b52af4a268496fc95c2c0eda0baeaaed4b12cd98df2efab24837e23b48b1f0e +DIST quote-1.0.37.crate 28558 BLAKE2B a7d007a69e619f853af94333e1066bb767013312bd99f147b1b153611242bcfa9c76768b1ba47278589db309a9acd61a772c8ec3b567e48439bb9d831f9326d4 SHA512 c4ed21428c1f89cf22b85d80720a7869831a9c129d694617b0ce8c258278114ab98846f3f653abf736d1c86bc9224bbd695e9a7b06aa3adf292d02e1ef14cc05 +DIST redox_syscall-0.5.18.crate 30747 BLAKE2B b9507a055aa34178982f0b5861602d2e11e13c2604f905c9b747c39aa6c45f06e60cf5c9d17d914712a815fc5e9ad75bf648c300e7265fd4afbac0b0c207afa6 SHA512 69f1cfb215666f1243616366711dbd8cadd6bb411121f48f6e4ffd7b25479efa6f900dd072d7cc6e6fb8130d95cdb42f4c0cb4ba9e05b09b1fa676ca32932101 +DIST ref-cast-1.0.25.crate 15192 BLAKE2B d38a9cac7cc2253b8892e2dcda3224ed637713a667c7dc283a2744307e437a2233314a57ca8f9568afcb72425533c688820e12d42650fb797bd23c88dd99c131 SHA512 dbab09333cb8b7f9b0ff262223a10078e7cf729266b90df47c1fdbf1d15cb31807314514556c72211da633efb988e3d6ac8e0e1598b7b55b557f83378deb0120 +DIST ref-cast-impl-1.0.25.crate 10167 BLAKE2B 0b648a9d54300e309214d8061f017d8c344eaf5be3623a361dc3d7dea687daf59ee09fb3c21c955a9fd9da44910d19f0b5a7b515a8877428d24369f6d21aacc4 SHA512 c79cb5a1338796e037927e99a9201738cf2a2ebd1983d120828569644c60fb5a3444c2eee830093b166af6734fa8ba649082e523170d840b9e8a548341fc3b70 +DIST regex-1.11.0.crate 254059 BLAKE2B 9450e54b522c3f12e4f1d814025c3037f8373b9e1feaf2028756b573335cb7f22400b0925e3ceb0716d72aeb19b02b4bcf70b0b435a0252d0d52a7028d95308c SHA512 16c066664ae87497f9880a52222301fb0d44053ae2d6861ea21dc59cab82bd1ab8ac407f9e77228a21a586ee745b02f9eb10e7b9b30df2f3aad73633270bf73d +DIST regex-automata-0.4.8.crate 617784 BLAKE2B 7535c79f6ddf1b1225e21171921594dcf32fc3afd47519d2067b2047b19070cb7e6fdfd1563b884fec6f91dd568522fc95d85bf095c11f8c02daeac128c45020 SHA512 278e3e2ab230ed5fa7d4837e8ea879fae68ebf35c2da5cc3a67f46b7d593abbcf71e6326a0cf34e38edc0f3f2166ff42a4fcc17a400d9604429aa5b4be075a3f +DIST regex-syntax-0.8.5.crate 357541 BLAKE2B fc6d125f7a8574c37d81c75cbfd447cbcff736f2d9991b19814ffc1a414ebc5b76e84fb8fd36c983b38e8e391d165cdd9047832b0d9100f0e1ba7085484b7db5 SHA512 549d8d130fea9ec0d5806126f57f31d433f50e9328c5532ad417c44bb5488ec0d20acb0983dbe54dabaa0b453cbea4533cf7baac7144df119e8f78dfe55c5ab8 +DIST rustc-demangle-0.1.27.crate 30448 BLAKE2B c301ebc7d127c679d95dc77798f738263aed592a9d08cc6a5e3f53a4b48fcdb8ddc824550c35c6274093315d71dd720588e1bb7d6145d1e3975dcdef72c45932 SHA512 da827b28e0be62af85b4b5dc15de06d78058bdf19888ebc7c55a46b533d81e2d8ba922bf032bcfa5334c6c43dd5bb272ae9510ffcf9ca2711a284bfbe245fcc4 +DIST rustc-hash-1.1.0.crate 9331 BLAKE2B 16ac56622897f47a06b661fb59a196b08d48e782ab87549c8bd5c6fe92f374c9bfd44dcb36588512bd9b6125c2fd79a12d648aaa308fd9694bcca3a7c1b49ac9 SHA512 84e673ea9b046f7b989d47f2c4505557fbd5de991e6fc9f56a03605d40e0b4ba5427cd566954890153cc033ccbec6c984306634571935bfe0d4cdfbe56f39544 +DIST rustc-hash-2.1.1.crate 14154 BLAKE2B 7a1b3b82bbbf6a123512815c3e8f068a17890cbbb8b68e88a5a492f62469942fadd776207eebd913052a1c06e1fd37a549e86526b9fc8f08b9ca7cb0044ac16b SHA512 87097d98d47f327d000041ab13acddc366f1500d9c3e5c82169c3358112c7a7c03701c9b3c2c81d9f9da65b7ebac1c479b179dfaf7c059cd0b929b4673e51084 +DIST rustix-0.38.37.crate 371243 BLAKE2B bceaa4861747208f1f2b68f8924c7247648d88deb200e97d8ed17c5cbf9c934488065f0ee7e4406bc96e8709b292ee1fe15beb346bff57b5f05af36174420a0c SHA512 6c0ad1be1fcf1b74f670b2c7599ba68c2ce834c760ff7486674d190ae0d552165b0c2abdc35b13eee8c0333a904c67f5dd1efa742c20fd3735c7ccdf2a439619 +DIST rustversion-1.0.17.crate 17621 BLAKE2B 1f077ca6fd90333724d1ea9df7f5b178f37f895b71a7b2814e9ba8618bffcd2307f9cb4ac2eea25d461a6686a4b5b51eebb80f1b1ccc773d4da1948c47fe8abe SHA512 0565cddecaedae17e7cd99bc34f54cda242d4c29cd4269f8e3b178ff91d49f3682e7ffe66e436bbb138299736c8e55cc143fefb74c076911fefcc41ba98064f3 +DIST ryu-1.0.22.crate 51321 BLAKE2B 1d575969b18e385b9805ada6d5acdeb1d1fb306da425b10378d13ecd619553d9cd07b9e134cb46d11ab956a19690c066ffd50848f713c63602a0fc20a885419d SHA512 542a991b438de374a8377dcc1501e55d919d480d3a0503097c24710472adca732c4de4f1e623b28b67763ab425aa8e234080a5abf222b5ead77a9352f617c2fa +DIST scopeguard-1.2.0.crate 11619 BLAKE2B 8b7e9ed6cefef9ee55407fb9690d57a2a98bb93e5105aeebdb475a52485e9e185255249e1dce8f83cd80534e7402d485aac3efa7e8493b13135de27550cd4bc4 SHA512 6247719a15fe1e4e2d179127b9a934bd2f99367724f41175ed9522f58824b6bc69b35002eae66b35880375ff61d77ac43ddaa78cbde7160a35183a1da32d3fbb +DIST serde-1.0.228.crate 83652 BLAKE2B d1909d671ea6d5c2eb4ce34ee4493ecaf665d416111b4cac754b5d33b85f916296110bae7aa961efd987a2ceb4a31ba645752ce99dd28dedb9f1eecdd4d7b1b2 SHA512 9b645d6214203533b303fc5e88ad4f7686c22df084878d18a0209a92304a340fcb62fdde88a7080cf7a7348d47b9b363885c4e1da90dba08cc99ff620f375e97 +DIST serde_core-1.0.228.crate 63111 BLAKE2B 8a64e4627ad21a3d16dd37d53fb809d11171bf337ec16bb1223075cbf81b6b85cd1c8d19abadf42460d0fbea323e2f351eeb6ef823389d519121b74e68edb215 SHA512 43897e3a7ebdc85d81d1cb30cda8f0a11610f6f551529c8a21462c24fb83110652b462846aa3e1bed5fbf8b5d7927018845a524ee9e079e2c8acf2c687efd6c4 +DIST serde_derive-1.0.228.crate 59605 BLAKE2B 166ee2f9ff9f7a0928d0a65a72db3d9226c377bca2a1771956e8ecd9c7faf0544673c9c21be2a5553e621b55c74c7b958052592a1cf6eb6427a2d4f3e3dc6bb8 SHA512 8bfdfeee10ee7ef0670972aa963ef63b13e8eb2c8a09b9e0b717f92551aa89b3dd2a0dcbae6ccf20a1caece07e6adb18f0db56fdac020e4e0281b0d24e376003 +DIST serde_json-1.0.143.crate 155342 BLAKE2B c01be213f79cad1f3de35a1c5adab75121fb2a49cf261e46a5509d44f02e12a5b56db3cd6bf539e015ce59019faa636dae2f1ded25d7893c7a0e03f0c9d211da SHA512 084fa35adc0d720c3868d57b2d4a2f30af08b650e876ee88014cf1b98d49079f5ddfe5b14743c63ebc5b9bd8291c6d03fd34f07b770a25874f00ea7c42bdde8b +DIST shlex-1.3.0.crate 18713 BLAKE2B 18800c364d3a628f1a3125097ea82fe6286550c2997235df0bf8483a3906aacabc81308cb239887d46ba2f457cc6f8acd5aca78316707eea5098cd5666aea67d SHA512 5c8cedbe666a14b8a0874defb9208146ce64579cde52ed483e4a794cac5dde6a24bf8d684404edff582f842e1fd4fa3fbeddbe074f191e4ec4aa517aa456fe8a +DIST signal-hook-0.3.18.crate 50862 BLAKE2B a0ae80afc2de0e3eb8b3c10241617cda08dcf2a6c06da3b385dfaf098ea4fb6c14f5d1aa6720325cff15d8ab195bf4d05966dc5a9e7155a1e43fcaf238ffb654 SHA512 1955288d7f47738007252ac2aed0fd05d1c16f1726ae2a97ac35b0ba5a6a82620b26ecc03c4760b12d86d4b83c7484a3830aa84530dc010d398fff436fda3137 +DIST signal-hook-mio-0.2.5.crate 14373 BLAKE2B 64cd21c7d5512c9315c6c19357d879e46c61935370dd5b0d97fc479e868654450efa52ba91a6c6810fbdbedef58c1a64188bf57b04aad105031763ba64aeb882 SHA512 0750e14b58cc61315738a4e7cf624c19f657d8480c76edb60c333dc0686f9dd4086264488c1dba7bba9a01053f69f9999ab157051524e2eba0299e7542c0a8c7 +DIST signal-hook-registry-1.4.8.crate 21668 BLAKE2B abaed3ca8f07e1631aecaa4bfcc9dea94f2bcd2ab227c9e44d543663392d5e7c7b3beea4d0624ff48637d4fc7544a722ba3d4113d109a77ec1a3b3c0d06580c5 SHA512 6625d842e5040fb15c3a6a03994aabe8b3d0b752773805866858452fb03e5cab2663c89367caa15a34dc0ee7c2b830e302d9be664130c093bdbc17d7b61f045c +DIST smallvec-1.15.1.crate 38116 BLAKE2B 8dd779d7726694672945e928399e0459f4973d284a6c2d664c2fc757ebb1177658f47c812d9800e982479cbd7413fd4283c64a4d248ba5cff6397f96b758676e SHA512 c26b097a063353beedfcc921129cd0fb838c1c9420218993a05b2655b47b6ec16f11e0054312018658b4abd893beee140c5d2739401a5e5aea2e64575f237047 +DIST strsim-0.11.1.crate 14266 BLAKE2B 252a9ede4241b165525486aa8855dece37af77f5b28e0e1858c4a5d2047db9fa958328db10989234aad69463ab51b2303785ec056c63ea8c95bf95e111ddabf2 SHA512 0cebe0155a92640e56db9a599ae62078cbb32e1d2da8bfa67ed0e8f410a7558dfcf7b3c2720ff5913282e291ecf076aed9fe9bf84c8d44e814a642b1bed3335c +DIST strum-0.26.3.crate 7237 BLAKE2B bdc348c718c39609c00b9fa7d47b7090b1467022b7a8a28cc7c8a72a0aef20569c6ab22a8a8d26c2d9272f18d000e4ce94858a6647194f0a7b86d812d52b05a9 SHA512 62f116d5bbc6167a6ac68b049f8045bc660901f1ce1252f8bdcd91cb28bef821aad8098905369db6c2fe74c134a5d549e55ddd28e383d7d78f7175258924b268 +DIST strum_macros-0.26.4.crate 27531 BLAKE2B 7f7d57c957a1591054288fcae6590a5e669fba1b47d8f1a52371ce60fd84f91fdb430e48cc7edbb5fc72914be5ce12af29758b653680da3f4177339b31206750 SHA512 77a17ce47d5e8fe8a89cb6aa6c3ca5d5c2625aea0f93456f05a9994238cd3b08b3f7c6a45e9b3db21bca8fb5759f505f15cc111ac84acbbb34d59cdae8307b0b +DIST syn-2.0.79.crate 268981 BLAKE2B 2bf4bde1890ce4ee91fbacca81bd298d15f0111fedb27b9cf8d675dc2489f46026c1804f9e4e24afbd0718539820096cd5c4ed2c2da02e598370dbfd2b18c293 SHA512 1ee073fa3428c031e53bff8ff305bcd6b37ac142bee3955dcdb44fec1c77c733eb78760c8bfb30b83fc3dacdad8a384e2b6f9f31a89c4cc300359e33457fd433 +DIST syn-2.0.87.crate 278076 BLAKE2B 93385f64103fdb482bec34c7912474ae7a5935948715e6eb9a54907e0db5c39f089f6cd393bab33c935c59a1bbb0f4099431f206343811c1a450554d96a35756 SHA512 bcfff545d6dfefd81e09f8f30a86bdd85759b3a7d4093ef3365ed02718e10dbd604c52b94c9d7fa955d339fdc5b6c079940c6f345b5a48c52b5c8607794ca6f2 +DIST terminal_size-0.4.0.crate 10036 BLAKE2B 2f910a6ecd80a3fba12811eff425fe2d1a7c474d8db7f673037c1088ef468e96d41fd13fd3175c84c20da12195a07bbd4354767bdbc64d757feef86f86e384ec SHA512 b1a66cdf4e94997b5291f3becfac1e2a838f6c3f6c068faa1ff1aa775b2a97d41be2aff5460d88928786cfd7dc8dac5e2d46a62b475d40343e1fd517c6299897 +DIST tiny_http-0.12.0.crate 51330 BLAKE2B d296b90b4e13d29cf16954c01bed353897740e37d6117208f8a52214d722778be7e326508f6e2a5b21e7f3cfba6f65de7a2c1bc52dbe57efe2fcf6b235fe7234 SHA512 c74efe5a0cad88ef0d569329bd633a9ed09365854aa5ef601c97f7f20a7869253b53f8945b998146ff1d97e7301fd59ea76a497fb0f1866c6b9bb76b87561fb0 +DIST toml_datetime-0.7.5+spec-1.1.0.crate 17975 BLAKE2B 78f3ba1af90ef25ba23491c1828e8c64d70ae9fdd4718e58c689c17848f9b74469d62471c7ba447dada7d749e1c63b153bc2850b9966cf1ac7ce87a6c7916861 SHA512 4db08a8865011ebec8351a5c42c7c9ce862956c04cf80d10644f68d727362699a4240db9e210cb6d558fecadb63da0fb41b356b5f0cd1142303069988a8642b0 +DIST toml_edit-0.23.10+spec-1.0.0.crate 66420 BLAKE2B ca854ab01780950033763887069becee2527e72c72dc821e0b152713faa4b9414ce111ab1e57742bb13ca1d32e5756e9b564d4db50b2c4d93a8dc533d437a04b SHA512 2e8eb555e7c1eb2279f9f868f688b78f27a53a60985be952561e81d2d317f1f115739de6c15ee79ff7e580272657c0a86138410ac10505a0e3ae3836412c7f99 +DIST toml_parser-1.0.9+spec-1.1.0.crate 35035 BLAKE2B 856dd31aee9f95ddfd46c87245bd6d1ab90bd7f6f022b732fe8f900fa4039508fe73a5f690e5d159e66f5f39c57a947b8419630d87371c832e261cee1ccf23d9 SHA512 87661774214a761bf60826d6fa9fb6a60682554f09f8f20f4090734cb73c2142c0fdb9c7aebf801ead29bf554fbec11c58ea8fbaa628607012ea8e2e35e48518 +DIST udev-0.7.0.crate 17980 BLAKE2B ef62bfc3bebdea9fbc30d8c0de6989b0310da2b7efa65345e991b5ac85d39578a5cc9bf97558786f09806c790eae4a99ca7be29d35b8793a92c71bed07a9b91a SHA512 87aa3182c028911b23c6820408879f901dd674ff6fe95c8382ecdec3d4da9f3e19dc03b2435c72e7cf299af083d5de9a6b83a84a75de4c2483c97ea9c1950393 +DIST unicode-ident-1.0.13.crate 43279 BLAKE2B b5e935020d1c9f3aa24f7d382f6b73d6510d654a61ce1c9c024e2e365bb817182e076139f370e822573531356fb78ff7499049b1f29aa1e2f4a2cc74a955b47b SHA512 5ba884f39debe9c8eb0b1d251ca713f7e2bc191d211707ed10cd81465487dbdca53914c19e131edfa1da15af132dc2c346260c3969c61e3747b63399ccb1cc51 +DIST utf8parse-0.2.2.crate 13499 BLAKE2B 095b5d219ab8ff04c06fd6303e03d913ae36a57845f0b2ca3217a40e31a54cb0fb5ecedbde165d28f5f60f1553d8252986d7098fa83befc84a7cb20bf3b76144 SHA512 f3dbf78fe924f1dc3cf9498b6e43fb10174699463f31091a7a8136d8f31ec84fc00e80e3d8551b7e86257e8b3573cfddb56fc0de797fdb2cde0e962a8f239266 +DIST uuid-1.10.0.crate 47648 BLAKE2B 370f56b5057fc43ed6645ca4a032737230242c88f3c6945248585054a0d1de0c85cb2eb21bd4c759c1ca73df1b5005652f74b474537116c4fd6642cb60d274ff SHA512 e17db9433d919b51468acaebd240a2cb218d07f099fade49118ca9313f8cdf6aa3103e7aa24440be65a4f25a25f8f511e36dba08cbef27747f9e43b849cd612b +DIST wasi-0.11.1+wasi-snapshot-preview1.crate 28477 BLAKE2B bcc773ba28cbe8d820e9e9fbb275fb4451bc7f39b3bd88bcd93850bf2bdb5300489bd8eca27489ccc5f6269b00f4e1b505ae3a33a35d708cd5a414ad307be149 SHA512 29e3c903763db2580a15f50db487c5e1d4e90763e48d90a5b3f681e468a24f9df1a01773bd1ffa0e3cd293dd8cb4d6fbabfaa63c0e13889c811a56f4554ada49 +DIST wasm-bindgen-0.2.108.crate 49120 BLAKE2B 7cda1630cf38a776750f91d5811a55f955fc05f8460bb5ec12f147b37763ab73c0f40bfab4ae85d9cff93c80a6d0845916d47d61f4eb1750844c9459254bfb75 SHA512 d938d6fee0e9018cf3e1d3bf736b3ef9fbad3b20854917c93409bb4baad70c3a8220646ad3aa8e340d91c655eb7d0ccde01f4f38eb6941780c88c70989616716 +DIST wasm-bindgen-macro-0.2.108.crate 9283 BLAKE2B 89ae171ed3418bcf27f3a55a8fb03c9d8983bfd16254e9419fe93671ea68532d83a24a6e4b6834a291e4fd068049216c84272f041cd99f76a620f7bbf5f2dde9 SHA512 5b154c3010a31bb7338d16e559a9b3d2d69cab7681914d22e8b4331cafbc2e6d8b5913fcfbdf5a3ee0e793918affc94ae0dac76fa407f02881ba4642ed1a2b66 +DIST wasm-bindgen-macro-support-0.2.108.crate 49855 BLAKE2B 5282f38ec1f5de7f1147145e9083863965e047e75c0b5cfbd46231619ace34b59a2a4db6d3298d265df35dd40de48a8cce2a47678644af432cf28368d3c9345c SHA512 8ccbf76754e3d62df3f157e397a3b560083e429840be50f38dd77cf737eb892db3054295d62f0df2a6cb78589a9abda6e9bc2fbcb2fd431ea74dcae46470b2e6 +DIST wasm-bindgen-shared-0.2.108.crate 10121 BLAKE2B c7e80b0eed58bae092167450b44dde4d351188115c5b5d966ed2ce39b4fdeea77ceba89d7bd28400ea92f639b17cdc557a57428da8f4a379d2ecb90ad847f13c SHA512 97fea5811a789c68c8a9b19587450d69b40bf2b76e38efcbb12f4864ffc2ca38a5d3deb5d9d437f47458d44f05afcfc5078c748996c3fcefd65e15bbdf9b226a +DIST which-4.4.2.crate 15953 BLAKE2B 40ca22cd2f625cb035a1d919ed457a300b482c7751dcee4441974c53d56ce13f1f502535e1f7c0746a01981f4de2e2f761c3a255902d6353db1a4c3c62637448 SHA512 2d12aa1d4c2dbc140e39c8f15bd4ee1eeb8e8de71bcdf579479ef4be860fb0839eaf4cdb818addba242d50420f6e08acaf2bfc979a889e092c83644819246fd5 +DIST winapi-0.3.9.crate 1200382 BLAKE2B cb5799749ccd935ea2d7068d953cecf19f543d9db7dc16ad4584bb7005373ada34937a3ced7225544d8bc765da599911c7a3190efefb3a25b7c1bb7123b4f673 SHA512 ff8b7b78065f3d8999ec03c725a0460ebc059771bf071c7a3df3f0ecd733edf3b0a2450024d4e24e1aedddaecd9038ce1376c0d8bbf45132068cf45cf4a53a97 +DIST winapi-i686-pc-windows-gnu-0.4.0.crate 2918815 BLAKE2B 4d357e4d30f9552972170d65b9a5358b69c46a3e772fe05efc22f3d4ffc1caeeaad7aacdc7abd503a7ad0545f8bd7d22bf351dcb6df76f812fa4d45c34d65df0 SHA512 a672ccefd0730a8166fef1d4e39f9034d9ae426a3f5e28d1f4169fa5c5790767693f281d890e7804773b34acdb0ae1febac33cde8c50c0044a5a6152c7209ec2 +DIST winapi-x86_64-pc-windows-gnu-0.4.0.crate 2947998 BLAKE2B 2ad1ea8b5fa07d544e910ccba043ae925269b76b26c9da356305b34b86741dd8b9aff0b9ffe3d562db4fcd7d7c46a11ce9e3168b782b1d89ae6881742b7ede82 SHA512 4a654af6a5d649dc87e00497245096b35a2894ae66f155cb62389902c3b93ddcc5cf7d0d8b9dd97b291d2d80bc686af2298e80abef6ac69883f4a54e79712513 +DIST windows-core-0.62.2.crate 36932 BLAKE2B f291939153338efd768bee7cb3891814a1d46ed5cac1e2ea72a7ac66613842c02e1de89052a53e8b164d1055d9d4a138711929af897486b3a6da02e91aee3103 SHA512 b3b3e95b7ff6df91ebf866f8ec9c5e8f67134a26f1690d286f62fd756ebc5e2c59c583d4fdc213e5aaf6834f2693329f3eccbee83fa0567663cfa7d9d9ca549a +DIST windows-implement-0.60.2.crate 15325 BLAKE2B 1f4e5b6759224a74f006c3bfb9acd3bb5fb111fdcf6e4f5e838ca10ac200baf48261583386962d357deffbabea4f67f8e257b8ad8b01b5aee6fe67f3822a7c13 SHA512 212fd6c1f25da40f2131b07ce1c0a34c23177c4666bc518e00a9b4f2bd23c1d131bac565fde531c51f21167f9eb1591e381fc6bc44ce952f6945bad6547c1579 +DIST windows-interface-0.59.3.crate 11809 BLAKE2B c3f439e14e85175f12b4403295f063f53d03224ed1842ad3826fb2beb89c2884317105e28d9d9af2000e08b5bf2fd05befa48dcd0325baba168acb19c8341d86 SHA512 6fe54da90ca797a5e1927803febb07d1e2e4db0bdba5a9cd84d823dc9118390c0f988387e8c614949b9f3c3a0fd47743fd0ddec3200f897952c53a57bb34adee +DIST windows-link-0.2.1.crate 6133 BLAKE2B d1ca714178e6fe12bb3b4caeed9a52a36890989e77ae2dcd6f2d18ae4a21fb8479d304cdff63bb0a5f28acf44eaf104821cff83cd66b3a0406a5f33a800e3641 SHA512 afb0c87beb8914fd9a3e52db6f2f64a840470b9751b66c83892c24cb1c46cda63fb16b1aeafcaa5a1fc7c5ba01da46be63e5227cc108dede8b0bd27785498a6b +DIST windows-result-0.4.1.crate 13381 BLAKE2B 3960ffb7f15826bd2f8636133412872d7af9c2d89fde07d2183188083e22580ecbef11f423523aa864c0b199a494aabf1d6386d7c7fceeb7ad74575347efbd27 SHA512 a2b7cc53608b8243bf9b19adb75cdc1698b8caf78d939c3afc0c01b1e89f9cb951306cc1673f9b400b926437340681af641ee322f7e761a641ee40e52b21b9f2 +DIST windows-strings-0.5.1.crate 13966 BLAKE2B 9143cfa5a4184bf0aeb62f8c85d0629d7417b74727349cf46f0d1f28d0e255cc218ac5bc39fe1c7f0311c418f23644e84644b8e7833c5b1c8d1f523c3d38d728 SHA512 c1c3e620aeacbbba0159e789cf0a0261e943f626d21392a77ff00d321c867a0a6ea75054f594a63fcc86cb9ba6bb580d96c29e0a8fdffe90e73658aefc3472b2 +DIST windows-sys-0.52.0.crate 2576877 BLAKE2B 69d6b560ccfc8f679e2678663ba606060d71fa28efa82c8aef8cceaa2c63b06f2052764d60163964f939649a26bbec6361ee4b094555e941fae92070db566980 SHA512 24ee0df246c2b456a4987a9124786a28acd358768cc7d1305bccd81bc5bb8822b81a03fb18d35174a520b911c6d9b685f81a34ab319fee13da3b985273584f03 +DIST windows-sys-0.59.0.crate 2387323 BLAKE2B 3110c8cd2bc005f8c95cd038a8d574af648dc19788fe4485f977376f92e36b911b1a542d669a07ae9cd4ea72a884ab01ec78b8a2b5587456eb202452d1d8fa0d SHA512 d35e009e979633a1f3c8468cd038bd5c8c0381405165ce03497decd7d9edaaac485d704487e4a61d9aaf4e4d011b4248408912df6a0044d50e8457259867e061 +DIST windows-sys-0.61.2.crate 2517186 BLAKE2B f4eab0b365aa1df8a353d634da5081237bef0f7b69f02ffcaba232a688e59dfe877c47114de64c81e3cbb929c2fea1143ed6bda56ce935e66d871a993ac29106 SHA512 e6c8f61f0724dafca7821ee9b9c07237ccfee69be269be2fa7318eb48b151285ecf63e860aa1fe303639222fe11268e3773f37c2dd79f923029af58c645edb3f +DIST windows-targets-0.52.6.crate 6403 BLAKE2B eb98d0a8daeed5fe76e7fa8edb2743e2a3e77dfb9c4ea68605a6ab10532cb7cfc43bc1cea0180869445bd940be762a40136500e26b84ca88b5e0c502004c7a4c SHA512 d6d2dbd96096c6c396dba141a9817e377c35877f3b2fe58b2553280c7cfcb1ed6ee75bd4d62c9b882662de67ddaf0c1049b91530d29c94dd709c230e08eb895f +DIST windows_aarch64_gnullvm-0.52.6.crate 435718 BLAKE2B 8b12ae02892cb69401329034bbca671d13bd268a112120b56b90504707cef89decfbd2560492844a9f0588fab62dc1476ab7e931126b939015d25a8cc91ca334 SHA512 f62b2d942bdb3a9353465b07d47b93de179bb706511aa497e4addd74cff95e689a9b633e7801ce786e73b5ae5f30b506b6faa199c5ab86eefdc1d94652df79c5 +DIST windows_aarch64_msvc-0.52.6.crate 832615 BLAKE2B adc8ff61b6dc96d39c92c7d4221ae6aa0575edfc016cfcd046067ca5d8fcfd56d10e8e227be1c038ce34684be22c7ccaf5f18cd5a7638d28fbff4ba15b48b90b SHA512 a3e21305ad0e6de38f5b5ed5d37ee5825b7521064163bcdf31d63341cd87983f54377865d2daf3bb480d2d0aa66d6f598fa09540ec1d71baea74569c86bd213b +DIST windows_i686_gnu-0.52.6.crate 880402 BLAKE2B 5aab8ee07132eccb7695807eb44811beeb0657aadfb672c54e99b6ae39c067ba9b93e38fc69bb5b9b14a9759f263ccd5e301597d2727d83b31b49a409b6bd405 SHA512 a1f6b5dd23d17ec3567bc9d11a4be6f35e196eee21ca342e9b88dbaa6a5f7c46e439c834b77e724f32ac22c0d81573746b3b513a6c944a221b92b2c76fe98822 +DIST windows_i686_gnullvm-0.52.6.crate 475940 BLAKE2B fec4fda8bb2bf319a501a22372fa642ae682e4dee3235b258a028190ee73220bfc55b3142f06249bb4579b17e5fde662bb2b121aefe18544653350d7d0fe7d8e SHA512 95f13af855d530acc0b856214478d4b11b8dbab3f8f79dd223d0b009790c0e46d096fc1773e0277997deb2d5b96c704f17f23c7df11411524629f75415dec99f +DIST windows_i686_msvc-0.52.6.crate 901163 BLAKE2B 99ed34e052db5ba77bab240ed5d38ce450be347a794d63ec39b719304c32722c9999b540ab40abe0216318900b7412970df99dfb36d1516a9517cae0c77d1bdc SHA512 ca97913ce202d73266cf55947b868bea7e964a4516b6a096a81aeab6a60ee73867171032ced35e3afccff741ddfb2def7468343b6eceb95253e4d4f349efbf96 +DIST windows_x86_64_gnu-0.52.6.crate 836363 BLAKE2B e2335829155cdbd4a55cc9f9babc237e14e32aab97f6f91afabcdf80d2aee37d6fb4b8669aaf433ff532c85dba59b3d366c7d41b61a2f29b96f960169c900687 SHA512 c4086bb0280042f2bef9b556283b67f8a5cacddd209e1c5fabec63decec6d4fd2d6a7071407973981b98ae0c0cf7034fc612f9e70dc6d3eed9acdec771ae31cb +DIST windows_x86_64_gnullvm-0.52.6.crate 435707 BLAKE2B ab77dccd06328cdb00175f41cdbc120594050a9678b7f9820444391fb50aada3911a91ea00f3a6db2b4fa1820fd23bc9a007dfbe65ad41417c26ee1137ef9b96 SHA512 67681f5859e249c56b0183181811f6212cc7008d6471dad78aecc7ebe3d027686b19210b8aa9014c554410f69f913d21ce2aca928eea905eab779bea26464cbd +DIST windows_x86_64_msvc-0.52.6.crate 832564 BLAKE2B 8e9a3044654c6de99a9153e7cacd575474e7a8a3d883c67b02132af5d3fc99d03cd5f7a4dd666a3947451d11218e6acc6eb5e2526f012481106cc13453839719 SHA512 21944cd8e3a481b514509e73ae3f62722fe7ed380d37ea0c25f8fbdeba79174dd52ff65d898838da5df4197894b74e00f45d47489418e978753b4e55c7e623e7 +DIST winnow-0.7.14.crate 184718 BLAKE2B 6bff099d199831a72ff677db3e4de2feaa5a0b6aad782051c9af629459faebcd131518e20d6bb8f3f7f44b708284e6ba54f2ad7e0811bc0bf1df89899ff561c1 SHA512 ffa96e23707d87d5bf0f0e0c8aefbbbe4e3d2219fa5fd6a1535cb3c7b049a8481ef6f9f9fd69c78be855f36b242476f3b4462f2536925d48953afebe00bb50cb +DIST zerocopy-0.8.27.crate 252663 BLAKE2B bef5142d18ae053a542d3a481e5ed3594ee73f9d89eb82224c115701e38245e87ba9cfddd15812fbae5c2486ad46c11481ee722a3c3832a2540a43f84f6dce7e SHA512 f3f8d298b3a56d0eb3061207d069f34302e1dfb61e6b3ab2a9c8d0656b5da807ebd70310ddf818fbb40547597183e09be77c07c4b665690af66f27a9cf96a1df +DIST zerocopy-derive-0.8.27.crate 89827 BLAKE2B ace5abe8aca7cdc22ab66826e7e244b89d84adf495186eaa2714d6c521403e2fd84b56259eed6d2a6ad9800e164021dadfcdf4c80ad8a8b7eb0dd7fe799e9749 SHA512 9fd0b4f900e6ea7c92998b7297deafa84870e7e57d09225ae3910894358da9f405925fed88d2528f52caf5a1f6e32dd75bfa18ed3a7f9fee75bfa88c0f23e451 +DIST zeroize-1.8.1.crate 20029 BLAKE2B 092eba034cd35ec47290020e0c2b213177ff5dbe14ab9e7f0b4ef3cb1ecbc42fbec2b951414e26ab00bc65aaddc2c93eddd5a1963b27c6cd613ac71c65d5cc24 SHA512 dd40ebe98b98fd742608d4066b5ab66caba94b2e679428fcaff9fe547d8cd6ff2360dc85d671ee9183e32fb79cb554d00d6aef9eb8f3d8ad0ec92d0435aa4ebe +DIST zeroize_derive-1.4.2.crate 11141 BLAKE2B a40add656369a3a40d5b5f3397a77a1e9f803d4b8ae5b7d51c9f2ebb332a289b3c1ea528655806a26998e081a1cc9f4b07828664542de8d8d2619faf079d25c5 SHA512 d6966b024ce5e265c93e7056659ccbb97bbf6baa30f759fd96dc4391a6487426637f61f0a2713b6160019d778cf7d8ff1f25bb33d6c4f4585b990baae418b226 diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild new file mode 100644 index 00000000000..791d443a90e --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild @@ -0,0 +1,343 @@ +# Copyright 1999-2026 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +CRATES=" + aho-corasick@1.1.3 + android_system_properties@0.1.5 + anstream@0.6.15 + anstyle-parse@0.2.5 + anstyle-query@1.1.1 + anstyle-wincon@3.0.4 + anstyle@1.0.8 + anyhow@1.0.89 + ascii@1.1.0 + autocfg@1.5.0 + bindgen@0.72.1 + bitfield@0.14.0 + bitflags@1.3.2 + bitflags@2.11.0 + bumpalo@3.19.1 + cc@1.2.55 + cexpr@0.6.0 + cfg-if@1.0.0 + cfg_aliases@0.2.1 + chrono@0.4.43 + chunked_transfer@1.5.0 + clang-sys@1.8.1 + clap@4.5.20 + clap_builder@4.5.20 + clap_complete@4.5.33 + clap_derive@4.5.18 + clap_lex@0.7.2 + colorchoice@1.0.2 + core-foundation-sys@0.8.7 + crossterm@0.28.1 + either@1.13.0 + env_logger@0.10.2 + equivalent@1.0.2 + errno@0.3.9 + fiemap@0.2.0 + find-msvc-tools@0.1.9 + fuser@0.17.0 + getrandom@0.2.17 + glob@0.3.1 + hashbrown@0.16.1 + heck@0.5.0 + httpdate@1.0.3 + iana-time-zone-haiku@0.1.2 + iana-time-zone@0.1.65 + indexmap@2.13.0 + is_terminal_polyfill@1.70.1 + itertools@0.12.1 + itoa@1.0.17 + js-sys@0.3.85 + libc@0.2.180 + libloading@0.8.5 + libudev-sys@0.1.4 + linux-raw-sys@0.4.14 + lock_api@0.4.14 + log@0.4.22 + memchr@2.7.4 + memoffset@0.9.1 + minimal-lexical@0.2.1 + mio@1.1.1 + nix@0.30.1 + nom@7.1.3 + num-traits@0.2.19 + num_enum@0.7.5 + num_enum_derive@0.7.5 + once_cell@1.20.2 + owo-colors@4.1.0 + page_size@0.6.0 + parking_lot@0.12.5 + parking_lot_core@0.9.12 + paste@1.0.15 + pkg-config@0.3.31 + prettyplease@0.2.22 + proc-macro-crate@3.4.0 + proc-macro2@1.0.87 + quote@1.0.37 + redox_syscall@0.5.18 + ref-cast-impl@1.0.25 + ref-cast@1.0.25 + regex-automata@0.4.8 + regex-syntax@0.8.5 + regex@1.11.0 + rustc-demangle@0.1.27 + rustc-hash@2.1.1 + rustix@0.38.37 + rustversion@1.0.17 + ryu@1.0.22 + scopeguard@1.2.0 + serde@1.0.228 + serde_core@1.0.228 + serde_derive@1.0.228 + serde_json@1.0.143 + shlex@1.3.0 + signal-hook-mio@0.2.5 + signal-hook-registry@1.4.8 + signal-hook@0.3.18 + smallvec@1.15.1 + strsim@0.11.1 + strum@0.26.3 + strum_macros@0.26.4 + syn@2.0.87 + terminal_size@0.4.0 + tiny_http@0.12.0 + toml_datetime@0.7.5+spec-1.1.0 + toml_edit@0.23.10+spec-1.0.0 + toml_parser@1.0.9+spec-1.1.0 + udev@0.7.0 + unicode-ident@1.0.13 + utf8parse@0.2.2 + uuid@1.10.0 + wasi@0.11.1+wasi-snapshot-preview1 + wasm-bindgen-macro-support@0.2.108 + wasm-bindgen-macro@0.2.108 + wasm-bindgen-shared@0.2.108 + wasm-bindgen@0.2.108 + winapi-i686-pc-windows-gnu@0.4.0 + winapi-x86_64-pc-windows-gnu@0.4.0 + winapi@0.3.9 + windows-core@0.62.2 + windows-implement@0.60.2 + windows-interface@0.59.3 + windows-link@0.2.1 + windows-result@0.4.1 + windows-strings@0.5.1 + windows-sys@0.52.0 + windows-sys@0.59.0 + windows-sys@0.61.2 + windows-targets@0.52.6 + windows_aarch64_gnullvm@0.52.6 + windows_aarch64_msvc@0.52.6 + windows_i686_gnu@0.52.6 + windows_i686_gnullvm@0.52.6 + windows_i686_msvc@0.52.6 + windows_x86_64_gnu@0.52.6 + windows_x86_64_gnullvm@0.52.6 + windows_x86_64_msvc@0.52.6 + winnow@0.7.14 + zerocopy-derive@0.8.27 + zerocopy@0.8.27 + zeroize@1.8.1 + zeroize_derive@1.4.2 +" + +LLVM_COMPAT=( {17..21} ) +MODULES_INITRAMFS_IUSE=+initramfs +MODULES_KERNEL_MIN=6.16 +MODULES_OPTIONAL_IUSE=+modules +PYTHON_COMPAT=( python3_{11..14} ) +RUST_MIN_VER="1.85.0" +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kentoverstreet.asc + +inherit cargo flag-o-matic linux-mod-r1 llvm-r2 python-any-r1 +inherit shell-completion sysroot toolchain-funcs unpacker verify-sig + +DESCRIPTION="Tools for bcachefs" +HOMEPAGE="https://bcachefs.org/" +if [[ ${PV} == "9999" ]]; then + inherit git-r3 + EGIT_REPO_URI="https://evilpiepirate.org/git/bcachefs-tools.git" +else + SRC_URI="https://evilpiepirate.org/bcachefs-tools/bcachefs-tools-${PV}.tar.zst + ${CARGO_CRATE_URIS} + " + SRC_URI+=" verify-sig? ( https://evilpiepirate.org/bcachefs-tools/bcachefs-tools-${PV}.tar.sign )" + S="${WORKDIR}/${P}" + KEYWORDS="~amd64 ~arm64" +fi + +LICENSE="GPL-2" +# Dependent crate licenses +LICENSE+=" Apache-2.0 BSD ISC MIT Unicode-DFS-2016" +SLOT="0" +IUSE="debug llvm-libunwind verify-sig" +RESTRICT="test" + +DEPEND=" + app-arch/lz4:= + app-arch/zstd:= + dev-libs/libaio + dev-libs/libsodium:= + dev-libs/userspace-rcu:= + sys-apps/keyutils:= + sys-apps/util-linux + llvm-libunwind? ( llvm-runtimes/libunwind:= ) + !llvm-libunwind? ( sys-libs/libunwind:= ) + virtual/udev + virtual/zlib:= +" + +RDEPEND="${DEPEND}" + +# Clang is required for bindgen +BDEPEND=" + ${PYTHON_DEPS} + $(python_gen_any_dep ' + dev-python/docutils[${PYTHON_USEDEP}] + ') + $(unpacker_src_uri_depends) + $(llvm_gen_dep ' + llvm-core/clang:${LLVM_SLOT} + ') + elibc_musl? ( >=sys-libs/musl-1.2.5 ) + virtual/pkgconfig + modules? ( >=sys-kernel/linux-headers-6.16.0 ) + verify-sig? ( >=sec-keys/openpgp-keys-kentoverstreet-20241012 ) +" + +QA_FLAGS_IGNORED="/sbin/bcachefs" + +python_check_deps() { + python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" +} + +pkg_setup() { + llvm-r2_pkg_setup + python-any-r1_pkg_setup + rust_pkg_setup + if use modules; then + # grep -r 'depends on\|select ' ${S}/libbcachefs/Kconfig | grep -v '^#' + local CONFIG_CHECK=" + !BCACHEFS_FS + BLOCK + EXPORTFS + CRC32 + CRC64 + FS_POSIX_ACL + LZ4_COMPRESS + LZ4_DECOMPRESS + LZ4HC_COMPRESS + ZLIB_DEFLATE + ZLIB_INFLATE + ZSTD_COMPRESS + ZSTD_DECOMPRESS + CRYPTO_LIB_SHA256 + CRYPTO_LIB_CHACHA + CRYPTO_LIB_POLY1305 + KEYS + RAID6_PQ + RUST + XOR_BLOCKS + XXHASH + SYMBOLIC_ERRNAME + " + use debug && CONFIG_CHECK+=" + DEBUG_INFO + FRAME_POINTER + !DEBUG_INFO_REDUCED + " + linux-mod-r1_pkg_setup + fi +} + +src_unpack() { + if [[ ${PV} == "9999" ]]; then + git-r3_src_unpack + S="${S}/src" cargo_live_src_unpack + else + # Upstream signs the uncompressed tarball + if use verify-sig; then + einfo "Unpacking ${P}.tar.zst ..." + verify-sig_verify_detached - "${DISTDIR}"/${P}.tar.sign \ + < <(zstd -fdc "${DISTDIR}"/${P}.tar.zst | tee >(tar -xf -)) + assert "Unpack failed" + fi + unpacker ${P}.tar.zst + cargo_src_unpack + fi + +} + +src_prepare() { + default + tc-export CC + + echo "${PV}" > .version || die + sed \ + -e '/^CFLAGS/s:-O2::' \ + -e '/^CFLAGS/s:-g::' \ + -i Makefile || die + + if use llvm-libunwind; then + sed -i s/libunwind// Makefile || die + fi + + append-lfs-flags +} + +src_configure() { + cargo_src_configure + + MODULE_SRC="module/${PN%-*}-${PV}" + use modules && emake DESTDIR="${WORKDIR}" DKMSDIR="/${MODULE_SRC}" install_dkms +} + +src_compile() { + export BUILD_VERBOSE=1 + export VERSION=${PV} + + local modlist=( "bcachefs=:../${MODULE_SRC}:../${MODULE_SRC}/src/fs/bcachefs" ) + local modargs=( + KDIR=${KV_OUT_DIR} + ) + + # Makefile calls `cargo` directly, so make sure we set our rustflags (etc) + cargo_env emake bcachefs || die + use modules && linux-mod-r1_src_compile + + # Recent versions mangle the 'bcachefs' symbolic link, work around it. + [[ -e bcachefs ]] && die "bcachefs symlink is valid, please remove workaround" + ln -rsf target/release/bcachefs bcachefs || die + + local shell + for shell in bash fish zsh; do + sysroot_try_run_prefixed ./bcachefs completions ${shell} > ${shell}.completion || die + done +} + +src_install() { + into / + dosbin bcachefs + + dosym bcachefs /sbin/fsck.bcachefs + dosym bcachefs /sbin/mkfs.bcachefs + dosym bcachefs /sbin/mount.bcachefs + + # Uses a crate-based implementation of FUSE, no dependency on sys-fs/fuse and unconditionally included. + dosym bcachefs /sbin/fsck.fuse.bcachefs + dosym bcachefs /sbin/mkfs.fuse.bcachefs + dosym bcachefs /sbin/mount.fuse.bcachefs + + newbashcomp bash.completion bcachefs + newfishcomp fish.completion bcachefs.fish + newzshcomp zsh.completion _bcachefs + + doman bcachefs.8 + + use modules && linux-mod-r1_src_install +} diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml new file mode 100644 index 00000000000..9335d978636 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml @@ -0,0 +1,14 @@ + + + + + kangie@gentoo.org + Matt Jolly + + + Enable bcachefs FUSE support (experimental!) + + + koverstreet/bcachefs-tools + + From a3bb6642925ace43e6e2bda5778d2aaa64d8c912 Mon Sep 17 00:00:00 2001 From: Ananth Bhaskararaman Date: Wed, 8 Jul 2026 19:05:14 +0530 Subject: [PATCH 2/5] bcachefs: gate sysext on kernel floor and harden mangle relocation Registering bcachefs in EXTRA_SYSEXTS unconditionally would let the ebuild's MODULES_KERNEL_MIN=6.16 refusal abort create_prod_sysexts() on channels whose kernel is older, since the loop runs under set -e with no per-sysext gating. Extend the EXTRA_SYSEXTS schema with an optional fifth min_kernel field and skip entries whose requirement outpaces the board's coreos-kernel version. Also fix the /usr/sbin relocation in the mangle script: mv ./usr/sbin/* misses Portage .keep* placeholders, leaving the directory non-empty and making the following rmdir fail under set -e. cp -a src/. dst/ includes dotfiles, and rm -rf tolerates emptiness. Signed-off-by: Ananth Bhaskararaman --- build_library/extra_sysexts.sh | 2 +- build_library/prod_image_util.sh | 19 +++++++++++++++++-- build_library/sysext_mangle_flatcar-bcachefs | 8 +++++--- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/build_library/extra_sysexts.sh b/build_library/extra_sysexts.sh index b558de2618b..344d33f22ca 100644 --- a/build_library/extra_sysexts.sh +++ b/build_library/extra_sysexts.sh @@ -1,5 +1,5 @@ EXTRA_SYSEXTS=( - "bcachefs|sys-fs/bcachefs-tools|modules|amd64" + "bcachefs|sys-fs/bcachefs-tools|modules|amd64|6.16" "overlaybd|sys-fs/overlaybd,app-containers/accelerated-container-image" "incus|app-containers/incus" "nvidia-drivers-535|x11-drivers/nvidia-drivers:0/535|-kernel-open persistenced|amd64" diff --git a/build_library/prod_image_util.sh b/build_library/prod_image_util.sh index 4987b283777..94c80911255 100755 --- a/build_library/prod_image_util.sh +++ b/build_library/prod_image_util.sh @@ -230,8 +230,8 @@ create_prod_sysexts() { local image_name="$1" local image_sysext_base="${image_name%.bin}_sysext.squashfs" for sysext in "${EXTRA_SYSEXTS[@]}"; do - local name pkgs useflags arches - IFS="|" read -r name pkgs useflags arches <<< "$sysext" + local name pkgs useflags arches min_kernel + IFS="|" read -r name pkgs useflags arches min_kernel <<< "$sysext" name="flatcar-$name" local pkg_array=(${pkgs//,/ }) local arch_array=(${arches//,/ }) @@ -254,6 +254,21 @@ create_prod_sysexts() { fi fi + # Some sysexts (e.g. out-of-tree kernel modules) refuse to build below + # a specific kernel version; skip them here rather than letting the + # ebuild fail the whole batch under `set -e`. + if [[ -n "$min_kernel" ]]; then + local kernel_cpv kernel_ver + kernel_cpv=$(pkg_version installed sys-kernel/coreos-kernel) + kernel_ver=${kernel_cpv#sys-kernel/coreos-kernel-} + kernel_ver=${kernel_ver%-r*} + if [[ -z "$kernel_ver" ]] || \ + [[ "$(printf '%s\n%s\n' "$min_kernel" "$kernel_ver" | sort -V | head -n1)" != "$min_kernel" ]]; then + info "Skipping sysext ${name}: kernel ${kernel_ver:-unknown} < required ${min_kernel}" + continue + fi + fi + sudo rm -f "${BUILD_DIR}/${name}.raw" \ "${BUILD_DIR}/flatcar-test-update-${name}.gz" \ "${BUILD_DIR}/${name}_*" diff --git a/build_library/sysext_mangle_flatcar-bcachefs b/build_library/sysext_mangle_flatcar-bcachefs index da9ef064cec..2d3d2166645 100755 --- a/build_library/sysext_mangle_flatcar-bcachefs +++ b/build_library/sysext_mangle_flatcar-bcachefs @@ -20,11 +20,13 @@ rm -rf ./usr/lib64/pkgconfig # /usr/sbin on Flatcar is a symlink to /usr/bin; shipping a /usr/sbin # directory in a sysext would clobber the symlink at merge time. Relocate -# anything the tools ebuild installed there. +# anything the tools ebuild installed there. `cp -a src/. dst/` includes +# dotfiles (Portage `.keep*` placeholders) so nothing lingers to make the +# subsequent `rm -rf` racy. if [ -d ./usr/sbin ]; then mkdir -p ./usr/bin - mv ./usr/sbin/* ./usr/bin/ 2>/dev/null || true - rmdir ./usr/sbin + cp -a ./usr/sbin/. ./usr/bin/ + rm -rf ./usr/sbin fi # Wire up the out-of-tree module through the shared kmod helper. This From d3f2bd78f16c1a1816de6d60936def865ceece3f Mon Sep 17 00:00:00 2001 From: Ananth Bhaskararaman Date: Wed, 8 Jul 2026 19:21:56 +0530 Subject: [PATCH 3/5] bcachefs: ship module in-tree, keep sysext userspace-only MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Kent Overstreet's plan for bcachefs (1.38.7+) makes out-of-tree module builds impractical: once Rust becomes a hard dependency (kernel 7.0), DKMS needs an exact rustc match, the Rust stdlib sources, bindgen and the kernel build's .rlib/.rmeta artifacts. Flatcar builds its own kernel and can sidestep the whole mess by enabling bcachefs in-tree. Enable CONFIG_BCACHEFS_FS=m (and CONFIG_BCACHEFS_POSIX_ACL=y to match btrfs's shape) in coreos-modules commonconfig-6.12 so bcachefs.ko ships with the base image and is loaded on demand via modprobe. Rework the sysext to userspace-only: - extra_sysexts.sh: drop the `modules` USE flag (explicit `-modules`) and the min_kernel gate — the ebuild refuses to build below 6.16 only when it builds the OOT module, which we no longer do. - prod_image_util.sh: revert the min_kernel schema field; it existed solely to gate this sysext. - sysext_mangle_flatcar-bcachefs: drop configure_modprobe wiring, no OOT module to install. - coreos/config/env/sys-fs/bcachefs-tools: delete; the KV env dance was needed only for module builds against the board root's kernel. Keep the dotfile-safe /usr/sbin relocation (Portage .keep* under set -e). Update the changelog to describe the new shape. Signed-off-by: Ananth Bhaskararaman --- build_library/extra_sysexts.sh | 2 +- build_library/prod_image_util.sh | 19 ++----------------- build_library/sysext_mangle_flatcar-bcachefs | 9 --------- changelog/changes/2026-07-08-bcachefs.md | 2 +- .../coreos/config/env/sys-fs/bcachefs-tools | 11 ----------- .../coreos-modules/files/commonconfig-6.12 | 2 ++ 6 files changed, 6 insertions(+), 39 deletions(-) delete mode 100644 sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools diff --git a/build_library/extra_sysexts.sh b/build_library/extra_sysexts.sh index 344d33f22ca..814569545b9 100644 --- a/build_library/extra_sysexts.sh +++ b/build_library/extra_sysexts.sh @@ -1,5 +1,5 @@ EXTRA_SYSEXTS=( - "bcachefs|sys-fs/bcachefs-tools|modules|amd64|6.16" + "bcachefs|sys-fs/bcachefs-tools|-modules|amd64" "overlaybd|sys-fs/overlaybd,app-containers/accelerated-container-image" "incus|app-containers/incus" "nvidia-drivers-535|x11-drivers/nvidia-drivers:0/535|-kernel-open persistenced|amd64" diff --git a/build_library/prod_image_util.sh b/build_library/prod_image_util.sh index 94c80911255..4987b283777 100755 --- a/build_library/prod_image_util.sh +++ b/build_library/prod_image_util.sh @@ -230,8 +230,8 @@ create_prod_sysexts() { local image_name="$1" local image_sysext_base="${image_name%.bin}_sysext.squashfs" for sysext in "${EXTRA_SYSEXTS[@]}"; do - local name pkgs useflags arches min_kernel - IFS="|" read -r name pkgs useflags arches min_kernel <<< "$sysext" + local name pkgs useflags arches + IFS="|" read -r name pkgs useflags arches <<< "$sysext" name="flatcar-$name" local pkg_array=(${pkgs//,/ }) local arch_array=(${arches//,/ }) @@ -254,21 +254,6 @@ create_prod_sysexts() { fi fi - # Some sysexts (e.g. out-of-tree kernel modules) refuse to build below - # a specific kernel version; skip them here rather than letting the - # ebuild fail the whole batch under `set -e`. - if [[ -n "$min_kernel" ]]; then - local kernel_cpv kernel_ver - kernel_cpv=$(pkg_version installed sys-kernel/coreos-kernel) - kernel_ver=${kernel_cpv#sys-kernel/coreos-kernel-} - kernel_ver=${kernel_ver%-r*} - if [[ -z "$kernel_ver" ]] || \ - [[ "$(printf '%s\n%s\n' "$min_kernel" "$kernel_ver" | sort -V | head -n1)" != "$min_kernel" ]]; then - info "Skipping sysext ${name}: kernel ${kernel_ver:-unknown} < required ${min_kernel}" - continue - fi - fi - sudo rm -f "${BUILD_DIR}/${name}.raw" \ "${BUILD_DIR}/flatcar-test-update-${name}.gz" \ "${BUILD_DIR}/${name}_*" diff --git a/build_library/sysext_mangle_flatcar-bcachefs b/build_library/sysext_mangle_flatcar-bcachefs index 2d3d2166645..cd86b782a5f 100755 --- a/build_library/sysext_mangle_flatcar-bcachefs +++ b/build_library/sysext_mangle_flatcar-bcachefs @@ -3,9 +3,6 @@ set -euo pipefail rootfs="${1}" -DIR="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" -. "$DIR/sysext_mangle_kmod" - pushd "${rootfs}" # Drop dev/debug/initramfs files — the sysext only needs runtime bits. @@ -29,10 +26,4 @@ if [ -d ./usr/sbin ]; then rm -rf ./usr/sbin fi -# Wire up the out-of-tree module through the shared kmod helper. This -# installs modprobe.d entries and a helper script that overlays the -# kernel-modules directory at load time so bcachefs.ko can be inserted -# without violating the read-only /usr guarantee. -configure_modprobe flatcar-bcachefs - popd diff --git a/changelog/changes/2026-07-08-bcachefs.md b/changelog/changes/2026-07-08-bcachefs.md index 3bdb9226857..ad902194703 100644 --- a/changelog/changes/2026-07-08-bcachefs.md +++ b/changelog/changes/2026-07-08-bcachefs.md @@ -1 +1 @@ -- Provided a bcachefs Flatcar extension as an optional systemd-sysext image with the release. Write 'bcachefs' to `/etc/flatcar/enabled-sysext.conf` through Ignition and the sysext will be installed during provisioning. Ships both the userspace utilities (mkfs.bcachefs, mount.bcachefs, ...) and the `bcachefs.ko` kernel module built out-of-tree via the upstream DKMS harness. bcachefs support is experimental (pre-1.0 on-disk format) and bcachefs is not supported for the root partition. Requires kernel ≥ 6.16, so the extension only builds on channels whose kernel meets that floor. +- Enabled the in-tree bcachefs kernel module (`CONFIG_BCACHEFS_FS=m` with POSIX ACLs) and provided a companion bcachefs Flatcar extension as an optional systemd-sysext image with the release. Write `bcachefs` to `/etc/flatcar/enabled-sysext.conf` through Ignition and the sysext will be installed during provisioning; it ships the userspace utilities (`mkfs.bcachefs`, `mount.bcachefs`, ...) that pair with the kernel module. bcachefs is still experimental (pre-1.0 on-disk format) and is not supported for the root partition. diff --git a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools b/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools deleted file mode 100644 index 0fac479881c..00000000000 --- a/sdk_container/src/third_party/coreos-overlay/coreos/config/env/sys-fs/bcachefs-tools +++ /dev/null @@ -1,11 +0,0 @@ -# This addresses an issue with the kernel version compatibility check -# when installing the bcachefs kernel module to /build/ -# (e.g. via build_packages) from its binpkg (i.e. not recompiling it). -SKIP_KERNEL_BINPKG_ENV_RESET=1 - -# Necessary to prevent KV_FULL & KV_OUT_DIR from being unset -# when building kernel modules for sysext. See also eclass/linux-info.eclass. -cros_pre_pkg_setup_kernel_version() { - LINUX_INFO_BINARY_RESET=1 - get_version -} diff --git a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/commonconfig-6.12 b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/commonconfig-6.12 index 527b3026ff5..4d8ef74d265 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/commonconfig-6.12 +++ b/sdk_container/src/third_party/coreos-overlay/sys-kernel/coreos-modules/files/commonconfig-6.12 @@ -24,6 +24,8 @@ CONFIG_AUTOFS_FS=y CONFIG_B44=m # CONFIG_BACKLIGHT_CLASS_DEVICE is not set CONFIG_BCACHE=m +CONFIG_BCACHEFS_FS=m +CONFIG_BCACHEFS_POSIX_ACL=y CONFIG_BCM87XX_PHY=m CONFIG_BFQ_GROUP_IOSCHED=y CONFIG_BINFMT_MISC=m From e617fd93b453b493e062c5aaeb7085355fb84936 Mon Sep 17 00:00:00 2001 From: Ananth Bhaskararaman Date: Wed, 8 Jul 2026 19:32:14 +0530 Subject: [PATCH 4/5] bcachefs-tools: fix src_unpack double-unpack and QA nits MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - src_unpack(): the previous flow ran `unpacker ${P}.tar.zst` and then `cargo_src_unpack`, which itself iterates ${A} and re-extracts the tarball. With USE=verify-sig the .sign file also lands in ${A} and cargo's per-file unpack chokes on it. Fold everything into a single pass: verify-sig streams the tarball into tar during signature check, and we then hand cargo_src_unpack an ${A} with the tarball / .sign filtered out. In the non-verify-sig path cargo_src_unpack extracts the tarball itself. - Drop `[[ -e bcachefs ]] && die` in src_compile: the workaround is purely defensive against upstream's mangled symlink; killing the build once upstream stops mangling would be an unnecessary trap. `ln -rsf` is idempotent — just force the link. - metadata.xml: drop the `fuse` USE flag entry. The ebuild does not declare `IUSE=fuse` and the FUSE bits are unconditionally included, so the flag entry only produces QA warnings. Signed-off-by: Ananth Bhaskararaman --- .../bcachefs-tools-1.38.6.ebuild | 19 +++++++++++++------ .../sys-fs/bcachefs-tools/metadata.xml | 3 --- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild index 791d443a90e..152af5fb743 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild @@ -260,17 +260,24 @@ src_unpack() { git-r3_src_unpack S="${S}/src" cargo_live_src_unpack else - # Upstream signs the uncompressed tarball if use verify-sig; then - einfo "Unpacking ${P}.tar.zst ..." + # Upstream signs the uncompressed tarball. Stream-verify the + # detached signature while extracting the tarball via tee, + # leaving the source tree in place. + einfo "Verifying and unpacking ${P}.tar.zst ..." verify-sig_verify_detached - "${DISTDIR}"/${P}.tar.sign \ < <(zstd -fdc "${DISTDIR}"/${P}.tar.zst | tee >(tar -xf -)) assert "Unpack failed" + # Filter the tarball and its detached signature out of ${A} + # so cargo_src_unpack doesn't re-extract the tarball or feed + # the .sign file to unpack (which would die). + local A=${A//${P}.tar.zst/} + A=${A//${P}.tar.sign/} fi - unpacker ${P}.tar.zst + # cargo_src_unpack extracts the vendored Cargo crates and, when + # not filtered above, the source tarball itself. cargo_src_unpack fi - } src_prepare() { @@ -310,8 +317,8 @@ src_compile() { cargo_env emake bcachefs || die use modules && linux-mod-r1_src_compile - # Recent versions mangle the 'bcachefs' symbolic link, work around it. - [[ -e bcachefs ]] && die "bcachefs symlink is valid, please remove workaround" + # Recent versions mangle the 'bcachefs' symbolic link. Force the link + # unconditionally so this keeps working once upstream stops mangling. ln -rsf target/release/bcachefs bcachefs || die local shell diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml index 9335d978636..b6bf7025fa1 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml +++ b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/metadata.xml @@ -5,9 +5,6 @@ kangie@gentoo.org Matt Jolly - - Enable bcachefs FUSE support (experimental!) - koverstreet/bcachefs-tools From 0491fdd5d9f67f05dd64d0626ed99097cd3e8593 Mon Sep 17 00:00:00 2001 From: Ananth Bhaskararaman Date: Wed, 8 Jul 2026 20:29:22 +0530 Subject: [PATCH 5/5] bcachefs-tools: install under /usr/, make modules opt-in MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Address a second round of Copilot review feedback: - `src_install`: switch `into /` → `into /usr` and retarget all six compat symlinks (fsck/mkfs/mount plus the .fuse.* variants) from /sbin to /usr/sbin. `build_sysext` prunes every non-/usr top-level before running the mangle script, so anything installed to /sbin was quietly getting dropped from the final sysext. On usrmerge systems (Flatcar, modern Gentoo) this doesn't change what users see on disk since /sbin unifies with /usr/sbin — but it lets the mangle script's existing /usr/sbin → /usr/bin relocation catch the whole payload. - `QA_FLAGS_IGNORED`: retarget /sbin/bcachefs → /usr/sbin/bcachefs so the QA ignore still matches the actual install path. - `MODULES_OPTIONAL_IUSE=+modules` → `MODULES_OPTIONAL_IUSE=modules`: make the DKMS/OOT module build opt-in. With Flatcar shipping CONFIG_BCACHEFS_FS=m in coreos-modules, the ebuild's CONFIG_CHECK refuses to build the module (`!BCACHEFS_FS`). A default `emerge sys-fs/bcachefs-tools` would fail unless users remembered to pass USE=-modules; flipping the default keeps `emerge` working out of the box for the userspace tools. `extra_sysexts.sh` still passes `USE="-modules"` explicitly as belt-and-suspenders in case a profile force-enables it. Signed-off-by: Ananth Bhaskararaman --- .../bcachefs-tools-1.38.6.ebuild | 23 +++++++++++-------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild index 152af5fb743..401aa06fd58 100644 --- a/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild +++ b/sdk_container/src/third_party/portage-stable/sys-fs/bcachefs-tools/bcachefs-tools-1.38.6.ebuild @@ -149,7 +149,7 @@ CRATES=" LLVM_COMPAT=( {17..21} ) MODULES_INITRAMFS_IUSE=+initramfs MODULES_KERNEL_MIN=6.16 -MODULES_OPTIONAL_IUSE=+modules +MODULES_OPTIONAL_IUSE=modules PYTHON_COMPAT=( python3_{11..14} ) RUST_MIN_VER="1.85.0" VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/kentoverstreet.asc @@ -210,7 +210,7 @@ BDEPEND=" verify-sig? ( >=sec-keys/openpgp-keys-kentoverstreet-20241012 ) " -QA_FLAGS_IGNORED="/sbin/bcachefs" +QA_FLAGS_IGNORED="/usr/sbin/bcachefs" python_check_deps() { python_has_version "dev-python/docutils[${PYTHON_USEDEP}]" @@ -328,17 +328,22 @@ src_compile() { } src_install() { - into / + # Install under /usr so the binary and compat symlinks survive when + # this ebuild is packaged as a Flatcar sysext (build_sysext prunes + # every non-/usr top-level directory before the manglefs script gets + # a chance to relocate them). /sbin is unified with /usr/sbin on + # usrmerge systems, so this doesn't change what users see on disk. + into /usr dosbin bcachefs - dosym bcachefs /sbin/fsck.bcachefs - dosym bcachefs /sbin/mkfs.bcachefs - dosym bcachefs /sbin/mount.bcachefs + dosym bcachefs /usr/sbin/fsck.bcachefs + dosym bcachefs /usr/sbin/mkfs.bcachefs + dosym bcachefs /usr/sbin/mount.bcachefs # Uses a crate-based implementation of FUSE, no dependency on sys-fs/fuse and unconditionally included. - dosym bcachefs /sbin/fsck.fuse.bcachefs - dosym bcachefs /sbin/mkfs.fuse.bcachefs - dosym bcachefs /sbin/mount.fuse.bcachefs + dosym bcachefs /usr/sbin/fsck.fuse.bcachefs + dosym bcachefs /usr/sbin/mkfs.fuse.bcachefs + dosym bcachefs /usr/sbin/mount.fuse.bcachefs newbashcomp bash.completion bcachefs newfishcomp fish.completion bcachefs.fish