From 1ea812660c92e768a93af5e2f3e1ef20ac1e2500 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Sat, 26 Sep 2026 11:44:59 +0200 Subject: Keep the terminal on the pty for interactive runs exec > >(tee ...) sent slackpkg's TUI (dialog writes to stderr) into the log pipe, so the curses interface never reached the terminal and output was mangled. Only tee non-interactive runs now; interactive runs skip logging and keep fds 0/1/2 on the tty. Add an INT trap so Ctrl+C aborts with 130 instead of letting the run continue. --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'README.md') diff --git a/README.md b/README.md index d49b986..e4f6dac 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,7 @@ Options: Environment: - `INITRD` initrd to inspect (default `/boot/initrd-generic.img`) -- `LOG` append the whole run, slackpkg output included, to this file +- `LOG` append the non-interactive run, slackpkg output included, to this file (default `/var/log/dist-upgrade.log`; set it empty to disable) A logrotate rule for that log ships in `logrotate.d/dist-upgrade`; install it @@ -41,8 +41,10 @@ to `/etc/logrotate.d/`. 4. Lists any leftover `.new` config files. 5. Reports whether a reboot is recommended. -The full run is appended to `LOG`, with a timestamped header per run, so an -unattended upgrade can be reviewed afterwards. +A non-interactive run is appended to `LOG`, with a timestamped header per run, +so an unattended upgrade can be reviewed afterwards. Interactive runs are not +logged: slackpkg's TUI needs the terminal, and redirecting it through the log +breaks the curses interface. If slackpkg upgrades itself mid-run (exit status 50) the script re-executes once from the top to finish the operation, exactly as slackpkg's own message -- cgit v1.2.3