| An envkernel _p snapshot blocks every install, and nothing reports it until a build refuses twelve minutes in |
finding |
generic |
proven |
| Crossdirect hands every link step to qemu on purpose, not just compile |
finding |
generic |
proven |
| envkernel activation costs 0.8 s, not 14 s – the 14 s is a one-off apk add |
finding |
generic |
proven |
| Every envkernel kernel build compiles from scratch, because envkernel disables ccache on purpose |
finding |
generic |
proven |
| A from-scratch taimen install brings venus, GStreamer and the radios up with no hand-edits |
finding |
device:google-taimen |
proven |
| fuse2fs cannot stand in for the loop device, because the loop device is exposing a partition table |
finding |
generic |
proven |
| PORTHOLE_LAX_BUILD=1 saves no measurable time, and the zap it skips is not the wall clock |
finding |
generic |
proven |
| pmbootstrap shutdown unmounts porthole’s own container binds, not just pmbootstrap’s chroot mounts |
finding |
generic |
proven |
| A bindgen Rust aport builds in minutes with cross-native2, once pmbootstrap sets cargo up for it |
finding |
generic |
proven |
| porthole build auto spends 14.7 s making a _p apk its router never opens, and leaves it behind |
finding |
generic |
proven |
| The workspace caches kernel compiles now: 18% dearer the first time, 2.5x faster every repeat |
finding |
generic |
proven |
| The workspace edit-build loop is 6-8 s, and ccache is still hit zero times |
finding |
generic |
proven |
| Five things a rootless container cannot do that pmbootstrap assumes, and what each one costs |
finding |
generic |
proven |
| Every rung pays ~14s to activate envkernel, and that dwarfs the compile |
finding |
generic |
proven |
| Playbook: getting at vendor firmware |
technique |
generic |
proven |
| A build survives the porthole run that started it, and takes the buildroot lock to the grave |
trap |
generic |
proven |
| A freshly built kernel cannot RAM-boot against the modules already on the device |
trap |
generic |
proven |
| pmbootstrap zap inside the workspace tears down porthole’s own bind mounts, and the build then refuses about a version |
trap |
generic |
proven |
| A –lax workspace never installs sccache, so a QEMU-only Rust build dies in prepare |
trap |
generic |
proven |
| A noarch or all dependency makes pmbootstrap ask for gcc-, and every fresh workspace dies on its first packaging rung |
trap |
generic |
proven |
| A partial chroot umount in the workspace leaves /dev/urandom, /dev/zero and /dev/tty as empty root-only files – and a 5.5 h build dies on the last step |
trap |
generic |
proven |
| A staged package name and a touched log invent a build that is not running |
trap |
generic |
proven |
| A sideloaded device apk can eat the radio stack |
trap |
generic |
proven |
| A stale inherited env outbuilds the profile |
trap |
generic |
proven |
| Package build succeeds but the tool reports its APK missing |
trap |
generic |
proven |
| apk info -W does not resolve /lib -> /usr/lib, and the right path differs for modules and firmware |
trap |
generic |
proven |
| build mod from the tree against a kernel that ships from the aport is refused by MODVERSIONS – and on a no-reload module the refusal lands at the next boot, with the shipped module already gone |
trap |
generic |
proven |
| No CCACHE_ export reaches a cross compile, because crossdirect execs with a literal environment |
trap |
generic |
proven |
| Fork audit selects hundreds of unrelated packages |
trap |
generic |
proven |
| git apply silently skips ‘diff –git’ patches and exits 0, so a source tree ends up half-patched |
trap |
generic |
proven |
| Image build finishes export then cannot find verifier |
trap |
generic |
proven |
| apk add (and apk fix) can FLASH the boot partition |
trap |
generic |
proven |
| pmbootstrap parses an APKBUILD line by line and never runs the shell |
trap |
generic |
proven |
| A privileged container cannot see new loop partition nodes |
trap |
generic |
proven |
| Pushing one module while its sibling stays old is worse than pushing neither |
trap |
generic |
proven |
| Retrying an upload must rebuild stale indexes |
trap |
generic |
proven |
| Rust wrapper missing with prebuilt dependencies |
trap |
generic |
proven |
Every source envkernel.sh stacks another /mnt/linux bind mount |
trap |
generic |
proven |
| A _p dev snapshot outranks a release, so apk installs a kernel from days ago |
trap |
generic |
proven |
| A drop-in that adds a StateDirectory= reorders $STATE_DIRECTORY, and the daemon writes to whichever sorts first |
trap |
generic |
proven |
| The default kernel tree can be parked on an old branch, and then every tool reports the wrong kernel version perfectly truthfully |
trap |
generic |
proven |
| A fresh boot.img mtime says nothing about which kernel is inside it |
trap |
generic |
proven |
| Two concurrent pmbootstrap builds share one buildroot and silently destroy each other |
trap |
generic |
proven |