Hello Thomas,
it appears commit 4bdf22803f9a41329694e0c3c82189635dccdcd0 breaks
disabling colors using the documented mechanism of touching
/etc/terminal-colors.d/dmesg.disable. See below for a user report.
On Sun, Jan 26, 2025 at 07:19:09PM +0100, Axel wrote:
> Package: util-linux
> Version: 2.40.4-1
>
> Running dmesg after upgrading to trixie started showing color. The manpage
> mentions creating /etc/terminal-colors.d/disable which should disable colors
> for all. Creating the also mentioned /etc/terminal-colors.d/dmesg.disable
> doesn't disable color output also. I had /etc/terminal-colors.d/disable
> configured which did disable colors on -stable.
>From what I can tell, the new rc = -ENOENT in colors_readdir
introduced in 4bdf22803f9a41329694e0c3c82189635dccdcd0 bubbles up to
colors_init:
int rc = colors_read_configuration(cc); // calls colors_readdir, now
returns -2
if (rc)
cc->mode = UL_COLORMODE_DEFAULT;
else {
Evaluating color scores is skipped, effectively ignoring the
"disable" file.
Could you please take a look?
Reverting 4bdf22803f9a41329694e0c3c82189635dccdcd0 fixes the problem
for me.
Debug output from TERMINAL_COLORS_DEBUG=0xffff ./dmesg
| 321357: termcolors: CONF: terminal is ready (supports 256 colors)
| 321357: termcolors: CONF: reading dir: '/root/.config/terminal-colors.d'
| 321357: termcolors: CONF: reading dir: '/etc/terminal-colors.d'
| 321357: termcolors: CONF: item 'dmesg.disable': score=21 [cur: 0,
name(5): dmesg.disable, term(0): (null)]
| 321357: termcolors: CONF: setting 'disable' from 0 -to-> 21
| Colors:
| utilname = 'dmesg'
| termname = 'xterm-256color'
| scheme file = '(null)'
| mode = auto
| has_colors = 1
| disabled = 0
| configured = 1
| cs configured = 0
|
| score disable = 21
| score enable = 0
| score scheme = 0
After reverting 4bdf22803f9a41329694e0c3c82189635dccdcd0:
| 321318: termcolors: CONF: terminal is ready (supports 256 colors)
| 321318: termcolors: CONF: reading dir: '/root/.config/terminal-colors.d'
| 321318: termcolors: CONF: reading dir: '/etc/terminal-colors.d'
| 321318: termcolors: CONF: item 'dmesg.disable': score=21 [cur: 0,
name(5): dmesg.disable, term(0): (null)]
| 321318: termcolors: CONF: setting 'disable' from 0 -to-> 21
| Colors:
| utilname = 'dmesg'
| termname = 'xterm-256color'
| scheme file = '(null)'
| mode = never
| has_colors = 0
| disabled = 0
| configured = 1
| cs configured = 0
|
| score disable = 21
| score enable = 0
| score scheme = 0
Thanks,
Chris