diff --git a/Cargo.lock b/Cargo.lock index 9749014..16c65da 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -16,9 +16,9 @@ checksum = "1e4b40c7323adcfc0a41c4b88143ed58346ff65a288fc144329c5c45e05d70c6" [[package]] name = "bitflags" -version = "2.13.1" +version = "2.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b588b76d00fde79687d7646a9b5bdf3cc0f655e0bbd080335a95d7e96f3587da" +checksum = "3ded4057c258ba199e2d26386d3af3780957ecaee6c4ef4041c6b4b8b97c0b06" [[package]] name = "block-buffer" @@ -31,15 +31,15 @@ dependencies = [ [[package]] name = "cfg-if" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9330f8b2ff13f34540b44e946ef35111825727b38d33286ef986142615121801" +checksum = "4e7648175b45a9a48536d676f68d918270699102aa8dab5496df06904c914600" [[package]] name = "cpufeatures" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b2a41393f66f16b0823bb79094d54ac5fbd34ab292ddafb9a0456ac9f87d201" +checksum = "5ca28b0ae3115b884660db4118d803791fd6756b6e88f39c0f3f7859060d7566" dependencies = [ "libc", ] @@ -129,9 +129,9 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" [[package]] name = "hybrid-array" -version = "0.4.14" +version = "0.4.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "707114b52a152fa7bdb290cd7cd5912d9467273b6d74e21b8d81aca1f8533f6b" +checksum = "27f864f10dfb56725ce5ce5472bc52252c8f93a4ab86327122cebf62c5f59a17" dependencies = [ "typenum", ] @@ -159,9 +159,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ceec5bc11778974d1bcb055b18002eba7f4b3518b6a0081b3af5f21666da9ad" +checksum = "f9f8bd3e56ce4dfc153cf470fffbfa98c7620958b312ca5c3a4b8d5181fd13c6" [[package]] name = "proc-macro2" @@ -174,22 +174,22 @@ dependencies = [ [[package]] name = "ptr_meta" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b9a0cf95a1196af61d4f1cbdab967179516d9a4a4312af1f31948f8f6224a79" +checksum = "743da816b98c921cdbe8628ef7381b76f25ecf4da599fc80aca90eae7ef70cc0" dependencies = [ "ptr_meta_derive", ] [[package]] name = "ptr_meta_derive" -version = "0.3.1" +version = "0.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" +checksum = "1c8d9ca532f185d5d4db7a7c9d51420b452168ea1c2b913953281bd6fe1fcbd0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn", ] [[package]] @@ -234,7 +234,7 @@ checksum = "e7a5d71263a5a7d47b41f6b3f06ba276f10cc18b0931f1799f710578e2309348" dependencies = [ "proc-macro2", "quote", - "syn 3.0.3", + "syn", ] [[package]] @@ -265,29 +265,18 @@ checksum = "f8fadd59c855ef2080decdef8ff161eb6661b86933c9d82e5ba29dc602a55aba" [[package]] name = "spin" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8abadc99fd9c7bbb7d0ca2b31d72a067d0c0dcd7aad25ab8cac71ba91417694b" +checksum = "0134f9043ed38b087ac4f7d4af44c79e2c9e5094421fe3164f435ce585953b10" dependencies = [ "lock_api", ] [[package]] name = "syn" -version = "2.0.119" +version = "3.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "872831b642d1a07999a962a351ed35b955ea2cfc8f3862091e2a240a84f17297" -dependencies = [ - "proc-macro2", - "quote", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "53e9bae58849f64dfa4f5d5ae372c8341f7305f82a3868709269343628b659a3" +checksum = "8593e8e72159ed2257d083c7a454a85cbf854f37a0966d8d483aff8c8a3ebcee" dependencies = [ "proc-macro2", "quote", @@ -296,9 +285,9 @@ dependencies = [ [[package]] name = "toml" -version = "1.1.4+spec-1.1.0" +version = "1.1.6+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3aace63f4bbcdfc2c965b059de67119c89c4017a70d633be6c104910f67056f5" +checksum = "920602543f0911ab71da12c50d59701da54c196d1a2bf5cb4b75667f137a406a" dependencies = [ "serde_core", "serde_spanned", @@ -342,9 +331,9 @@ dependencies = [ [[package]] name = "uefi" -version = "0.39.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a58ad7512f7c38b58aa536c3839dbb1d5a122d14a7e2245b06ded49edcb7585a" +checksum = "368cef7d94514897e6dad4350945c7910a9f5bf9021191d1c58ee3ec09962697" dependencies = [ "bitflags", "cfg-if", @@ -358,20 +347,20 @@ dependencies = [ [[package]] name = "uefi-macros" -version = "0.19.0" +version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4687412b5ac74d245d5bfb1733ede50c31be19bf8a4b6a967a29b451bab49e67" +checksum = "643efa8b64be89780bc498b290fab04337c7c4d171cc82cce2e133a74616dcc4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.119", + "syn", ] [[package]] name = "uefi-raw" -version = "0.15.1" +version = "0.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a36f49db0b04a8dfd246a26ddf8d2526a2ffd8cf946ae7fe603fd0c5fbd2786" +checksum = "3636327a6d88a38c0f2567fb695ec7ba27b3483d1877730486605aa0866da201" dependencies = [ "bitflags", "uguid", @@ -385,9 +374,9 @@ checksum = "0c8352f8c05e47892e7eaf13b34abd76a7f4aeaf817b716e88789381927f199c" [[package]] name = "unicode-ident" -version = "1.0.24" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" +checksum = "d245f478577f809a851594d02313b640fb437e0bb33866753cff937863096954" [[package]] name = "winnow" diff --git a/Cargo.toml b/Cargo.toml index a5adfc1..4d4f27d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -17,10 +17,10 @@ repository = "https://github.com/edera-dev/sprout" edition = "2024" [workspace.dependencies] -bitflags = "2.13.1" -log = "0.4.33" -spin = "0.12.2" -uefi-raw = "0.15.1" +bitflags = "2.13.2" +log = "0.4.34" +spin = "0.12.3" +uefi-raw = "0.17.0" [workspace.dependencies.anyhow] version = "1.0.104" @@ -50,12 +50,12 @@ version = "2.0.1" default-features = false [workspace.dependencies.toml] -version = "1.1.3" +version = "1.1.6" default-features = false features = ["serde", "parse"] [workspace.dependencies.uefi] -version = "0.39.0" +version = "0.41.0" default-features = false features = ["alloc", "global_allocator", "panic_handler"] diff --git a/Dockerfile b/Dockerfile index 1220955..fd244e1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,7 @@ -# syntax=docker/dockerfile:1.7-labs ARG RUST_PROFILE=release ARG RUST_TARGET_SUBDIR=release -FROM --platform=$BUILDPLATFORM rust:1.97.1-alpine@sha256:3c38f3f82c2f3d73da3b38e18d279393a04cb43ddded0e35088a8c3324d40900 AS build +FROM --platform=$BUILDPLATFORM rust:1.98.1-alpine@sha256:7cc1c22d77d9432f7fe012a70e6d3e555af54c2a6832700ed7d553f1769ae89f AS build RUN apk --no-cache add musl-dev busybox-static ARG RUST_PROFILE RUN adduser -S -s /bin/sh build diff --git a/crates/boot/src/menu.rs b/crates/boot/src/menu.rs index 08e204b..854d2d3 100644 --- a/crates/boot/src/menu.rs +++ b/crates/boot/src/menu.rs @@ -48,11 +48,11 @@ fn read(input: &mut Input, timeout: &Duration) -> Result { let trigger = TimerTrigger::Relative(*timeout); uefi::boot::set_timer(&timer_event, trigger).context("unable to set timeout timer")?; - let mut events = vec![timer_event, key_event]; + let events = vec![timer_event, key_event]; // Wait for either the timer event or the key event to trigger. // Store the result so that we can free the timer event. - let event_result = uefi::boot::wait_for_event(&mut events) + let event_result = uefi::boot::wait_for_event(&events) .discard_errdata() .context("unable to wait for event"); diff --git a/crates/eficore/src/strings.rs b/crates/eficore/src/strings.rs index f8d5603..f61a21c 100644 --- a/crates/eficore/src/strings.rs +++ b/crates/eficore/src/strings.rs @@ -12,7 +12,9 @@ pub fn utf16_bytes_to_cstring16(bytes: &[u8]) -> Result { // Convert the bytes to UTF-16 data. let data = bytes // Chunk everything into two bytes. - .chunks_exact(2) + .as_chunks::<2>() + .0 + .iter() // Reinterpret the bytes as u16 little-endian. .map(|chunk| u16::from_le_bytes([chunk[0], chunk[1]])) // Collect the result into a vector. diff --git a/hack/dev/boot/Dockerfile b/hack/dev/boot/Dockerfile index c846c64..ed38ec7 100644 --- a/hack/dev/boot/Dockerfile +++ b/hack/dev/boot/Dockerfile @@ -1,4 +1,4 @@ -FROM --platform=$BUILDPLATFORM debian:trixie@sha256:fac46bff2e02f51425b6e33b0e1169f55dfb053d83511ca28aa50c09fd5ed7a4 AS build +FROM --platform=$BUILDPLATFORM debian:trixie@sha256:9cc080028c43b27d2074d63a5f9caf7166d731494965616c1a6d2827a004585c AS build ARG BUILDPLATFORM ARG EFI_NAME RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y \ diff --git a/hack/dev/kernel/Dockerfile b/hack/dev/kernel/Dockerfile index 6f0ff12..f733d5d 100644 --- a/hack/dev/kernel/Dockerfile +++ b/hack/dev/kernel/Dockerfile @@ -1,7 +1,7 @@ -ARG KERNEL_SOURCE_URL=https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.41.tar.xz -ARG KERNEL_CHECKSUM=sha256:17fc72f0f8d4a8a8633a5d20085f5d9c5a5ec51ee896a0b7ae1ec25da31273ea +ARG KERNEL_SOURCE_URL=https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.18.54.tar.xz +ARG KERNEL_CHECKSUM=sha256:9df30b02dd8102bbd0be52556288ef6889ddbe7f1ddb96fbf847d0becf3eacac -FROM --platform=$BUILDPLATFORM debian:trixie@sha256:fac46bff2e02f51425b6e33b0e1169f55dfb053d83511ca28aa50c09fd5ed7a4 AS buildenv +FROM --platform=$BUILDPLATFORM debian:trixie@sha256:9cc080028c43b27d2074d63a5f9caf7166d731494965616c1a6d2827a004585c AS buildenv RUN export DEBIAN_FRONTEND=noninteractive && apt-get update && apt-get install -y \ build-essential squashfs-tools python3-yaml \ patch diffutils sed mawk findutils zstd \ diff --git a/hack/dev/utils/Dockerfile.copy-direct b/hack/dev/utils/Dockerfile.copy-direct index dc0f5fb..64fa855 100644 --- a/hack/dev/utils/Dockerfile.copy-direct +++ b/hack/dev/utils/Dockerfile.copy-direct @@ -1 +1 @@ -FROM --platform=$BUILDPLATFORM debian:trixie@sha256:fac46bff2e02f51425b6e33b0e1169f55dfb053d83511ca28aa50c09fd5ed7a4 +FROM --platform=$BUILDPLATFORM debian:trixie@sha256:9cc080028c43b27d2074d63a5f9caf7166d731494965616c1a6d2827a004585c diff --git a/hack/dev/utils/Dockerfile.copy-polyfill b/hack/dev/utils/Dockerfile.copy-polyfill index d5c913c..1be33a9 100644 --- a/hack/dev/utils/Dockerfile.copy-polyfill +++ b/hack/dev/utils/Dockerfile.copy-polyfill @@ -1,4 +1,4 @@ ARG TARGET_IMAGE=scratch FROM ${TARGET_IMAGE} AS image -FROM --platform=$BUILDPLATFORM debian:trixie@sha256:fac46bff2e02f51425b6e33b0e1169f55dfb053d83511ca28aa50c09fd5ed7a4 AS final +FROM --platform=$BUILDPLATFORM debian:trixie@sha256:9cc080028c43b27d2074d63a5f9caf7166d731494965616c1a6d2827a004585c AS final COPY --from=image / /image diff --git a/hack/dev/vm/Dockerfile.initramfs b/hack/dev/vm/Dockerfile.initramfs index 45a36bf..441d196 100644 --- a/hack/dev/vm/Dockerfile.initramfs +++ b/hack/dev/vm/Dockerfile.initramfs @@ -1,4 +1,4 @@ -FROM alpine:3.24@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b AS rootfs +FROM alpine:3.24@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 AS rootfs RUN apk --no-cache add alpine-base tzdata wireless-regdb ifupdown-ng agetty RUN rc-update add devfs sysinit && \ rc-update add dmesg sysinit && \ @@ -21,7 +21,7 @@ RUN rc-update add devfs sysinit && \ ADD kernel.modules.tgz / COPY files/interfaces /etc/network/interfaces -FROM alpine:3.24@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b AS build +FROM alpine:3.24@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 AS build COPY --from=rootfs / /rootfs WORKDIR /rootfs RUN find . | cpio -R 0:0 --ignore-devno --renumber-inodes -o -H newc --quiet > /initramfs diff --git a/hack/dev/vm/Dockerfile.ovmf b/hack/dev/vm/Dockerfile.ovmf index 785ecf0..a413e18 100644 --- a/hack/dev/vm/Dockerfile.ovmf +++ b/hack/dev/vm/Dockerfile.ovmf @@ -1,4 +1,4 @@ -FROM alpine:3.24@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b AS build +FROM alpine:3.24@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 AS build ARG TARGETPLATFORM RUN if [ "${TARGETPLATFORM}" = "linux/amd64" ] || [ "${TARGETPLATFORM}" = "linux/x86_64" ]; then \ apk --no-cache add ovmf edk2-shell; cp /usr/share/ovmf/bios.bin /ovmf.fd; fi diff --git a/hack/dev/vm/Dockerfile.xen b/hack/dev/vm/Dockerfile.xen index b51a7ed..0f45536 100644 --- a/hack/dev/vm/Dockerfile.xen +++ b/hack/dev/vm/Dockerfile.xen @@ -1,4 +1,4 @@ -FROM alpine:3.24@sha256:28bd5fe8b56d1bd048e5babf5b10710ebe0bae67db86916198a6eec434943f8b AS build +FROM alpine:3.24@sha256:294b683cb724975bec92580e1e685676bd4b50bda910ddb8c51d4cabeaec77e6 AS build ARG TARGETPLATFORM RUN apk add --no-cache xen-hypervisor && cp /usr/lib/efi/xen.efi /xen.efi diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 188682e..7e59187 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,4 +1,4 @@ [toolchain] -channel = "1.97.1" +channel = "1.98.1" components = ["rustfmt", "clippy"] targets = ["x86_64-unknown-uefi", "aarch64-unknown-uefi"]