Skip to content

nodebb.py draws its password box on the terminal, not in the hook's pipe - #17

Merged
marcos-mendez merged 2 commits into
mainfrom
fix/nodebb-draws-on-the-terminal
Oct 29, 2026
Merged

marcos-mendez merged 2 commits into
mainfrom
fix/nodebb-draws-on-the-terminal

Conversation

@marcos-mendez

Copy link
Copy Markdown
Contributor

firstboot.d/40nodebb reads bin/nodebb.py's standard output for APP_PASS=, and dialog draws on standard output, so an interactive first boot would freeze with the box drawn into the hook's pipe: the bug keel-wordpress 19.0-3 hit on Proxmox on 2026-09-30, fixed for dbpass.py in Keel-Linux/keel-mariadb#20.

Fix: the same pattern. nodebb.py keeps a duplicate of the pipe for the KEY=value answers and points standard output, which dialog inherits, at the terminal the hook checked on standard input (else /dev/tty). Without any terminal it exits with a message naming secrets.app_password instead of a traceback. The hook is unchanged.

Tests: tests/dialog.bats runs the script as the hook does, output redirected, inside a real pseudo terminal (script(1)), with a libinithooks stand-in whose get_password refuses unless fd 1 is a terminal; it fails on the old code and passes on the new.

marcos-mendez and others added 2 commits September 30, 2026 04:35
…k's pipe

40nodebb reads nodebb.py's standard output for APP_PASS=, and dialog draws on standard output, so an interactive first boot would freeze with the box drawn into the pipe (the bug keel-wordpress 19.0-3 hit on Proxmox on 2026-09-30, keel-mariadb#20). The answers go to a duplicate of that pipe and standard output becomes the terminal the hook checked on standard input, else /dev/tty; without either the script names secrets.app_password instead of a traceback. tests/dialog.bats runs the script as the hook does inside script(1) and fails on the old code.
@marcos-mendez
marcos-mendez merged commit 2838580 into main Oct 29, 2026
2 checks passed
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.

1 participant