aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/package/meson
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-07-30 08:51:46 +0900
committerOphestra <cat@gensokyo.uk>2026-07-30 08:51:46 +0900
commit99efc551ad8f76ee1bc2639751aba71c550505d1 (patch)
tree22d3d2e3c61afeb386b2e02c3592f461f9d756df /internal/rosa/package/meson
parent4dbfee06989c35c9c7204aacd1dc28340c4de72a (diff)
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 <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/package/meson')
-rw-r--r--internal/rosa/package/meson/package.az60
-rw-r--r--internal/rosa/package/meson/respect-colour.patch13
-rw-r--r--internal/rosa/package/meson/test-strip-colour.patch13
3 files changed, 86 insertions, 0 deletions
diff --git a/internal/rosa/package/meson/package.az b/internal/rosa/package/meson/package.az
new file mode 100644
index 00000000..0af1b997
--- /dev/null
+++ b/internal/rosa/package/meson/package.az
@@ -0,0 +1,60 @@
+package meson {
+ description = "an open source build system";
+ website = "https://mesonbuild.com";
+ anitya = 6472;
+
+ version# = "1.11.2";
+ source = remoteGitHub {
+ suffix = "mesonbuild/meson";
+ tag = version;
+ checksum = "9AMilGxTOVqPA2DaGMASyuVs1BeTzgDZ0NH2oSYoRZk846ApvfOBa4cc18XEEK7M";
+ };
+ patches = [
+ "respect-colour.patch",
+ "test-strip-colour.patch",
+ ];
+
+ env = [
+ "CMAKE_MAKE_PROGRAM=ninja",
+ ];
+
+ exec = pip {
+ enterSource = true;
+ check = `
+cd 'test cases'
+rm -rf \
+ 'common/32 has header' \
+ 'common/66 vcstag' \
+ 'common/153 wrap file should not failed' \
+ 'common/184 openmp' \
+ 'common/189 check header' \
+ 'linuxlike/6 subdir include order' \
+ 'linuxlike/9 compiler checks with dependencies' \
+ 'linuxlike/13 cmake dependency' \
+ 'frameworks/15 llvm' \
+ 'frameworks/29 blocks'
+cd ..
+
+python3 ./run_project_tests.py \
+ -v \
+ ` + jobsFlagE + ` \
+ --failfast \
+ --backend=ninja
+`;
+ };
+
+ inputs = [
+ python-setuptools,
+ pkg-config,
+ cmake,
+ ninja,
+ python-pytest,
+ ];
+
+ runtime = [
+ python,
+ pkg-config,
+ cmake,
+ 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: