OpenRiot v8.0.3: The Switchboard Reopens

“The switchboard did not care who owned the wires. It cared whether the call reached the room you asked for. The exchange could be a basement, a storefront, or a closet behind a bakery. What mattered was the pair of copper lines and the person at the other end. Then the companies arrived and said the switchboard was a service, the wires were a subscription, and the room was whatever they decided to remember about you. We kept the copper. We kept the room.” – The OpenRiot Crew, v8.0.3


Release Overview

OpenRiot 8.0.3 reopens two lines that had gone quiet on OpenBSD 8.0: Signal and Monero.

The Signal client moves to gurk 0.10.2. The wallet moves to Monero GUI 0.18.5.4. Neither was a simple version bump. OpenBSD 8.0 brought Clang 22, Boost 1.91, protobuf 7 with abseil, hidapi 0.15, and a Qt5 tree that installs its CMake files somewhere CMake does not look by default. The build scripts had to learn the new exchange.

The wallet bundle is now copied back into the repository after every build, and the installer always extracts the bundle that shipped with the release instead of trusting whatever binary is already in ~/.local/bin.

Total changes: two private clients renewed, one build chain rewired, and one stale-binary trap removed.


The Signal Arrives

gurk is the terminal Signal client behind the Signal entry in the launcher. It now builds from v0.10.2.

The upstream release brings voice-note display, a fix for quotes in private notes, a fix for the Ctrl+L crash, and a date-line fix that kept the timestamp one message off. The OpenBSD patch disables notify-rust, which reaches for /proc/self/exe and takes the process down when a message arrives.

The script also learned an old lesson: a checkout cannot overwrite the patched working tree. It fetches tags and forces the checkout before reapplying the patch. The tracked binary in config/bin/gurk is rebuilt to match.

A messenger that needs a data center to remember you is not a messenger. It is a ledger with a chat window.


The Wallet Reopens

Monero GUI 0.18.5.4 now builds on the 8.0 toolchain. The wallet is the same local, private client it has always been. The road to get there was mostly plumbing.

OpenBSD 8.0 puts Qt5 CMake files under:

/usr/local/lib/qt5/cmake

CMake does not search that path by default. The script now passes each module directory explicitly, points at lrelease, and adds /usr/local/lib/qt5 to the linker path.

Two source patches keep the wallet compiling:

  • Boost 1.91 and Clang 22 reject boost::make_unsigned on enums because the enum cannot represent -1. The varint path now uses the enum’s underlying type.
  • hidapi 0.15 renamed hid_init(). The device layer now calls hidapi_hid_init() on new hidapi and keeps the old call for older versions.

The bundle dropped from 25.0M to 10.2M. The new tarball is copied into config/monero so the next release carries it, not the old one.

Trezor remains disabled. Upstream’s probe compiles with C++11, while OpenBSD’s protobuf and abseil require C++17. The wallet works; the hardware-wallet path does not.


The Exchange Rewires Itself

Both build scripts now force the checkout and resync submodules before applying patches. The old flow assumed a clean tree. The patched tree was not clean, so the next tag could not land.

The Monero installer changed too. It used to skip whenever ~/.local/bin/monero-wallet-gui existed. That preserved a May build linked against Boost .so.26.0 after OpenBSD moved to .so.27.0. The result was a loader failure at launch and no update path. The installer now extracts the bundle whenever it exists, and skips only when the bundle is missing.

A switchboard that refuses new calls because a call once connected is not a switchboard. It is a museum.


🧾 Files Changed

File Change
scripts/gurk.sh gurk v0.10.2, forced checkout
config/bin/gurk Rebuilt for 0.10.2
scripts/monero.sh Monero v0.18.5.4
  Qt5 paths, linker path, lrelease
  Forced checkout, submodule sync
  Trezor disabled explicitly
  Copies bundle back to config/monero
scripts/monero-submodule-patch.diff NEW Boost enum and hidapi fixes
scripts/monero-patch.diff C++17 and OpenBSD root build
config/monero/monero.tgz Rebuilt, 25.0M to 10.2M
install/packages.yaml Always extract shipped Monero bundle

🗣️ Final Words

“The line went quiet because the exchange changed the shape of the plug and told everyone the old calls were unsupported. So we filed the plug, traced the pair, and rang the room again. The voice on the other end had not moved. The wires had not moved. Only the company in the middle had decided to sell the silence. We kept the line.” – The OpenRiot Crew, v8.0.3