)]}'
{
  "log": [
    {
      "commit": "24f56bdafc47e024046d132bbac14264552d5c89",
      "tree": "dae3349a9b9f864de9a031f91161219080fa827f",
      "parents": [
        "41f45988ab6ff5ba4a0b9eea57d43df5657c7639",
        "47832ce2d1390233ec4e6276dcb5ea036e8936de"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 21:37:04 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 21:37:04 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-pt-from-main-cb44043a-c7d8-11f1-b606-0a580a800050\u0027 into \u0027main\u0027\n\nUpdate Portuguese translation\n\nSee merge request GNOME/glib!5414"
    },
    {
      "commit": "47832ce2d1390233ec4e6276dcb5ea036e8936de",
      "tree": "dae3349a9b9f864de9a031f91161219080fa827f",
      "parents": [
        "41f45988ab6ff5ba4a0b9eea57d43df5657c7639"
      ],
      "author": {
        "name": "Hugo Carvalho",
        "email": "hugokarvalho@hotmail.com",
        "time": "Wed Oct 14 14:09:12 2026 +0000"
      },
      "committer": {
        "name": "GNOME Translation Robot",
        "email": "gnome-sysadmin@gnome.org",
        "time": "Wed Oct 14 14:09:12 2026 +0000"
      },
      "message": "Update Portuguese translation\n\nCo-authored-by: Cátia Silva \u003ccatias89@gmail.com\u003e\nReviewed-by: Hugo Carvalho \u003chugokarvalho@hotmail.com\u003e\n"
    },
    {
      "commit": "41f45988ab6ff5ba4a0b9eea57d43df5657c7639",
      "tree": "5b15d33dbf04661452a540570c6a4e2853fd8fd8",
      "parents": [
        "9c548ddbdc44605b0329e92f99162a2356d88fd4",
        "30dfead61b202e29d2069aa2c606e78f35c76b65"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 12:29:24 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 12:29:24 2026 +0000"
      },
      "message": "Merge branch \u0027wip/chergert/ffi-call-plan-caching\u0027 into \u0027main\u0027\n\nImplement libffi ffi_call_plan caching\n\nCloses #4002\n\nSee merge request GNOME/glib!5256"
    },
    {
      "commit": "9c548ddbdc44605b0329e92f99162a2356d88fd4",
      "tree": "1a9b0c6c2c6dff82a8f47370febd94d5ede757e6",
      "parents": [
        "f371eab5c097a8fbd75997d6d48719c499740491",
        "5b3b5a1a7f66da0ca37d7dcb8e8356b88ebc087f"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 12:20:13 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 12:20:13 2026 +0000"
      },
      "message": "Merge branch \u0027bugaevc/hurd-get-exe\u0027 into \u0027main\u0027\n\ngutils: Implement g_get_process_executable_dir() on GNU Hurd\n\nCloses #4074\n\nSee merge request GNOME/glib!5412"
    },
    {
      "commit": "5b3b5a1a7f66da0ca37d7dcb8e8356b88ebc087f",
      "tree": "1a9b0c6c2c6dff82a8f47370febd94d5ede757e6",
      "parents": [
        "f371eab5c097a8fbd75997d6d48719c499740491"
      ],
      "author": {
        "name": "Sergey Bugaev",
        "email": "bugaevc@gmail.com",
        "time": "Wed Oct 14 15:20:13 2026 +0300"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 14 12:20:13 2026 +0000"
      },
      "message": "gutils: Implement g_get_process_executable_dir() on GNU Hurd\n\nSigned-off-by: Sergey Bugaev \u003cbugaevc@gmail.com\u003e\n"
    },
    {
      "commit": "30dfead61b202e29d2069aa2c606e78f35c76b65",
      "tree": "a37a0738baaa5e01ad0dc3dd4b5b02774ff2e742",
      "parents": [
        "c4d9e92e111102bf31711d7824bcbae64cde048b"
      ],
      "author": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Fri Jul 24 15:51:57 2026 +0200"
      },
      "committer": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Wed Oct 14 12:55:41 2026 +0200"
      },
      "message": "gobject/gclosure: cache libffi plans for closures\n\nIf we are using libffi to trampoline then there is opportunity to cache\nthe ffi_call_plan introduced in newer libffi releases. A rather contrived\ntest introduced in the previous commit includes a basic performance test\nthat can compare between versions.\n\nFor my system, the average call time dropped from 200ns/call to 145ns/call\nfor cached GClosure. Since the previous version did no caching, the\nuncached GClosure use was also just slightly slower around 205ns/call. For\nthe cached form (since it can reuse a global plan cache via GMutex) it\ndrops to 180ns/call. So that is 27.5% savings and a 10% savings in runtime\nduration.\n\nCloses: #4002\nCo-authored-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "c4d9e92e111102bf31711d7824bcbae64cde048b",
      "tree": "fb7f6f34394192cc29dda7818a8d1802a6364830",
      "parents": [
        "f371eab5c097a8fbd75997d6d48719c499740491"
      ],
      "author": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Fri Jul 24 12:19:02 2026 +0200"
      },
      "committer": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Wed Oct 14 12:55:41 2026 +0200"
      },
      "message": "gobject/tests: add performance test for generic marshaller\n\nThe goal here is to get a baseline for upcoming performance work\nto use the cached libffi plans rather than generating a new plan\non every pass through libffi.\n"
    },
    {
      "commit": "f371eab5c097a8fbd75997d6d48719c499740491",
      "tree": "591f5114b3eb1c459a09e57d3a64220d17fc0f6b",
      "parents": [
        "42ae22073b517bd7b935ebee1e9967fdc67540c4",
        "4c7b3f488fd973a2cc9f08cab1fa2dab621ff1bb"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 22:37:17 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 22:37:17 2026 +0000"
      },
      "message": "Merge branch \u0027fix/value-reset-transfer\u0027 into \u0027main\u0027\n\ngvalue: Annotate reset result as borrowed\n\nSee merge request GNOME/glib!5410"
    },
    {
      "commit": "42ae22073b517bd7b935ebee1e9967fdc67540c4",
      "tree": "33a626bee91d2f9bc564416a664be9c436473249",
      "parents": [
        "6b753215593ab65406d07db0fd90d03003c6c275",
        "cd999447a0d395f7bb76d4f34014a3600cdac51d"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 22:35:28 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 22:35:28 2026 +0000"
      },
      "message": "Merge branch \u0027systemd-transient-scope\u0027 into \u0027main\u0027\n\nPort internal application spawning to async GTask\n\nSee merge request GNOME/glib!5350"
    },
    {
      "commit": "cd999447a0d395f7bb76d4f34014a3600cdac51d",
      "tree": "33a626bee91d2f9bc564416a664be9c436473249",
      "parents": [
        "7071e19ca3f4a0a742fc3606be9b24964fd586a0"
      ],
      "author": {
        "name": "John Cardullo",
        "email": "john@jcarmedia.org",
        "time": "Thu Sep 24 23:54:08 2026 -0700"
      },
      "committer": {
        "name": "John Cardullo",
        "email": "john@jcarmedia.org",
        "time": "Tue Oct 13 12:32:08 2026 -0700"
      },
      "message": "tests: Add unit tests for g_app_info_launch_uris_async() via spawn path\n\nVerify that g_app_info_launch_uris_async() succeeds, propagates errors,\nand handles cancellation properly for spawned applications.\n"
    },
    {
      "commit": "7071e19ca3f4a0a742fc3606be9b24964fd586a0",
      "tree": "94e81d4f45c950f547cc67dbfccb5fb1cfbbc681",
      "parents": [
        "f6fc9d478fee222d5d2c7e3e655f0a9b7cc4c64f"
      ],
      "author": {
        "name": "John Cardullo",
        "email": "john@jcarmedia.org",
        "time": "Thu Sep 24 23:53:39 2026 -0700"
      },
      "committer": {
        "name": "John Cardullo",
        "email": "john@jcarmedia.org",
        "time": "Tue Oct 13 12:32:08 2026 -0700"
      },
      "message": "gdesktopappinfo: Add g_desktop_app_info_launch_uris_with_spawn_async()\n\n- Factor the core spawning logic into an internal helper.\n- Add g_desktop_app_info_launch_uris_with_spawn_async() and _finish()\n  to handle their own GTask lifecycle, cancellation, and D-Bus flushing.\n- Retain g_desktop_app_info_launch_uris_with_spawn() as a synchronous wrapper\n  for existing sync callers.\n- Update launch_uris_bus_get_cb() to delegate to the async variant instead of\n  calling the synchronous spawn function.\n"
    },
    {
      "commit": "f6fc9d478fee222d5d2c7e3e655f0a9b7cc4c64f",
      "tree": "404d42978bdbc520fbd25849b40b331d24262cb2",
      "parents": [
        "6b753215593ab65406d07db0fd90d03003c6c275"
      ],
      "author": {
        "name": "John Cardullo",
        "email": "john@jcarmedia.org",
        "time": "Thu Sep 24 15:49:12 2026 -0700"
      },
      "committer": {
        "name": "John Cardullo",
        "email": "john@jcarmedia.org",
        "time": "Tue Oct 13 12:32:08 2026 -0700"
      },
      "message": "gdesktopappinfo: Move session bus flush into g_desktop_app_info_launch_uris_with_spawn()\n\nInstead of calling g_dbus_connection_flush() in callers such as\ng_desktop_app_info_launch_uris_internal() and\ng_desktop_app_info_launch_action(), move the flush into\ng_desktop_app_info_launch_uris_with_spawn().\n\nThis makes g_desktop_app_info_launch_uris_with_spawn() self-contained\nin flushing the startup notification D-Bus messages it emits.\n\nThe flush was originally added in commit d6954c78 specifically to ensure\nthat fire-and-forget D-Bus signals emitted for startup notification\n(notify_desktop_launch()) were not dropped if the session bus connection\nwas unreffed immediately afterwards.\n\nBecause notify_desktop_launch() is only called in the spawn path, the\nother callers do not emit startup notification signals. The D-Bus\nactivation paths (g_desktop_app_info_launch_uris_with_dbus() and\ng_desktop_app_info_launch_action()) use method calls whose lifecycle is\nmanaged by GTask (which holds a reference to the connection until\ncomplete), so they do not require an explicit flush.\n"
    },
    {
      "commit": "6b753215593ab65406d07db0fd90d03003c6c275",
      "tree": "7d590bd2cd6b1d33eae31c4cc93ac933cf06f7ca",
      "parents": [
        "255b816ae74308260f239d19bfe353eec5ebebfe",
        "bc520a4ac5b894f530bfcd1bd9df13d6411bb188"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 16:08:10 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 16:08:10 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-ka-from-main-77bb2a44-c71c-11f1-8b01-0a580a800050\u0027 into \u0027main\u0027\n\nUpdate Georgian translation\n\nSee merge request GNOME/glib!5408"
    },
    {
      "commit": "4c7b3f488fd973a2cc9f08cab1fa2dab621ff1bb",
      "tree": "2530cd93ae52916cb8e0047dd835adfd9563cb67",
      "parents": [
        "255b816ae74308260f239d19bfe353eec5ebebfe"
      ],
      "author": {
        "name": "Eugenio Depalo",
        "email": "eugeniodepalo@gmail.com",
        "time": "Tue Oct 13 18:02:23 2026 +0200"
      },
      "committer": {
        "name": "Eugenio Depalo",
        "email": "eugeniodepalo@gmail.com",
        "time": "Tue Oct 13 18:02:23 2026 +0200"
      },
      "message": "gvalue: Annotate reset result as borrowed\n\ng_value_reset() returns the GValue passed in, so ownership of the\nstorage stays with the caller. Annotate the return value as borrowed\nto prevent introspection consumers from treating it as newly owned.\n"
    },
    {
      "commit": "bc520a4ac5b894f530bfcd1bd9df13d6411bb188",
      "tree": "7d590bd2cd6b1d33eae31c4cc93ac933cf06f7ca",
      "parents": [
        "255b816ae74308260f239d19bfe353eec5ebebfe"
      ],
      "author": {
        "name": "Ekaterine Papava",
        "email": "papava.e@gtu.ge",
        "time": "Tue Oct 13 15:41:04 2026 +0000"
      },
      "committer": {
        "name": "GNOME Translation Robot",
        "email": "gnome-sysadmin@gnome.org",
        "time": "Tue Oct 13 15:41:04 2026 +0000"
      },
      "message": "Update Georgian translation\n"
    },
    {
      "commit": "255b816ae74308260f239d19bfe353eec5ebebfe",
      "tree": "421b8dea06265cebdf38d4846139040c34313f34",
      "parents": [
        "77ca8eac896dda932bcf6b50c5714953d3db3fc1",
        "a4c0fcdf324221a24a07ed7f3a0dc3b64880fe85"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 13:57:35 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 13 13:57:35 2026 +0000"
      },
      "message": "Merge branch \u00274072-notification-leak\u0027 into \u0027main\u0027\n\ngfdonotificationbackend: Fix leak of a GVariant\n\nCloses #4072\n\nSee merge request GNOME/glib!5405"
    },
    {
      "commit": "a4c0fcdf324221a24a07ed7f3a0dc3b64880fe85",
      "tree": "421b8dea06265cebdf38d4846139040c34313f34",
      "parents": [
        "77ca8eac896dda932bcf6b50c5714953d3db3fc1"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 13 14:21:38 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 13 14:44:53 2026 +0100"
      },
      "message": "gfdonotificationbackend: Fix leak of a GVariant\n\n`g_variant_builder_end()` returns a new floating reference. We don’t\nwant to pass a floating reference into the `before_emit()` and\n`after_emit()` vfuncs, in case they sink it, so let’s sink it first and\nthen unref later to avoid the leak.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\nFixes: #4072\n"
    },
    {
      "commit": "77ca8eac896dda932bcf6b50c5714953d3db3fc1",
      "tree": "7504ccdb7b74e0f02572fb039b40e25793059f3c",
      "parents": [
        "e674bf20fea1eb897cab8c79ae7764495578f300",
        "b7b9036bcc1f7619518309f49edff7af54c34727"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 14:43:28 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 14:43:28 2026 +0000"
      },
      "message": "Merge branch \u0027fix-get-exec-dir-win32\u0027 into \u0027main\u0027\n\nwin32: Fix g_get_process_executable_dir() path resolution\n\nSee merge request GNOME/glib!5400"
    },
    {
      "commit": "b7b9036bcc1f7619518309f49edff7af54c34727",
      "tree": "d179e361d45f1cc5539b38a3eae7189cf6a8a453",
      "parents": [
        "90d5c34f6ee69eeb3140a0522f607acc3fcec19b"
      ],
      "author": {
        "name": "otaxhu",
        "email": "oscarperniamoreno@gmail.com",
        "time": "Sat Oct 10 23:39:23 2026 -0400"
      },
      "committer": {
        "name": "otaxhu",
        "email": "oscarperniamoreno@gmail.com",
        "time": "Mon Oct 12 10:31:59 2026 -0400"
      },
      "message": "win32: Fix g_get_process_executable_dir() path resolution\n\nThe previous implementation incorrectly relied on\ng_win32_get_package_installation_directory_of_module(), which is\ndesigned to find the package root prefix (stripping subdirectories\nlike `bin/` or `lib/`).\n"
    },
    {
      "commit": "e674bf20fea1eb897cab8c79ae7764495578f300",
      "tree": "43c28521e3a244254e41813f8c34da055a75bcf0",
      "parents": [
        "90d5c34f6ee69eeb3140a0522f607acc3fcec19b",
        "27f7ee5f76dca9bb2ea7c993e7edf78d7763b355"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 10:02:46 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 10:02:46 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-sl-from-main-ad89c9c0-c41d-11f1-9b06-0a580a830062\u0027 into \u0027main\u0027\n\nUpdate Slovenian translation\n\nSee merge request GNOME/glib!5398"
    },
    {
      "commit": "27f7ee5f76dca9bb2ea7c993e7edf78d7763b355",
      "tree": "43c28521e3a244254e41813f8c34da055a75bcf0",
      "parents": [
        "90d5c34f6ee69eeb3140a0522f607acc3fcec19b"
      ],
      "author": {
        "name": "Martin",
        "email": "miles@filmsi.net",
        "time": "Fri Oct 09 20:12:10 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 09:42:36 2026 +0000"
      },
      "message": "Update Slovenian translation\n"
    },
    {
      "commit": "90d5c34f6ee69eeb3140a0522f607acc3fcec19b",
      "tree": "ce0a3033f5d018b0b9846b14e169ad8d735a5a65",
      "parents": [
        "3bc01b117d6a5074325d57c0b2c0c2f2c244fe08",
        "1372dd5bc922cce368761fef8d35ff80c693557b"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 09:25:54 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Oct 12 09:25:54 2026 +0000"
      },
      "message": "Merge branch \u0027messages-not-leak\u0027 into \u0027main\u0027\n\ngmessages: Fix an unused variable warning\n\nSee merge request GNOME/glib!5399"
    },
    {
      "commit": "1372dd5bc922cce368761fef8d35ff80c693557b",
      "tree": "ca8a4437e48d332dd1243697e28da7f9d8bf999e",
      "parents": [
        "e1e24568cb56cd665b7f7fa175ac5b21d065a15b"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sun Oct 11 00:37:14 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sun Oct 11 13:25:59 2026 +0100"
      },
      "message": "tests: Mark some signal ID variables as unused\n\nThey’re written to but not read from.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171580 and\nhttps://gitlab.gnome.org/pwithnall/glib/-/jobs/7171674\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "e1e24568cb56cd665b7f7fa175ac5b21d065a15b",
      "tree": "9f3bc651618bc6db87e576af45431eac13ab5065",
      "parents": [
        "1ca4b339488d05325a02b2ae0968c655b87ba6a9"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sun Oct 11 00:08:09 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sun Oct 11 00:08:09 2026 +0100"
      },
      "message": "gobject: Mark dynamic type parent class pointer as potentially unused\n\nJust as with commit 1567250294, but for\n`G_DEFINE_DYNAMIC_TYPE_EXTENDED`.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171461\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "1ca4b339488d05325a02b2ae0968c655b87ba6a9",
      "tree": "6ad64cc5c82eb0f25782258b13f1d3f97170b867",
      "parents": [
        "11de1d730e58c1f501e3a5d4c65b283fb8a26e0f"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 23:51:53 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 23:51:53 2026 +0100"
      },
      "message": "tests: Mark a static test variable as unused\n\nBecause it’s written to but not read. And that’s fine; this is test\ncode.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171414\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "11de1d730e58c1f501e3a5d4c65b283fb8a26e0f",
      "tree": "1754882ce662514258956f0a88ea87d0f7a71197",
      "parents": [
        "0dcb97ba14ca967ab15306511a5e28ba0d2add47"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 23:38:56 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 23:40:34 2026 +0100"
      },
      "message": "gobject-query: Remove no-op -s spacing option\n\nmsys2-clang64 noticed that the `spacing` variable was written to but\nnever read from. Indeed, this option has been a no-op since I\naccidentally/deliberately broke it in commit\n98e6ac788e08501e7c8d50b01c2a71ac9e0d25fc.\n\nDrop it, because nobody has complained about it breaking since 2022, and\nI’m not sure about what the use case for it originally was meant to be.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171235\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "0dcb97ba14ca967ab15306511a5e28ba0d2add47",
      "tree": "520c836e3b4fab53a3b2e90dff3c9fca9fc90ca6",
      "parents": [
        "168e378526a590439faa9ce7b607203fd434ff1d"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 22:57:48 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 22:57:48 2026 +0100"
      },
      "message": "tests: Compile out an unused variable on Windows\n\nTracking the parent PID doesn’t make so much sense outside of UNIX, so\ncompile out this variable completely on Windows.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171138\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "168e378526a590439faa9ce7b607203fd434ff1d",
      "tree": "f9137492813e4d484e250b81fb1a9a1eba3c2de2",
      "parents": [
        "1931118146b1d1509270a0b42a331c2454ed16ba"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 22:40:33 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 22:40:33 2026 +0100"
      },
      "message": "gtask: Mark trace variables as potentially unused\n\nIf GLib is compiled without sysprof support, these will be unused.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171057\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "1931118146b1d1509270a0b42a331c2454ed16ba",
      "tree": "75c6c764aa8d52633ceb1326ff6d81c9171594c5",
      "parents": [
        "e7592a3c4ed4f3ef97f9efb804ad9637a3d4ca1c"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 22:11:18 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 22:11:18 2026 +0100"
      },
      "message": "gtestutils: Mark a static global variable as potentially unused\n\nIt’s written but not read on non-UNIX systems, but conditionally\ncompiling it out entirely would be too messy.\n\nSee https://gitlab.gnome.org/pwithnall/glib/-/jobs/7171013\n\nThis introduces no functional changes.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "e7592a3c4ed4f3ef97f9efb804ad9637a3d4ca1c",
      "tree": "58532782d21936c2d870684af4d57c4e523332c1",
      "parents": [
        "8a41efe9c02500ff02373318e79e3f4853b200fb"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 21:44:59 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Sat Oct 10 21:44:59 2026 +0100"
      },
      "message": "gmessages: Fix an unused variable warning\n\nThe compiler on the msys2-clang64 CI runner has just started warning\nabout `log_writer_user_data_free` being unused. It’s correct, but there\nisn’t actually a bug here as `log_writer_user_data` can’t be set twice\nbecause `g_log_set_writer_func()` is only allowed to be called once.\n\nStill, we have a `g_error()` to check for whether\n`g_log_set_writer_func()` is called multiple times. We don’t need to\nencode that in the memory management too.\n\nAdd the missing free call to squash the warning. This introduces no\nfunctional changes, though.\n\nSee https://gitlab.gnome.org/GNOME/glib/-/jobs/7170944\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "3bc01b117d6a5074325d57c0b2c0c2f2c244fe08",
      "tree": "23d4b61ee2633d8b7859768b86131e243bf413d3",
      "parents": [
        "8a41efe9c02500ff02373318e79e3f4853b200fb",
        "3daf62b3744b7e4e0e6ddba5f92905ce519b5510"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Sat Oct 10 20:20:15 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Sat Oct 10 20:20:15 2026 +0000"
      },
      "message": "Merge branch \u0027copy-file-range-chunks\u0027 into \u0027main\u0027\n\ngfile: Copy in bounded chunks with copy_file_range()\n\nCloses #4069\n\nSee merge request GNOME/glib!5397"
    },
    {
      "commit": "3daf62b3744b7e4e0e6ddba5f92905ce519b5510",
      "tree": "23d4b61ee2633d8b7859768b86131e243bf413d3",
      "parents": [
        "8a41efe9c02500ff02373318e79e3f4853b200fb"
      ],
      "author": {
        "name": "Sam Sheridan",
        "email": "sam@sheridan.co.uk",
        "time": "Fri Oct 09 12:59:54 2026 +0100"
      },
      "committer": {
        "name": "Sam Sheridan",
        "email": "sam@sheridan.co.uk",
        "time": "Fri Oct 09 12:59:54 2026 +0100"
      },
      "message": "gfile: Copy in bounded chunks with copy_file_range()\n\ncopy_file_range_with_progress() asked for the whole remaining length in\neach copy_file_range() call, and only reported progress and checked the\ncancellable between calls. Linux returns after at most 2GB, but FreeBSD\ncopies the full length in one call when the source and destination are\non different file systems. A large copy there reported no progress until\nit had finished, and cancelling it took effect only once the whole file\nhad been copied.\n\nCopy at most 8MiB per call. That gives about one progress update a\nsecond on a slow USB stick; on fast storage the extra system calls are\nnegligible.\n\nCloses #4069\n"
    },
    {
      "commit": "8a41efe9c02500ff02373318e79e3f4853b200fb",
      "tree": "6ca5d06949575a3f5636cf9e20b8ee389584e1eb",
      "parents": [
        "80f4a0ad57f18ea6e70b025d4e52e1fd7a485686",
        "382ac14a814727cc5bfe617b5f76f98ddac14386"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Fri Oct 09 10:39:58 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Fri Oct 09 10:39:58 2026 +0000"
      },
      "message": "Merge branch \u0027fdo-notifications-activation-token\u0027 into \u0027main\u0027\n\ngfdonotificationbackend: Activate window with the activation-token\n\nSee merge request GNOME/glib!5384"
    },
    {
      "commit": "80f4a0ad57f18ea6e70b025d4e52e1fd7a485686",
      "tree": "ee3a3cb140d1c5924ad9272fb005f36aa5eb8ac9",
      "parents": [
        "68b492ebd38ea551163459f87f2e456f9a25d106",
        "0fc0b259c6973f43b1e0a1e009235c875c610758"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Fri Oct 09 10:24:17 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Fri Oct 09 10:24:17 2026 +0000"
      },
      "message": "Merge branch \u0027binary_relocation_api\u0027 into \u0027main\u0027\n\nAdd g_get_process_executable_dir()\n\nCloses #31\n\nSee merge request GNOME/glib!4925"
    },
    {
      "commit": "68b492ebd38ea551163459f87f2e456f9a25d106",
      "tree": "0681e78a43cf6188897fd2b4c5c70c0ffcb3ca54",
      "parents": [
        "30cb22fc3f204b665251347e131907379e41f141",
        "259e9020a83bcaaf84089ff9d85bdc52c0f60e70"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Fri Oct 09 10:08:12 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Fri Oct 09 10:08:12 2026 +0000"
      },
      "message": "Merge branch \u0027gregex-jit-thread-safety\u0027 into \u0027main\u0027\n\ngregex: Compile JIT code before sharing GRegex\n\nCloses #3996\n\nSee merge request GNOME/glib!5336"
    },
    {
      "commit": "0fc0b259c6973f43b1e0a1e009235c875c610758",
      "tree": "ee84b55c4789e70931daa5297571e19fd8e0398a",
      "parents": [
        "30cb22fc3f204b665251347e131907379e41f141"
      ],
      "author": {
        "name": "Emmanuel Fleury",
        "email": "emmanuel.fleury@gmail.com",
        "time": "Thu Nov 27 18:57:55 2025 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Fri Oct 09 11:05:25 2026 +0100"
      },
      "message": "Add g_get_process_executable_dir() to get the absolute path to the executable\n\nThe main pupose of this commit is to add the possibility to get the\nabsolute path of the executable that run the current program.\n\nA new g_get_process_executable_dir() function is added to the API that\nwill return an absolute path to the executable file.\n\nCloses: #31\n"
    },
    {
      "commit": "30cb22fc3f204b665251347e131907379e41f141",
      "tree": "3474e32393d8d12e05920e5d97c22dd5d96ab374",
      "parents": [
        "3b46b0494af7e9af086ea4d0a31d9367b57ee224",
        "067a8975493ce0fa2994ed7c9209a261b799d3d9"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Oct 08 20:07:25 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Oct 08 20:07:25 2026 +0000"
      },
      "message": "Merge branch \u0027docs-sync-calls-thread-default-context\u0027 into \u0027main\u0027\n\ndocs: Note where synchronous calls keep their completion bookkeeping\n\nSee merge request GNOME/glib!5341"
    },
    {
      "commit": "067a8975493ce0fa2994ed7c9209a261b799d3d9",
      "tree": "9cbbfdc75e7b74efbc8930c98203070436d455cf",
      "parents": [
        "6f98b0b8ad9cb7f9be237b4a0dba3833331a8f37"
      ],
      "author": {
        "name": "Tobias Mueller",
        "email": "muelli@cryptobitch.de",
        "time": "Fri Sep 04 14:57:33 2026 -0700"
      },
      "committer": {
        "name": "Tobias Mueller",
        "email": "muelli@cryptobitch.de",
        "time": "Thu Oct 08 12:43:00 2026 -0700"
      },
      "message": "docs: Note where synchronous calls keep their completion bookkeeping\n\nA synchronous call built over the GTask machinery may attach its\ncompletion sources to the calling thread\u0027s thread-default main context,\nreclaimed only once that context is iterated. A worker thread that never\niterates one accumulates a small allocation per call. See #4041.\n"
    },
    {
      "commit": "3b46b0494af7e9af086ea4d0a31d9367b57ee224",
      "tree": "17ac15248e116e3356feae01f39ac50e975980e3",
      "parents": [
        "147ee1a0950def297b234e7dd9423f11d4b82783",
        "37fb09d6779b0ec1c6553286d2164e9c78042e5d"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Oct 08 10:09:14 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Oct 08 10:09:14 2026 +0000"
      },
      "message": "Merge branch \u0027gi-scanner-macro\u0027 into \u0027main\u0027\n\ngstdio.h: Adjust check for __GI_SCANNER__\n\nSee merge request GNOME/glib!5324"
    },
    {
      "commit": "147ee1a0950def297b234e7dd9423f11d4b82783",
      "tree": "a5d3054a897ffbe63cad71e513a038f87c4f6463",
      "parents": [
        "9235759daf6e3ccf3eb14eb16cc7c200de549be4",
        "9e3f067b19f35a7b22181a70a327b3cf5f2d0c2a"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Oct 08 08:30:33 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Oct 08 08:30:33 2026 +0000"
      },
      "message": "Merge branch \u0027timer-x86\u0027 into \u0027main\u0027\n\nbuild: Mark timer test as failing on 32-bit x86\n\nSee merge request GNOME/glib!5390"
    },
    {
      "commit": "9e3f067b19f35a7b22181a70a327b3cf5f2d0c2a",
      "tree": "a5d3054a897ffbe63cad71e513a038f87c4f6463",
      "parents": [
        "9235759daf6e3ccf3eb14eb16cc7c200de549be4"
      ],
      "author": {
        "name": "Jan Alexander Steffens (heftig)",
        "email": "heftig@archlinux.org",
        "time": "Tue Oct 06 20:09:47 2026 +0200"
      },
      "committer": {
        "name": "Jan Alexander Steffens (heftig)",
        "email": "heftig@archlinux.org",
        "time": "Thu Oct 08 07:40:12 2026 +0200"
      },
      "message": "build: Mark timer test as failing on 32-bit x86\n\nThe test is flaky, only passing sometimes. This has been a long-standing\nproblem with floating-point precision.\n\nSee: https://gitlab.gnome.org/GNOME/glib/-/work_items/820\n"
    },
    {
      "commit": "9235759daf6e3ccf3eb14eb16cc7c200de549be4",
      "tree": "d896b822753f6cbeadde67fbe16929126153cc13",
      "parents": [
        "e25292063afd90175c1ce36ac50ec5c4c01c2e3f",
        "31d59379874140b5db3de30c770107fe888dce5a"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 07 21:33:59 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 07 21:33:59 2026 +0000"
      },
      "message": "Merge branch \u0027gtimezone-windows-tzname-leak\u0027 into \u0027main\u0027\n\ngtimezone: Fix leak of TimeZoneKeyName buffer on Windows\n\nSee merge request GNOME/glib!5395"
    },
    {
      "commit": "31d59379874140b5db3de30c770107fe888dce5a",
      "tree": "d896b822753f6cbeadde67fbe16929126153cc13",
      "parents": [
        "e25292063afd90175c1ce36ac50ec5c4c01c2e3f"
      ],
      "author": {
        "name": "Dmytro Marin",
        "email": "dmarin@akamil.com",
        "time": "Wed Oct 07 13:08:07 2026 +0200"
      },
      "committer": {
        "name": "Dmytro Marin",
        "email": "dmarin@akamil.com",
        "time": "Wed Oct 07 13:08:07 2026 +0200"
      },
      "message": "gtimezone: Fix leak of TimeZoneKeyName buffer on Windows\n\nwindows_default_tzname() reads the TimeZoneKeyName registry value into a\nUTF-16 buffer and converts it to UTF-8, but the UTF-16 buffer was only\nfreed if the registry query failed. On success it leaked.\n\nWhen `TZ` is unset, which is the usual case on Windows,\ng_time_zone_new_local() drops its cached time zone on every call because\nthe cached zone\u0027s identifier never compares equal to the NULL `TZ`. It\nthen calls g_time_zone_new_identifier (NULL) and windows_default_tzname()\nagain. So every call to g_date_time_new_now_local() and similar\nfunctions leaked one buffer (for example 42 bytes for\n\"Israel Standard Time\"). Long-running processes grow without bound.\n\nFree the buffer on both paths.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "e25292063afd90175c1ce36ac50ec5c4c01c2e3f",
      "tree": "a834dd5c2e9f0cc8817fa55e40e08ec180179653",
      "parents": [
        "e5a5f43560ccceb189ada8a3882f6a056a793ed5",
        "139453e0dab3ceec6501a898d55c9d0b082a76f5"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 07 10:42:18 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Wed Oct 07 10:42:18 2026 +0000"
      },
      "message": "Merge branch \u0027ebassi/gtype-class-rec-mutex\u0027 into \u0027main\u0027\n\nSimplify locking when adding interfaces\n\nSee merge request GNOME/glib!5378"
    },
    {
      "commit": "e5a5f43560ccceb189ada8a3882f6a056a793ed5",
      "tree": "f6a8cd2a7d6d9a42985aedfaa700d8e66eaec040",
      "parents": [
        "ee6afd6b8bc846eb01db2f4a39ce830b6fbe7b6a",
        "086be104f88de73f04b14d6e36f2ec35a699d97a"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 22:34:28 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 22:34:28 2026 +0000"
      },
      "message": "Merge branch \u0027wip/chergert/gregex-boolean-match\u0027 into \u0027main\u0027\n\ngregex: Avoid match-info overhead for boolean searches\n\nSee merge request GNOME/glib!5367"
    },
    {
      "commit": "ee6afd6b8bc846eb01db2f4a39ce830b6fbe7b6a",
      "tree": "a2395883496b749aee6c24c6b390769f908bd23c",
      "parents": [
        "d4c568b9edc817864da19cd13fb8c6d5cbe20228",
        "1b22437b1fc5eb9fdffa11af696f78f72a24580d"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 22:13:39 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 22:13:39 2026 +0000"
      },
      "message": "Merge branch \u0027wip/smcv/save-errno\u0027 into \u0027main\u0027\n\nmacros: Add G_SAVE_ERRNO to save and restore errno in a scope\n\nSee merge request GNOME/glib!5302"
    },
    {
      "commit": "d4c568b9edc817864da19cd13fb8c6d5cbe20228",
      "tree": "381eb5c669df89427e2ba334dca7c3498eb345bb",
      "parents": [
        "450b532d5f53ee0b2d4cdb59c89916de0b317e13",
        "5ca673db814e8c845ecbf4758b82e5e5d3e64295"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 22:11:09 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 22:11:09 2026 +0000"
      },
      "message": "Merge branch \u0027main\u0027 into \u0027main\u0027\n\ngio: Add G_MOUNT_MOUNT_READ_ONLY flag\n\nSee merge request GNOME/glib!5320"
    },
    {
      "commit": "1b22437b1fc5eb9fdffa11af696f78f72a24580d",
      "tree": "d31a2a78f4e7996708ab3df3918462b0c4f6e224",
      "parents": [
        "450b532d5f53ee0b2d4cdb59c89916de0b317e13"
      ],
      "author": {
        "name": "Simon McVittie",
        "email": "smcv@collabora.com",
        "time": "Thu Aug 13 18:15:18 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 21:29:24 2026 +0000"
      },
      "message": "macros: Add G_SAVE_ERRNO to save and restore errno in a scope\n\nBecause almost any function can clobber the value of errno, it\u0027s a\ncommon pattern to save it in a variable and restore it later.\n\nWe mostly can\u0027t use this in GLib, because GLib supports being compiled\nwith compilers that don\u0027t support autocleanup, but it\u0027ll be useful\nin projects that do require a compiler compatible with gcc/clang.\nWe unfortunately also can\u0027t use it in the implementation of autocleanup\nfunctions like `g_autofd`, because it would trigger warnings when\nusing `GLIB_VERSION_MAX_ALLOWED`, which cannot be suppressed by\nG_GNUC_BEGIN_IGNORE_DEPRECATIONS.\n\nAdding `#include \u003cerrno.h\u003e` to `gmacros.h` has no practical effect on\nheaders included by GLib users, because `gtestutils.h` unconditionally\nincludes `\u003cerrno.h\u003e` already.\n\nSigned-off-by: Simon McVittie \u003csmcv@collabora.com\u003e\n"
    },
    {
      "commit": "5ca673db814e8c845ecbf4758b82e5e5d3e64295",
      "tree": "381eb5c669df89427e2ba334dca7c3498eb345bb",
      "parents": [
        "450b532d5f53ee0b2d4cdb59c89916de0b317e13"
      ],
      "author": {
        "name": "SnoutFirst",
        "email": "SnoutFirst@protonmail.com",
        "time": "Mon Aug 03 20:24:21 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 21:14:14 2026 +0000"
      },
      "message": "gio: Add G_MOUNT_MOUNT_READ_ONLY flag\n\nAdd a new flag to GMountMountFlags that allows callers to request\na read-only mount. This is needed by file managers (e.g. Thunar)\nto allow users to mount removable drives as read-only.\n\nThe flag is passed through the GVolumeIface::mount_fn vfunc and\ncan be handled by volume monitor implementations (e.g. gvfs\nudisks2) to pass the appropriate options to the underlying\nmount mechanism.\n\nAlso add a --read-only / -r option to the gio mount CLI tool.\n"
    },
    {
      "commit": "450b532d5f53ee0b2d4cdb59c89916de0b317e13",
      "tree": "4204955dde0cc1cc804fb62bbc84b768748c30b7",
      "parents": [
        "3761753ea8a158c649fc9992a248a9a77e99f192",
        "ee8a5d8920595c1c58724735dd0b16565bdc11c7"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:56:21 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:56:21 2026 +0000"
      },
      "message": "Merge branch \u0027version-bump\u0027 into \u0027main\u0027\n\nbuild: Post-release version bump\n\nSee merge request GNOME/glib!5391"
    },
    {
      "commit": "3761753ea8a158c649fc9992a248a9a77e99f192",
      "tree": "d4a9b6a0f3a604415bf6af286cb5c118bf5b425d",
      "parents": [
        "5d9d6399c12846694e7abc7a875281a0eae003e5",
        "6aaf23f41618895043dff4a17b913b822024d76b"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:50:43 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:50:43 2026 +0000"
      },
      "message": "Merge branch \u0027mingw64-minimum-required-version\u0027 into \u0027main\u0027\n\nwin32-mingw64: require MINGW-w64 \u003e\u003d 12.0.0\n\nCloses #4065\n\nSee merge request GNOME/glib!5386"
    },
    {
      "commit": "5d9d6399c12846694e7abc7a875281a0eae003e5",
      "tree": "db3d4cd888b400b39fbd41396dcaa526d288f224",
      "parents": [
        "6124674972e60292cf413be052383d375bebfbad",
        "ec042dad82fc0b259c40e30bb6200a883ab620d0"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:50:09 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:50:09 2026 +0000"
      },
      "message": "Merge branch \u0027wip/chergert/g-disable-cleanup\u0027 into \u0027main\u0027\n\nglib/macros: Add macro to disable cleanup attribute\n\nSee merge request GNOME/glib!5371"
    },
    {
      "commit": "6124674972e60292cf413be052383d375bebfbad",
      "tree": "c0adbc19c9db84b47cec82dd8a08d120591e795f",
      "parents": [
        "a2a3f741642703bc0374175f78e4b4fa8a6fea3c",
        "0501a058175d0d7e81add99bb25cbe81a8143970"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:48:45 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:48:45 2026 +0000"
      },
      "message": "Merge branch \u0027win32_g_build_filename_driveletter\u0027 into \u0027main\u0027\n\ngfileutils: Win32: Consider drive letter in first element for path sep\n\nCloses #4039\n\nSee merge request GNOME/glib!5335"
    },
    {
      "commit": "a2a3f741642703bc0374175f78e4b4fa8a6fea3c",
      "tree": "6f0943c64f13e084cb47eeaeaf7fc66344413eed",
      "parents": [
        "fe1c9bd3d78ad4508cc062cf1657b65d45379ecb",
        "48dfc48a45241a29bb0f13efebf1ae1f68d3094a"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:47:14 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:47:14 2026 +0000"
      },
      "message": "Merge branch \u0027wip/otte/RHEL-217036\u0027 into \u0027main\u0027\n\narray: Handle GArrays adding their own elements\n\nSee merge request GNOME/glib!5322"
    },
    {
      "commit": "fe1c9bd3d78ad4508cc062cf1657b65d45379ecb",
      "tree": "2db8f32057042cb7c8f2fffeac4d3b3c6949fb4e",
      "parents": [
        "42a01cbb97bb43958964bfd8631792e9d4164210",
        "0facffee42992e936417be73f4e0018fb410b8cb"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:46:49 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:46:49 2026 +0000"
      },
      "message": "Merge branch \u0027cloexec-windows\u0027 into \u0027main\u0027\n\nMeson: Define O_CLOEXEC as O_NOINHERIT on Windows\n\nSee merge request GNOME/glib!5321"
    },
    {
      "commit": "42a01cbb97bb43958964bfd8631792e9d4164210",
      "tree": "c1969fccbbb7d2b73373928f2ea3281e5e3d1ca2",
      "parents": [
        "e05063ccc6c8f222465a1080927f4c14349f3de6",
        "18ba843141b07ef9564be182689e269b08b09bd6"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:46:29 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 20:46:29 2026 +0000"
      },
      "message": "Merge branch \u0027gdesktopappinfo-disable-setuid-persistence\u0027 into \u0027main\u0027\n\ngdesktopappinfo: Disable persistence when running setuid\n\nCloses #4003\n\nSee merge request GNOME/glib!5330"
    },
    {
      "commit": "ee8a5d8920595c1c58724735dd0b16565bdc11c7",
      "tree": "b7459ed7cf5bda4551528de1a54d94b55ed30f66",
      "parents": [
        "e05063ccc6c8f222465a1080927f4c14349f3de6"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 21:39:09 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 21:39:09 2026 +0100"
      },
      "message": "build: Post-release version bump\n\nThis opens up the development cycle for 2.92.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "6aaf23f41618895043dff4a17b913b822024d76b",
      "tree": "1c4055da0cb1be4dbe812c9f355da8e1632c64ff",
      "parents": [
        "36c60f069c6f3776dafc7f6ce18c8c0b606cd8b5"
      ],
      "author": {
        "name": "otaxhu",
        "email": "oscarperniamoreno@gmail.com",
        "time": "Mon Oct 05 22:28:00 2026 -0400"
      },
      "committer": {
        "name": "otaxhu",
        "email": "oscarperniamoreno@gmail.com",
        "time": "Tue Oct 06 12:38:11 2026 -0400"
      },
      "message": "win32-mingw64: require MINGW-w64 \u003e\u003d 12.0.0\n"
    },
    {
      "commit": "e05063ccc6c8f222465a1080927f4c14349f3de6",
      "tree": "716a7af43251bf173bbf8803bc6cc93a69f0d7b8",
      "parents": [
        "094f8ed5f80e25664b7e0fe0002f7bd5bd924d05"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 16:22:44 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 16:22:44 2026 +0100"
      },
      "message": "2.90.1\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "094f8ed5f80e25664b7e0fe0002f7bd5bd924d05",
      "tree": "f89c27706315613d3bd7f82f0a55463350a1059a",
      "parents": [
        "a117eb8fe2424c29918ab8a719e6e13d139fab1e",
        "997154cecc465bd399b467cc5c6cb7c88c43559d"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 15:14:53 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 15:14:53 2026 +0000"
      },
      "message": "Merge branch \u0027wip/3v1n0/ci-sanitizer-tests\u0027 into \u0027main\u0027\n\nCI: Add address (asan) and thread sanitizer (tsan) jobs\n\nCloses #3356\n\nSee merge request GNOME/glib!4062"
    },
    {
      "commit": "a117eb8fe2424c29918ab8a719e6e13d139fab1e",
      "tree": "4348b87eafdc7b8a7bf00b3187b2dd3be9dc2ea6",
      "parents": [
        "0c9e428d8ee9c4925af01b40e2ffeabaded2ead8",
        "ec84e18b2701afccd1578c2718d0d6eb77a77b99"
      ],
      "author": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Tue Oct 06 16:05:43 2026 +0100"
      },
      "committer": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Tue Oct 06 16:05:43 2026 +0100"
      },
      "message": "Merge branch \u0027supp-tls-testutils-logging\u0027 into \u0027main\u0027\n\nglib.supp: Mark a TLS variable as not really a leak\n\nSee merge request GNOME/glib!5389"
    },
    {
      "commit": "997154cecc465bd399b467cc5c6cb7c88c43559d",
      "tree": "bd7dd81261690a35804f66c466d93f398b02f45a",
      "parents": [
        "6e6d9e40d135a8e87488d472508a3bc32ca22de7"
      ],
      "author": {
        "name": "Marco Trevisan (Treviño)",
        "email": "mail@3v1n0.net",
        "time": "Wed Aug 26 10:45:12 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 16:03:33 2026 +0100"
      },
      "message": "glib-private: Fix an implicit conversion 64-to-32 warning in clang\n\n  ../glib/glib-private.h:112:10: warning: implicit conversion loses\n  integer precision: \u0027long\u0027 to \u0027gboolean\u0027 (aka \u0027int\u0027)\n  [-Wshorten-64-to-32]\n  112 |   return G_UNLIKELY (__lsan_enable !\u003d NULL \u0026\u0026 __lsan_ignore_object !\u003d NULL);\n      |   ~~~~~~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n  ../glib/gmacros.h:1285:27: note: expanded from macro \u0027G_UNLIKELY\u0027\n  1285 | #define G_UNLIKELY(expr) (__builtin_expect ((long) (_G_BOOLEAN_EXPR(expr)), 0))\n       |                           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"
    },
    {
      "commit": "6e6d9e40d135a8e87488d472508a3bc32ca22de7",
      "tree": "05d322808a66f676077ca542af70cdc8d981ba32",
      "parents": [
        "a25e908f237531a8f8bc1982844cfafed3f74810"
      ],
      "author": {
        "name": "Marco Trevisan (Treviño)",
        "email": "mail@3v1n0.net",
        "time": "Tue Feb 04 19:28:48 2025 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 16:03:33 2026 +0100"
      },
      "message": "ci: Ensure we always upload the junit files for unstable tests too\n\nSo we can track what is still failing and what not\n"
    },
    {
      "commit": "a25e908f237531a8f8bc1982844cfafed3f74810",
      "tree": "9e4502a62fbadf74a8c1e4e254f8b544d20211a3",
      "parents": [
        "328b985d7ead4b7c1bff648ceb74ae41e28da9f9"
      ],
      "author": {
        "name": "Marco Trevisan (Treviño)",
        "email": "mail@3v1n0.net",
        "time": "Fri May 10 07:48:35 2024 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 16:03:33 2026 +0100"
      },
      "message": "ci: Add a thread sanitizer scheduled job\n\nFixes: https://gitlab.gnome.org/GNOME/glib/-/issues/3356\n"
    },
    {
      "commit": "0c9e428d8ee9c4925af01b40e2ffeabaded2ead8",
      "tree": "8ff9585b8d6dd98694b380e8cd053b0e290bd77d",
      "parents": [
        "6f873bc0e6265995cebd797b969dcd5f548f91f6",
        "d60cd821b70f1cf7460f4a6d394a81574dc37f5b"
      ],
      "author": {
        "name": "Michael Catanzaro",
        "email": "mcatanzaro@gnome.org",
        "time": "Tue Oct 06 09:55:32 2026 -0500"
      },
      "committer": {
        "name": "Michael Catanzaro",
        "email": "mcatanzaro@gnome.org",
        "time": "Tue Oct 06 09:55:32 2026 -0500"
      },
      "message": "Merge branch \u0027socket-address-null-array\u0027 into \u0027main\u0027\n\ntests: Avoid a ubsan warning about passing NULL to strncmp()\n\nSee merge request GNOME/glib!5388"
    },
    {
      "commit": "382ac14a814727cc5bfe617b5f76f98ddac14386",
      "tree": "ca89a274cd0068fa1801f22daf9d8ddaa8cb5b92",
      "parents": [
        "36c60f069c6f3776dafc7f6ce18c8c0b606cd8b5"
      ],
      "author": {
        "name": "Alessandro Astone",
        "email": "alessandro.astone@canonical.com",
        "time": "Thu Oct 01 21:52:26 2026 +0200"
      },
      "committer": {
        "name": "Alessandro Astone",
        "email": "alessandro.astone@canonical.com",
        "time": "Tue Oct 06 14:58:23 2026 +0200"
      },
      "message": "gfdonotificationbackend: Activate window with the activation-token\n\nHandles the org.freedesktop.Notifications.ActivationToken signal.\n"
    },
    {
      "commit": "ec84e18b2701afccd1578c2718d0d6eb77a77b99",
      "tree": "1f529645fef0c4ac0b3d82383ce85294f439599e",
      "parents": [
        "6f873bc0e6265995cebd797b969dcd5f548f91f6"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 12:43:44 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 12:43:44 2026 +0100"
      },
      "message": "glib.supp: Mark a TLS variable as not really a leak\n\nThis is like commit 49e512494f04027f866d097b048d18b40f2d42bb but for\nvalgrind and not LSAN.\n\nIt’s allocated once for the lifetime of each thread, so isn’t really a\nleak.\n\nThis fixes valgrind reports as in\nhttps://gitlab.gnome.org/GNOME/glib/-/jobs/7120333.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "d60cd821b70f1cf7460f4a6d394a81574dc37f5b",
      "tree": "8ff9585b8d6dd98694b380e8cd053b0e290bd77d",
      "parents": [
        "6f873bc0e6265995cebd797b969dcd5f548f91f6"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 12:35:19 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Oct 06 12:35:19 2026 +0100"
      },
      "message": "tests: Avoid a ubsan warning about passing NULL to strncmp()\n\nThe array data can be `NULL` if its length is zero.\n\nThis fixes the following CI failure:\n```\n322/425 glib:gio / socket-address                                              ERROR            0.08s   killed by signal 6 SIGABRT\n――――――――――――――――――――――――――――――――――――― ✀  ―――――――――――――――――――――――――――――――――――――\nstderr:\n../gio/tests/socket-address.c:201:19: runtime error: null pointer passed as argument 2, which is declared to never be null\n/usr/include/string.h:160:33: note: nonnull attribute specified here\n    #0 0x000000431715  (/builds/GNOME/glib/_build/gio/tests/socket-address+0x431715) (BuildId: 7c5e418267aa2008af8e77f4d04c31913e26aad7)\n    #1 0x7fdabec8c862  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x28c862) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #2 0x7fdabec7e1b2  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x27e1b2) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #3 0x7fdabec7e533  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x27e533) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #4 0x7fdabec7e533  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x27e533) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #5 0x7fdabec7e533  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x27e533) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #6 0x7fdabec7bc89  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x27bc89) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #7 0x7fdabec7b785  (/builds/GNOME/glib/_build/glib/libglib-2.0.so.0+0x27b785) (BuildId: 12f0fded04a8c0437c073a267547f1cb487b1b1d)\n    #8 0x00000042de31  (/builds/GNOME/glib/_build/gio/tests/socket-address+0x42de31) (BuildId: 7c5e418267aa2008af8e77f4d04c31913e26aad7)\n    #9 0x7fdabd810447  (/lib64/libc.so.6+0x3447) (BuildId: dae6ae6929d69dca842288f5300af5a33d1bdcd7)\n    #10 0x7fdabd81050a  (/lib64/libc.so.6+0x350a) (BuildId: dae6ae6929d69dca842288f5300af5a33d1bdcd7)\n    #11 0x0000004015a4  (/builds/GNOME/glib/_build/gio/tests/socket-address+0x4015a4) (BuildId: 7c5e418267aa2008af8e77f4d04c31913e26aad7)\nSUMMARY: UndefinedBehaviorSanitizer: undefined-behavior ../gio/tests/socket-address.c:201:19\n```\n\nhttps://gitlab.gnome.org/GNOME/glib/-/jobs/7120334\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "6f873bc0e6265995cebd797b969dcd5f548f91f6",
      "tree": "c00a33950a89aee4edcc8022a9eef3dfa3f69b56",
      "parents": [
        "54180074aebd48383a92baf8306fc059ac5f4f1e",
        "b82223d867be99e5fb235bcf772c0d32fc84a15d"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 10:30:41 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 10:30:41 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-nn-from-main-38bddd30-b9fe-11f1-bfd2-0a580a8205d0\u0027 into \u0027main\u0027\n\nUpdate Norwegian Nynorsk translation\n\nSee merge request GNOME/glib!5382"
    },
    {
      "commit": "54180074aebd48383a92baf8306fc059ac5f4f1e",
      "tree": "530ae464e4f6116257bb51187b67394bb6fbbe0d",
      "parents": [
        "36c60f069c6f3776dafc7f6ce18c8c0b606cd8b5",
        "f6611fb576e4fd9feedc581c513286d2ca59e819"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 10:30:06 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Oct 06 10:30:06 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-nb-from-main-842fd77a-c154-11f1-be74-0a580a80004e\u0027 into \u0027main\u0027\n\nUpdate Norwegian Bokmål translation\n\nSee merge request GNOME/glib!5387"
    },
    {
      "commit": "f6611fb576e4fd9feedc581c513286d2ca59e819",
      "tree": "530ae464e4f6116257bb51187b67394bb6fbbe0d",
      "parents": [
        "36c60f069c6f3776dafc7f6ce18c8c0b606cd8b5"
      ],
      "author": {
        "name": "Kjartan Maraas",
        "email": "kjartan.maraas@gmail.com",
        "time": "Tue Oct 06 07:07:19 2026 +0000"
      },
      "committer": {
        "name": "GNOME Translation Robot",
        "email": "gnome-sysadmin@gnome.org",
        "time": "Tue Oct 06 07:07:19 2026 +0000"
      },
      "message": "Update Norwegian Bokmål translation\n"
    },
    {
      "commit": "b82223d867be99e5fb235bcf772c0d32fc84a15d",
      "tree": "48b597a1ecb6e6df0fd78eaa326e7bbda8c58b46",
      "parents": [
        "36c60f069c6f3776dafc7f6ce18c8c0b606cd8b5"
      ],
      "author": {
        "name": "Roy-Magne Mo",
        "email": "rmo@sunnmore.net",
        "time": "Sat Sep 26 23:01:54 2026 +0000"
      },
      "committer": {
        "name": "GNOME Translation Robot",
        "email": "gnome-sysadmin@gnome.org",
        "time": "Sat Sep 26 23:01:54 2026 +0000"
      },
      "message": "Update Norwegian Nynorsk translation\n"
    },
    {
      "commit": "36c60f069c6f3776dafc7f6ce18c8c0b606cd8b5",
      "tree": "0c0bb7514d5d0767ab89a647c2a8d7a2457348c0",
      "parents": [
        "404a67944c809efe858a7e137ab89115ff01c368",
        "36fa7efc9700950ad2faf3371bc58645ccfc87c2"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Sat Sep 26 16:30:08 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Sat Sep 26 16:30:08 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-de-from-main-a04d0baa-b8ec-11f1-868e-0a580a830423\u0027 into \u0027main\u0027\n\nUpdate German translation\n\nSee merge request GNOME/glib!5380"
    },
    {
      "commit": "36fa7efc9700950ad2faf3371bc58645ccfc87c2",
      "tree": "0c0bb7514d5d0767ab89a647c2a8d7a2457348c0",
      "parents": [
        "404a67944c809efe858a7e137ab89115ff01c368"
      ],
      "author": {
        "name": "Christian Kirbach",
        "email": "christian.kirbach@gmail.com",
        "time": "Fri Sep 25 14:23:31 2026 +0000"
      },
      "committer": {
        "name": "GNOME Translation Robot",
        "email": "gnome-sysadmin@gnome.org",
        "time": "Fri Sep 25 14:23:31 2026 +0000"
      },
      "message": "Update German translation\n"
    },
    {
      "commit": "139453e0dab3ceec6501a898d55c9d0b082a76f5",
      "tree": "6063a73e3a794182f5002efc29fbf6f6024f9dd8",
      "parents": [
        "af4e32bc7e97b1f251f0e4edb5edebdcb30d52df"
      ],
      "author": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gnome.org",
        "time": "Fri Sep 25 12:02:06 2026 +0100"
      },
      "committer": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gnome.org",
        "time": "Fri Sep 25 12:02:06 2026 +0100"
      },
      "message": "Simplify locking when adding interfaces\n\nThe act of initialising a class requires acquiring the class_init\nrecursive mutex alongside the type read/write mutex, to avoid the case\nwhen one thread calls the type registration function on type B in the\nmiddle of the class initialisation of type A—for instance, to add a\nproperty of type B.\n\nThe initial implementation of GTypeInterface allowed adding interfaces\nto a GType after the class had already been initialised, which leads to\na deadlock if, in the case outlined above, type B also adds an\ninterface. See issue #3892 for an example.\n\nLuckily for us, we have disabled adding interfaces to types after their\nclass has been initialised: see commits c2055f22 and 545b4444.\n\nNow that 14 years have passed, we can remove the class_init_rec_mutex\nlock acquisition when adding an interface to a static or a dynamic\ntypes, and when getting the default interface vtable.\n\nSee: #541\n"
    },
    {
      "commit": "259e9020a83bcaaf84089ff9d85bdc52c0f60e70",
      "tree": "931ac4d87efd087cfd3091f13ed96bb04ed72dab",
      "parents": [
        "404a67944c809efe858a7e137ab89115ff01c368"
      ],
      "author": {
        "name": "Samy",
        "email": "samy@ap4.sh",
        "time": "Mon Aug 31 17:39:08 2026 +0200"
      },
      "committer": {
        "name": "Samy",
        "email": "samy@ap4.sh",
        "time": "Thu Sep 24 21:12:20 2026 +0200"
      },
      "message": "gregex: Compile JIT code before sharing GRegex\n\nGRegex promises thread-safe matching, but lazy pcre2_jit_compile() mutates the shared pcre2_code during a match.\n\nCompile the complete mode and any default partial mode in g_regex_new(). Modes introduced only at match time fall back to the interpreter, avoiding further mutation after construction.\n\nPreserve fallback for unsupported patterns and JIT stack exhaustion.\n\nFixes: #3996\n"
    },
    {
      "commit": "404a67944c809efe858a7e137ab89115ff01c368",
      "tree": "981e180c20e5ee7fb17d4b7947069059a9513d44",
      "parents": [
        "a91f19bb85c5c2bd6323760b73d462e6337e354a",
        "7bc0696d48264e217755987dcb46d2dc75e9ffc6"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 17:44:06 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 17:44:06 2026 +0000"
      },
      "message": "Merge branch \u0027RHEL-216314\u0027 into \u0027main\u0027\n\nClarify various inconsistencies with g_socket_address_new_from_native()\n\nSee merge request GNOME/glib!5376"
    },
    {
      "commit": "a91f19bb85c5c2bd6323760b73d462e6337e354a",
      "tree": "a3d8954b577d2313ae0b537654f49cf6d3040298",
      "parents": [
        "af4e32bc7e97b1f251f0e4edb5edebdcb30d52df",
        "62976c4354cc957dc8d8d7a31bd918329d702bfe"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 17:44:03 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 17:44:03 2026 +0000"
      },
      "message": "Merge branch \u0027RHEL-217141\u0027 into \u0027main\u0027\n\nfileutils: Check the mode before creating the file\n\nSee merge request GNOME/glib!5375"
    },
    {
      "commit": "7bc0696d48264e217755987dcb46d2dc75e9ffc6",
      "tree": "1711c5650e24469e30f9d644ac799f5900de3ee7",
      "parents": [
        "2b6997df6bd28d6e09be997af14b583df5d1e9ce"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Sep 17 01:42:28 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 13:08:52 2026 +0000"
      },
      "message": "socketaddress: Add check for new_from_native(x, TOO_BIG)\n\nTest that if there are too many bytes passed in, the extra bytes\nare ignored.\n"
    },
    {
      "commit": "2b6997df6bd28d6e09be997af14b583df5d1e9ce",
      "tree": "ac1836d7db192cce6d42961ba9cb1648e3594464",
      "parents": [
        "026c263a534bec0eff04f263b9e55f56f24c1f1d"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Sep 10 14:12:04 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 13:08:52 2026 +0000"
      },
      "message": "socketaddress: Add a sanity check for clarity\n\nG_STRUCT_OFFSET (struct sockaddr_un, sun_path) \u003d\u003d sizeof (struct sockaddr)\nshould hold, and therefor the compiler should optimize it away, but it\u0027s\nnot required. So be clear and add it.\n"
    },
    {
      "commit": "026c263a534bec0eff04f263b9e55f56f24c1f1d",
      "tree": "1d8b740974578418137bf054dbdf17efae464e35",
      "parents": [
        "82378dc34818ed0cc2db72b19fb40e859f801691"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Sat Sep 12 05:43:57 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 13:08:52 2026 +0000"
      },
      "message": "socketaddress: Ensure correct behavior for embedded nul\n\nIf g_socket_address_new_from_native (addr, sizeof (sockaddr_un)) gets\ncalled, the size of the path will be UNIX_PATH_MAX even if it is\na null-terminated string.\n\nEnsure that we return UNIX_PATH_MAX - 1 (because we force null\nternmination) as the path length in this case.\n"
    },
    {
      "commit": "82378dc34818ed0cc2db72b19fb40e859f801691",
      "tree": "4bf0a3ebd81bebc7ff5b41644dc25178c1116959",
      "parents": [
        "3f0ec7af7cf993a6c3044854e08c2550d8d69560"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Sep 10 14:12:04 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 13:08:52 2026 +0000"
      },
      "message": "socketaddress: Ensure non-nul-terminated paths work properly\n\nWhen passing a filename of length UNIX_PATH_MAX via sockaddr_un it will\nnot be null-terminated. This will cause g_unix_socket_address_new() to\nfail as it expects a null-terminated string.\n\nUse g_unix_socket_address_new_with_type() instead as it allows passing a\nlength.\n\nTestcase included.\n"
    },
    {
      "commit": "3f0ec7af7cf993a6c3044854e08c2550d8d69560",
      "tree": "0b894a8e9b864cc786faaa80454c80f1e5fa2aea",
      "parents": [
        "5e55178fece838d34b9112dd20b633221b39daa4"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Thu Sep 17 01:21:34 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 13:08:52 2026 +0000"
      },
      "message": "unixsocketaddress: Allow full lengths for path addresses\n\nAllow addresses of type G_UNIX_SOCKET_ADDRESS_PATH to be UNIX_PATH_MAX\ncharacters long.\n\nPreviously they could only be UNIX_PATH_MAX - 1 characters long which\nlead to an inconsistency with the UNIX APIs.\n\nThere is no implementation reason for this but correctness, where I\nfeared that AI exploit finders might find an exploit for this and wanted\nto get ahead.\n\nTestcase adapted for this usecase.\n"
    },
    {
      "commit": "5e55178fece838d34b9112dd20b633221b39daa4",
      "tree": "ac8c53c669789ec6ff2c79a3670ca91a18f1f44e",
      "parents": [
        "af4e32bc7e97b1f251f0e4edb5edebdcb30d52df"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Wed Sep 16 23:41:12 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 13:08:52 2026 +0000"
      },
      "message": "unixsocketaddress: Ensure path length gets constructed properly\n\nEnsure that no matter which way an address gets constructed, the path\nlength has the expected value.\n\nExtensive testcase included.\n"
    },
    {
      "commit": "62976c4354cc957dc8d8d7a31bd918329d702bfe",
      "tree": "a3d8954b577d2313ae0b537654f49cf6d3040298",
      "parents": [
        "af4e32bc7e97b1f251f0e4edb5edebdcb30d52df"
      ],
      "author": {
        "name": "Benjamin Otte",
        "email": "otte@redhat.com",
        "time": "Tue Sep 15 03:19:29 2026 +0200"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Thu Sep 24 12:57:14 2026 +0000"
      },
      "message": "fileutils: Check the mode before creating the file\n\n... so we don\u0027t create a file with elevated permissions if not\nnecessary.\n\nThis avoids a potential race where a temporary file is created with\nhigher priviliges than the result, which is technically a data leak.\n\nFixes: 45a36e52b570cf86ce2599b657e63a83d284cb46\n"
    },
    {
      "commit": "af4e32bc7e97b1f251f0e4edb5edebdcb30d52df",
      "tree": "9bb80c17a032d3ce9f1e11d45c68e7b856496c07",
      "parents": [
        "5a124d1e66a6c2dc56989303b4d6d4781c2952ed",
        "4335e15da8612e574cda7d16a847425bc0678fd1"
      ],
      "author": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Wed Sep 23 14:15:47 2026 +0100"
      },
      "committer": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Wed Sep 23 14:15:47 2026 +0100"
      },
      "message": "Merge branch \u0027file-enumerator-docs\u0027 into \u0027main\u0027\n\ngfileenumerator: Reformat docs to fully use gi-docgen and match style guide\n\nSee merge request GNOME/glib!5374"
    },
    {
      "commit": "086be104f88de73f04b14d6e36f2ec35a699d97a",
      "tree": "31c56c875b512e9b7ab3c80545de38453007212f",
      "parents": [
        "b6d9457b458126336d3707d4b4ad3e831933d127"
      ],
      "author": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Fri Sep 18 14:31:44 2026 +0200"
      },
      "committer": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Tue Sep 22 22:31:12 2026 +0200"
      },
      "message": "gregex: Avoid match-info overhead for boolean searches\n\nUse local scratch state when g_regex_match_full() is called without a\nmatch_info output. This avoids allocating a GMatchInfo and capture\noffsets, copying offsets, and reference counting the match info/regex.\n\nA similar optimization path is added to g_regex_match_all_full().\n"
    },
    {
      "commit": "4335e15da8612e574cda7d16a847425bc0678fd1",
      "tree": "9bb80c17a032d3ce9f1e11d45c68e7b856496c07",
      "parents": [
        "5a124d1e66a6c2dc56989303b4d6d4781c2952ed"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 18:28:31 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 18:38:48 2026 +0100"
      },
      "message": "gfileenumerator: Reformat docs to fully use gi-docgen and match style guide\n\nhttps://developer.gnome.org/documentation/guidelines/devel-docs.html#writing-api-references\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\nHelps: #3250\n"
    },
    {
      "commit": "5a124d1e66a6c2dc56989303b4d6d4781c2952ed",
      "tree": "050f78e12161e093f16ba780bf026f1bd023ff63",
      "parents": [
        "8e455a2eef178800569951aff8d3a9ee4bf5da91",
        "0761f49fa1637514f5ff9e28d8f38fe6b0cbbd43"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Sep 22 16:45:48 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Sep 22 16:45:48 2026 +0000"
      },
      "message": "Merge branch \u00274060-standard-name\u0027 into \u0027main\u0027\n\nglocalfile: Request standard::name when enumerating files\n\nCloses #4060\n\nSee merge request GNOME/glib!5372"
    },
    {
      "commit": "8e455a2eef178800569951aff8d3a9ee4bf5da91",
      "tree": "9ed760bb1112118c1d569c92375d8b8f8124e88b",
      "parents": [
        "2f48b5cd9417d6e7198352af9214dc423257785e",
        "98313b9196a6299347898e2d45c831efb739bb25"
      ],
      "author": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Tue Sep 22 17:38:25 2026 +0100"
      },
      "committer": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Tue Sep 22 17:38:25 2026 +0100"
      },
      "message": "Merge branch \u0027supp-trace-malloc\u0027 into \u0027main\u0027\n\ntools: Add another variant of an existing suppression to glib.supp\n\nSee merge request GNOME/glib!5306"
    },
    {
      "commit": "2f48b5cd9417d6e7198352af9214dc423257785e",
      "tree": "ce77f5e28e2ecfdb05bfcad7a9b1f4e83329482e",
      "parents": [
        "f8ff3d0261c35fd676ff0c8263e2689015daec78",
        "ce0433dd99d6d081c4a6012c55606bde93056a4b"
      ],
      "author": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Tue Sep 22 17:35:17 2026 +0100"
      },
      "committer": {
        "name": "Emmanuele Bassi",
        "email": "ebassi@gmail.com",
        "time": "Tue Sep 22 17:35:17 2026 +0100"
      },
      "message": "Merge branch \u0027regex-docs\u0027 into \u0027main\u0027\n\ngregex: Fix some trivial typos in the docs\n\nSee merge request GNOME/glib!5373"
    },
    {
      "commit": "f8ff3d0261c35fd676ff0c8263e2689015daec78",
      "tree": "b7865fd7682000c1622eaa8a4e2fe910de4df2b1",
      "parents": [
        "a354c7895b0320b1ee9243ba1e4bf716298e0d7c",
        "2537c015cee6b1aa0e9c5011a32e732cd8341592"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Sep 22 15:20:36 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Sep 22 15:20:36 2026 +0000"
      },
      "message": "Merge branch \u0027fix-gcharsetconverter-invalid-iconv\u0027 into \u0027main\u0027\n\ngcharsetconverter: Avoid closing invalid iconv descriptors\n\nSee merge request GNOME/glib!5370"
    },
    {
      "commit": "ce0433dd99d6d081c4a6012c55606bde93056a4b",
      "tree": "e64bd7dd5626f99958bb897f0f520ae3c2673561",
      "parents": [
        "4c6109f9746da2ac20f6b801126dfcd4a87c32ad"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 15:11:52 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 15:11:52 2026 +0100"
      },
      "message": "gregex: Fix some trivial typos in the docs\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "0761f49fa1637514f5ff9e28d8f38fe6b0cbbd43",
      "tree": "f5895b0af68d11e076e1ceb50ab327448148c6e8",
      "parents": [
        "6f6b740f87746734a0bcc3b3bc0e21051ad57c69"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 15:02:11 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 15:02:11 2026 +0100"
      },
      "message": "gfileenumerator: Document STANDARD_NAME requirement for iterate()\n\nIt requires a `standard::name` to be available in order to be able to\niterate.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "a354c7895b0320b1ee9243ba1e4bf716298e0d7c",
      "tree": "d8812c8f29e44d6e4131fa0c8b161a9ca16ea4c6",
      "parents": [
        "4c6109f9746da2ac20f6b801126dfcd4a87c32ad",
        "3457cf66426dc48eee1f61b1b2818d2f4feec01b"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Sep 22 13:50:54 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Tue Sep 22 13:50:54 2026 +0000"
      },
      "message": "Merge branch \u0027fix-inotify-shared-wd-4055\u0027 into \u0027main\u0027\n\ninotify: don\u0027t remove shared kernel watch while still in use\n\nCloses #4055\n\nSee merge request GNOME/glib!5369"
    },
    {
      "commit": "6f6b740f87746734a0bcc3b3bc0e21051ad57c69",
      "tree": "81a0e55def6b37688a2b10796f1118570437b61b",
      "parents": [
        "45d79ce5a91b1f7d1e88da0624fceb47dd8d3b75"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 12:05:43 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 12:05:43 2026 +0100"
      },
      "message": "gio-tool-list: Request standard::name when enumerating files\n\nAs required by the docs for `g_file_enumerate_children()`.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n"
    },
    {
      "commit": "45d79ce5a91b1f7d1e88da0624fceb47dd8d3b75",
      "tree": "834e1377e4cfbd47f711221268688477b40085aa",
      "parents": [
        "4c6109f9746da2ac20f6b801126dfcd4a87c32ad"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 12:04:04 2026 +0100"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "pwithnall@gnome.org",
        "time": "Tue Sep 22 12:04:04 2026 +0100"
      },
      "message": "glocalfile: Request standard::name when enumerating files\n\nAs required by the docs for `g_file_enumerate_children()`.\n\nSigned-off-by: Philip Withnall \u003cpwithnall@gnome.org\u003e\n\nFixes: #4060\n"
    },
    {
      "commit": "ec042dad82fc0b259c40e30bb6200a883ab620d0",
      "tree": "002d8b16c536e7185ead52f3d43a6f13805a9170",
      "parents": [
        "4c6109f9746da2ac20f6b801126dfcd4a87c32ad"
      ],
      "author": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Tue Sep 22 12:54:02 2026 +0200"
      },
      "committer": {
        "name": "Christian Hergert",
        "email": "christian@sourceandstack.com",
        "time": "Tue Sep 22 12:57:33 2026 +0200"
      },
      "message": "glib/macros: Add macro to disable cleanup attribute\n\nThis adds `-DG_DISABLE_CLEANUP` to be able to manually disable\ncleanup attribute. This is useful for situations like GTK or\nGtkSourceView which must avoid introducing cleanup attributes\nto continue compiling on MSVC.\n\nI would expect this to commonly be used next to defines for\nmin/max allowed library versions.\n"
    },
    {
      "commit": "2537c015cee6b1aa0e9c5011a32e732cd8341592",
      "tree": "aa9d18abf44c368dc52182ad38c11ece20afcb9a",
      "parents": [
        "4c6109f9746da2ac20f6b801126dfcd4a87c32ad"
      ],
      "author": {
        "name": "Petr Sumbera",
        "email": "sumbera@volny.cz",
        "time": "Tue Sep 22 09:22:58 2026 +0000"
      },
      "committer": {
        "name": "Petr Sumbera",
        "email": "sumbera@volny.cz",
        "time": "Tue Sep 22 09:24:01 2026 +0000"
      },
      "message": "gcharsetconverter: Avoid closing invalid iconv descriptors\n\ng_iconv_open() returns (GIConv) -1 on failure, but finalization\ntreated that sentinel as a valid descriptor. This can crash native iconv\nimplementations which do not tolerate it, including Solaris.\n\nPreserve NULL as the not-initialized state, skip both invalid descriptor\nvalues during finalization, and add coverage for unsupported charsets and\ninitialization which fails before opening a converter.\n"
    },
    {
      "commit": "4c6109f9746da2ac20f6b801126dfcd4a87c32ad",
      "tree": "d1edc489d99a9a60cb2bf80f6d3bf0a339a18abb",
      "parents": [
        "b6d9457b458126336d3707d4b4ad3e831933d127",
        "c694683c9ae48e922922fc08f91c58fdce64f753"
      ],
      "author": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Sep 21 20:59:59 2026 +0000"
      },
      "committer": {
        "name": "Philip Withnall",
        "email": "philip@tecnocode.co.uk",
        "time": "Mon Sep 21 20:59:59 2026 +0000"
      },
      "message": "Merge branch \u0027update-translation-nn-from-main-feb5023c-b46a-11f1-9424-0a580a82020e\u0027 into \u0027main\u0027\n\nUpdate Norwegian Nynorsk translation\n\nSee merge request GNOME/glib!5368"
    }
  ],
  "next": "3457cf66426dc48eee1f61b1b2818d2f4feec01b"
}
