Rubik 26.04 - #154
Conversation
Signed-off-by: samfreund <samf.236@proton.me>
… to 26.04 runner - Replace do-release-upgrade with direct sources-based dist-upgrade (swap noble→plucky, then apt upgrade/dist-upgrade). Much more space-efficient since packages are upgraded in-place instead of keeping old versions as rollback copies. - Update ubuntu.sources from noble to plucky suites. - Remove libsqlite3 version pin (was noble-specific). - Bump CI runner from ubuntu-24.04-arm to ubuntu-26.04-arm.
Order of operations fix: clean up snaps, unused packages, apt cache, and conflicting packages (libgstreamer-qcom1.0-0, sosreport) BEFORE the 24.04→26.04 dist-upgrade so there's enough room to upgrade. Add --force-overwrite to handle any remaining dpkg file conflicts during the upgrade.
Package config scripts (console-setup, initramfs-tools) fail in chroot — they try to invoke-rc.d or update-initramfs which need hardware. Allow upgrade to continue with || true, then run dpkg --configure -a and apt --fix-broken install to clean up.
Resolute's dracut/initramfs generation needs more temp space than the base image has. Remove filesystem/RAID/crypto tools (btrfs, lvm, cryptsetup, mdadm, multipath, iscsi) and misc headless-only packages before the upgrade, so their hooks don't bloat the initramfs and the root filesystem has more free space. Also purge non-Qualcomm firmware earlier.
Signed-off-by: samfreund <samf.236@proton.me>
Signed-off-by: samfreund <samf.236@proton.me>
Signed-off-by: samfreund <samf.236@proton.me>
Signed-off-by: samfreund <samf.236@proton.me>
There was a problem hiding this comment.
Pull request overview
Updates the Rubik Pi 3 image install script to target Ubuntu 26.04 (“resolute”), adding an upfront space-reclamation phase and switching to a direct dist-upgrade flow intended to be more space-efficient during the upgrade.
Changes:
- Add aggressive pre-upgrade cleanup (package purges, apt cache cleanup, firmware/doc/locale removal) and report disk usage before/after.
- Switch apt sources from
nobletoresoluteand perform a scriptedupgrade/dist-upgradesequence. - Adjust final cleanup disk reporting to show overall filesystem space (
df -h) rather than a specific loop device.
Comments suppressed due to low confidence (2)
install_rubikpi3.sh:66
- Avoid using
aptin scripts (its CLI is not stable and can change output/behavior). Useapt-gethere, and keepDEBIAN_FRONTEND=noninteractiveconsistent with the earlier upgrade steps to prevent prompts in automation.
sudo apt autoremove --purge -y
install_rubikpi3.sh:68
xargswill runapt-get purgeeven when the package list is empty, which can cause a noisy failure (currently masked by2>/dev/null || true). Usexargs -rto avoid invokingapt-getwith no arguments.
dpkg -l | awk '/^ii.*linux-(image|headers|modules)/{print $2}' | sort -V | head -n -1 | xargs sudo apt-get purge --yes 2>/dev/null || true
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
crschardt
left a comment
There was a problem hiding this comment.
It works on my RubikPi3
| DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-overwrite" -y upgrade || true | ||
| DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::="--force-overwrite" -y dist-upgrade || true |
There was a problem hiding this comment.
Why do we || true on the steps? Dont't we want the job overall fail if these fail?
There was a problem hiding this comment.
There's a couple random packages that fail, so we bypass those warnings. It doesn't affect the actual functionality, and this is meant to be a shim until the proper 26.04 image is released. If the proper 26.04 image isn't released prior to kickoff, I'll prolly pull the Rubik image until it is.
Because wpilib is now building on trixie, we need a later glibc version. Since QC hasn't released a 26.04 image yet, we're going to use this one as a shim for testing.