OpenRiot v7.9.27 — Dump It Like It’s Hot

“The TUI has a dump button now. And it checks your patches.” — The OpenRiot Crew


Release Overview

v7.9.27 introduces a full dump(8)/restore(8) workflow into the migrate TUI (openriot --backup), an errata checker that compares kernel build date against a hardcoded patch table, a CSS line-height fix so heading descenders stop getting clipped on GitHub Pages, and emoji width alignment in the main menu.


🔒 Errata Checker

openriot --install now checks for missing security patches. On stable: runs syspatch -l and compares listed IDs against a hardcoded table; installs via doas syspatch. On -current: parses kernel build date from sysctl kern.version and compares it against patch publish dates; installs via doas sysupgrade -s.

[INFO] A Security Patch Exists for your system
[INFO] Fixes X server: dri2, sync, saver, Xkb extensions
[WARN] Requires a system reboot!
[ASK ] Would you like to install? [y/N]:
File Change
source/installer/version.go CheckErrata() wired into install;
  defaultErrata with 001/002/003;
  checkErrataCurrent() date comparison;
  checkErrataStable() syspatch -l;
  FetchErrata() + ParseErrataHTML() for
  future standalone command
source/installer/version_test.go Tests for errata matching on -current
  and HTML parsing
source/commands/helpers.go Errata check in runInstall() before
  any package work

📐 Heading Descender Fix

The midnight theme’s tight line-height: 1.1 on h1-h3 was clipping tails off letters like g, j, p, q, y. Added line-height: 1.5 to the heading override in style.scss.

File Change
assets/css/style.scss line-height: 1.5 on all headings

💾 System Dump in the TUI

The “💾 System Dump” menu item is now in the migrate TUI. Full integration:

  • Drive selection — pick your external FFS drive (reuses existing drive scanner)
  • Dump submenu — Full Dump (level 0), Incremental Dump (level 1), Restore from Dump
  • Async execution — background goroutine keeps the UI responsive
  • Progress output — real-time dump(8) stderr streamed into the TUI
  • Cancel support — ESC during dump/restore
  • Restore scans dump files by name convention (level0-root-*.dump) and restores to the correct target filesystem (/, /home, /var)
File Change
source/migrate/dump.go NEW — async dump/restore with progress
source/migrate/screens/types.go Added ScreenDump,
  ScreenDumpProgress
source/migrate/screens/menus.go DumpMenuChoices, main menu entry,
  emoji width fixes
source/migrate/handlers/main_menu.go Route to dump screens
source/migrate/model.go Dump screen handling, progress polling
source/migrate/ui.go renderDumpMenu(), renderDumpProgress()

🧹 Minor Fixes

Change File
img { line-height: 0; } for mobile rendering assets/css/style.scss
ℹ️📋, ⚙️🔧 emoji alignment source/migrate/screens/menus.go

🗣️ Final Words

“The TUI dumps your system and checks your patches. And the descenders in the headings finally touch the ground.” — The OpenRiot Crew