Skip to content

Rubik 26.04 - #154

Merged
crschardt merged 15 commits into
PhotonVision:mainfrom
samfreund:rubik-26
Aug 1, 2026
Merged

Rubik 26.04#154
crschardt merged 15 commits into
PhotonVision:mainfrom
samfreund:rubik-26

Conversation

@samfreund

@samfreund samfreund commented Jul 30, 2026

Copy link
Copy Markdown
Member

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.

Signed-off-by: samfreund <samf.236@proton.me>
samfreund added 10 commits July 29, 2026 19:23
… 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>
@samfreund
samfreund requested review from Copilot and crschardt July 31, 2026 00:04
@samfreund
samfreund marked this pull request as ready for review July 31, 2026 00:05

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 noble to resolute and perform a scripted upgrade/dist-upgrade sequence.
  • 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 apt in scripts (its CLI is not stable and can change output/behavior). Use apt-get here, and keep DEBIAN_FRONTEND=noninteractive consistent with the earlier upgrade steps to prevent prompts in automation.
sudo apt autoremove --purge -y

install_rubikpi3.sh:68

  • xargs will run apt-get purge even when the package list is empty, which can cause a noisy failure (currently masked by 2>/dev/null || true). Use xargs -r to avoid invoking apt-get with 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.

Comment thread install_rubikpi3.sh Outdated
Comment thread install_rubikpi3.sh Outdated
Signed-off-by: samfreund <samf.236@proton.me>

@crschardt crschardt left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works on my RubikPi3

@crschardt
crschardt merged commit 7e9f74a into PhotonVision:main Aug 1, 2026
18 checks passed
Comment thread install_rubikpi3.sh
Comment on lines +56 to +57
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

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we || true on the steps? Dont't we want the job overall fail if these fail?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants