Skip to content

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

Open
marcos-mendez wants to merge 1 commit into
mainfrom
fix/nodebb-draws-on-the-terminal
Open

marcos-mendez wants to merge 1 commit 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.

…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.
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