Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 943302 - multibuild.eclass: multibuild_foreach_variant tee shenanigans lead to color stripping with dev-build/meson ebuilds
Summary: multibuild.eclass: multibuild_foreach_variant tee shenanigans lead to color s...
Status: CONFIRMED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Michał Górny
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-11-12 02:09 UTC by Sam James
Modified: 2024-11-12 02:14 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-11-12 02:09:09 UTC
multibuild_foreach_variant in multibuild.eclass uses tee which leads to colours not being shown for e.g. Meson.

This can be seen with any multilib ebuild, like systemd-utils-255.13 (ebuild ... clean configure). All of Meson' configure tests are in black/white rather than green/red.
Comment 1 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2024-11-12 02:10:07 UTC
I'm not really sure if this is a Meson bug or not with how it detects a TTY / doesn't allow you to always truly force colour (MYMESONARGS="Db_colorout=always" doesn't seem to cut it).
Comment 2 Eli Schwartz gentoo-dev 2024-11-12 02:14:54 UTC
(In reply to Sam James from comment #1)
> I'm not really sure if this is a Meson bug or not with how it detects a TTY
> / doesn't allow you to always truly force colour
> (MYMESONARGS="Db_colorout=always" doesn't seem to cut it).

-Db_colorout is an option that controls how meson performs compiler setups, for compiler options that are agnostic across all compilers (i.e. there is no -Dc_colorout versus -Dcpp_colorout versus -Dfortran_colorout).

Meson provides no knob to control colored output of the `meson` program itself, just a TTY check (literally, it does os.isatty(sys.stdout.fileno()) and emits colored output if isatty says it is a TTY).