-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Prepare 17.0.rc1 #4436
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Prepare 17.0.rc1 #4436
Conversation
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 5.6.2 to 6.0.0. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](mikepenz/action-junit-report@3585e95...5b7ee5a) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Prefer the containerd snapshotter by using it by default for new installs and when no Docker data is present (e.g. after datadisk wipe). The snapshotter is enabled by a dockerd flag which is set when a flag file is present in the data partition. This flag file can be used also to opt-in for this snapshotter on legacy installs (high level API through OS Agent and Supervisor TBD), to migrate to the containerd snapshotter this file can be simply created manually. Testing shown no major problems when migrating, the old overlay2 folder can be (and should be - to avoid situations where the data disk might run out of space) deleted before the docker.service is started in the docker-prepare script. Note that there's no offline migration path, OS needs to be connected to the internet to re-download the images when migrating. This could be theoretically possible through docker image save/load functions but guarding for enough of space and other edge cases would be probably too complex to justify it. Refs #4252 Refs #4253 - easier opt-in method is still needed Closes #4254 - migration is handled seamlessly by Docker
The deprecated-key-path option is no longer handled, but it doesn't cause problems because the key is explicitly ignored. It was completely removed in Docker 19.03.0 [1]. As such, the option and the pre-start script to fix the corrupted key.json can be removed now, as it has no effect, only printing confusing message when Docker service fails to start. [1] http://github.com/moby/moby/commit/98fc09128b3f8221680bd22c2de5b893bd3d7ef8
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 4.6.2 to 5.0.0. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](actions/upload-artifact@ea165f8...330a01c) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: 5.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/actions/download-artifact/releases) - [Commits](actions/download-artifact@634f93c...018cc2c) --- updated-dependencies: - dependency-name: actions/download-artifact dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…PCIe Gen3x2 Bridge (#4366) Vendor ID: 152d Product ID: 0583
…4368) Because the OS downgrade performed in tests now triggers change in container snapshotters, all containers need to be redownloaded. Make sure that CLI container exists and increase the timeout for the time being.
A bug introduced in Docker v28.2+ can cause slow container restart in some cases because of usage of IPv4 mapped IPv6 addresses in iptables command. Backport a simple patch from upstream to fix it before we bump to a newer Docker version. Fixes #4363
With home-assistant/cli#604, there is no --content-trust option anymore. Remove the call and only check if Supervisor is healthy and there are no issues. This replaces #4370 which is too broad.
With home-assistant/cli#604, there is no --content-trust option anymore. Remove the call and only check if Supervisor is healthy and there are no issues. This replaces #4370 which is too broad. (cherry picked from commit 1d29f6b)
Bumps [mikepenz/action-junit-report](https://github.com/mikepenz/action-junit-report) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/mikepenz/action-junit-report/releases) - [Commits](mikepenz/action-junit-report@5b7ee5a...e08919a) --- updated-dependencies: - dependency-name: mikepenz/action-junit-report dependency-version: 6.0.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Remove configs and board files of deprecated architectures * Remove support for ODROID-XU4 boot files * Remove ASUS Tinker support from rpi-rf-mod * Remove RPi armv7 config fragment
Atm some targets don't have comments support enabled for iptables. There's no reason to limit that to just arm64-rockhip target, so this change addresses that.
* buildroot 02f1553a34...986b8be22d (2): > package/go: security bump to version 1.25.3 > package/go: bump to version 1.25.1
Update Docker and the related components to the latest security releases. * buildroot 986b8be22d...74aec5a64c (4): > package/docker-cli: bump version to v28.5.2 > package/docker-engine: bump version to v28.5.2 > package/containerd: bump version to v2.1.5 > package/runc: bump version to v1.3.3
…#4393) Importing docker-archive format leads to some layers missing in the content storage which results in some image metadata missing. This appears to be the same regression as moby/moby#49473. Importing OCI archives when bootstrapping the data partition seems to work this bug around. Fixes #4385
Extract some of the parts of the "image import" to the script creating the data partition to separate concerns. The Docker data directory is now passed as a daemon option, instead of only mounting the data partition's folder to the default directory, to be closer to the deployment setup. Also trap the exit and error signals to remove the build container and unmount the data partition, as failed or cancelled build have been leaking the containers/mounts when building interactively (attached to the build container shell).
Since home-assistant/version#305 the AppArmor profiles were split to per-channel files. This was never reflected in hassio package build though. Currently this doesn't cause any trouble and the profile is replaced later by the Supervisor but make sure we're always using the correct one from the beginning.
This reverts commit b3a9e76.
Bumps [actions/checkout](https://github.com/actions/checkout) from 5.0.0 to 6.0.0. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](actions/checkout@08c6903...1af3b93) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 6.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* buildroot 74aec5a64c...0aa9729cd5 (1): > Merge tag '2025.02.8' into 2025.02.x-haos
For users having non-English, and especially non-qwerty layouts, using the host shell can be very awkward. There was no option to change the keymaps as they haven't been installed in the OS, and the persistence couldn't have been achieved because of read-only /etc. With upstream patch merged in #4224, we have an option to put /etc/vconsole.conf to a writable location and use the same approach as in the timezone PR. This is needed because even if we only bind-mounted the file from the overlay directory, the Systemd services which start early will still refer to the inode on the read-only FS. Also, gzip is required as current version of kbd in Buildroot (v2.6.4) always compresses the keymaps using gzip. We can get rid of this after we bump to kbd v2.9.0 [1] or newer. The overall bloat in local build of the OS is slightly over 1 MiB, so it is acceptable. With these changes, the `localectl set-keymap` command can be used to use any available keymap from the installed `kbd` package (refer to `localectl list-keymaps` for complete lists) and persist it between reboots. [1] https://github.com/legionus/kbd/releases/tag/v2.9.0 Fixes #1775
Update to the latest versions and update tests to use the new schema of the inspect output. * buildroot 0aa9729cd5...808ee7b916 (4): > package/docker-engine: bump version to v29.1.2 > package/docker-cli: bump version to v29.1.2 > package/containerd: bump version to v2.2.0 > package/runc: bump version to v1.3.4
📝 WalkthroughWalkthroughThis change removes support for older ARM-based boards (ODROID-XU4, Raspberry Pi 2/3/4 32-bit, ASUS Tinker), updates GitHub Actions to newer versions, bumps kernel from 6.12.51 to 6.12.60, refactors Docker startup through a new systemd service, increments os-agent to 1.8.1, and advances buildroot-external to version 17.0. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes
Pre-merge checks and finishing touches❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
tests/supervisor_test/test_supervisor.py (1)
119-133: Guard against missingdatainha resolution inforesponse
resolution_info.get("data").get("unhealthy")will raise ifdataisNone(e.g., if the command returns an error result), which makes the failure less clear than asserting on the response shape first. A small refactor keeps the test robust while still failing when things are wrong:def test_supervisor_errors(shell_json): @@ - resolution_info = shell_json("ha resolution info --no-progress --raw-json") - logger.info("Resolution center info: %s", resolution_info) - # check supervisor is healthy - unhealthy = resolution_info.get("data").get("unhealthy") - assert len(unhealthy) == 0, "Supervisor is unhealthy" - # check for unsupported entries - unsupported = resolution_info.get("data").get("unsupported") - assert len(unsupported) == 0, "Unsupported entries found" + resolution_info = shell_json("ha resolution info --no-progress --raw-json") + logger.info("Resolution center info: %s", resolution_info) + assert resolution_info.get("result") == "ok", "Resolution info failed" + data = resolution_info.get("data") or {} + # check supervisor is healthy + unhealthy = data.get("unhealthy", []) + assert len(unhealthy) == 0, "Supervisor is unhealthy" + # check for unsupported entries + unsupported = data.get("unsupported", []) + assert len(unsupported) == 0, "Unsupported entries found"This preserves the intent while avoiding an AttributeError on unexpected responses.
♻️ Duplicate comments (2)
buildroot-external/configs/rpi4_64_defconfig (1)
33-33: Aligns with global gzip/locale changes; same considerations as ova_defconfigAdding
BR2_PACKAGE_GZIPandBR2_PACKAGE_SYSTEMD_LOCALEDhere aligns this defconfig with the others; the earlier remarks about potentialgzipvspigzredundancy and the role ofLOCALEDfor the new keyboard/locale flow apply here as well.Also applies to: 130-130
buildroot-external/configs/yellow_defconfig (1)
34-34: Matches other defconfig gzip/locale changesYellow now follows the same pattern as the other updated defconfigs (GZIP + PIGZ + SYSTEMD_LOCALED). The previous comments about potential gzip/pigz redundancy and LOCALED’s role in the vconsole/locale workflow also apply here.
Also applies to: 133-133
🧹 Nitpick comments (3)
tests/smoke_test/test_os_update.py (2)
42-48: Timeout bump and local helper look fine; consider sharing helperThe extended
@pytest.mark.timeout(600)and the localcheck_container_runningmirror existing patterns and should help with slower OS upgrade paths. Since the same helper logic now exists here, intest_init, and intests/smoke_test/test_basic.py, you might consider extracting a small module-level or shared helper later to avoid diverging behavior, but it’s non‑blocking.
72-78: Container wait loop relies solely on global test timeoutThe new loop waiting for
hassio_supervisorandhassio_cliis reasonable for the 17.0 → 16.x re-download scenario, but in a failure case it will spin until the 600s test timeout fires. If you start seeing flakes here, adding some lightweight logging or a soft upper bound/pytest.failbefore the hard timeout would make diagnosis easier; otherwise this is acceptable as-is.buildroot-external/package/hassio/create-data-partition.sh (1)
23-23: Trap references potentially unsetcontainervariable.If the mount on line 21 fails before the container is started on line 27,
${container}will be unset when the trap executes. This causesdocker rm -fto run without an argument, which may produce an error message (though the script still cleans up the mount).Consider initializing
containerbefore the trap or guarding the docker rm:+container="" trap 'docker rm -f ${container} > /dev/null; sudo umount ${data_dir} || true' ERR EXITOr:
-trap 'docker rm -f ${container} > /dev/null; sudo umount ${data_dir} || true' ERR EXIT +trap '[ -n "${container}" ] && docker rm -f ${container} > /dev/null; sudo umount ${data_dir} || true' ERR EXIT
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
Cache: Disabled due to data retention organization setting
Knowledge base: Disabled due to data retention organization setting
📒 Files selected for processing (90)
.github/ISSUE_TEMPLATE/bug_report.yml(0 hunks).github/release-drafter.yml(0 hunks).github/workflows/artifacts-index.yaml(1 hunks).github/workflows/build.yaml(7 hunks).github/workflows/matrix.json(0 hunks).github/workflows/pr-checks.yml(1 hunks).github/workflows/test.yaml(3 hunks)Documentation/kernel.md(1 hunks)buildroot(1 hunks)buildroot-external/board/asus/hassos-hook.sh(0 hunks)buildroot-external/board/asus/tinker/boot-env.txt(0 hunks)buildroot-external/board/asus/tinker/cmdline.txt(0 hunks)buildroot-external/board/asus/tinker/image-spl-spl.cfg(0 hunks)buildroot-external/board/asus/tinker/kernel.config(0 hunks)buildroot-external/board/asus/tinker/meta(0 hunks)buildroot-external/board/asus/tinker/partition-spl-spl.cfg(0 hunks)buildroot-external/board/asus/tinker/patches/README.md(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0006-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard-.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch(0 hunks)buildroot-external/board/asus/tinker/patches/linux/0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch(0 hunks)buildroot-external/board/asus/tinker/patches/uboot/0001-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch(0 hunks)buildroot-external/board/asus/tinker/uboot-boot.ush(0 hunks)buildroot-external/board/asus/tinker/uboot.config(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/cmdline.txt(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/hassos-hook.sh(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/image-spl-spl.cfg(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/kernel.config(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/meta(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/partition-spl-spl.cfg(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/patches/linux/0001-ODROID-XU4-regulator-s2mps11-add-ethernet-power-rese.patch(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/uboot-boot.ush(0 hunks)buildroot-external/board/hardkernel/odroid-xu4/uboot.config(0 hunks)buildroot-external/board/raspberrypi/cmdline.txt(1 hunks)buildroot-external/board/raspberrypi/kernel-armv7.config(0 hunks)buildroot-external/board/raspberrypi/rpi2/meta(0 hunks)buildroot-external/board/raspberrypi/rpi3/meta(0 hunks)buildroot-external/board/raspberrypi/rpi4/meta(0 hunks)buildroot-external/board/raspberrypi/rpi4/uboot.config(0 hunks)buildroot-external/configs/generic_aarch64_defconfig(3 hunks)buildroot-external/configs/generic_x86_64_defconfig(3 hunks)buildroot-external/configs/green_defconfig(3 hunks)buildroot-external/configs/khadas_vim3_defconfig(3 hunks)buildroot-external/configs/odroid_c2_defconfig(3 hunks)buildroot-external/configs/odroid_c4_defconfig(3 hunks)buildroot-external/configs/odroid_m1_defconfig(3 hunks)buildroot-external/configs/odroid_m1s_defconfig(3 hunks)buildroot-external/configs/odroid_n2_defconfig(3 hunks)buildroot-external/configs/odroid_xu4_defconfig(0 hunks)buildroot-external/configs/ova_defconfig(3 hunks)buildroot-external/configs/rpi2_defconfig(0 hunks)buildroot-external/configs/rpi3_64_defconfig(2 hunks)buildroot-external/configs/rpi3_defconfig(0 hunks)buildroot-external/configs/rpi4_64_defconfig(2 hunks)buildroot-external/configs/rpi4_defconfig(0 hunks)buildroot-external/configs/rpi5_64_defconfig(2 hunks)buildroot-external/configs/tinker_defconfig(0 hunks)buildroot-external/configs/yellow_defconfig(2 hunks)buildroot-external/kernel/v6.12.y/device-support.config(1 hunks)buildroot-external/kernel/v6.12.y/hassos.config(1 hunks)buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config(0 hunks)buildroot-external/meta(1 hunks)buildroot-external/ota/rauc-hook(0 hunks)buildroot-external/package/hardkernel-boot/Config.in(0 hunks)buildroot-external/package/hardkernel-boot/hardkernel-boot.mk(0 hunks)buildroot-external/package/hassio/create-data-partition.sh(1 hunks)buildroot-external/package/hassio/dind-import-containers.sh(0 hunks)buildroot-external/package/hassio/fetch-container-image.sh(1 hunks)buildroot-external/package/os-agent/os-agent.mk(1 hunks)buildroot-external/package/rpi-rf-mod/Config.in(0 hunks)buildroot-external/package/rpi-rf-mod/rpi-rf-mod.mk(0 hunks)buildroot-external/rootfs-overlay/etc/docker/daemon.json(0 hunks)buildroot-external/rootfs-overlay/usr/lib/systemd/system.conf.d/etc-environment-overrides.conf(1 hunks)buildroot-external/rootfs-overlay/usr/lib/systemd/system/docker-prepare.service(1 hunks)buildroot-external/rootfs-overlay/usr/lib/systemd/system/docker.service.d/failure.conf(0 hunks)buildroot-external/rootfs-overlay/usr/lib/systemd/system/docker.service.d/hassos.conf(1 hunks)buildroot-external/rootfs-overlay/usr/lib/systemd/system/systemd-localed.service.d/vconsole.conf(1 hunks)buildroot-external/rootfs-overlay/usr/lib/systemd/system/systemd-vconsole-setup.service.d/vconsole.conf(1 hunks)buildroot-external/rootfs-overlay/usr/libexec/docker-failure(0 hunks)buildroot-external/rootfs-overlay/usr/libexec/docker-prepare(1 hunks)buildroot-external/rootfs-overlay/usr/libexec/hassos-overlay(1 hunks)buildroot-external/scripts/post-build.sh(1 hunks)buildroot-external/scripts/rootfs-layer.sh(1 hunks)scripts/update-kernel-upstream.sh(1 hunks)tests/smoke_test/test_os_update.py(2 hunks)tests/supervisor_test/test_supervisor.py(3 hunks)
💤 Files with no reviewable changes (51)
- buildroot-external/board/asus/tinker/cmdline.txt
- buildroot-external/board/asus/tinker/image-spl-spl.cfg
- buildroot-external/board/asus/tinker/patches/linux/0007-ARM-dts-rockchip-Add-Bluetooth-to-rk3288-tinker.patch
- buildroot-external/board/raspberrypi/rpi4/uboot.config
- buildroot-external/board/asus/tinker/patches/README.md
- buildroot-external/rootfs-overlay/usr/lib/systemd/system/docker.service.d/failure.conf
- buildroot-external/board/hardkernel/odroid-xu4/image-spl-spl.cfg
- buildroot-external/board/hardkernel/odroid-xu4/hassos-hook.sh
- .github/ISSUE_TEMPLATE/bug_report.yml
- buildroot-external/board/hardkernel/odroid-xu4/uboot.config
- buildroot-external/kernel/v6.12.y/kernel-arm64-rockchip.config
- buildroot-external/board/asus/hassos-hook.sh
- buildroot-external/board/hardkernel/odroid-xu4/kernel.config
- buildroot-external/package/rpi-rf-mod/Config.in
- buildroot-external/configs/odroid_xu4_defconfig
- buildroot-external/configs/tinker_defconfig
- buildroot-external/board/hardkernel/odroid-xu4/meta
- buildroot-external/board/asus/tinker/patches/linux/0001-Revert-ARM-dts-rockchip-use-DMA-channels-for-UARTs-f.patch
- buildroot-external/board/asus/tinker/patches/linux/0002-ARM-DTS-rk3288-tinker-Defining-the-SPI-interface.patch
- buildroot-external/board/asus/tinker/partition-spl-spl.cfg
- buildroot-external/package/hassio/dind-import-containers.sh
- buildroot-external/board/hardkernel/odroid-xu4/cmdline.txt
- buildroot-external/package/hardkernel-boot/hardkernel-boot.mk
- .github/release-drafter.yml
- buildroot-external/rootfs-overlay/usr/libexec/docker-failure
- buildroot-external/board/raspberrypi/rpi2/meta
- buildroot-external/board/hardkernel/odroid-xu4/partition-spl-spl.cfg
- buildroot-external/configs/rpi3_defconfig
- buildroot-external/ota/rauc-hook
- buildroot-external/configs/rpi4_defconfig
- buildroot-external/board/asus/tinker/uboot.config
- buildroot-external/board/asus/tinker/meta
- buildroot-external/board/hardkernel/odroid-xu4/uboot-boot.ush
- buildroot-external/board/raspberrypi/kernel-armv7.config
- buildroot-external/board/asus/tinker/patches/linux/0006-drivers-mmc-dw-mci-rockchip-Handle-ASUS-Tinkerboard-.patch
- buildroot-external/board/asus/tinker/patches/linux/0005-ARM-DTSI-rk3288-tinker-Improving-the-CPU-max-voltage.patch
- buildroot-external/board/asus/tinker/uboot-boot.ush
- buildroot-external/configs/rpi2_defconfig
- buildroot-external/board/raspberrypi/rpi3/meta
- buildroot-external/rootfs-overlay/etc/docker/daemon.json
- buildroot-external/board/asus/tinker/boot-env.txt
- buildroot-external/package/hardkernel-boot/Config.in
- buildroot-external/package/rpi-rf-mod/rpi-rf-mod.mk
- buildroot-external/board/asus/tinker/patches/linux/0003-ARM-dts-rockchip-enable-I2C1-4-on-rk3288-tinker.patch
- buildroot-external/board/asus/tinker/patches/linux/0008-usb-audio-add-ASUS-TinkerBoard-s-ALC4040.patch
- buildroot-external/board/asus/tinker/patches/uboot/0001-pmic-enable-LDO2-vcc33_mipi-at-bootup.patch
- buildroot-external/board/asus/tinker/patches/linux/0004-RK3288-DTSI-rk3288.dtsi-Add-missing-SPI2-pinctrl.patch
- buildroot-external/board/asus/tinker/kernel.config
- .github/workflows/matrix.json
- buildroot-external/board/hardkernel/odroid-xu4/patches/linux/0001-ODROID-XU4-regulator-s2mps11-add-ethernet-power-rese.patch
- buildroot-external/board/raspberrypi/rpi4/meta
🧰 Additional context used
📓 Path-based instructions (1)
*/**(html|markdown|md)
⚙️ CodeRabbit configuration file
*/**(html|markdown|md): - For instructional content in documentation, use a direct and authoritative tone. Avoid expressions of politeness such as 'may' or 'please', and ensure the goal of the instruction is fronted.
- Apply the Microsoft Style Guide to ensure documentation maintains clarity and conciseness.
- In step-by-step instructions, front the location phrase in the instructional sentence.
- In step-by-step instructions, front the 'goal' in the instructional sentence.
- In step-by-step instructions, if in doubt what to front, front the 'goal' before the location phrase in the instructional sentence.
- do not hyphenate terms like 'top-right' or 'bottom-left' with 'corner'
*/**(html|markdown|md): - Use bold to mark UI strings.
If "" are used to mark UI strings, replace them by bold.
Be brief in your replies and don't add fluff like "thank you for..." and "Please let me know if"
Use sentence-style capitalization also in headings.
do not comment on HTML used for icons
Avoid flagging inline HTML for embedding videos in future reviews for this repository.
Files:
scripts/update-kernel-upstream.shDocumentation/kernel.mdbuildroot-external/meta
🧬 Code graph analysis (2)
buildroot-external/scripts/post-build.sh (1)
buildroot-external/scripts/rootfs-layer.sh (1)
setup_vconsole(54-57)
tests/smoke_test/test_os_update.py (3)
tests/conftest.py (2)
shell(46-50)shell_json(54-62)tests/smoke_test/test_basic.py (1)
check_container_running(13-17)tests/qemu_shell_strategy.py (1)
run_check(26-27)
🔇 Additional comments (37)
tests/supervisor_test/test_supervisor.py (1)
31-33: Docker inspect template now assumesbridgenetworkSwitching to
{{.NetworkSettings.Networks.bridge.IPAddress}}tightens the assumption thathassio_supervisoris attached to thebridgenetwork. If that ever changes (custom network name, host networking, etc.), this will return an empty string and the ping loop will never succeed. If there’s any chance the network name differs across environments, you might want a more generic template (e.g., iterate over.NetworkSettings.Networksand pick the first IP); otherwise, this change is fine as long asbridgeis guaranteed.Also applies to: 159-161
buildroot (1)
1-1: Verify the buildroot submodule commit and alignment with version 2025.02.8.This submodule reference has been updated to a new commit. Please confirm that:
- The commit
808ee7b91641925b4b7bb4bd400494e172265dafexists and is accessible in the buildroot repository.- This commit aligns with the Buildroot 2025.02.8 version mentioned in the PR objectives.
- No breaking changes or new dependencies are introduced in this submodule update that could affect the Home Assistant OS build.
buildroot-external/meta (1)
1-2: LGTM! Version bump aligns with release preparation.The version bump from 16.3 to 17.0.rc1 is correctly formatted and consistent with the PR objectives.
buildroot-external/rootfs-overlay/usr/libexec/hassos-overlay (1)
25-29: LGTM! Console keymap configuration properly initialized.The vconsole.conf setup correctly creates a default US keymap configuration when the file doesn't exist. The implementation follows the same pattern as other overlay configurations in this script.
.github/workflows/test.yaml (1)
35-35: LGTM! GitHub Actions updated consistently.The workflow updates multiple actions to their latest stable versions. The version differences (v6.0.0 for checkout/download-artifact, v5.0.0 for upload-artifact, v6.0.1 for junit-report) reflect the latest stable releases for each action.
Also applies to: 60-60, 80-80, 88-88, 96-96
.github/workflows/pr-checks.yml (1)
18-18: LGTM! Checkout action updated consistently with other workflows.buildroot-external/board/raspberrypi/cmdline.txt (1)
1-1: LGTM! USB quirk added for JMicron JMS583 bridge.The new quirk entry
152d:0583:ucorrectly disables UAS for the JMicron JMS583 Gen2→PCIe Gen3x2 bridge. Note that152d:a583:uis a different device ID (not a duplicate)..github/workflows/artifacts-index.yaml (1)
42-42: No concerns with actions/[email protected] upgrade.v6.0.0 is the latest stable version. Breaking changes involve credential storage (moved from .git/config to $RUNNER_TEMP for better security) and Docker container action requirements (Actions Runner v2.329.0+), but neither applies to this repository's workflows.
buildroot-external/package/os-agent/os-agent.mk (1)
7-7: Release v1.8.1 is valid and documented. The version bump from 1.7.2 to 1.8.1 (released 5 December 2025) includes updates to Go 1.25, removal of the overlay2 Docker driver option, and dependency updates. No breaking changes affect this buildroot package.buildroot-external/package/hassio/fetch-container-image.sh (1)
55-55: The code already usesoci-archiveformat, which is compatible with containerd's image import capabilities (viactr images import). This format does not relate to containerd v2.2.0's snapshotter implementations—snapshotters like stargz and SOCI are external plugins, not built-in features. The current usage ofoci-archiveis appropriate for container image fetching and is supported by skopeo.If this comment is meant to address a specific snapshotter issue, clarify which snapshotter and which issue this resolves, as the current narrative references an unsubstantiated change and conflates image archive format with snapshotter functionality.
Likely an incorrect or invalid review comment.
buildroot-external/rootfs-overlay/usr/libexec/docker-prepare (1)
1-23: LGTM - Docker preparation script is well-structured.The script correctly:
- Creates the containerd snapshotter flag for fresh/wiped installations
- Conditionally enables the feature flag and cleans up legacy overlay2 data
- Uses
|| trueappropriately to avoid failing the service if cleanup failsThe POSIX sh compatibility is maintained throughout.
buildroot-external/package/hassio/create-data-partition.sh (1)
34-44: LGTM - Data partition setup is well-structured.The here-document correctly:
- Creates the containerd snapshotter marker for consistency with runtime behavior
- Downloads the per-channel AppArmor profile from the version API
- Persists the build-time channel configuration using proper JSON escaping with
jq --argbuildroot-external/configs/rpi3_64_defconfig (1)
33-33: LGTM - Configuration additions align with PR objectives.
BR2_PACKAGE_GZIP: Adds traditional gzip alongside the existing pigz (parallel gzip)BR2_PACKAGE_SYSTEMD_LOCALED: Enableslocalectlfor configuring console keymaps, as mentioned in the PR objectivesThese changes are consistently applied across multiple defconfig files in this PR.
Also applies to: 129-129
buildroot-external/scripts/post-build.sh (1)
20-20: LGTM - vconsole setup follows established pattern.The
setup_vconsolecall mirrors the existingsetup_localtimepattern, enabling writable vconsole configuration via the overlay filesystem. This aligns with the PR objective to make console keymaps configurable throughlocalectl.buildroot-external/configs/odroid_n2_defconfig (2)
21-21: Kernel version bump to 6.12.60 looks good.This is a point release update within the stable 6.12.y series. The PR summary indicates incremental kernel updates from 6.12.52 through 6.12.60, which typically include bug fixes and security patches.
34-34: LGTM - Configuration additions are consistent with other defconfigs.The
BR2_PACKAGE_GZIPandBR2_PACKAGE_SYSTEMD_LOCALEDadditions match the same pattern applied across other board configurations in this PR.Also applies to: 125-125
buildroot-external/kernel/v6.12.y/device-support.config (1)
38-38: LGTM! CH9200 USB ethernet adapter support added.The addition of the QingHeng CH9200 USB network adapter driver as a loadable module is correctly placed and aligns with the PR objectives.
buildroot-external/configs/rpi5_64_defconfig (1)
35-35: LGTM! Package additions support configurable console keymaps.The addition of GZIP and SYSTEMD_LOCALED, along with the removal of the explicit default keymap setting, aligns with the PR objective to make console keymaps configurable through localectl.
Also applies to: 129-129
buildroot-external/configs/odroid_c2_defconfig (2)
34-34: LGTM! Package additions support configurable console keymaps.Consistent with the changes across other defconfigs, enabling GZIP and SYSTEMD_LOCALED to support the new console keymap configuration feature.
Also applies to: 125-125
21-21: Kernel version 6.12.60 is a valid, officially released stable version.The kernel version 6.12.60 is confirmed as a legitimate stable release from December 1, 2025, available in the official Linux kernel repositories (kernel.org and git.kernel.org stable tags). The version bump is safe to proceed with.
buildroot-external/rootfs-overlay/usr/lib/systemd/system/systemd-localed.service.d/vconsole.conf (1)
1-3: LGTM! Systemd drop-in correctly configures vconsole path for overlay.This service override configures systemd-localed to use the vconsole configuration from the overlay mount point, enabling runtime keymap changes through localectl. The ReadWritePaths directive appropriately grants the necessary write access for this functionality.
buildroot-external/configs/odroid_c4_defconfig (1)
21-21: LGTM! Consistent configuration updates.The kernel version bump to 6.12.60 and package additions mirror the changes in other defconfigs, maintaining consistency across ODROID boards.
Also applies to: 34-34, 123-123
buildroot-external/rootfs-overlay/usr/lib/systemd/system.conf.d/etc-environment-overrides.conf (1)
3-3: LGTM! Global environment configuration for vconsole overlay path.The ManagerEnvironment directive correctly sets the vconsole configuration path system-wide, following the same pattern as the existing localtime override.
buildroot-external/configs/generic_aarch64_defconfig (1)
21-21: LGTM! Consistent configuration updates for generic aarch64.The kernel version bump and package additions are consistent with the changes applied across all other platform defconfigs in this PR.
Also applies to: 30-30, 152-152
buildroot-external/kernel/v6.12.y/hassos.config (1)
159-159: LGTM! Netfilter comment match support enabled.The addition of CONFIG_NETFILTER_XT_MATCH_COMMENT as a loadable module enables iptables comment support as stated in the PR objectives, allowing human-readable annotations in firewall rules.
buildroot-external/scripts/rootfs-layer.sh (1)
54-57: setup_vconsole helper is consistent with setup_localtimeThe new helper mirrors the existing localtime symlink pattern and correctly targets the overlay vconsole.conf path; no functional issues spotted.
buildroot-external/configs/ova_defconfig (1)
21-21: Kernel bump and locale/gzip options look consistent; confirm gzip vs pigz intent
- Kernel version update to
"6.12.60"and enablingSYSTEMD_LOCALEDmatch the wider kernel/locale changes and the new vconsole/localectl flow in this PR.- Both
BR2_PACKAGE_GZIPandBR2_PACKAGE_PIGZare enabled; if pigz already provides agzip-compatible CLI in your Buildroot config, this duplication might be unnecessary, otherwise it is fine.Also applies to: 33-33, 155-155
buildroot-external/rootfs-overlay/usr/lib/systemd/system/systemd-vconsole-setup.service.d/vconsole.conf (1)
1-2: Drop-in correctly points vconsole to overlay configThe drop-in cleanly injects
SYSTEMD_ETC_VCONSOLE_CONF=/mnt/overlay/etc/vconsole.conf, matching the symlink created insetup_vconsoleand the overlay layout, so systemd-vconsole-setup should consume the overlay-backed configuration as intended.scripts/update-kernel-upstream.sh (1)
17-19: Updated defconfig/doc targets are consistent with Tinker removalThe defconfigs array and the
Documentation/kernel.mdsed pattern now target only the remaining boards (generic aarch64/x86_64, OVA, ODROID family, Khadas VIM3, Green), which matches the intent to drop Tinker. The brace/glob expansion withodroid_*still produces the expected defconfig set.Consider this a reminder that any future addition/removal of defconfigs should be mirrored in both the array and the documentation sed pattern.
buildroot-external/rootfs-overlay/usr/lib/systemd/system/docker.service.d/hassos.conf (1)
5-8: ExecStart override and env wiring look correct; ensure docker-prepare orderingThe drop-in correctly:
- Loads
/run/dockerd.envviaEnvironmentFile, and- Resets
ExecStartbefore defining the new dockerd command with the containerd socket and$DOCKERD_FLAGS.Because
EnvironmentFile=/run/dockerd.envis mandatory, docker-prepare.service must reliably create this file and be ordered beforedocker.service(e.g., viaBefore=/After=and appropriate Wants/Requires). If that ordering is already encoded in docker-prepare’s unit, this setup is solid.buildroot-external/configs/khadas_vim3_defconfig (1)
21-21: Khadas VIM3 config aligned with global kernel and locale updates
- Kernel version bump to
"6.12.60"matches the rest of the updated boards.- Enabling
GZIPandSYSTEMD_LOCALEDaligns this defconfig with the new gzip/systemd-locale baseline; as with other boards, double-check whether you intentionally want bothGZIPandPIGZhere.Also applies to: 34-34, 125-125
Documentation/kernel.md (1)
6-19: Kernel version table updates are consistent with defconfigsThe bumped entries to 6.12.60 for OVA, Green, ODROID boards, generic aarch64/x86-64, and Khadas VIM3 align with the corresponding defconfig kernel version changes and keep the documentation in sync.
buildroot-external/rootfs-overlay/usr/lib/systemd/system/docker-prepare.service (1)
1-11: docker-prepare systemd unit definition looks correctOneshot type, ordering before docker.service, and the dependency on /mnt/data being mounted are appropriate for a preparatory script, and ExecStart wiring to
/usr/libexec/docker-prepareis straightforward.buildroot-external/configs/odroid_m1_defconfig (1)
21-125: Odroid M1 defconfig kernel and package tweaks are consistentKernel version bump to 6.12.60 and enabling
BR2_PACKAGE_GZIPandBR2_PACKAGE_SYSTEMD_LOCALEDfollow the same pattern as other boards and align with the documented versions; no issues spotted.buildroot-external/configs/green_defconfig (1)
21-130: Green defconfig changes match broader board updatesThe kernel version bump to 6.12.60 and enabling gzip and systemd-localed mirror the updates applied to other boards and keep this defconfig aligned with the documented kernel table.
buildroot-external/configs/generic_x86_64_defconfig (1)
21-154: Generic x86-64 defconfig updates are aligned and minimalKernel 6.12.60 plus enabling gzip and systemd-localed are in line with other targets and the updated documentation; configuration remains coherent.
buildroot-external/configs/odroid_m1s_defconfig (1)
21-125: Odroid M1S defconfig follows the shared update patternThe kernel version bump and enabling gzip and systemd-localed match the changes for other Rockchip-based boards, keeping configurations in sync across the platform set.
| steps: | ||
| - name: Checkout source | ||
| uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 | ||
| uses: actions/checkout@1af3b93b6815bc44a9784bd300feb67ff0d1eeb3 # v6.0.0 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧩 Analysis chain
🌐 Web query:
GitHub Actions actions/checkout latest version 2024 2025
💡 Result:
Latest published version is v6 — use actions/checkout@v6. [1][2]
Sources:
[1] GitHub Marketplace — Checkout (actions/checkout) (shows v6).
[2] actions/checkout repository (README/releases notes listing v6).
🌐 Web query:
GitHub Actions actions/upload-artifact v5.0.0 release
💡 Result:
actions/upload-artifact v5.0.0 was released on Oct 24, 2025 (tag v5.0.0). Main notes: adds support for Node v24.x (treated as a breaking change), bumps @actions/artifact to v4.0.0, and includes README/GHES guidance updates. [1][2]
Sources:
[1] actions/upload-artifact — Releases (v5.0.0).
[2] actions/upload-artifact — Compare v4...v5.0.0 (changelog / commits).
🌐 Web query:
GitHub Actions actions/download-artifact v6.0.0 release
💡 Result:
actions/download-artifact v6.0.0 — summary
- Release: v6.0.0 (prepared Oct 24, 2025). [1][2]
- Key changes: explicit BREAKING CHANGE note that the action now targets Node.js v24.x; README updates (artifact extraction, GHES usage); bumped @actions/artifact to v4.0.0. [2]
- Notable: treated as a breaking change because of Node upgrade (update self-hosted runners or use compatible Node). [2]
Sources:
[1] mirror of actions/download-artifact repo showing prepare v6.0.0 commit (Oct 24, 2025).
[2] v6.0.0 release notes / changelog (summary of changes: Node v24 support, README updates, bump @actions/artifact).
GitHub Actions version bumps are valid but include breaking changes—verify Node.js v24.x compatibility.
The version updates are consistently applied with proper SHA pinning. However, v5.0.0 of actions/upload-artifact and v6.0.0 of actions/checkout/download-artifact include breaking changes requiring Node.js v24.x support. Verify that all CI runners (especially self-hosted ones) support Node v24.x before deploying these upgrades.
Also applies to: 210-210, 230-230, 263-263
🤖 Prompt for AI Agents
.github/workflows/build.yaml lines 58,210,230,263: the upgraded actions
(checkout v6.0.0 and upload/download-artifact v5.0.0) require Node.js v24.x;
ensure all CI runners (including self-hosted) are Node 24 compatible or
revert/pin to earlier action versions. Fix by either (a) adding or updating a
setup-node step in the workflow to install/use Node.js v24.x before these
actions run, or (b) pinning the actions back to the last compatible releases
that support your current Node version, and document the decision in the
workflow comment.
localectl(Make console keymaps configurable throughlocalectl#4424)Summary by CodeRabbit
Release Notes
New Features
Updates
Removals
Improvements
✏️ Tip: You can customize this high-level summary in your review settings.