I'm blogging about Emacs, Drupal, php and exciting subjects
A build running inside a chroot on this project has no network access, by design — every source tarball is fetched ahead of time and extracted locally, and nothing in the build process is supposed to reach outside the machine while a package compiles. One package's default configuration quietly assumes otherwise.
One package in this from-scratch build's KDE stack contains no compiled code at all. It's a database of hardware IDs — PCI, USB, and PNP vendor and device names — and it exists only because a different package's build script checks for a specific file at configure time, before anything about hardware detection actually matters at runtime.
The console font on this from-scratch build changed three times before it settled. Each swap had a specific, quantified reason tied to this exact monitor, not a general sense that the text was "too small."
Most of the compatibility work in this build's KDE packages involves code that compiles fine but never actually runs — dead paths behind a runtime check that always evaluates false. This one is different: two small helper programs that don't compile at all, because the graphics toolkit underneath them was never built with the one feature they need.
This system has no display manager. No login screen, no graphical prompt, nothing that starts automatically when the machine boots. KDE Plasma starts from a plain console login, by running a script by hand — and that script exists at all only because the first time someone tried starting Plasma manually, it failed with nothing to show for it.
A migration meant to clean up duplicate rows took six real, distinct failures to get right. None of the six were the same mistake repeated — each one revealed a different way "deduplicate this data" is harder than it sounds once the data is large and the duplicates aren't isolated from each other.
This machine already runs two operating systems off one disk, sharing one EFI System Partition. Adding a third meant writing to that same shared partition and to the machine's live EFI boot configuration — real, hard-to-reverse changes on hardware two other working systems depend on, not a fresh disk with nothing to lose.
Twenty files in one KDE package needed the same fix: remove an unconditional include of a header that doesn't exist on this system. Patching all twenty by hand looked avoidable. One upstream flag, flipped the other way, looked like it would satisfy the missing header everywhere at once. It didn't — and the reason it couldn't is more specific than "it didn't work."
The standard way to get wifi firmware onto a from-scratch Linux system is to clone linux-firmware, the upstream repository that bundles binary blobs for essentially every wireless chip Linux supports. It's several gigabytes.
Fixing one database incident accidentally created a second, unrelated one — and the second one hid the evidence needed to see whether the first one was actually fixed. One misordered database setting, changed to avoid a minor inconvenience, ended with an entire application's schema rebuilt from scratch in the wrong place.
Subscribe to Linkhub