From 99efc551ad8f76ee1bc2639751aba71c550505d1 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Thu, 30 Jul 2026 08:51:46 +0900 Subject: [PATCH] internal/rosa/package/meson: respect CLICOLOR_FORCE Upstream had ticket and patch available since 2017, still unmerged and refuses to support the environment variable, so patch it in. This also strips out the variable for test execution to work around buggy test suites like glib. Signed-off-by: Ophestra --- .../rosa/package/{meson.az => meson/package.az} | 4 ++++ internal/rosa/package/meson/respect-colour.patch | 13 +++++++++++++ internal/rosa/package/meson/test-strip-colour.patch | 13 +++++++++++++ 3 files changed, 30 insertions(+) rename internal/rosa/package/{meson.az => meson/package.az} (93%) create mode 100644 internal/rosa/package/meson/respect-colour.patch create mode 100644 internal/rosa/package/meson/test-strip-colour.patch diff --git a/internal/rosa/package/meson.az b/internal/rosa/package/meson/package.az similarity index 93% rename from internal/rosa/package/meson.az rename to internal/rosa/package/meson/package.az index 6d8b97f6..0af1b997 100644 --- a/internal/rosa/package/meson.az +++ b/internal/rosa/package/meson/package.az @@ -9,6 +9,10 @@ package meson { tag = version; checksum = "9AMilGxTOVqPA2DaGMASyuVs1BeTzgDZ0NH2oSYoRZk846ApvfOBa4cc18XEEK7M"; }; + patches = [ + "respect-colour.patch", + "test-strip-colour.patch", + ]; env = [ "CMAKE_MAKE_PROGRAM=ninja", diff --git a/internal/rosa/package/meson/respect-colour.patch b/internal/rosa/package/meson/respect-colour.patch new file mode 100644 index 00000000..8a43ebfa --- /dev/null +++ b/internal/rosa/package/meson/respect-colour.patch @@ -0,0 +1,13 @@ +diff --git a/mesonbuild/mlog.py b/mesonbuild/mlog.py +index e1d998a5d..83d6cf9d2 100644 +--- a/mesonbuild/mlog.py ++++ b/mesonbuild/mlog.py +@@ -404,6 +404,8 @@ class _Logger: + _colorize_console = os.isatty(output.fileno()) and _windows_ansi() + else: + _colorize_console = os.isatty(output.fileno()) and os.environ.get('TERM', 'dumb') != 'dumb' ++ if os.environ.get('CLICOLOR_FORCE', '') != '': ++ _colorize_console = True + except Exception: + _colorize_console = False + output.colorize_console = _colorize_console # type: ignore diff --git a/internal/rosa/package/meson/test-strip-colour.patch b/internal/rosa/package/meson/test-strip-colour.patch new file mode 100644 index 00000000..b7c8ad12 --- /dev/null +++ b/internal/rosa/package/meson/test-strip-colour.patch @@ -0,0 +1,13 @@ +diff --git a/mesonbuild/mtest.py b/mesonbuild/mtest.py +index 0661fa529..34ab36aa9 100644 +--- a/mesonbuild/mtest.py ++++ b/mesonbuild/mtest.py +@@ -1817,6 +1817,8 @@ class TestHarness: + test.exe_wrapper and test.exe_wrapper.found()): + env['MESON_EXE_WRAPPER'] = join_args(test.exe_wrapper.get_command()) + env['MESON_TEST_ITERATION'] = str(iteration + 1) ++ env.pop('CLICOLOR_FORCE') ++ env.pop('FORCE_COLOR') + return SingleTestRunner(test, env, name, options) + + def process_test_result(self, result: TestRun) -> None: