)]}'
{
  "log": [
    {
      "commit": "663ce26584a00a4f8d7520ec4436eeb25e765ebd",
      "tree": "d5a3b0023f4c0af35c1d3191db62b3fde41836f0",
      "parents": [
        "99fe4fef47cf493b0f318efaf1d1ff8dad03d3ca"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Oct 23 15:15:28 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 23 19:08:50 2026"
      },
      "message": "modules: gnome: apply get_builddir correctly\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "99fe4fef47cf493b0f318efaf1d1ff8dad03d3ca",
      "tree": "b986349aa6b0bddf3c16f760d707a03bce521b17",
      "parents": [
        "d3d17647d223cb972ba85f01b29eabd857e35970"
      ],
      "author": {
        "name": "Charles Brunet",
        "email": "charles.brunet@optelgroup.com",
        "time": "Wed Oct 21 15:18:28 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 23 11:55:51 2026"
      },
      "message": "format: add suppression directives\n\n`meson format` now leaves untouched the lines between\n`# meson-format off` and `# meson-format on` comments. When\n`# meson-format off` is not followed by `# meson-format on`, formatting\nis disabled until the end of the file.\n\n```meson\nsources \u003d files(\n  \u0027a.c\u0027,      \u0027b.c\u0027,\n  \u0027c.c\u0027,      \u0027d.c\u0027,\n)\n```\n\nFixes #15922.\n"
    },
    {
      "commit": "d3d17647d223cb972ba85f01b29eabd857e35970",
      "tree": "4d19870c8cada431bd8d62d1d8a480734bebd012",
      "parents": [
        "dc50e33b94b34b2b2b351431b78c321b857da24f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 12:07:47 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 23 11:54:42 2026"
      },
      "message": "backend, compilers: override -g for compiler.preprocess()\n\nWhen the C compiler is gcc, giving -g3 in CFLAGS breaks projects that\nlook into the output of compiler.preprocess(), because gcc then embeds\nmacro definitions also into preprocessor output.  Add a new compiler\nhook that lets GCC add -g0 to disable this.\n\nFixes: #14201\n"
    },
    {
      "commit": "dc50e33b94b34b2b2b351431b78c321b857da24f",
      "tree": "44a049f1742eeeaa5136544ac64af8961ef3a7a0",
      "parents": [
        "70659de4479b6055ffece29e8802c25049828e81"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 12:16:53 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 23 11:54:42 2026"
      },
      "message": "build: add backend private directory directly to CompileTarget outputs\n\nThe compiler.preprocess() method handles adding the private directory in\nfront of the filename, but this is not enough and causes problems if\na preprocessed source is passed to a test: the bare directory ends up\nin the meson-test-prereq target and in the introspection data, and\nthus the preprocessed source is not built.\n\nFix by moving the prepending of the private directory to CompileTarget.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "70659de4479b6055ffece29e8802c25049828e81",
      "tree": "d0fa996d214d9225ff1efbda97b2f8930a3bb430",
      "parents": [
        "0dc920ffc01c61d9774bb8e892e1a36e264a0653"
      ],
      "author": {
        "name": "Jonathon Anderson",
        "email": "anderson.jonathonm@gmail.com",
        "time": "Wed Oct 21 15:39:19 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 22 13:19:13 2026"
      },
      "message": "search_version: make version regex accept more after hyphen\n\nThis change allows the found version number to include additional\nhyphens and periods after the first hyphen. This is needed to understand\n`clang --version` in some older Ubuntu versions, which prints:\n\nUbuntu clang version 14.0.0-1ubuntu1.1\n\nThis logic also accepts any pre-release version following SemVer 2.0.0\nsyntax, bullet 9.\n\nFixes: https://github.com/mesonbuild/meson/issues/16286\nSigned-off-by: Jonathon Anderson \u003canderson.jonathonm@gmail.com\u003e\n"
    },
    {
      "commit": "0dc920ffc01c61d9774bb8e892e1a36e264a0653",
      "tree": "236221cc2da27c95e863e428e2984699806dc6a9",
      "parents": [
        "c72b5f246104b87bdfbd03e8b2db289a80b8142b"
      ],
      "author": {
        "name": "2025sl93041-gkb",
        "email": "2025sl93041@wilp.bits-pilani.ac.in",
        "time": "Thu Oct 22 13:14:14 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 22 13:14:14 2026"
      },
      "message": "only preserve timestamps for configure_file(copy: true)\n\nshutil.copy2 copies not only the contents of the file but also its metadata, including the permissions; if the source file is read-only (with mode 0444) the destination file becomes read-only as well and this causes the next reconfigure to fail with a PermissionError when Meson attempts to overwrite the output file.\n\nUse shutil.copyfile rather than shutil.copy2 when in copy mode, and preserve timestamps separately. The output file ends up with its default writable permissions, because shutil.copyfile only copies the contents of the file and does not preserve the source permissions, and restoring the modification time ensures that dependents are not rebuilt unnecessarily after each reconfigure. The existing test case 14 already checks that this is the case."
    },
    {
      "commit": "c72b5f246104b87bdfbd03e8b2db289a80b8142b",
      "tree": "39cb0b3af9f281259e66f6f12211d7ceb1dca448",
      "parents": [
        "f31d43fd7fa0fa1a85f12fade435dee83d29d917"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 21:53:32 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 22 07:15:38 2026"
      },
      "message": "test cases: rust: do not use rustup anymore\n\nIt is not needed - the CI run now adds explicitly the libdir to PATH.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f31d43fd7fa0fa1a85f12fade435dee83d29d917",
      "tree": "7d234b048067bf51ad03a6fdc641dd3ca88f3c9e",
      "parents": [
        "2c5c1e84a2bacdb38acf96937c3427d192060400"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 21:04:06 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 22 07:15:38 2026"
      },
      "message": "ci: azure: use rustc --print to adjust path, add libdir\n\nRecently, rustup moved std-*.dll from the $sysroot\\bin directory to\nthe libdir.  This causes issues with CI; fix them by adding the\nlibdir to the path and, while at it, getting the sysroot and libdir\ndirectly from rustc.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "2c5c1e84a2bacdb38acf96937c3427d192060400",
      "tree": "c337474fea417653ff6ec235238ae93ce3fbd0f1",
      "parents": [
        "5bbcd0fdd75f9fe86eff489bb1b0dbd41444c1c2"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 11:34:48 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 20:37:53 2026"
      },
      "message": "ninjabackend: msvc: convert -l to rustc option rather than linker option\n\nWhen a C compiler is set, -lfoo is resolved properly to libfoo.a or foo.lib (as\navailable). Without a C compiler set, these flags are passed unresolved to\nlink.exe because Meson wraps them incorrectly with -Clink-arg\u003d.\n\nOn MSVC targets, convert -l flags from external dependencies to rustc\n-l options, so that rustc will replace them with the path to the library.\n\nReported-by: Amyspark \u003camy@centricular.com\u003e\n"
    },
    {
      "commit": "5bbcd0fdd75f9fe86eff489bb1b0dbd41444c1c2",
      "tree": "4b180f1bcc8c1cad8de97b774e166dad23346fc7",
      "parents": [
        "c65cf102d587d19d01021230395da0141a18d90a"
      ],
      "author": {
        "name": "Amyspark",
        "email": "amy@centricular.com",
        "time": "Mon Oct 05 00:01:42 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 20:37:53 2026"
      },
      "message": "ninjabackend: fix Rust linking against static libraries with common dependencies\n\nTrying to link against static libraries with a common component results\nin the \"error: overriding linking modifiers from command line is not\nsupported\", because the common component is repeated multiple times,\nusually with the -bundle modifier. Multiple modified instances for the\nsame library seems to not be supported, even though it\u0027s just duplicates.\n"
    },
    {
      "commit": "c65cf102d587d19d01021230395da0141a18d90a",
      "tree": "1a7cc994ba2444ee0d5e2fda3fbaa9059d216821",
      "parents": [
        "524db46e29ec6ed726fb1be08d6886a8c1ae08dd"
      ],
      "author": {
        "name": "Christian Brauner",
        "email": "christian@amutable.com",
        "time": "Thu Aug 27 12:26:54 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 17:26:59 2026"
      },
      "message": "rust: only add rustc\u0027s sysroot to the rpath when Rust dylibs are linked\n\nThe sysroot\u0027s target libdir was added to the build rpath of every Rust\ntarget that links any shared library, to make dynamically linked Rust\ndylibs (and libstd with -C prefer-dynamic) from rustup installations\nwork. It was not marked for removal at install time, so every installed\nRust program that links a C shared library ended up with the toolchain\u0027s\nlibrary directory in its runpath, and \u0027meson install\u0027 fails outright\nwhenever install_rpath is longer than the build-time rpath, because the\nleftover entry has to fit next to it:\n\n  New rpath must not be longer than the old one.\n   Old: $ORIGIN/../shared:/home/user/.rustup/.../rustlib/x86_64-unknown-linux-gnu/lib\n   New: /usr/lib/x86_64-linux-gnu/systemd:/home/user/.rustup/.../lib\n\nOnly add the sysroot when the target actually links Rust dylibs.\n\nSigned-off-by: Christian Brauner (Amutable) \u003cbrauner@kernel.org\u003e\n"
    },
    {
      "commit": "524db46e29ec6ed726fb1be08d6886a8c1ae08dd",
      "tree": "55a7b1d6668c7567a81fc03ea7463d04b841d50c",
      "parents": [
        "135b2e9ba8e30814b23012f394747a71ce597358"
      ],
      "author": {
        "name": "Christian Marangi",
        "email": "ansuelsmth@gmail.com",
        "time": "Wed Oct 21 08:06:01 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 12:49:11 2026"
      },
      "message": "linkers: don\u0027t include absolute RPATH on cross-compiling\n\nThere is currently a reproducible problem when cross-compiling with the\ninclusion of external shared library RPATH entry. Meson normally\nincludes RPATH entry to permit the usage of the tool in the build process\nand later removes it on the install phase. This might be ok and permits\ncreating reproducible build to some degree when building on host (as we\ncan expect the shared library are always placed on a standard directory\npath and have a consistent RPATH)\n\nThis doesn\u0027t apply for cross-compilation scenario where the shared\nlibrary might be provided from an arbitrary directory to be later\npacked in the final system (for example a squashfs image)\n\nOn top of this on cross-compilation on 99% of the scenario, it\u0027s not\nreally possible to run the just built tool for build usage as it\nprobably target a different arch (unless the project provide an\nexe_wrapper).\n\nTo permit building REAL reproducible binary, add extra logic to skip the\ninclusion of such library path in RPATH if we detect a cross-compilation\nscenario and limit the inclusion of library path in RPATH only to\nrelative path (expected to be the ones specific to the building\nbinary/internal shared library) if we detect the binaries can\u0027t be run\non the host system (by the use of can_run_binaries() API).\n\nSigned-off-by: Christian Marangi \u003cansuelsmth@gmail.com\u003e\n[pbonzini: fix handling of for_machine, clean up build_rpath.]\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "135b2e9ba8e30814b23012f394747a71ce597358",
      "tree": "c257f8a8db8786b214b23a4f1a683d5d99fd4f65",
      "parents": [
        "61bed724ca9ab0f537068e6f507a562fe0fac7c1"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 08:25:40 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 12:49:11 2026"
      },
      "message": "linkers: inline evaluate_rpath\n\nIn preparation for leaving out external paths to the build machine,\nchange the comprehension into a for loop.  This also makes it\npossible to collect relative and absolute rpaths separately,\nand removes the need for order_rpaths.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "61bed724ca9ab0f537068e6f507a562fe0fac7c1",
      "tree": "028c2f5a7774ad64949ef96c3546968ad294f52f",
      "parents": [
        "1e0e8d63c74243a0acc26bca015e7d9db65050d4"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 08:25:08 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 12:49:11 2026"
      },
      "message": "linkers: fix obsolete comment\n\nThe comment in evaluate_rpath comes from when Meson did\nos.path.relpath(p, from_dir) directly.  This did indeed\ncause a ValueError if p and from_dir were both \u0027\u0027.\nHowever, these days evaluate_rpath joins both arguments\nwith build_dir first.  Fix the stale comment to indicate\nthe true effect of the \"if\" arm.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "1e0e8d63c74243a0acc26bca015e7d9db65050d4",
      "tree": "ffee6dc762b0a9fccb81df97c0b8f7f3dcef6e8c",
      "parents": [
        "7fe6803aa220412e26332e066f64ad4e2dfa073b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Oct 21 08:04:00 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 12:49:11 2026"
      },
      "message": "linkers: move prepare_rpaths inside DynamicLinker\n\nAllow using the linker\u0027s environment.  Nest the auxiliary functions\ninside it.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7fe6803aa220412e26332e066f64ad4e2dfa073b",
      "tree": "4bf765390787995ed51021445ae8a581a7ed02f3",
      "parents": [
        "14cd82080fbb34fab2cfdf1e20b535f0b8b1031b"
      ],
      "author": {
        "name": "Christian Marangi",
        "email": "ansuelsmth@gmail.com",
        "time": "Mon Oct 13 12:00:55 2025"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 12:49:11 2026"
      },
      "message": "interpreter: move _can_run_host_binaries_impl() to environment\n\nTo permit usage of _can_run_host_binaries_impl() in other location, move\nit to environment. This will be needed in linker to decide if external\nlibrary should be included in RPATH entry.\n\nSigned-off-by: Christian Marangi \u003cansuelsmth@gmail.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "14cd82080fbb34fab2cfdf1e20b535f0b8b1031b",
      "tree": "c710cc7610dfd38ef0ae98fb36c39ac8507327c1",
      "parents": [
        "3a392181170a6fa4415cc7a4eb3d9f21bc4ae7c0"
      ],
      "author": {
        "name": "Charles Brunet",
        "email": "charles.brunet@optelgroup.com",
        "time": "Mon Oct 19 17:40:54 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 21 10:59:02 2026"
      },
      "message": "qt: fix compile_moc with empty sources or headers\n\nIn qtmodule.compile_moc(), sources and headers arguments were wrongly\nmarked as `allow_empty\u003dFalse`, causing the default `[]` value to raise\nan exception. While having both arguments empty is not allowed (which is\nverified in the _compile_moc_impl() function), having one or the other\nis absolutely possible.\n\nFixes: 249a14a62 (\"modules/qt: Use KWargInfo.since_values\", 2026-08-17)\n"
    },
    {
      "commit": "3a392181170a6fa4415cc7a4eb3d9f21bc4ae7c0",
      "tree": "67ac714fcd0d42e3596c14b9c7bad262f1c797d6",
      "parents": [
        "99d02000398e90fdf0c8a0f68e6a985fd49de5b9"
      ],
      "author": {
        "name": "John Donners",
        "email": "40058074+donners-atos@users.noreply.github.com",
        "time": "Tue Oct 20 15:14:20 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Oct 20 19:57:34 2026"
      },
      "message": "Add flags for preprocess to stdout with IntelLLVMFortranCompiler"
    },
    {
      "commit": "99d02000398e90fdf0c8a0f68e6a985fd49de5b9",
      "tree": "b2245693563d20562661c5af9c8ffc80a5002aa1",
      "parents": [
        "9abb11cf6d10208293e440ea8fd7af464b3c26ac"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Oct 20 14:42:57 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 20 17:03:34 2026"
      },
      "message": "ninjabackend: fix gcc_rsp_quote for GCC 16\n\nUp to GCC 15 (and in clang), a backslash *always* escapes the following\ncharacter, even inside single quotes.  Starting with GCC 16, backslashes\ninside single quotes are literal as in sh.  Avoid quotes and escape every\nspecial character with a backslash, which works the same way in both cases;\nonly newlines still have to be placed in single quotes, which is safe.\n\nThis change was done in https://github.com/gcc-mirror/gcc/commit/a87954610f5e48a89b63a3194df9f5087bdc2f77:\n\n\u003e 1. Backslashes within single quotes should not be treated as an\n\u003e escape, thus: \u0027\\a\u0027 should split to \\a, retaining the backslash.\n\u003e\n\u003e 2. Backslashes within double quotes should only act as an escape if\n\u003e they are immediately before one of the characters $ (dollar),\n\u003e ` (backtick), \" (double quote), ` (backslash), or \\n (newline).  In\n\u003e all other cases a backslash should not be treated as an escape\n\u003e character.  Thus: \"\\a\" should split to \\a, but \"\\$\" should split to\n\u003e $.\n\u003e\n\u003e 3. A backslash-newline sequence should be treated as a line\n\u003e continuation, both the backslash and the newline should be removed.\n\nThis fixes the failure in the MESON_RSP_THRESHOLD\u003d0 CI job, which can\nbe reproduced locally with:\n\n    MESON_RSP_THRESHOLD\u003d0 ./run_single_test.py test\\ cases/common/107*\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9abb11cf6d10208293e440ea8fd7af464b3c26ac",
      "tree": "76470b79a58c93c96ab935e351471a8ff5099140",
      "parents": [
        "a0a48973d25f5c2371caa631a5204b7080934ba3"
      ],
      "author": {
        "name": "Eli Schwartz",
        "email": "eschwartz93@gmail.com",
        "time": "Fri Oct 10 16:48:26 2025"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 20 16:14:45 2026"
      },
      "message": "interpreter: do not evaluate \"kwargs: xxx\" when assigning dicts\n\nThis causes the following goofy behavior:\n```\n17:53 \u003cArsen\u003e foreach t : [{\u0027kwargs\u0027: {\u0027env\u0027: {\u0027CFLAGS\u0027: \u0027-DFOO -DBAR\u0027}}}]\n17:53 \u003cArsen\u003e   debug(\u0027funky\u0027, t)\n17:53 \u003cArsen\u003e endforeach\n17:53 \u003cArsen\u003e Debug: funky {\u0027env\u0027 : {\u0027CFLAGS\u0027 : \u0027-DFOO -DBAR\u0027}}\n```\n\n... because the value of the dict at \"t\", is expanded from \"kwargs\".\n\nThe docs say it applies to function calls, not primitive ops. And in\nprinciple, there\u0027s no reason not to support evaluating\n\n```\nblah \u003d ...\n\nfunc(kwargs: blah[\u0027kwargs\u0027])\n```\n\nregardless of how subjectively useful packing them into a nested\ndictionary might be.\n\nWhile at it, add a testcase for the \"bonus for thinking meta\"\ncase of a dictionary with \u0027kwargs\u0027 as a key.\n\nFixes: https://github.com/mesonbuild/meson/issues/15093\n"
    },
    {
      "commit": "a0a48973d25f5c2371caa631a5204b7080934ba3",
      "tree": "53d74b7fcedee45086fe5406885db5a35714a790",
      "parents": [
        "7a4cf8ddc89630814687d2fabeea40c8941fdc3a"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Oct 20 13:33:16 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 20 16:14:45 2026"
      },
      "message": "interpreterbase: add FeatureFixed\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7a4cf8ddc89630814687d2fabeea40c8941fdc3a",
      "tree": "29a00ced8c7038465233a92325b2c5dbbc1f259b",
      "parents": [
        "1fd144b2f0c9027baaeba8c0adad6294d4b5db93"
      ],
      "author": {
        "name": "Christoph Reiter",
        "email": "reiter.christoph@gmail.com",
        "time": "Mon Oct 19 18:53:12 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Oct 20 13:28:29 2026"
      },
      "message": "CI/MSYS2: remove gccx86ninja job\n\nMINGW32/32bit is long deprecated in MSYS2 and they have already dropped\nmost packages from their repos, so there are likely not many users left.\n\nStop wasting CI/maintenance time and remove the job.\n\nSince this removes the only job testing ncurses move that to one of the\nother remaining ones.\n\nThis change was suggested in https://github.com/mesonbuild/meson/pull/16270#issuecomment-6273438225\n"
    },
    {
      "commit": "1fd144b2f0c9027baaeba8c0adad6294d4b5db93",
      "tree": "4daa3e03d99927112fb8e3002ab2fa05c1e17583",
      "parents": [
        "c293b80cb98bb0dccb496e7c508af285a38ac22a"
      ],
      "author": {
        "name": "Christoph Reiter",
        "email": "reiter.christoph@gmail.com",
        "time": "Mon Oct 19 17:22:55 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Oct 19 18:10:31 2026"
      },
      "message": "CI/MSYS2: move from MINGW64 to UCRT64\n\nMINGW64 is deprecated and packages we use for testing are slowly getting removed.\nMove to UCRT64 instead, which is the next closest thing.\n\nSee https://www.msys2.org/news/#2026-03-15-deprecating-the-mingw64-environment\n\nSee https://github.com/mesonbuild/meson/pull/16269#issuecomment-6272928618\n"
    },
    {
      "commit": "c293b80cb98bb0dccb496e7c508af285a38ac22a",
      "tree": "0c1875a770429fc594f096f3a7d136acad1b854d",
      "parents": [
        "a22689749b7fc8da945943ec1e367830d41e009f"
      ],
      "author": {
        "name": "Christoph Reiter",
        "email": "reiter.christoph@gmail.com",
        "time": "Mon Oct 19 17:18:44 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Oct 19 18:10:31 2026"
      },
      "message": "Revert \"ci: drop objfw for MINGW64 as well\"\n\nThis reverts commit f83eda2c0150a15b5b347dc10a9480443b6e3a07.\n\nWe are going to move to UCRT64 where this package is still available\n"
    },
    {
      "commit": "a22689749b7fc8da945943ec1e367830d41e009f",
      "tree": "3fff320133e074ff7f89e7488e87359a82eba619",
      "parents": [
        "f221904d2c3d8a5389fe9016673a2030c4e1b6e3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 29 12:41:59 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 16:50:26 2026"
      },
      "message": "unittests: test backend options from the machine file\n\nA backend option from the machine file that the backend does not have\nmust be an error.  This is currently detected by OptionStore.set_option().\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f221904d2c3d8a5389fe9016673a2030c4e1b6e3",
      "tree": "9d2ae21da94e04f5ddf303298e3b02b9011d8d4d",
      "parents": [
        "d38ac59709de425e4acf016d515985324bc0b2e0"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 29 15:45:25 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 16:50:26 2026"
      },
      "message": "unittests: check that \"meson configure\" catches unknown backend options\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "d38ac59709de425e4acf016d515985324bc0b2e0",
      "tree": "eb77d8b4e12b00852ab355179b74640297d58514",
      "parents": [
        "3a400da6869710d4d605699c92000a8c6fd82fb7"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 29 12:12:01 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 16:50:26 2026"
      },
      "message": "unittests: improve coverage of $CFLAGS\n\nAdd a test that covers the intersection of $CFLAGS and command line\narguments, and rewrite the old test so that it can check both\ncl.exe and gcc on all systems.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3a400da6869710d4d605699c92000a8c6fd82fb7",
      "tree": "c79cdb0f079cbbb98b0261aa572a5731eb470122",
      "parents": [
        "f83eda2c0150a15b5b347dc10a9480443b6e3a07"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 29 12:15:31 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 16:50:26 2026"
      },
      "message": "unittests: test directories that depend on the prefix\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f83eda2c0150a15b5b347dc10a9480443b6e3a07",
      "tree": "5a5563ba48d1feff789e178d4519f8e65b38e640",
      "parents": [
        "027118e9f191cf2b9523b642892b02156413744b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Oct 19 16:12:16 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 16:50:13 2026"
      },
      "message": "ci: drop objfw for MINGW64 as well\n\nRecent runs show:\n\n error: target not found mingw-w64-x86_64-objfw\n\nDrop the offending package.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "027118e9f191cf2b9523b642892b02156413744b",
      "tree": "667c3d540db9be84e78748f67b233c81f27700b0",
      "parents": [
        "feb3c06be9938cc24ee3fa7130931f6dd2f80adf"
      ],
      "author": {
        "name": "hassan",
        "email": "144530465+h55n@users.noreply.github.com",
        "time": "Tue Oct 13 10:07:57 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 11:16:07 2026"
      },
      "message": "interpreter: only warn about multiple pkgconfig_define pairs for more than one pair\n\nThe validator ran on the flat key/value list, so a single pair (two items) already triggered the FeatureNew warning for \u0027more than one pair\u0027 and a project targeting meson \u003c 1.3.0 got a false warning. Compare against 2 items instead, and add a unit test.\n"
    },
    {
      "commit": "feb3c06be9938cc24ee3fa7130931f6dd2f80adf",
      "tree": "e1966d9f3ad8679f3949b5b63c203a8d40fe4f10",
      "parents": [
        "ee10b5385e94fc1a0adc0b1a7c518c78c94b4d23"
      ],
      "author": {
        "name": "correctmost",
        "email": "134317971+correctmost@users.noreply.github.com",
        "time": "Sat Oct 17 15:21:57 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 19 11:15:13 2026"
      },
      "message": "modules: gnome: Avoid linking incompatible sanitizer runtimes\n\nPreviously, the giscanner dumper binary would be linked against\nboth static and dynamic sanitizer runtimes if clang\u0027s -shared-libsan\nflag was used. This would cause ASan builds to hang and TSan builds\nto crash.\n\nFixes: #15639\n"
    },
    {
      "commit": "ee10b5385e94fc1a0adc0b1a7c518c78c94b4d23",
      "tree": "ae64bcc8415a435d50e854e03e4fd07dda1ca44d",
      "parents": [
        "19985ff4f2376d89f971d3caa15a21c18521731a"
      ],
      "author": {
        "name": "Chi-Iroh",
        "email": "69324626+Chi-Iroh@users.noreply.github.com",
        "time": "Tue Oct 13 09:40:37 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Oct 14 10:33:31 2026"
      },
      "message": "On AIX and IBM i, don\u0027t use patch command and let Git apply the patch\n\nThose platforms have an old patch command preinstalled, it cannot handle complex patches like those with commit messages. GNU patch can be installed via the package manager but it\u0027s simpler to just use Git.\n"
    },
    {
      "commit": "19985ff4f2376d89f971d3caa15a21c18521731a",
      "tree": "cfc608f04536666b5d582cd06a6a296bb37562cd",
      "parents": [
        "213b27355292b2fda9d9288952315eb42ba9d2db"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Oct 13 13:07:03 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 15:07:04 2026"
      },
      "message": "modules: gnome: check that one of main_sgml and main_xml is provided\n\nFound while retesting #3317.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "213b27355292b2fda9d9288952315eb42ba9d2db",
      "tree": "a91e36d6d4239db8c12ded2bfeae0b44ae517943",
      "parents": [
        "798913bc20e3529771c0ecab27bcd6d69a95e142"
      ],
      "author": {
        "name": "Jonathon Anderson",
        "email": "anderson.jonathonm@gmail.com",
        "time": "Tue Aug 19 14:10:19 2025"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Oct 13 13:09:39 2026"
      },
      "message": "cuda: add tests for new modules\n\nIncludes CUPTI (main, checkpoint, and pcsamplingutil APIs) and NVVM.\n\nSigned-off-by: Jonathon Anderson \u003canderson.jonathonm@gmail.com\u003e\n"
    },
    {
      "commit": "798913bc20e3529771c0ecab27bcd6d69a95e142",
      "tree": "b5593516d98d207fbf3496ce396dc09284bb66e4",
      "parents": [
        "4621dcb706a66ec9a63b810154c018c96932dab0"
      ],
      "author": {
        "name": "Jonathon Anderson",
        "email": "anderson.jonathonm@gmail.com",
        "time": "Mon Jul 28 07:57:49 2025"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Oct 13 13:09:39 2026"
      },
      "message": "cuda: add extra search paths for some modules\n\nCUPTI is sometimes installed in a separate subdirectory `extras/CUPTI`,\nthis is true for runfile installations on Linux. If the directory exists\nand any of the CUPTI-related modules are requested, include this directory\nin include paths and search it for the relevant libraries.\n\nThe search order and names for these additional paths are taken from\nFindCUDAToolkit.cmake, with the addition of `checkpoint` (CUPTI\u0027s\ncheckpoint API) and NVVM (low-level compiler SDK).\n\nFixes: https://github.com/mesonbuild/meson/issues/13241\nSigned-off-by: Jonathon Anderson \u003canderson.jonathonm@gmail.com\u003e\n"
    },
    {
      "commit": "4621dcb706a66ec9a63b810154c018c96932dab0",
      "tree": "6aecabf8c74340844740789e73873665a96b6528",
      "parents": [
        "86754a6c271a1bb0e51adbb0dafedb89891043cb"
      ],
      "author": {
        "name": "M001N",
        "email": "mail@dataflowsolutions.sk",
        "time": "Tue Oct 13 12:31:33 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 12:31:33 2026"
      },
      "message": "msubprojects: fix ValueError due to cross-drive/UNC relpath\n\nAvoid errors like the following when invoking subprojects with a build directory that is on a different drive than the source:\n\n    G:\\tmp\\meson-test\u003epython \\repos\\meson\\meson.py subprojects update\n    Traceback (most recent call last):\n      File \"\\\\server\\share\\repos\\meson\\mesonbuild\\mesonmain.py\", line 193, in run\n        return options.run_func(options)\n               ^^^^^^^^^^^^^^^^^^^^^^^^^\n      File \"\\\\server\\share\\repos\\meson\\mesonbuild\\msubprojects.py\", line 723, in run\n        source_dir \u003d os.path.relpath(os.path.realpath(options.sourcedir))\n                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n      File \"\u003cfrozen ntpath\u003e\", line 783, in relpath\n    ValueError: path is on mount \u0027\\\\\\\\server\\\\share\u0027, start on mount \u0027G:\u0027\n    \n    ERROR: Unhandled python exception\n\n        This is a Meson bug and should be reported!\n\nFixes: #13814"
    },
    {
      "commit": "86754a6c271a1bb0e51adbb0dafedb89891043cb",
      "tree": "66899cb5609148d6f79a97125093f5bda4cddfa3",
      "parents": [
        "4bca17e347d17ecc94af257c091529b1b5268fef"
      ],
      "author": {
        "name": "Cristian",
        "email": "streaksu@mailbox.org",
        "time": "Tue Oct 13 07:50:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 12:25:21 2026"
      },
      "message": "docs: add ironclad to os reference tables"
    },
    {
      "commit": "4bca17e347d17ecc94af257c091529b1b5268fef",
      "tree": "1e3333d2f64da13a6a78ec3e18232281e69dbadb",
      "parents": [
        "231d82f827c374dddacb3158e5713156cdf65239"
      ],
      "author": {
        "name": "hassan",
        "email": "144530465+h55n@users.noreply.github.com",
        "time": "Mon Oct 12 06:01:51 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 12:23:10 2026"
      },
      "message": "configure_file: don\u0027t skip a variable right after an empty replacement\n"
    },
    {
      "commit": "231d82f827c374dddacb3158e5713156cdf65239",
      "tree": "bf6103da53de39084d7a76c3034050a397973998",
      "parents": [
        "b3efc56536d009bd7aaeff6d28c7d5938167b483"
      ],
      "author": {
        "name": "hassan",
        "email": "144530465+h55n@users.noreply.github.com",
        "time": "Tue Oct 13 09:20:17 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 12:22:20 2026"
      },
      "message": "docs: use dep.get_variable instead of the deprecated get_pkgconfig_variable\n\nThe Dependencies page showed get_pkgconfig_variable(), which has been\ndeprecated since 0.56.0, for reading pkg-config variables. Show\nget_variable() with the pkgconfig and pkgconfig_define keywords instead.\n"
    },
    {
      "commit": "b3efc56536d009bd7aaeff6d28c7d5938167b483",
      "tree": "0ff4797b33df4eaa6c532b9a549bf47ebd8a5bc8",
      "parents": [
        "3e4cc8d237bcbd637981e38353932b23a4cd8eff"
      ],
      "author": {
        "name": "Christian Häggström",
        "email": "christian.haggstrom@sambanovasystems.com",
        "time": "Fri Oct 02 11:01:47 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 10:38:20 2026"
      },
      "message": "cmake: tolerate an unreadable $HOME when probing the user package registry\n\nCMakeDependency._preliminary_find_check looks for ~/.cmake/packages/\u003cName\u003e\nwith Path.exists(), which only swallows ENOENT/ENOTDIR/EBADF/ELOOP. On a\nhost where the build user\u0027s home directory exists but is not traversable\n(CI service accounts, a root-owned 0700 $HOME, HOME pointing at another\nuser\u0027s directory) the probe raises PermissionError and meson setup dies\nwith \"Unhandled python OSError\" on the first dependency() that reaches the\nCMake finder.\n\nCMake itself silently ignores an unreadable user package registry. Do the\nsame: route the check through the existing _cached_isdir helper, which\nalready turns OSError into \"not found\".\n\nThe path is built with os.path.expanduser() rather than Path.home().\nPath.home() raises RuntimeError when the home directory cannot be\ndetermined (HOME unset and no passwd entry for the uid, as in containers\nrunning under an arbitrary uid), so it would have needed its own handler\nfor a case that should also just mean \"not registered\".\nos.path.expanduser() returns the string unchanged in that case, and a\npath starting with \u0027~\u0027 is never an existing directory, so no extra\nhandling is needed.\n"
    },
    {
      "commit": "3e4cc8d237bcbd637981e38353932b23a4cd8eff",
      "tree": "1f8e7028622ca0bc7ad5591ac3a8c3d1f7e13ea2",
      "parents": [
        "765e711114806bb2c2a54e0fe24a541f0d39e984"
      ],
      "author": {
        "name": "Newbyte",
        "email": "newbyte@postmarketos.org",
        "time": "Wed Aug 20 18:15:55 2025"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 10:26:32 2026"
      },
      "message": "docs: Consistently spell \"localisation\" with an s in Localisation.md\n\nBoth \"localisation\" and \"localization\" are correct, but let\u0027s\nsettle on one of them.\n"
    },
    {
      "commit": "765e711114806bb2c2a54e0fe24a541f0d39e984",
      "tree": "ff694d7618723de067845497eb57df1eedf399be",
      "parents": [
        "d73f48d3b421a25112cc23e5ab629dc68f3d3791"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Feb 13 18:36:26 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Oct 13 10:21:13 2026"
      },
      "message": "docs: Point to `vala_gir()`\n"
    },
    {
      "commit": "d73f48d3b421a25112cc23e5ab629dc68f3d3791",
      "tree": "e8f843fae22f958e702824daf83880e87d3eb46b",
      "parents": [
        "125df2f7d00c431bd9f77612e7341b218482003f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Oct 09 09:16:39 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Oct 11 02:20:51 2026"
      },
      "message": "scripts/rc: do not pass resource compiler args to argparse\n\nWhen using a native file such as the following:\n\n; Compiler with embedded arguments, as allowed in the [binaries] section.\n[binaries]\nrc \u003d [\u0027rc\u0027, \u0027--cl\u0027]\n\n--cl was treated as an option to scripts/rc.py; likewise for arguments\nfrom the args keyword argument of windows.compile_resources().  Pass the\nwhole rc command line verbatim instead of splitting it between binary\nand arguments.\n"
    },
    {
      "commit": "125df2f7d00c431bd9f77612e7341b218482003f",
      "tree": "ffafc8eaed52625afefc6f07f0e85dbdb2a5c996",
      "parents": [
        "0d4a32436983d58b122a3552aecaebb97e41e8d4"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Oct 09 09:16:39 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Oct 11 02:20:51 2026"
      },
      "message": "windows: wrap compiler args from [binaries] with --Xarg\n\nWhen using a native file such as the following:\n\n; Compiler with embedded arguments, as allowed in the [binaries] section.\n[binaries]\nc \u003d [\u0027cl\u0027, \u0027-MP\u0027]\n\n-MP was dropped from the preprocessor command and passed to rc.exe instead.\n\nscripts/rc.py declares --cl with nargs\u003d\u0027+\u0027 and parses with\nparse_known_args. argparse stops collecting values for nargs\u003d\u0027+\u0027 when it\nreaches anything that looks like an option (meaning anything starting with a\ndash) and passes the rest to rc.\n"
    },
    {
      "commit": "0d4a32436983d58b122a3552aecaebb97e41e8d4",
      "tree": "979a4a8f08476246bd1804e40935303cc110cb82",
      "parents": [
        "44c78401859525d4c63b083b34cf271be4bc4973"
      ],
      "author": {
        "name": "Alex Rao",
        "email": "alexhrao@gmail.com",
        "time": "Thu Oct 08 18:42:59 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Fri Oct 09 18:49:21 2026"
      },
      "message": "docs: add format specifier to int to_string\n\nThis commit adds the format specifier to the docs for int\u0027s `to_string`\nmethod, and adds an example for the similar docs in str\u0027s `to_int`\nmethod.\n"
    },
    {
      "commit": "44c78401859525d4c63b083b34cf271be4bc4973",
      "tree": "32d8a52fa1a1be652ac75714e8cccef22a083589",
      "parents": [
        "9874cbc93553d7bf424807afbfbcb1e22447cff8"
      ],
      "author": {
        "name": "Alex Rao",
        "email": "alexhrao@gmail.com",
        "time": "Thu Oct 08 19:12:13 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 09 01:57:17 2026"
      },
      "message": "docs: move picolibc link in the Users.md file\n\nThis commit fixes the picolibc link in `docs/markdown/Users.md` to\npoint to the correct repository. Fixing this also unblocks any\nother PRs that would fail because of link validation failures.\n"
    },
    {
      "commit": "9874cbc93553d7bf424807afbfbcb1e22447cff8",
      "tree": "868fe62fec2ddb9589b2fa381fc8b4c53d1ed794",
      "parents": [
        "3f54b93a7684d537c46010cb7917907389e77741"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 11:29:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 05 11:06:48 2026"
      },
      "message": "dependencies: add sysroot path to Qt include and library paths\n\nMeson probes the build-host filesystem for Qt private headers when\nresolving a Qt dependency during a cross-build. This can cause build-host\ninclude paths (e.g. /usr/include/6.11.0 and Qt subdirs) to be injected\ninto the cross-compiler command line, which breaks strict cross-compilation\n(GCC errors with \"unsafe for cross-compilation\").\n\nThis actually happens only for freedesktop.org pkg-config, because pkgconf\ninstead adds the sysroot automatically.  Fix by doing it by hand in qt.py.\n\nFixes: #15456\n"
    },
    {
      "commit": "3f54b93a7684d537c46010cb7917907389e77741",
      "tree": "f86baf0f7f4a1762d65d731c0ffd2df10e204f76",
      "parents": [
        "3e1c48717281b0c385a7aa87fb10ee2952bd421c"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 11:27:40 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Oct 05 11:06:48 2026"
      },
      "message": "environment: add get_sys_root_path\n\nExtract a function to apply the sysroot path, which python.py uses\nin multiple places.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3e1c48717281b0c385a7aa87fb10ee2952bd421c",
      "tree": "d45a27aeedb715daf7b0f8277b04c2738a855127",
      "parents": [
        "3f5709dda99361642e9832f9eafc0fd6933daaec"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Mar 10 12:44:34 2025"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Oct 04 18:21:32 2026"
      },
      "message": "interpreter: parse depfile for configure_file relative to the working directory\n\nPaths in a depfile are relative to the working directory, not the target directory or\neven less so the source directory. If the depfile that is produced by the configure_file\u0027s\ncommand includes relative paths, make them relative to the build directory.\n\nFixes: #9851\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3f5709dda99361642e9832f9eafc0fd6933daaec",
      "tree": "eb8434075c94f50f8a7778d34e006541ecf9a859",
      "parents": [
        "db12230ef8f3aae78be40c1b8892ba7888e45fac"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Oct 03 05:46:20 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Sun Oct 04 18:21:32 2026"
      },
      "message": "test cases: fix depfile produced by configure_file test\n\nSince the generator program is run from the build directory, the path\nis relative to that directory, but the \"depfile\" source is in the source\ntree.  Fix to include the relative path from build to source directory.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "db12230ef8f3aae78be40c1b8892ba7888e45fac",
      "tree": "f84bf344f7802702db74a0d19c991c2d8536bc04",
      "parents": [
        "64f1304d249113fee30ad1be53c665ea8024ff48"
      ],
      "author": {
        "name": "Zhenyu Liu",
        "email": "lzy20000419@outlook.com",
        "time": "Thu Oct 01 12:16:47 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 02 11:05:08 2026"
      },
      "message": "find_program: fall through alternate names on version mismatch\n\nWhen find_program is given multiple names and a version constraint,\ncontinue trying later names if an earlier match fails the version\ncheck. For each name, a machine-file entry is authoritative and\nblocks PATH lookup for that name.\n"
    },
    {
      "commit": "64f1304d249113fee30ad1be53c665ea8024ff48",
      "tree": "05e54e127bdf66742a164a8c741b702fa8ef2c86",
      "parents": [
        "e13e320371087c7c2e5bae76c286c5241d8aa668"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Fri Oct 02 08:32:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Fri Oct 02 09:43:52 2026"
      },
      "message": "run_target: block @PRIVATE_DIR@ in command\n\neval_custom_target_command checks that the incoming CommandTargetProto\nis a CustomTarget when processing @PRIVATE_DIR@, but nothing blocks the\ncreation of RunTargets that contain it in the command.  Fix that.\n\nFixes: #14082\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "e13e320371087c7c2e5bae76c286c5241d8aa668",
      "tree": "02418f6afc9a805fc2b952db596024be4dde5314",
      "parents": [
        "14c09fe3e433eb1b04b00170c78fdc3d16b246a3"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 10:41:15 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 16:14:44 2026"
      },
      "message": "tooldetect: show an error if NINJA is a relative path\n\nRelative paths to NINJA does not work because meson can run ninja from\nthe build directory (e.g. to build the compdb) and ninja itself can\nrun meson from the build directory to reconfigure; in the latter case,\na relative NINJA environment variable would only work if `meson setup`\nwas invoked with a single srcdir argument.  Detect the issue and\nprint an understandable error message.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "14c09fe3e433eb1b04b00170c78fdc3d16b246a3",
      "tree": "311fe735e3b7b6821cca8baf39e46d2e0e55f141",
      "parents": [
        "0a58d1664e63b38f64c2e6d042a91418fdfd2a6a"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 11:22:24 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 14:59:12 2026"
      },
      "message": "build: print an error if linking with Rust is requested but no .rs file is present\n\nFixes: #15435\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "0a58d1664e63b38f64c2e6d042a91418fdfd2a6a",
      "tree": "d074afba976682fd02fbb83c231200982bef892d",
      "parents": [
        "8347a9b449a0a293f8333568d605ab9917d075f6"
      ],
      "author": {
        "name": "Barbossa",
        "email": "zicowarn@hotmail.com",
        "time": "Thu Apr 03 02:14:26 2025"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 14:58:33 2026"
      },
      "message": "dependencies: python: Use python{vernum}_d.lib in MSVC debug builds\n\nFixes incorrect linking to Python release libraries (python313.lib) when building\ndebug targets with MSVC on Windows. This ensures compatibility with debug Python\ninterpreters (e.g. python_d.exe) and resolves runtime crashes.\n\nDetails:\n- Modified `get_windows_link_args` in `dependencies/python.py` to select debug\n  libraries based on Python interpreter build type and Python library suffix (_d.dll).\n- Added debug logging to validate library selection.\n\nFixes: #14429\n"
    },
    {
      "commit": "8347a9b449a0a293f8333568d605ab9917d075f6",
      "tree": "233926c3f3f12103a53457ead1a9ae0e8b3d9b6c",
      "parents": [
        "378ef27219393427fb954493268550298c87363f"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 10:28:11 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 14:57:44 2026"
      },
      "message": "type_checking: convert false to None for install_mode\n\nFalse was left alone and later changed to 0 due to bool returning\ntrue for isinstance(x, int).  As a result, using \"false\" for the uid\nand gid caused an error starting with Meson 1.2.0:\n\n Unable to set owner False and group \u0027mygroup\u0027: Operation not permitted, ignoring...\n\nSimilarly, the validator was blocking \"1\" because it is equal to True.\nFix by checking for bool specifically when turning it into none, and\nusing \"is True\" in the validator.\n\nFixes: #16225\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "378ef27219393427fb954493268550298c87363f",
      "tree": "031c6d7a65222476e4b3120062d928ab20584b3a",
      "parents": [
        "078db80a47ef0934db6e348abc2960daa4b70d8b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 09:42:32 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 11:03:22 2026"
      },
      "message": "dependencies: Improve error message when variable is not found\n\nThe current error message does not tell which variable is not found and\nprints internal representation of the dependency object:\n\n  ERROR: Could not get pkg-config variable and no default provided for \u003cPkgConfigDependency glib-2.0: True None\u003e\n\nCo-authored-by: Xavier Claessens \u003cxclaessens@netflix.com\u003e\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "078db80a47ef0934db6e348abc2960daa4b70d8b",
      "tree": "731ecde1179bd56050e7f722787a97da938ce8e5",
      "parents": [
        "a7ce13c3540332196769c15343249dade7d28bde"
      ],
      "author": {
        "name": "Zhaoqi Xu",
        "email": "lzy00419@outlook.com",
        "time": "Mon Aug 31 08:29:20 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 10:20:22 2026"
      },
      "message": "backend: substitute @OUTPUT@ in custom_target depfile\n\n@OUTPUT@ in depfile is the output filename, not the full path.\nJoining the target directory with an unexpanded @OUTPUT@ token, then\nsubstituting the full output path, doubled the subdirectory in both\n@DEPFILE@ and ninja\u0027s depfile (include/include/foo.d).\n\nFixes #14140\n"
    },
    {
      "commit": "a7ce13c3540332196769c15343249dade7d28bde",
      "tree": "e86b243e44904541866c92ad37ff05de2c16b839",
      "parents": [
        "47163040b8817b7deafe11601c2784469e33a4be"
      ],
      "author": {
        "name": "Paul Meyer",
        "email": "katexochen0@gmail.com",
        "time": "Tue Sep 29 14:32:59 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 10:14:18 2026"
      },
      "message": "mtest: print failed/skipped subtests in summary\n\nSummary now prints failed/skipped subtests in case\n--print-errorlogs/--verbose is specified.\nWith --verbose on the console, all subtests are\nlisted, including passed ones.\n\nSigned-off-by: Paul Meyer \u003ckatexochen0@gmail.com\u003e\n"
    },
    {
      "commit": "47163040b8817b7deafe11601c2784469e33a4be",
      "tree": "bf990e4e1735633858cbe41f67e3173ab8a5ac50",
      "parents": [
        "60edd6808776342336b31c284bc7c41e2f5b57aa"
      ],
      "author": {
        "name": "Paul Meyer",
        "email": "katexochen0@gmail.com",
        "time": "Tue Sep 29 14:11:28 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 10:14:18 2026"
      },
      "message": "mtest: print skipped TAP subtests count\n\nPreviously skipped subtests weren\u0027t visible. Print\nthe count of skipped subtest so we get a better\nimpression on the coverage of the result.\n\nSigned-off-by: Paul Meyer \u003ckatexochen0@gmail.com\u003e\n"
    },
    {
      "commit": "60edd6808776342336b31c284bc7c41e2f5b57aa",
      "tree": "8ff2f86794431c229ec4f6b67bc5093950f19ff0",
      "parents": [
        "172b992f4acaa98fc0c3561b76038de0cda1433e"
      ],
      "author": {
        "name": "Frank Dana",
        "email": "ferdnyc@gmail.com",
        "time": "Tue Nov 05 23:18:59 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 10:12:53 2026"
      },
      "message": "Add .po file creation to Localization doc\n\nSince commit 487d45c1, `meson setup` will error out\r\nif a project has an i18n configuration but is missing\r\nthe necessary set of `.po` files. (Previously, because\r\nit wasn\u0027t tracking those files the build could be\r\nconfigured first, then the files generated by building\r\nthe -update-po target.)\r\n\r\nSince that no longer works, document the need to\r\ncreate empty `.po` files in advance, and provide a\r\nsimple Bourne-shell-compatible command that\r\ncan be used for this purpose.\r\n\r\nFixes #12368"
    },
    {
      "commit": "172b992f4acaa98fc0c3561b76038de0cda1433e",
      "tree": "1d5a69bc6867c8d1dd294c7a8f94f6b7d636c611",
      "parents": [
        "ebfc3a58928761617e0c125e7cb559fcfe17b466"
      ],
      "author": {
        "name": "andy5995",
        "email": "arch_stanton5995@proton.me",
        "time": "Wed Oct 30 05:06:55 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 10:11:41 2026"
      },
      "message": "Raise exception if invalid values are given to \u0027clone-recursive\u0027\n\nFixes: #13821\n"
    },
    {
      "commit": "ebfc3a58928761617e0c125e7cb559fcfe17b466",
      "tree": "cb32fdf752708cc6aa7f46d6108887e00112827d",
      "parents": [
        "74bf4e9531560abf4dc7917881cf83dc2e89d1ab"
      ],
      "author": {
        "name": "Rohit Goswami",
        "email": "rog32@hi.is",
        "time": "Sun Aug 04 21:24:30 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 09:21:11 2026"
      },
      "message": "clike: Add F77 snippet for underscore_prefix check\n"
    },
    {
      "commit": "74bf4e9531560abf4dc7917881cf83dc2e89d1ab",
      "tree": "185fb44ac5e9c8d994ed96dc4696b72f1b7051e6",
      "parents": [
        "3f1673ae45b8d6beb1631a76e1def0e8fb85d9d8"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Oct 01 09:14:05 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Oct 01 09:15:15 2026"
      },
      "message": "cross: fix spelling of fortran compiler\n\nFixes: #15968\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "3f1673ae45b8d6beb1631a76e1def0e8fb85d9d8",
      "tree": "ca8ade9176686161b8bf4a87efaf4b4727478a03",
      "parents": [
        "e961906e10c0be47bf30c59d195904716824dedb"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 29 22:46:49 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Sep 30 06:42:04 2026"
      },
      "message": "compilers: remove unnecessary mypy hack\n\npylint now complains that the lines after _handle_exceptions() are\nunreachable.  Fortunately, mypy does not need them anymore.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "e961906e10c0be47bf30c59d195904716824dedb",
      "tree": "2c793abc6c4dd1f7b47cd04afcd8ace528bce9a5",
      "parents": [
        "ce332fe6e9d21fc13d67d350bde830695f118542"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 17 16:09:45 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: improve errors when loading Cargo.toml\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "ce332fe6e9d21fc13d67d350bde830695f118542",
      "tree": "b62a07d19533c26c033ab89ff1649e90b2a8f85c",
      "parents": [
        "af0d75c2c25a396fb3f3208a8a9fe4e2d9adc0fc"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 10:38:22 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: add tests for Cargo dependency patching\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "af0d75c2c25a396fb3f3208a8a9fe4e2d9adc0fc",
      "tree": "5b8ec0a9fe536cdcffe139f9723ae6446a4c4651",
      "parents": [
        "9dc5492c93edcec906d078a42cc26eb80b2a1988"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 28 08:32:01 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: drop patch validation\n\nPatches are now generally supported, at least for crates.io, so\nno need to do validation.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9dc5492c93edcec906d078a42cc26eb80b2a1988",
      "tree": "620eb20ce132b37786ec8004800310484e4c5991",
      "parents": [
        "65b29de5be92c8dcad2c831b747fca56731cf544"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 10:10:19 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: patch dependencies entries\n\nAnd allow path dependencies of a subproject to be resolved in the\nroot package.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "65b29de5be92c8dcad2c831b747fca56731cf544",
      "tree": "844ece71445d4f3c2b2a7e95363b65e22a3587b3",
      "parents": [
        "9ad0b5496404bfb0caad1782db36129fc2602764"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 10:30:31 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: reject path dependencies from outside the subproject\n\nThis is effectively a sandbox violation.\n"
    },
    {
      "commit": "9ad0b5496404bfb0caad1782db36129fc2602764",
      "tree": "af5466d313ccecef6502abb82d42b1ee14fdd232",
      "parents": [
        "ff4611a1dc358ab40fce9814401ca36e390c6cf7"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 28 08:38:40 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: fix missing f in f-string\n"
    },
    {
      "commit": "ff4611a1dc358ab40fce9814401ca36e390c6cf7",
      "tree": "2a255f342449604fc7673793a421e9e9578d1828",
      "parents": [
        "de8aa318ecf51d2be6a275361fddb6fa34092adb"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 10:17:44 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: extract _load_path_package\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "de8aa318ecf51d2be6a275361fddb6fa34092adb",
      "tree": "fc1a28a238de4c852a4eb8819edd715e35bff77b",
      "parents": [
        "521502c33623c93b2a680576fc8c41ac09430123"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 10:00:45 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: parse [patch] table\n\nWhile at it, run patch validation after building the set of dependencies.\nOtherwise, it is not able to match patches against dependencies and will\nincorrectly warn.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "521502c33623c93b2a680576fc8c41ac09430123",
      "tree": "ec2e21772b5cb44e617f52a79a75b86d68b49e49",
      "parents": [
        "c72e9dac3e2a860dabde863ef03e35392c5e359b"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 09:44:59 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: remember root workspace\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c72e9dac3e2a860dabde863ef03e35392c5e359b",
      "tree": "37b10ae304317316c158ed84b966b7186e47e8c3",
      "parents": [
        "df8fb67a3cc0753c129628f38253d895c2d4a5d8"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 09:41:28 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: pass source directory to WorkspaceState constructor\n\nThis is needed to process patch entries.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "df8fb67a3cc0753c129628f38253d895c2d4a5d8",
      "tree": "28438a4a71c0a5c54a472db0d84be17e369c257b",
      "parents": [
        "16bfcd8486a8d13f5e2ce3e3b1e59361d017c713"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 09:40:52 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "modules: rust: do not invoke subproject for already-overridden dependency\n\nFor patched crates, the top-level project might have already built them\nand called ovreride_dependency().  In that case it is not necessary\n(and wrong) to process the subproject version.  So, if there is a\ndependency override, skip the subproject; if there is not one, look\nit up again after processing the subproject.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "16bfcd8486a8d13f5e2ce3e3b1e59361d017c713",
      "tree": "917c44037c143fb7ffe41cbff44e733a43c86dec",
      "parents": [
        "4b3ceff48ca4e577625cb633c66e65a90c8b3158"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Sat Sep 12 10:14:49 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: allow path dependency to come from another workspace\n\nA path dependency may belong to the top-level workspace even when\nits consumer belongs to a nested Cargo workspace such as a subproject\n(this happens especially in the presence of patching).\n\nIn that case, when _process_member() unconditionally tries to access\nws.packages[member] it gets a KeyError.  Only process dependencies\nthat are actually part of the workspace being generated, and expect\nthat other dependencies are provided via meson.override_dependency()\nby the parent process.\n\nThis case was already happening for excluded dependencies, and the\nexisting conditional is subsumed in the more general one.\n"
    },
    {
      "commit": "4b3ceff48ca4e577625cb633c66e65a90c8b3158",
      "tree": "fcf91c8b33c2b688facc1e0be9e07e38669a6e2c",
      "parents": [
        "5f6eb8a7c8472b86005ea8ed315b8a78b8c4745e"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 07 09:17:56 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: flatten [target] into the unconditional tables\n\nThis simplifies the parsing and makes it possible to handle correctly\ndependency-named features, which apply equally to all dependencies,\neven those that are disabled.  In other words, even if a \"win\"\ndependency is only declared under [target.\u0027cfg(windows)\u0027.dependencies],\n\"cargo build --features win\" succeeds on non-Windows platforms as well.\n\nDue to the new representation, move the merged table into\nPackageConfiguration.  This is cleaner, because it doesn\u0027t modify the\nmanifest, and it makes it possible to fully separate dependencies for\nthe host and build machines.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "5f6eb8a7c8472b86005ea8ed315b8a78b8c4745e",
      "tree": "eefd0b222e8205414d1beb3606252f70fb3d3066",
      "parents": [
        "f198b7198df2eb3577affe85b0a009a3bb45ee18"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 07 10:49:08 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: list target.{dev,build}-dependencies in Cargo.toml TypedDicts\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f198b7198df2eb3577affe85b0a009a3bb45ee18",
      "tree": "c11ad630b5b3e3825ea512d78c10c7ba1bf6ab9b",
      "parents": [
        "b94ec08de53c4bd0598e78b45b77ad6ca82ae8f0"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Mon Sep 07 09:48:32 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: allow extra_members to include disabled path dependencies\n\nAllow force-including dependencies that would normally be compiled out.\nThese would not be built by default by cargo, but they would still be\naccessible via `-p`.\n\nAllow doing the same in Meson, which will be even more useful when it\nwill allow including a build-side package too, via build-dependencies.\n"
    },
    {
      "commit": "b94ec08de53c4bd0598e78b45b77ad6ca82ae8f0",
      "tree": "183e1cc72dd598e458c305c259db63eee7e76e9f",
      "parents": [
        "7fdfe0eb478422b041a2ec6bfdca7a0f2f793537"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 17 14:20:12 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: canonicalize all paths with as_posix()\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "7fdfe0eb478422b041a2ec6bfdca7a0f2f793537",
      "tree": "408a6b0dc6d19a2080d3ac71eeeae5e3b7dc3754",
      "parents": [
        "c7fd49a490493e464168eaf4041b10a511b300a5"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 17 20:51:12 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "mesonlib: introduce as_posix\n\nIntroduce a new function that can be used to join and normalize paths,\nand canonicalize them to forward slashes.  It avoids (or rather\nhides) use of pathlib for string-\u003estring operations.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "c7fd49a490493e464168eaf4041b10a511b300a5",
      "tree": "4f7300a57162b0dcd14fa3c85274e2d5c04f1413",
      "parents": [
        "9f2e885820330abddf59dbc01999b408d81c1ac9"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 10 08:16:36 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Mon Sep 28 12:30:48 2026"
      },
      "message": "cargo: ws_subdir/ws_member is not optional\n\nAll packages are now part of a workspace, so there is always a WorkspaceState\nand a ws_subdir/ws_member pair.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9f2e885820330abddf59dbc01999b408d81c1ac9",
      "tree": "07333321cd384f0b6d925d61ff3ba594071b492e",
      "parents": [
        "ef1d7e3bd0230dad7520db1e2d1131f8b5e0aa51"
      ],
      "author": {
        "name": "GhostCoder6969",
        "email": "ahmadbannout191999@gmail.com",
        "time": "Sun Sep 27 09:28:34 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun Sep 27 09:28:34 2026"
      },
      "message": "Honor cpp_rtti for Objective-C++ sources\n\nSetting cpp_rtti\u003dfalse had no effect on .mm files: only C++ compilations got -fno-rtti.\nI mapped the rtti compiler option to cpp_rtti for Objective-C++ (the same way cpp_std\nis already shared) and added get_option_compile_args so the flag is emitted.\n\nI also registered the option for projects that only enable objcpp.\n\nFixes #16189."
    },
    {
      "commit": "ef1d7e3bd0230dad7520db1e2d1131f8b5e0aa51",
      "tree": "23199e28d80dd6febe7ef0c27676703a217b8d08",
      "parents": [
        "9478b2cebec573e5a000ed477c40bc95082a7e49"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 24 08:25:38 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Sep 24 16:57:16 2026"
      },
      "message": "build: pull combination of dependencies and link_* out of _extract_link_with/whole\n\nSince commit 1b86a276d (\"dependencies: allow recording BothLibraries in\ninternal dependencies\", 2026-09-21), libraries coming from dependencies\nwere returned again from _extract_link_*(), and the caller\u0027s use of extend()\ndoubled the length of the list every time.\n\nThe fix cannot be simply\n\n    -                self.link_targets.extend(self._extract_link_with(dep.libraries))\n    -                self.link_whole_targets.extend(self._extract_link_whole(dep.whole_libraries))\n    +                self.link_targets \u003d self._extract_link_with(dep.libraries)\n    +                self.link_whole_targets \u003d self._extract_link_whole(dep.whole_libraries)\n\nbecause this would reverse link order - prior to 1b86a276d, extend()\nadded the dep.libraries and dep.whole_libraries at the end of\nself.link_targets/self.link_whole_targets, while _extract_link_*()\nplaces them at the beginning.\n\nInstead, keep the extend() but remove the itertools.chain(): it is not really\nneeded except in __init__(), and if it is replaced by concatenation we also\nskip an unnecessary second run of _extract_link_with/whole on the\nlink_with/whole that come from dependencies.\n\nFixes: #16226\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "9478b2cebec573e5a000ed477c40bc95082a7e49",
      "tree": "9e74a8e617f1dcb60f7cba253e55538efa7fe5df",
      "parents": [
        "6fd84127a66b06cf4202cbc30c03d9c0a82a44fd"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Thu Sep 24 11:29:44 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Sep 24 16:57:16 2026"
      },
      "message": "extend nostdlib test to more machines\n\nSome builds of Python leave platform.processor() to an empty string.\nCheck platform.machine() as well.\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "6fd84127a66b06cf4202cbc30c03d9c0a82a44fd",
      "tree": "5e2407218f99f31c70d9abe54b02a406b2f8182d",
      "parents": [
        "41d62c9cabd920fffeed0254cb268610055bec08"
      ],
      "author": {
        "name": "Marcin Sochacki",
        "email": "136440930+marcin-sochacki@users.noreply.github.com",
        "time": "Thu Sep 24 16:15:04 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Sep 24 16:15:04 2026"
      },
      "message": "add QNX qcc/q++ support (#16018)\n\nQNX is a commercial POSIX real-time operating system built for safety-critical embedded use (automotive, medical, industrial) and certified to standards like ISO 26262 and IEC 61508.\nqcc/q++ are its compiler driver frontends that wrap an underlying toolchain to produce binaries for QNX Neutrino targets.\nAdding qcc support to Meson lets projects targeting QNX use Meson as their build system directly,\nwhich is necessary for building components of a safety-certified OS and the safety-critical software that runs on it."
    },
    {
      "commit": "41d62c9cabd920fffeed0254cb268610055bec08",
      "tree": "e4ac56af7ce405b54ebffe755de757daeb2b512d",
      "parents": [
        "245448ad8f9ef363f4d8314d2cd40930ebb89880"
      ],
      "author": {
        "name": "Frank Richter",
        "email": "frank.richter@gmail.com",
        "time": "Thu Nov 07 19:35:05 2024"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Thu Sep 24 11:18:59 2026"
      },
      "message": "Add a test case triggering warning after adding nasm language\n"
    },
    {
      "commit": "245448ad8f9ef363f4d8314d2cd40930ebb89880",
      "tree": "003a9ccb940f5c4a6120c8b366fc9863660d4860",
      "parents": [
        "e6c4e8d040e2bf56638b697e9941574af05d97ac"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Sep 23 17:36:02 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Sep 23 19:36:43 2026"
      },
      "message": "external-project: Test env kwarg\n"
    },
    {
      "commit": "e6c4e8d040e2bf56638b697e9941574af05d97ac",
      "tree": "40f88848f4934cbfdd264cd39997410a94913e95",
      "parents": [
        "0102669f6ca3fb81ee49acc581bbb455aac4fddd"
      ],
      "author": {
        "name": "Maxandre Ogeret",
        "email": "maxandreogeret@gmail.com",
        "time": "Thu Jul 09 00:28:27 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Wed Sep 23 17:31:56 2026"
      },
      "message": "mintro: include per-subproject options in buildoptions\n\nThe configured-builddir path called the option listing without the set\nof subprojects, so the per-subproject replication of non-yielding\nbuiltin options only happened for source-only introspection and no\nsub: rows were emitted at all. Augments (per-subproject values such as\n-Dsub:c_args\u003d...) were additionally never consulted, so even the\nsource-only rows reported the parent project\u0027s value.\n\nPass coredata.initialized_subprojects on the configured path, add\nper-subproject rows for base and compiler options that have an augment\nset, and resolve replicated keys through the option store so augments\nand yielding are reflected in the reported value. Project options keep\ntheir stored value as before.\n\nFixes #15993.\n"
    },
    {
      "commit": "0102669f6ca3fb81ee49acc581bbb455aac4fddd",
      "tree": "e90e843822b8444bf6d03e9360ab7a5b2b56634f",
      "parents": [
        "d1c7b4dae011e13a695c3303a050460f02655ccc"
      ],
      "author": {
        "name": "Nirbheek Chauhan",
        "email": "nirbheek.chauhan@coram.ai",
        "time": "Tue Sep 22 21:19:55 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Wed Sep 23 16:32:53 2026"
      },
      "message": "ci: Move fastjsonschema to pip for  msys2 jobs\n\nPackage seems to be unavailable for the gccx86ninja job\u0027s architecture.\n"
    },
    {
      "commit": "d1c7b4dae011e13a695c3303a050460f02655ccc",
      "tree": "80570e157c5c02326fbf23a32ac3fbfe01deadce",
      "parents": [
        "f29e21ccd306596cdbd3530ce06e977ff62ce4d8"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 22 09:07:21 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Sep 22 15:59:01 2026"
      },
      "message": "clarify difference between StringHolder and MesonVersionStringHolder\n\nSigned-off-by: Paolo Bonzini \u003cpbonzini@redhat.com\u003e\n"
    },
    {
      "commit": "f29e21ccd306596cdbd3530ce06e977ff62ce4d8",
      "tree": "aff526004c85e46b4a2ee66690400f0a1a3b1340",
      "parents": [
        "4d0236cb5f922ee4e5f8fab2ca6fa3aa9799c2db"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 22 09:04:43 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Sep 22 15:59:01 2026"
      },
      "message": "add regression test\n"
    },
    {
      "commit": "4d0236cb5f922ee4e5f8fab2ca6fa3aa9799c2db",
      "tree": "5b1c4d1ea697159972ff78d1951c7233dfc49e05",
      "parents": [
        "bf078d152d1dc0b720d008b31ea67edf548607bb"
      ],
      "author": {
        "name": "Paolo Bonzini",
        "email": "pbonzini@redhat.com",
        "time": "Tue Sep 22 09:04:52 2026"
      },
      "committer": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Tue Sep 22 15:59:01 2026"
      },
      "message": "Revert \"interpreter/primitives/boolean: use TypedArgs helpers\"\n\nThis reverts commit 101373c8a915ef5bd34cc87b07fb806ba8232da8.\nIt breaks if one of the two arguments *is* provided but is\n\u0027true\u0027 or \u0027false\u0027.\n"
    },
    {
      "commit": "bf078d152d1dc0b720d008b31ea67edf548607bb",
      "tree": "be2b2621586aa9c6772f413be884227ba8aab718",
      "parents": [
        "1d043a9bd44f04ef8bf1321b87bdf78129c47dec"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Sep 21 20:32:32 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 22 15:02:23 2026"
      },
      "message": "optinterpreter: set current_node when reducing\n"
    },
    {
      "commit": "1d043a9bd44f04ef8bf1321b87bdf78129c47dec",
      "tree": "2b455a96b00852d0fef40f2f7fd36589755567f5",
      "parents": [
        "0e48e8732c23d00ae1c896138d66b8a7197d7794"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Sep 21 20:30:58 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 22 15:02:23 2026"
      },
      "message": "optinterperter: Use dict.items()\n"
    },
    {
      "commit": "0e48e8732c23d00ae1c896138d66b8a7197d7794",
      "tree": "2cdda19507265c0deb8d744e22188b3c33c6b444",
      "parents": [
        "6c693e7aad49a27f34566f646e09aec6c61d9c82"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Sep 21 20:29:24 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 22 15:02:23 2026"
      },
      "message": "optinterpreter: use a match statement to simplify the reduce_single\nmethod\n"
    },
    {
      "commit": "6c693e7aad49a27f34566f646e09aec6c61d9c82",
      "tree": "7584d625e0d5e67c842fb3bd1734f1888b8791d0",
      "parents": [
        "a37b7b4ceda73fd0b98cbd643e5d26bd13d801af"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Sep 21 20:25:51 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 22 15:02:23 2026"
      },
      "message": "optinterpreter: reduce_single doesn\u0027t actually take `BaseNode | str`\n\nIt just takes `BaseNode`\n"
    },
    {
      "commit": "a37b7b4ceda73fd0b98cbd643e5d26bd13d801af",
      "tree": "ff1b3a3b052364b7b433e7f58577aa64c95e6317",
      "parents": [
        "1680fe3c6ecb576cee359d9ac815d6a383b9e0aa"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Sep 21 20:20:04 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 22 15:02:23 2026"
      },
      "message": "optinterpreter: raise exceptions from the node\n\nThis means that we get better error messages from invalid option files.\n"
    },
    {
      "commit": "1680fe3c6ecb576cee359d9ac815d6a383b9e0aa",
      "tree": "e1ce29bc89a73a8dab1c7b6788ab068080b04c83",
      "parents": [
        "c88ca663416f300e7bd5d79a5d828b29ee18a11a"
      ],
      "author": {
        "name": "Dylan Baker",
        "email": "dylan@pnwbakers.com",
        "time": "Mon Sep 21 20:16:35 2026"
      },
      "committer": {
        "name": "Paolo Bonzini",
        "email": "bonzini@gnu.org",
        "time": "Tue Sep 22 15:02:23 2026"
      },
      "message": "optinterpreter: Set the current_node attribute in the initializer\n"
    }
  ],
  "next": "c88ca663416f300e7bd5d79a5d828b29ee18a11a"
}
