)]}'
{
  "log": [
    {
      "commit": "dfe5150d51938b9c6bbaf020f7d63f6acc8f5928",
      "tree": "9104e4f4a4279aa1d40f287acc5c92fd8973a156",
      "parents": [
        "adea38dbea7cecefed52136b9946aac8fc50accb"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 27 12:21:53 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 27 12:22:02 2026 -0400"
      },
      "message": "epm, dmake: Update to EPM 5.1.0 and dmake 4.13.2, add to external_deps.lst\n\nBoth tarballs are listed in external_deps.lst with the GitHub release as\nURL1 and OOO_EXTRAS as the fallback, and are fetched only when the tool\nis going to be built (BUILD_EPM / BUILD_DMAKE \u003d\u003d YES).\n\nconfigure.ac only ever set BUILD_DMAKE in dead code after an AC_MSG_ERROR.\nSet it when --with-dmake-url is used and export it via set_soenv.in so\nthe new entry can be conditioned on it. The --with-epm-url and\n--with-dmake-url help examples now show the new versions.\n"
    },
    {
      "commit": "adea38dbea7cecefed52136b9946aac8fc50accb",
      "tree": "680e4ce2578ba2ec7da40b140d4f13b60ed51693",
      "parents": [
        "982ca32eb682cfe9b551026fe2b72b7ddd75efa1"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 27 11:19:10 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 27 11:19:10 2026 -0400"
      },
      "message": "external_deps.lst: replace dead download URLs\n\nAll replacement URLs were downloaded and checked against the\nMD5 recorded in the file.\n"
    },
    {
      "commit": "982ca32eb682cfe9b551026fe2b72b7ddd75efa1",
      "tree": "95d15138be87c22a90482677f9ab6937192dfb1c",
      "parents": [
        "7d712b94e3ff1803b979fa5f284e7acd2daba990"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "\u003d",
        "time": "Tue Oct 27 01:55:22 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "\u003d",
        "time": "Tue Oct 27 01:55:22 2026 -0500"
      },
      "message": "icc: Upgrade bundled SampleICC library from 1.3.2 to 1.6.11\n\nReplaces the three 1.3.2 patches with a single unified patch for 1.6.11:\n\nSampleICC-1.3.2.patch (3187 lines) + SampleICC-1.3.2.format-security.patch +\nSampleICC-1.3.2-Win64.patch  --\u003e  SampleICC-1.6.11.patch (2383 lines, simpler)\n\nRemovals (issues fixed natively in 1.6.11):\n- Win64 build support: 1.6.11 already uses _M_AMD64/__amd64__ in the MSVC\n  detection guard (old patch added _M_AMD64 to 1.3.2\u0027s _M_IX86-only guard)\n- Format-security: sprintf(buf, Info.GetSigName(...)) -\u003e sprintf(buf, \"%s\", ...)\n  already applied in 1.6.11 upstream (IccProfile.cpp:1273,1361)\n- Stubs.h DPX::operator\u003c fix: already applied in 1.6.11 upstream\n- Vetters.cpp license header: already clean in 1.6.11\n- IccTagProfSeqId.cpp/.h: already native in 1.6.11 (was added by patch in 1.3.2)\n- Clang 16 enum-constexpr: handled natively by 1.6.11\u0027s ICC_ENUM_CONVENIENCE\n  mechanism (in-enum max values vs out-of-range #define casts); the AOO\n  endianness patch preserves this define so icProfileHeader.h needs no\n  separate enum fix\n\nChanges still applied in the new patch:\n- IccProfLibConf.h: endianness detection via sal/osl types (sal_uInt64,\n  sal_Int32, etc.) using osl/endian.h _LITTLE_ENDIAN/_BIG_ENDIAN, replacing\n  the old platform-specific detection. ICC_ENUM_CONVENIENCE is preserved.\n- IccIO.cpp: #include \u003cmemory.h\u003e -\u003e \u003cmemory\u003e\n- IccCmm.cpp: add missing #include \u003cstdlib.h\u003e, \u003cstring.h\u003e\n- IccProfile.cpp, IccTagBasic.cpp, IccTagLut.cpp, IccTagMPE.cpp,\n  IccUtil.cpp, IccMpeBasic.cpp, IccMpeACS.cpp: \\r\\n -\u003e \\n normalization\n  in string literals\n\nOther changes:\n- external_deps.lst: Update MD5 (8344c82677a7ba961b74ea193a178e1b),\n  name (SampleICC-1.6.11.zip), add direct SourceForge URL1\n- makefile.mk: Update TARFILE_NAME, TARFILE_MD5, PATCH_FILES\n- README: Update version references and patch description\n\nVersion history: 1.6.11 is the latest release of SampleICC (2016-11-22),\nstill using GNU autotools build system.\n"
    },
    {
      "commit": "7d712b94e3ff1803b979fa5f284e7acd2daba990",
      "tree": "06702b294a758e12ab8d4fdab347dd6ecff774b1",
      "parents": [
        "e7bcddee6c39d101fb69f78a2147ccad17f37d94"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sun Oct 25 21:09:09 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sun Oct 25 21:09:09 2026 -0500"
      },
      "message": "Fix buffer overflow in DirEntry::TempName() (snprintf/strcat bounds)\n\nFound with:\tGCC 15 + FORTIFY_SOURCE\n"
    },
    {
      "commit": "e7bcddee6c39d101fb69f78a2147ccad17f37d94",
      "tree": "58023e210a620616cf24dd99a8bfc695430116cf",
      "parents": [
        "22994af5c7b170ab8a0cd369962243bf8b0a8831",
        "72d1e63285c8ea992d28de3015eeceee115bea3f"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "10236985+pgiffuni@users.noreply.github.com",
        "time": "Sat Oct 24 11:01:51 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 24 11:01:51 2026 -0500"
      },
      "message": "Merge pull request #513 from pgiffuni/trunk\n\nGCC15 compatibility issues\nThese are needed to get AOO building on WSL/Ubuntu"
    },
    {
      "commit": "72d1e63285c8ea992d28de3015eeceee115bea3f",
      "tree": "58023e210a620616cf24dd99a8bfc695430116cf",
      "parents": [
        "91041284b4827f5f332e45aa6d8b6d2cbb98da79"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sat Oct 24 01:47:02 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Sat Oct 24 02:41:27 2026 -0500"
      },
      "message": "Fix GCC 15 compatibility issues\n\n1. Fix buffer overflow in SvMemoryStream::PutData: add bounds check\n   before memcpy to prevent overflow when buffer reallocation fails.\n\n2. Change RTLD_NOW to RTLD_LAZY in checkdll: GCC 15 with\n   _FORTIFY_SOURCE\u003d2 detects issues with eager symbol resolution\n   in shared libraries with many undefined symbols.\n\nSource-only fixes; no Makefile changes.\n"
    },
    {
      "commit": "91041284b4827f5f332e45aa6d8b6d2cbb98da79",
      "tree": "3b91524ccd3d42fbccdf8fcf322da00e2bf5c8b4",
      "parents": [
        "e3293487f186cb156d4da2e75a1301baca723208"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Fri Oct 23 01:05:14 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Sat Oct 24 02:41:13 2026 -0500"
      },
      "message": "Fix K\u0026R-style function declarations for GCC 15+ compatibility\n\nGCC 15+ treats empty parameter lists () as \u0027no parameters\u0027 (C99+\nsemantics) rather than \u0027unspecified parameters\u0027 (C89 semantics),\ncausing compile failures when calling these functions with arguments.\n\nFix all K\u0026R-style function declarations across build tools (soltools,\nl10ntools, rsc) by providing explicit parameter types.\n"
    },
    {
      "commit": "e3293487f186cb156d4da2e75a1301baca723208",
      "tree": "e3c83f9bb89bae19acfbaec9403b4175bce56025",
      "parents": [
        "22994af5c7b170ab8a0cd369962243bf8b0a8831"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Fri Oct 23 20:26:13 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Sat Oct 24 02:41:02 2026 -0500"
      },
      "message": "Fix GCC 15 C++ standard library conflict with _CR/_LF macros\n\nGCC 15\u0027s C++ standard library headers (bits/chrono.h) use _CR as an\ninternal template parameter name. The _CR and _LF macros defined in\ntools/solar.h conflict with these internal identifiers, causing\ncompilation failures in headers that include both solar.h and C++\nstandard headers.\n\nRename _CR-\u003e_LF to SAL_CR-\u003eSAL_LF across the codebase to avoid\nconflicts with reserved identifiers in the C++ standard library.\n"
    },
    {
      "commit": "22994af5c7b170ab8a0cd369962243bf8b0a8831",
      "tree": "cbc2e186f633d36dcb1e1b3e96d723e76e4ef4d0",
      "parents": [
        "78c44356e54af56dd1ebca5feba47e6839a1c545",
        "f7297c60dbf71bad38d2f05be22b72ded759bca2"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "10236985+pgiffuni@users.noreply.github.com",
        "time": "Fri Oct 23 19:56:17 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Oct 23 19:56:17 2026 -0500"
      },
      "message": "Merge pull request #512 from pkubaj/ppc64-fix\n\nFreeBSD PowerPC64: fix the C++-UNO bridge, build on little-endian\n\nI am happy with this change as it completes the series of support for different FreeBSD platforms, and AOO is likely to get shipped and well tested there.\n\nWe should check why BridgeTest was disabled for PowerPC: sadly we don\u0027t have resources to look at all PPC platforms."
    },
    {
      "commit": "f7297c60dbf71bad38d2f05be22b72ded759bca2",
      "tree": "4579c7c262e10c91888ce71afdcb77079c778fc6",
      "parents": [
        "cf96de6fcd2cc0a6f63d77d943c76866b44ec387"
      ],
      "author": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@FreeBSD.org",
        "time": "Thu Oct 22 16:09:31 2026 +0200"
      },
      "committer": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@anongoth.pl",
        "time": "Fri Oct 23 21:57:49 2026 +0200"
      },
      "message": "jvmfwk: look for libjvm.so under ppc64le on little-endian PowerPC64\n\nOpenJDK 8 on little-endian 64-bit PowerPC installs libjvm.so under\njre/lib/ppc64le, so a Java 8 runtime was not recognized there. Use\n\"ppc64le\" as JFW_PLUGIN_ARCH when OSL_BIGENDIAN is not defined, like\nthe MIPS entry does.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "cf96de6fcd2cc0a6f63d77d943c76866b44ec387",
      "tree": "bb66963f50ddf6d598cb92abaebfceff71e16193",
      "parents": [
        "5e376f3846f4fc35e1bba14c0f9c5082bbb5daca"
      ],
      "author": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@FreeBSD.org",
        "time": "Thu Oct 22 16:09:31 2026 +0200"
      },
      "committer": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@anongoth.pl",
        "time": "Fri Oct 23 21:57:49 2026 +0200"
      },
      "message": "FreeBSD PowerPC64: use the ppc64le JRE directories on little-endian\n\nOpenJDK on powerpc64le keeps its native libraries under jre/lib/ppc64le,\nnot jre/lib/ppc64, so on little-endian FreeBSD the linker looked for\nlibjawt in a directory that doesn\u0027t exist. Pick the directory from the\nplatform triplet.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "5e376f3846f4fc35e1bba14c0f9c5082bbb5daca",
      "tree": "c4329bc94279d9435e31af51df70fd066a8fa0c2",
      "parents": [
        "90aa412141b65896a0bda340f2b6563c8f3c7408"
      ],
      "author": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@FreeBSD.org",
        "time": "Thu Oct 22 19:34:23 2026 +0200"
      },
      "committer": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@anongoth.pl",
        "time": "Fri Oct 23 21:57:49 2026 +0200"
      },
      "message": "FreeBSD PowerPC64: find the build environment on little-endian too\n\nsource_soenv.sh only matched the powerpc64-*-freebsd* triplet, so on\npowerpc64le bootstrap stopped with \"unknown *Env.Set.sh for:\npowerpc64le-unknown-freebsd15.1\" even though configure had written\nFreeBSDPPC64Env.Set.sh. Match powerpc64le-*-freebsd* too.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "90aa412141b65896a0bda340f2b6563c8f3c7408",
      "tree": "b2e8241b60f748948c0b46655cbe171863ea43de",
      "parents": [
        "2179eea7d9fea48d22cf819555044ba35d1280a4"
      ],
      "author": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@FreeBSD.org",
        "time": "Thu Oct 22 16:09:30 2026 +0200"
      },
      "committer": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@anongoth.pl",
        "time": "Fri Oct 23 21:57:49 2026 +0200"
      },
      "message": "FreeBSD PowerPC64 bridge: return small structs in registers\n\nThe bridge used a hidden return pointer for every struct, but under the\nELFv2 ABI structs of up to 16 bytes come back in r3/r4, and structs made\nof up to eight floats or doubles come back in f1-f8. Calling a C++\nmethod that returns such a struct from Basic, Python or Java, e.g.\ngetCellAddress() or getPosition(), passed the return buffer where the\ncallee expected this, and the testtools bridgetest crashed.\n\nUse return_in_hidden_param() for both call directions and for the vtable\nsnippets, pass f1-f8 to MapReturn(), and load f1-f8 in\nprivateSnippetExecutor when a C++ caller expects such a float struct.\n\nWith this the bridgetest passes on FreeBSD 15.1 powerpc64 and\npowerpc64le, in-process and over URP, against both the C++ and the Java\ntest objects.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "2179eea7d9fea48d22cf819555044ba35d1280a4",
      "tree": "c3ed5cae0cfb350398d5bf815d2b65b9dc6da9d2",
      "parents": [
        "55adca3b5634862672eb3b8bd7f242c8984dfe41"
      ],
      "author": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@FreeBSD.org",
        "time": "Thu Oct 22 16:09:30 2026 +0200"
      },
      "committer": {
        "name": "Piotr Kubaj",
        "email": "pkubaj@anongoth.pl",
        "time": "Fri Oct 23 21:57:49 2026 +0200"
      },
      "message": "FreeBSD PowerPC64 bridge: drop the glibc stack protector code\n\ncall.s was generated by gcc on a glibc system with -fstack-protector,\nso callVirtualMethod and privateSnippetExecutor keep their stack canary\nat -28688(r13), the slot where glibc stores the stack guard. On FreeBSD\nthat slot is the first word of the thread control block, the DTV\npointer. rtld replaces the DTV when a thread first uses TLS after a\nlibrary with TLS was loaded, so a bridged call during which that\nhappens fails the check and aborts in __stack_chk_fail. Saving a\ndocument from Python over the URP bridge was enough to trigger it.\n\nRemove the canary code from both functions.\n\nCo-authored-by: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "78c44356e54af56dd1ebca5feba47e6839a1c545",
      "tree": "3636bacb1df2a69b68545bbb3a33adb3f419232d",
      "parents": [
        "d24daf161928504e1d799d512194b619dee03e27"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Oct 22 17:00:10 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Oct 22 17:00:10 2026 -0500"
      },
      "message": "Fix missing variable reference in FreeBSD ARM bridge makefile\n\nThe make condition had a missing $ before OS, causing the build\nconfiguration block to never match. This would result in an empty\nbridge library being built.\n"
    },
    {
      "commit": "d24daf161928504e1d799d512194b619dee03e27",
      "tree": "66929eb4903d86f0f6f1292d528742851c263783",
      "parents": [
        "54f28cb9320fd7373825397da12759d6e286de2c"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 15:25:57 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 15:25:57 2026 -0400"
      },
      "message": "saxon: don\u0027t put all of solver/bin on the javac classpath path\n\nThe StAX removal left classpath-j as a fileset with no includes, so it matched every file there and javac fails on the empty images_brand.zip.\n"
    },
    {
      "commit": "54f28cb9320fd7373825397da12759d6e286de2c",
      "tree": "6cbc11316a9eabaed2e9c88f614b132765a7ff52",
      "parents": [
        "3a0630bdd7a494db803a60f9f8c27232168f1b68"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Oct 22 09:54:58 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Oct 22 09:54:58 2026 -0500"
      },
      "message": "Remove Darwin-specific assumptions from FreeBSD aarch64 except.cxx\nThe RTTI synthesis code was copied from the macOS aarch64 bridge with\ncomments stating \u0027arm64 Darwin clang emits the typeinfo of every keyless\nclass hidden and therefore non-unique\u0027. This Darwin-specific assumption\nmay be incorrect on FreeBSD.\n\n- Update comments to reflect that the NON_UNIQUE_RTTI_BIT detection is\n  runtime-based via rttiIsNonUnique(), which correctly handles the\n  platform\u0027s actual behavior\n- The code already uses runtime detection, not hardcoding, so behavior\n  is correct regardless of platform\n\nAlso fix misleading comment in uno2cpp.cxx about macOS compatibility.\nNo functional change.\n"
    },
    {
      "commit": "3a0630bdd7a494db803a60f9f8c27232168f1b68",
      "tree": "b3958b9abfe30f63e4478ac28e7db90f6d96731f",
      "parents": [
        "55adca3b5634862672eb3b8bd7f242c8984dfe41"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 10:16:25 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 10:16:25 2026 -0400"
      },
      "message": "Run the report and Calc data source warm-up loads on our main thread\n\nAs detached threads they could outlive DeInitVCL and crash when the office terminated right after the first report or Calc data source load.\n"
    },
    {
      "commit": "55adca3b5634862672eb3b8bd7f242c8984dfe41",
      "tree": "09fa4d1a363f47f9a115f5b6ed2267b3150a085c",
      "parents": [
        "ae8858429a07d9f4eb86a1a1d12b3cd7da720293"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 09:48:29 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 09:48:29 2026 -0400"
      },
      "message": "Report Builder: fix the commons-logging Class-Path with system Pentaho jars, and the BSD sed failure\n\nThe manifest still named commons-logging-1.1.1.jar after the 1.1.3 update, so the extension failed to install.\n"
    },
    {
      "commit": "ae8858429a07d9f4eb86a1a1d12b3cd7da720293",
      "tree": "3099245201a53f6268085b30080e372e115d315c",
      "parents": [
        "33efb51f76a78baf5a276c335781687d66cf274a"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 09:25:48 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 09:25:48 2026 -0400"
      },
      "message": "Wiki Publisher: stop busy-waiting while a dialog is open; drop the defunct Sun wiki entry\n\nThe sending thread spun a full core until the dialog closed, and hung forever if the dialog task threw an Error.\n"
    },
    {
      "commit": "33efb51f76a78baf5a276c335781687d66cf274a",
      "tree": "fd12ea6b0f3bc7c810ee97fbb51065461829f848",
      "parents": [
        "ba0201429312936c43cd0b8fae745f1e3fb580fd"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 09:19:12 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 09:19:12 2026 -0400"
      },
      "message": "Wiki Publisher: publish thru the MediaWiki API; drop Tomcat, commons-httpclient and commons-codec since no longer needed\n\nScraping index.php no longer worked with current MediaWiki, and failed saves were reported as\nsuccess. Tomcat was only built for commons-logging\u0027s servlet class.\n"
    },
    {
      "commit": "ba0201429312936c43cd0b8fae745f1e3fb580fd",
      "tree": "152353c50112b9fbf0b10098b5777906f7bb25d1",
      "parents": [
        "f8a0ffbbd0d7df0e0952e0568544022aac776eee"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 08:14:45 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 08:14:45 2026 -0400"
      },
      "message": "Skip the first-start wizard in headless mode\n\nHeadless mode cancels every dialog, so the wizard ended the office silently on every start.\n"
    },
    {
      "commit": "f8a0ffbbd0d7df0e0952e0568544022aac776eee",
      "tree": "34fb120d69256f8c73f025ecfb396db9e759f1d3",
      "parents": [
        "2a4643a67e92c4338a0f7b947e78b04714015a0d"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 08:09:49 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 08:09:49 2026 -0400"
      },
      "message": "unopkg: treat end of input at the license prompt as a \"no\"\n\nWith stdin at EOF it re-prompted forever at full CPU.\n"
    },
    {
      "commit": "2a4643a67e92c4338a0f7b947e78b04714015a0d",
      "tree": "dbf471cc8d852feec4dc6b3486d3eb703b3f48b1",
      "parents": [
        "db81dcd785344765c11249e7639a5317cc58bb57"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 08:01:51 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 22 08:01:51 2026 -0400"
      },
      "message": "macOS: run the AppKit menu and window calls from UNO threads on AOO\u0027s main thread\n\nmacOS AppKit throws or blocks on menu and window changes made off the main thread, so\nremote UNO clients crashed soffice on load and close, and failed on the first edit.\n"
    },
    {
      "commit": "db81dcd785344765c11249e7639a5317cc58bb57",
      "tree": "2f9ff960d566f77eed384d2e83496c9ed9893c31",
      "parents": [
        "0b229ce562062969bd6cc5a5fedb97d38183182a"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Oct 22 00:40:22 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Oct 22 00:40:22 2026 -0500"
      },
      "message": "Fix scratch buffer overflow in FreeBSD aarch64 bridge\nFollow-up to stack alignment fix: guard against types larger than 8\nbytes by copying directly to stack instead of using scratch buffer.\n"
    },
    {
      "commit": "0b229ce562062969bd6cc5a5fedb97d38183182a",
      "tree": "86225e2767bf08c4ee7cd0f983a36a6784234373",
      "parents": [
        "7d4ffaae88c98c478a1cd40f4f99897a70f33ba7",
        "32049e8cb674d101cf4bedff3bd7d834d31736aa"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "10236985+pgiffuni@users.noreply.github.com",
        "time": "Wed Oct 21 23:51:30 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Oct 21 23:51:30 2026 -0500"
      },
      "message": "Merge pull request #511 from pgiffuni/trunk\n\nFixes to the FreeBSD arm64 bridge: now passes the tests."
    },
    {
      "commit": "32049e8cb674d101cf4bedff3bd7d834d31736aa",
      "tree": "86225e2767bf08c4ee7cd0f983a36a6784234373",
      "parents": [
        "a95bc48985b3fb1f81ca307ce89000d4dd6aa715"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Wed Oct 21 20:20:29 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Wed Oct 21 20:46:06 2026 -0500"
      },
      "message": "Fix FreeBSD aarch64 C++-UNO bridge stack handling for AAPCS64\n\nEnsure each stack argument occupies a full 8-byte slot per AAPCS64\nrequirements. Small types (BYTE, SHORT, LONG, BOOLEAN, etc.) are now\nsign/zero-extended into a sal_uInt64 scratch slot before being copied\nto the stack, preventing garbage values from uninitialized upper bytes.\n\nThis fixes the testPackedStack BridgeTest failure where nStack was\n24 instead of the expected 48, and resolves the cascading transportAny\ncrash caused by corrupt stack values.\n"
    },
    {
      "commit": "a95bc48985b3fb1f81ca307ce89000d4dd6aa715",
      "tree": "331714396aa3eee5c5eaeb83d7eca2956f0b4447",
      "parents": [
        "7d4ffaae88c98c478a1cd40f4f99897a70f33ba7"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Wed Oct 21 12:18:11 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@FreeBSD.org",
        "time": "Wed Oct 21 12:18:11 2026 -0500"
      },
      "message": "freebsd_aarch64: Fix stack alignment and return handling\n\nFix two issues in the FreeBSD aarch64 C++-UNO bridge:\n\n1. abi.cxx: align_stack_offset and stack_size now use the type\u0027s\n   natural alignment (nAlignment) and raw size (nSize) instead of\n   hardcoded 8/alignment and 8-byte slot rounding. This matches the\n   AAPCS64/System V ABI requirement that stack arguments use their\n   natural alignment and size, matching the macOS reference.\n\n2. uno2cpp.cxx: Restructure the return-value switch to use \u0027default\u0027\n   with a bSimpleReturn check (matching the macOS reference), so\n   fill_struct is only called for register-returned aggregates, not\n   for types that use the x8 hidden-result buffer.\n"
    },
    {
      "commit": "7d4ffaae88c98c478a1cd40f4f99897a70f33ba7",
      "tree": "269bc9ca94a0f6aacb134a87103a93e178657e9d",
      "parents": [
        "dcfbcfcc0e65200ed7e642920dcdc93553b55d00"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Wed Oct 21 10:53:30 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Wed Oct 21 10:53:30 2026 -0500"
      },
      "message": "freebsd_aarch64: Add build environment wiring for FreeBSD AArch64\n- Add FreeBSD AArch64 / ARM64 platform detection in set_soenv.in\n  (CPU\u003dA, CPUNAME\u003dAARCH64, OUTPATH\u003dunxfbsda).\n- Fix Perl precedence warning (!  \u003d~ \u0027gcc\u0027) at set_soenv.in line 1494.\n- Source FreeBSDAARCH64Env.Set.sh in source_soenv.sh.\n- Add unxfbsda.mk and include it from unxfbsd.mk when CPUNAME is AARCH64.\n- Normalize CPU\u003dA to CPUNAME\u003dAARCH64 and enable -fstack-protector in freebsd.mk.\n- Add unxfbsda to installer download.pm and update_module_ignore_lists.pl.\n- Avoid false match on 32-bit ARM_TARGET check in configure.ac.\n"
    },
    {
      "commit": "dcfbcfcc0e65200ed7e642920dcdc93553b55d00",
      "tree": "eb3c6ab2d8a874a3e7058e1c11b66f0b1f0a022c",
      "parents": [
        "01e58fde4522bdd3c1f4c66538f61ceafc1efa73"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Wed Oct 21 10:48:21 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Wed Oct 21 10:48:21 2026 -0500"
      },
      "message": "freebsd_aarch64: Complete C++-UNO bridge implementation for FreeBSD aarch64\nImplement the gcc3 FreeBSD aarch64 C++-UNO bridge, mirroring the\nmacOS aarch64 reference implementation with adaptations for the\nSystem V / AAPCS64 ABI (FreeBSD).\n\n- abi.cxx: Implement align_stack_offset (8-byte alignment) and\n  stack_size (rounded to 8 bytes) matching AAPCS64.\n- call.s: Add callVirtualFunction and privateSnippetExecutor assembly\n  trampolines for aarch64. Fix return value loading with correct\n  sp+144 offsets, add Lpse_void label for void returns, and fix\n  typelib_TypeClass enum values (VOID\u003d0, CHAR\u003d1, BYTE\u003d2, etc.).\n- cpp2uno.cxx: Implement cpp2uno_call and cpp_vtable_call for\n  converting incoming C++ ABI arguments to UNO format, and\n  VtableFactory methods (mapBlockToVtable, getBlockSize,\n  initializeBlock, addLocalFunctions, flushCode).\n- except.cxx: Implement exception handling (synthesiseRTTI,\n  deleteException, raiseException, fillUnoException).\n- uno2cpp.cxx: Implement cpp_call for converting UNO args to C++\n  ABI arguments, INSERT_* macros for register/stack parameter\n  packing, and callVirtualMethod wrapper around the assembly\n  trampoline.\n"
    },
    {
      "commit": "01e58fde4522bdd3c1f4c66538f61ceafc1efa73",
      "tree": "571d7dad40f0cf4a1becfbfe4e45a66b0cf4d616",
      "parents": [
        "34ecb7974825649843db8a4c8b63b5a16053c597"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 20 10:11:41 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 20 10:11:41 2026 -0400"
      },
      "message": "Issues 53690, 128568: \"Matte\" spelling in en-US, split view is Calc-only in Help\n"
    },
    {
      "commit": "34ecb7974825649843db8a4c8b63b5a16053c597",
      "tree": "53750af1a3abfbc0ecc745ace662062aa57b434e",
      "parents": [
        "72adfe535722e5f3e3a3d41f73bce3536aa50c62"
      ],
      "author": {
        "name": "Bidouille",
        "email": "oooforum@free.fr",
        "time": "Tue Oct 20 14:52:53 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:52:53 2026 -0400"
      },
      "message": "Export report builder chart as a draw chart, issue 121222 (#328)"
    },
    {
      "commit": "72adfe535722e5f3e3a3d41f73bce3536aa50c62",
      "tree": "a5d641a4ed7576d2dcde78f5d5b44eb31279c07a",
      "parents": [
        "cb52b75cae51232395ed2a695fbd19c3ccf1e975"
      ],
      "author": {
        "name": "Jean-Michel COSTE",
        "email": "52637626+jeanmicoste@users.noreply.github.com",
        "time": "Tue Oct 20 14:52:48 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:52:48 2026 -0400"
      },
      "message": "Capitalise.py: avoid error with multiple selections (#494)"
    },
    {
      "commit": "cb52b75cae51232395ed2a695fbd19c3ccf1e975",
      "tree": "7fd8e5705446d5f0d0dc42b23ba4b922b5858b8c",
      "parents": [
        "7b4b0b3bb5d70296565c435418cee93537b34a50"
      ],
      "author": {
        "name": "Peter",
        "email": "leginee@users.noreply.github.com",
        "time": "Tue Oct 20 14:52:44 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 20 08:52:44 2026 -0400"
      },
      "message": "Calc: restore pThisTab after ReadUserDataSequence recreates tab data (#485)"
    },
    {
      "commit": "7b4b0b3bb5d70296565c435418cee93537b34a50",
      "tree": "cc5d1f22da12ad44596075150cb41ee27662aba9",
      "parents": [
        "f84cd760423c231d0db769947cd9be05481e81c0"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Mon Oct 19 15:00:10 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Mon Oct 19 15:00:10 2026 -0400"
      },
      "message": "junk temp AOO5 images\n"
    },
    {
      "commit": "f84cd760423c231d0db769947cd9be05481e81c0",
      "tree": "5aae7e5c7208e8ba0520e4538fd1cdd0de521765",
      "parents": [
        "5ff86c373e050985902bb66fb34662d4d4f150f7"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Fri Oct 16 05:19:29 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Fri Oct 16 05:19:29 2026 -0400"
      },
      "message": "Start Center: add backing*5.png copies and load them for AOO 5\n"
    },
    {
      "commit": "5ff86c373e050985902bb66fb34662d4d4f150f7",
      "tree": "3c07ec08452138eb7a84392a14ef84015d796334",
      "parents": [
        "0c31bd3d5a34c50a14ff689f5e00e26dd7149e01"
      ],
      "author": {
        "name": "John Bampton",
        "email": "jbampton@users.noreply.github.com",
        "time": "Fri Oct 16 04:34:57 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 14:34:57 2026 -0400"
      },
      "message": "misc: fix typos; souce -\u003e source (#507)\n\n* misc: fix typos; souce -\u003e source\n\n* Regenerate codespell.txt ignored words list"
    },
    {
      "commit": "0c31bd3d5a34c50a14ff689f5e00e26dd7149e01",
      "tree": "fbe5307ba4b543eba68134bd485fe511af1ecabc",
      "parents": [
        "3c16ca7fc5ed5f09447c9733298d039a62d92715"
      ],
      "author": {
        "name": "Matthias Seidel",
        "email": "mseidel@apache.org",
        "time": "Thu Oct 15 18:20:17 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 15 18:20:17 2026 +0200"
      },
      "message": "Add Zoom slider to Math (#476)\n\n* Add Zoom slider to Math\n\nMath lacks a Zoom slider.\n\n* Additional changes\n\n* Cleanup"
    },
    {
      "commit": "3c16ca7fc5ed5f09447c9733298d039a62d92715",
      "tree": "11e82d123f48ef7f6c982af6319a55002f077117",
      "parents": [
        "f82204b63269a6ce5ba79b90450ad717f21af986"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 15 06:49:37 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 15 06:49:37 2026 -0400"
      },
      "message": "Likely a better candiate for the wiki\n"
    },
    {
      "commit": "f82204b63269a6ce5ba79b90450ad717f21af986",
      "tree": "2860ed38a3711dfb91a98e9da0f984570af37bfb",
      "parents": [
        "a5fa20f05011d431c0a4515c30581e8a1e1078ff"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 15 06:28:24 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Oct 15 06:28:24 2026 -0400"
      },
      "message": "Lint when creating API doccos\n"
    },
    {
      "commit": "a5fa20f05011d431c0a4515c30581e8a1e1078ff",
      "tree": "452b5eb3456091b1ff6d940725328be8f0c51156",
      "parents": [
        "5a3832c76e74925617e010708687bbc5ead91251"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Wed Oct 14 12:06:35 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Wed Oct 14 12:06:35 2026 -0400"
      },
      "message": "Add notes on observed differences between AOO Basic and VBA\n"
    },
    {
      "commit": "5a3832c76e74925617e010708687bbc5ead91251",
      "tree": "e31603d9e36f86ceb709c31801fc306923eb18f5",
      "parents": [
        "b6be11d1285f1f5c601f8ae41773110c184dd1fb"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Wed Oct 14 09:22:13 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Wed Oct 14 09:22:13 2026 -0400"
      },
      "message": "About dialog: load the AOO5 about5.png image, falling back to about.png\n"
    },
    {
      "commit": "b6be11d1285f1f5c601f8ae41773110c184dd1fb",
      "tree": "c80f7d7d4fe33479f441a726bae55039bd26b5e3",
      "parents": [
        "beb914a2646bb91a39dbd6a38c8847d211b26a2b"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 13 11:48:22 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Tue Oct 13 11:48:22 2026 -0400"
      },
      "message": "Basic: use a hash map for Collection lookup by key\n"
    },
    {
      "commit": "beb914a2646bb91a39dbd6a38c8847d211b26a2b",
      "tree": "f93671d2ed82fba2fd89cf06ddc68e25492c2e0f",
      "parents": [
        "0104261783566beff8bcabd2b607423b32142d24"
      ],
      "author": {
        "name": "Matthias Seidel",
        "email": "mseidel@apache.org",
        "time": "Tue Oct 13 15:33:05 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 15:33:05 2026 +0200"
      },
      "message": "Update README.md"
    },
    {
      "commit": "0104261783566beff8bcabd2b607423b32142d24",
      "tree": "11c360f89d2772a8a86dd483003c22437aea32d5",
      "parents": [
        "3d88fa310793915bc3fc4ff1937e87bfa1038073"
      ],
      "author": {
        "name": "Matthias Seidel",
        "email": "mseidel@apache.org",
        "time": "Tue Oct 13 15:32:36 2026 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 15:32:36 2026 +0200"
      },
      "message": "Update README.md"
    },
    {
      "commit": "3d88fa310793915bc3fc4ff1937e87bfa1038073",
      "tree": "9cdb702ed5489d717679d49b599791c7276de62f",
      "parents": [
        "be094486c5534336663aa1ddadd1cdda20a9ddd0"
      ],
      "author": {
        "name": "John Bampton",
        "email": "jbampton@users.noreply.github.com",
        "time": "Tue Oct 13 19:57:33 2026 +1000"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Oct 13 05:57:33 2026 -0400"
      },
      "message": "General spelling clean up (#484)\n\n* Fix spelling\n\n* Clean up codespell ignored words list"
    },
    {
      "commit": "be094486c5534336663aa1ddadd1cdda20a9ddd0",
      "tree": "89445d134e0356daf080e84a741cf555f6355353",
      "parents": [
        "d71274f6c6476746b317e879878adcc8296dd01e"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Mon Oct 12 16:16:42 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Mon Oct 12 16:16:42 2026 -0400"
      },
      "message": "macOS: skip the Mach-O load-command check for the language-pack app\n\nIts bundle holds only scripts and a plist, so the check always failed with\n\"no Mach-O files found\".\n"
    },
    {
      "commit": "d71274f6c6476746b317e879878adcc8296dd01e",
      "tree": "4755cda94196259c116a9de9960faafcb1f90f0c",
      "parents": [
        "5221cf3a962813b63a7cbddd28fd7b281ed549ef"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sun Oct 11 18:38:07 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sun Oct 11 18:38:48 2026 +0200"
      },
      "message": "Remove unnecessary casts from calls to AnyConverter.toObject().\n\nPatch by: me\n"
    },
    {
      "commit": "5221cf3a962813b63a7cbddd28fd7b281ed549ef",
      "tree": "1d58eb4c95a8e96df4c9f7279f81c3fbb9363675",
      "parents": [
        "5df6678e228f27dc727ad4a62a2120c7d06adaae"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 19:55:53 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 19:55:53 2026 +0200"
      },
      "message": "Fix the build-breaking regression in 8a6d05c5839d3bb0755d29b6ff1d93273263d245\ncaused by removing the sourcelevel property but not removing\na reference to it.\n\nPatch by: me\n"
    },
    {
      "commit": "5df6678e228f27dc727ad4a62a2120c7d06adaae",
      "tree": "e785f18b0b5f6d74bef4bd5ffdc8e11d07f324d2",
      "parents": [
        "5226f0b8dea4ef117ddd2bc4948a8601d0ac403b"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sat Oct 03 17:46:43 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 04:02:34 2026 +0200"
      },
      "message": "Begin converting java.util.Vector to java.util.ArrayList.\n\nPatch by: me\n"
    },
    {
      "commit": "5226f0b8dea4ef117ddd2bc4948a8601d0ac403b",
      "tree": "d3822ed01b50035976f7de537887a80d7ec38eb6",
      "parents": [
        "b6fd66b75b193ec5c149e1b2c838579d044a0b3d"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sat Oct 03 16:47:24 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 04:02:33 2026 +0200"
      },
      "message": "Remove unused imports of:\njava.util.Enumeration\njava.util.Hashtable\njava.util.Vector\n\nPatch by: me\n"
    },
    {
      "commit": "b6fd66b75b193ec5c149e1b2c838579d044a0b3d",
      "tree": "cf29bf2de19269b7282b8c25ddc1ce3348235a6a",
      "parents": [
        "f44a16118bea57f8bcef4ba642542011bc077ed8"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Thu Oct 01 04:26:17 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 04:02:29 2026 +0200"
      },
      "message": "Replace java.lang.StringBuffer with java.lang.StringBuilder.\n\nStringBuilder is faster as its methods are not \"synchronized\",\navoiding unnecessary locking.\n\nPatch by: me\n"
    },
    {
      "commit": "f44a16118bea57f8bcef4ba642542011bc077ed8",
      "tree": "71a58546d47ef65196181bc46af783310bc67e71",
      "parents": [
        "8e5757ffd1295c38c89defc0bfc9dba34a72fa7e"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sat Oct 03 10:20:41 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 04:01:34 2026 +0200"
      },
      "message": "Remove unnecessary casts on the return values from UnoRuntime.queryInterface().\n\nPatch by: me\n"
    },
    {
      "commit": "8e5757ffd1295c38c89defc0bfc9dba34a72fa7e",
      "tree": "db26eb8f540ef3b8d7832e1125c04c969e11aee2",
      "parents": [
        "8a6d05c5839d3bb0755d29b6ff1d93273263d245"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sat Oct 03 15:03:01 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 04:01:31 2026 +0200"
      },
      "message": "Use a simpler way to format a date, which doesn\u0027t require explicitly\ncreating a java.lang.StringBuffer in the process.\n\nPatch by: me\n"
    },
    {
      "commit": "8a6d05c5839d3bb0755d29b6ff1d93273263d245",
      "tree": "0c0059da37e6db1111171b66685725190713e0bb",
      "parents": [
        "430d1577c639ad8ba4ece164a179111734112fd9"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Sat Oct 03 15:03:23 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Mon Oct 05 04:01:28 2026 +0200"
      },
      "message": "Don\u0027t specify the MediaWiki extension Java sourcelevel, isn\u0027t not used\nanywhere else, and we now need at least Java 8\n(see 00a90ea2c35aa0d62b41963f97bc10041530f5d1).\n\nPatch by: me\n"
    },
    {
      "commit": "430d1577c639ad8ba4ece164a179111734112fd9",
      "tree": "69733fb8039cdbf7f4aa26afce6fc861e86e7099",
      "parents": [
        "fb122de935def4d7d318cbb25ee0b9de0a4547ae"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Sat Oct 03 20:44:25 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sun Oct 04 21:29:01 2026 +0200"
      },
      "message": "Ignore meaningless attributes\n\nStop recognizing the db:java-classpath attribute, and drop JavaDriverClassPath\nand SystemProperties when importing data source settings.\n\nAssisted-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "fb122de935def4d7d318cbb25ee0b9de0a4547ae",
      "tree": "27d098ac291781aa0c874c1f43915c77ec02a56a",
      "parents": [
        "bb3a5a855831b861943c55afcadf2a8cf42eff01"
      ],
      "author": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Wed Sep 30 22:28:23 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sat Oct 03 21:47:00 2026 +0200"
      },
      "message": "svx, avmedia: put the media question when the URL is set, not while painting\n\nAvoid multiple popups.\n\nKeep the checks where they are, but have the question put earlier, in a\nplace that does not paint: when a media object gets its URL -- on insertion,\nwhile the document loads, through the API -- ask the document that holds the\nobject. Its LinkManager keeps the answer, and the checks made later while a\nview paints get it without a question. A copy takes the URL without asking\nagain.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "bb3a5a855831b861943c55afcadf2a8cf42eff01",
      "tree": "94901a11e580eb4197135a00ba4358a77930362f",
      "parents": [
        "7456e17c83b8fcc5806811ffdb156c6b3daf5785"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Fri Oct 02 21:57:00 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sat Oct 03 10:19:38 2026 +0200"
      },
      "message": "Fix acceptance of local files\n\nAssisted-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "7456e17c83b8fcc5806811ffdb156c6b3daf5785",
      "tree": "7e17eeb6a396afa8a39d9aac8b8c5ab74d6e0291",
      "parents": [
        "06d7e6fcc50631716e4dd8909f5d630a5b1f52c5"
      ],
      "author": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Sat Sep 26 22:16:30 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sat Oct 03 10:16:23 2026 +0200"
      },
      "message": "Tests for: accept local files\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n(cherry picked from commit 6af66d39c39162852c7402525ae40100cf9acca9)\n"
    },
    {
      "commit": "06d7e6fcc50631716e4dd8909f5d630a5b1f52c5",
      "tree": "ff0e56270d0c83f10f28d08747d0817bcabcb8ed",
      "parents": [
        "34b5379a43fb31ceaf5a777fb73dc05ae05092c8"
      ],
      "author": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Sat Sep 26 22:16:29 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sat Oct 03 10:16:13 2026 +0200"
      },
      "message": "Accept local files\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n(cherry picked from commit 14eaf708515ab11319faef612741acb86321c914)\n"
    },
    {
      "commit": "34b5379a43fb31ceaf5a777fb73dc05ae05092c8",
      "tree": "613bc6365975f7eda9bc3b2b9b737a8896f49174",
      "parents": [
        "c61c71e99286ae9536064b93c703ad233962249b"
      ],
      "author": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 16:13:37 2026 +0200"
      },
      "committer": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 16:13:37 2026 +0200"
      },
      "message": "Lokalized Dutch\n"
    },
    {
      "commit": "c61c71e99286ae9536064b93c703ad233962249b",
      "tree": "303d5d25c2b2ad48798a0386350dbf4e82b9eb52",
      "parents": [
        "ed176da5921a87e7d65cdf59c270bb3356b2e30e"
      ],
      "author": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 15:12:00 2026 +0200"
      },
      "committer": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 15:12:00 2026 +0200"
      },
      "message": "Lokalized Dutch\n"
    },
    {
      "commit": "ed176da5921a87e7d65cdf59c270bb3356b2e30e",
      "tree": "e1f6e2c723af5506e130480b7232afa8617b077f",
      "parents": [
        "c14e6752ec1ecb36541a12b305d74e7625e67a3c"
      ],
      "author": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 15:06:52 2026 +0200"
      },
      "committer": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 15:06:52 2026 +0200"
      },
      "message": "Lokalized Dutch\n"
    },
    {
      "commit": "c14e6752ec1ecb36541a12b305d74e7625e67a3c",
      "tree": "d264642ad5c916bb36d84d1b44a8bb19bae7a96b",
      "parents": [
        "543a5886082b0c5c35069fb8c08ce0aed9f842f8"
      ],
      "author": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 14:52:33 2026 +0200"
      },
      "committer": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 14:52:33 2026 +0200"
      },
      "message": "Lokalized Dutch\n"
    },
    {
      "commit": "543a5886082b0c5c35069fb8c08ce0aed9f842f8",
      "tree": "f62cf0fd2dff7ce961b80292c12e3f802e911021",
      "parents": [
        "605bd593b0f7b92e079dee47a9ef4285cec2902a"
      ],
      "author": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 14:47:32 2026 +0200"
      },
      "committer": {
        "name": "DiGro",
        "email": "dikgro@yahoo.co.uk",
        "time": "Wed Sep 30 14:47:32 2026 +0200"
      },
      "message": "Lokalized Dutch\n"
    },
    {
      "commit": "605bd593b0f7b92e079dee47a9ef4285cec2902a",
      "tree": "8cb866b2706e60ab90e7c17c07c2a649b08582ec",
      "parents": [
        "ed9fccbc300f190eb18d9cadbe8092a861fe3837",
        "36a7f761274e9e8303baaeefd1658f24d3b410f1"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "10236985+pgiffuni@users.noreply.github.com",
        "time": "Fri Sep 25 08:57:53 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Sep 25 08:57:53 2026 -0500"
      },
      "message": "Merge pull request #505 from pgiffuni/trunk\n\nGTK 2 cleanups"
    },
    {
      "commit": "36a7f761274e9e8303baaeefd1658f24d3b410f1",
      "tree": "8cb866b2706e60ab90e7c17c07c2a649b08582ec",
      "parents": [
        "72dd4668a72a87a341b93e67bdad785ccd040e26"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Sep 24 21:11:48 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Sep 24 21:11:48 2026 -0500"
      },
      "message": "vcl: GTK upgrade - replace direct widget struct access with public APIs\n\nReplace direct access to GTK internal struct members (m_pWindow-\u003ewindow,\n-\u003estyle) with public GTK2 APIs (gtk_widget_get_window, gtk_widget_get_style)\nthrough safe accessor methods getGdkWindow() and getXWindow() on GtkSalFrame.\n\n- Add getGdkWindow()/getXWindow() accessors on GtkSalFrame with null guards\n- Update GtkSalGraphics::GetGdkWindow() to use gtk_widget_get_window()\n- Remove unused GetGtkWidget() (0 callers)\n- Replace all m_pWindow-\u003ewindow accesses with getGdkWindow()/getXWindow()\n- Replace GTK_WIDGET(m_pWindow)-\u003ewindow with GetGdkWindow()\n- Replace m_pWindow-\u003estyle with gtk_widget_get_style()\n- Replace m_pSocket-\u003ewindow with gtk_widget_get_window(m_pSocket)\n- Replace GDK_WINDOW_XWINDOW(GTK_WIDGET(pParent-\u003egetWindow())-\u003ewindow) with\n  pParent-\u003egetXWindow()\n- Add DeInit() call before graphics deletion in GraphicsHolder destructor\n- Sync window/drawable when returning existing cached graphics instance\n- Detach/resync all allocated graphics (pGraphics !\u003d NULL), not just bInUse,\n  in createNewWindow() and moveToScreen()\n- Reset m_pWindow \u003d NULL in GtkSalGraphics destructor\n- Guard gdkDrawable and GetGdkWindow() against NULL to prevent painting when\n  widget is unmapped or destroyed\n"
    },
    {
      "commit": "72dd4668a72a87a341b93e67bdad785ccd040e26",
      "tree": "2fb2e57c51a71ec6287cdbd85c4c256a9cba596e",
      "parents": [
        "ed9fccbc300f190eb18d9cadbe8092a861fe3837"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sun Sep 20 11:33:43 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Thu Sep 24 19:52:00 2026 -0500"
      },
      "message": "vcl: GTK2 native widget rendering cleanup\n\nReduce GTK2 implementation-detail dependencies in native widget rendering.\n\n- Replace direct GTK_WIDGET_SET_FLAGS / UNSET_FLAGS flag twiddling with\n  public GTK2 APIs (gtk_widget_set_can_focus, gtk_widget_set_can_default,\n  gtk_widget_set_sensitive) in GtkSalFrame::Init, NWSetWidgetState, and\n  toolbar/toggle button rendering. GTK 2.18+ is the minimum required version.\n- Remove redundant sensitivity flag manipulation in toolbar, grip,\n  menubar, and popup menu rendering.\n- Consolidate repetitive widget style realization and default flag capture\n  into NWInitWidget().\n- Use sal_IntPtr for gWidgetDefaultFlags hash_map key for 64-bit portability.\n- Clean up gWidgetDefaultFlags and gWidgetData in GtkData::deInitNWF().\n\nNo functional change intended.\n"
    },
    {
      "commit": "ed9fccbc300f190eb18d9cadbe8092a861fe3837",
      "tree": "3ad83c6d02752fcadcca4e4006cf977c9cf612aa",
      "parents": [
        "864d6d404ef6868a2971746939c3496b71cc3952"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 24 16:45:37 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 24 16:45:37 2026 -0400"
      },
      "message": "macOS: clear xattrs on read-only files before signing\n"
    },
    {
      "commit": "864d6d404ef6868a2971746939c3496b71cc3952",
      "tree": "276c14d2bfba5e257e8d4bf4aaa627ab121fa6d4",
      "parents": [
        "b6bfb4e8301b7208dc52a53fd4999d5cd5607589"
      ],
      "author": {
        "name": "Peter Kovacs",
        "email": "petko@apache.org",
        "time": "Sun Aug 30 01:44:53 2026 +0200"
      },
      "committer": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Thu Sep 24 14:53:20 2026 +0200"
      },
      "message": "svtools: check the WMF private-escape text length and advance array\n\nLimit the character count of a PRIVATE_ESCAPE_UNICODE record to what a\nString can hold, and ignore an advance array that has fewer entries than\nthe text has characters, as if it were missing.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "b6bfb4e8301b7208dc52a53fd4999d5cd5607589",
      "tree": "2eee732fb7c8b653dcea0def63d033912dd88f0a",
      "parents": [
        "137931e43899a1545869cb6af6ea936d8cee4956"
      ],
      "author": {
        "name": "Peter Kovacs",
        "email": "petko@apache.org",
        "time": "Thu Sep 24 09:57:48 2026 +0200"
      },
      "committer": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Thu Sep 24 11:59:42 2026 +0200"
      },
      "message": "vcl: check bounds in the font subsetter\n\nMake the CFF charstring interpreter\u0027s stack and array checks run-time\nchecks, and limit its output to the buffer it writes into.\n\nCheck the TrueType parser\u0027s table, glyph and cmap subtable offsets and\nlengths against the tables they refer to.\n\nCo-Authored-By: Claude Opus 5.5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "137931e43899a1545869cb6af6ea936d8cee4956",
      "tree": "cc576db67ddbe7c9390fdd2c35edee040008f40a",
      "parents": [
        "39c1177837f74269bd87c8d37c765d9c63e7f0d5"
      ],
      "author": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Tue Sep 22 21:34:30 2026 +0200"
      },
      "committer": {
        "name": "Peter",
        "email": "petko@apache.org",
        "time": "Wed Sep 23 23:32:18 2026 +0200"
      },
      "message": "svtools: one shared policy for following URLs out of document content\n\nEach module that follows a URL named by document content -- linked graphics,\nbackground images, instance data, media -- decided for itself whether to\ncheck anything, and the check that does exist was written out inline at the\ncall site.\n\nAdd svtools/linkpolicy.hxx as the one place that decides, and apply it at the\nload sites in editeng, forms, sfx2, sw, avmedia and svgio. A relative\nreference and a file on this machine load as before; anything else asks the\nrunning document, which is the question the LinkManager already asks.\n\nTwo places on those paths assumed success and no longer do: a reference that\ncannot be resolved, and a graphic that is not there.\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "39c1177837f74269bd87c8d37c765d9c63e7f0d5",
      "tree": "8b70888646f0854eeb4b485b0e99e4a0c56b4d7d",
      "parents": [
        "6c6152cef718882dd13b1f34cd72a257d7ce94ca"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Wed Sep 23 05:02:14 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Wed Sep 23 05:02:14 2026 -0400"
      },
      "message": "Missed 2 logos\n"
    },
    {
      "commit": "6c6152cef718882dd13b1f34cd72a257d7ce94ca",
      "tree": "e52f67a8b8439f3c969a259ce3ad3c746a3a6dde",
      "parents": [
        "7826359d221fc59714335fac155fb85bfeea0326"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:42:55 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:42:55 2026 +0200"
      },
      "message": "Read the catalog and schema from the new table object, not the table\ndescriptor used to create it. This avoids an exception when the\ntable descriptor\u0027s CatalogName property returns VOID instead of\na string.\n\nPatch by: me\n"
    },
    {
      "commit": "7826359d221fc59714335fac155fb85bfeea0326",
      "tree": "cdce5f6500ab3b351494ffe2e254774c0c1b09ff",
      "parents": [
        "6fe7ee93872ca084a7b1106f4f2f407612e67fe5"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:42:14 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:42:14 2026 +0200"
      },
      "message": "java.lang.Boolean can\u0027t be cast to com.sun.star.uno.Any.\nIn Java, UNO\u0027s \"Any\" is java.lang.Object.\n\nPatch by: me\n"
    },
    {
      "commit": "6fe7ee93872ca084a7b1106f4f2f407612e67fe5",
      "tree": "4c0a3f9da983a92073129debc7462adbc7863d3d",
      "parents": [
        "75f8d02c17340e12cdfd92ed81f9e640103197de"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:04:26 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:04:26 2026 +0200"
      },
      "message": "Returns empty values instead of null from JavaSQLResultSet.getBytes()\nand JavaSQLResultSet.getDate(), when the database field is NULL.\n\nThis is what the C++ JDBC driver was also doing, and OpenOffice gives\nmajor warnings and even crashes when Java components returns null\nto UNO.\n\nPatch by: me\n"
    },
    {
      "commit": "75f8d02c17340e12cdfd92ed81f9e640103197de",
      "tree": "9377bb5b779156b71bc629d443a5e8ae2326150f",
      "parents": [
        "2e32573faaf1ecb65ff80ca0da0114649f74a7a4"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:03:38 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:03:38 2026 +0200"
      },
      "message": "The typeMap in XRow.getObject() can be null.\n\nPatch by: me\n"
    },
    {
      "commit": "2e32573faaf1ecb65ff80ca0da0114649f74a7a4",
      "tree": "5a473359d1be5cef59080757eedecd28878b0ff3",
      "parents": [
        "7f4cef327c6029f23638d23c1333551ed9c2eae8"
      ],
      "author": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:02:53 2026 +0200"
      },
      "committer": {
        "name": "Damjan Jovanovic",
        "email": "damjan@apache.org",
        "time": "Tue Sep 22 20:02:53 2026 +0200"
      },
      "message": "XDatabaseMetaData.getSchemas() should return schemas, not catalogs.\n\nPatch by: me\n"
    },
    {
      "commit": "7f4cef327c6029f23638d23c1333551ed9c2eae8",
      "tree": "c0f44403a6f177a526f3b6b83b87d9e12694411f",
      "parents": [
        "c8c07ca898e41fafebb34bcd6a71572aca680e5d"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Mon Sep 21 15:50:34 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Mon Sep 21 15:50:34 2026 -0400"
      },
      "message": "AOO5 logos\n"
    },
    {
      "commit": "c8c07ca898e41fafebb34bcd6a71572aca680e5d",
      "tree": "a22160aea9af97c43d05aae69cfe6ee6c0307b24",
      "parents": [
        "b81185736b1dc1d0d31d3c6399b1242bd42a93a5"
      ],
      "author": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sun Sep 20 09:12:57 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sun Sep 20 09:12:57 2026 +0200"
      },
      "message": "Fix null pointer dereference\n"
    },
    {
      "commit": "b81185736b1dc1d0d31d3c6399b1242bd42a93a5",
      "tree": "8a79faa3abbff31cb666b7f5894e22cc54415372",
      "parents": [
        "a076163db497445461c819d3ae9afe052eb01982"
      ],
      "author": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Tue Sep 08 22:52:04 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Fri Sep 18 20:07:47 2026 +0200"
      },
      "message": "Limit paths for text caches for embedded databases\n"
    },
    {
      "commit": "a076163db497445461c819d3ae9afe052eb01982",
      "tree": "05ad415e9eeaa2a5b90dc36eaf0cfa39600cf007",
      "parents": [
        "8604ca21f9283f811f592bd95847a6002173ce6e"
      ],
      "author": {
        "name": "Peter Kovacs",
        "email": "petko@apache.org",
        "time": "Sun Aug 30 10:39:04 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Fri Sep 18 20:06:33 2026 +0200"
      },
      "message": "Check lengths\n\nAlso fix the allocation check which tested ppStream rather than *ppStream\n\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\nClaude-Session: https://claude.ai/code/session_01UWgzQY2r1XwFvgeLPFWPsi\n"
    },
    {
      "commit": "8604ca21f9283f811f592bd95847a6002173ce6e",
      "tree": "457143d043e679fa5b5928a225f2602e7181071b",
      "parents": [
        "181421139242694b309751fb666406eddc203c50"
      ],
      "author": {
        "name": "Peter Kovacs",
        "email": "petko@apache.org",
        "time": "Sat Aug 01 12:53:44 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Fri Sep 18 20:00:59 2026 +0200"
      },
      "message": "sw: ww8: validate PLCF length\n\nAdd an inline WW8PLCF::IsValidLength() predicate and call it at the\nentry of both WW8PLCF::ReadPLCF and the WW8PLCFspecial constructor.\n\nAdd GoogleTest_sw_ww8plcf covering the boundary values.\n\nThanks to Yukihiro Nakamura (nakamurabeer@gmail.com)\n\nCo-authored-by: Yukihiro Nakamura (nakamurabeer@gmail.com)\nCo-Authored-By: Claude Opus 5 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "181421139242694b309751fb666406eddc203c50",
      "tree": "3920897d6742069d5bae8a6fd5f25254fa01271a",
      "parents": [
        "45c5a00162811bd03b87fcb4fe9996782f2b59ec"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Fri Jul 03 09:18:19 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Fri Sep 18 19:19:39 2026 +0200"
      },
      "message": "Reject further invalid URLs\n\nAssisted-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "45c5a00162811bd03b87fcb4fe9996782f2b59ec",
      "tree": "722882871ab9ac54da7ae8379931f647a9c83ae8",
      "parents": [
        "19109cc7d4e1f4b665df04c118b6691809eb39b0"
      ],
      "author": {
        "name": "Piotr P. Karwasz",
        "email": "piotr@github.copernik.eu",
        "time": "Fri Jul 03 09:16:41 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Fri Sep 18 19:16:50 2026 +0200"
      },
      "message": "Skip invalid entries\n\nDetect malformed URLs, log them and and skip them.\n\nThe per-entry handling is factored into a shared Tools.addClassPathURL\nhelper used by both ClassMap variants, with ToolsTest covering the\naccepted and skipped schemes (subsequent JUnit test under\nconnectivity/qa/complex/sdbc).\n\nAssisted-By: Claude Opus 4.8 \u003cnoreply@anthropic.com\u003e\n"
    },
    {
      "commit": "19109cc7d4e1f4b665df04c118b6691809eb39b0",
      "tree": "26bafe3b22f16e6e809fb1c9322323d422df5e73",
      "parents": [
        "00754beec5d69d2fe085905a63a4da988411546d"
      ],
      "author": {
        "name": "Don Lewis",
        "email": "truckman@apache.org",
        "time": "Thu Sep 17 17:40:22 2026 -0700"
      },
      "committer": {
        "name": "Don Lewis",
        "email": "truckman@apache.org",
        "time": "Thu Sep 17 19:45:30 2026 -0700"
      },
      "message": "testtools bridgetest fails on FreeBSD x86\n\nSkip bridgetest on FreeBSD x86 because it fails.\n"
    },
    {
      "commit": "00754beec5d69d2fe085905a63a4da988411546d",
      "tree": "c06415a7e61ee815bd897684a78cee230202ba41",
      "parents": [
        "57cd559d060c509755c8b0f6cac469b512911542"
      ],
      "author": {
        "name": "Don Lewis",
        "email": "truckman@apache.org",
        "time": "Thu Sep 17 17:29:34 2026 -0700"
      },
      "committer": {
        "name": "Don Lewis",
        "email": "truckman@apache.org",
        "time": "Thu Sep 17 19:44:59 2026 -0700"
      },
      "message": "FreeBSD also needs gb_CFGEXPRECOMMAND\n\ngb_CFGEXPRECOMMAND is needed to set LD_LIBRARY_PATH for cfgex to\nbuild the officecfg module.\n"
    },
    {
      "commit": "57cd559d060c509755c8b0f6cac469b512911542",
      "tree": "8d7a1c6d53037b1134b971600cc453e368ef8601",
      "parents": [
        "66ab9c1188ef75c84225c856a87bc93d575247ca"
      ],
      "author": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Wed Sep 16 22:16:36 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Wed Sep 16 22:18:50 2026 +0200"
      },
      "message": "Restore compatibility with provided files\n\nCertain documents are slightly invalid ZIP\u0027s: their entries have a data\ndescriptor, but their \"flags\" field say otherwise.  Remain compatible\nwith our past bugs.\n\nThanks to Czesław Wolański for reporting, and Peter Kovacs for proposing\nthis fix!\n"
    },
    {
      "commit": "66ab9c1188ef75c84225c856a87bc93d575247ca",
      "tree": "b1f1f6f1550fc03597eae7b5efb686ab9d058f04",
      "parents": [
        "56e4d38c33928bade1ec98e3d1fd9ebea94cde1d"
      ],
      "author": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Tue Sep 15 21:40:39 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Tue Sep 15 21:40:39 2026 +0200"
      },
      "message": "More checks\n"
    },
    {
      "commit": "56e4d38c33928bade1ec98e3d1fd9ebea94cde1d",
      "tree": "f9e38bf9d417dedcb9b23d04523871e0219dce63",
      "parents": [
        "9c15e1abd703a7953928d7a80655ae1a76a41f6d"
      ],
      "author": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sun Sep 13 09:04:00 2026 +0200"
      },
      "committer": {
        "name": "Arrigo Marchiori",
        "email": "ardovm@yahoo.it",
        "time": "Sun Sep 13 09:04:00 2026 +0200"
      },
      "message": "VCL: when loading PNG\u0027s, ensure we do not reuse an object that was created on the stack\n\nAlso, add a guard to ZCodec against unwanted reusal of variables.\n"
    },
    {
      "commit": "9c15e1abd703a7953928d7a80655ae1a76a41f6d",
      "tree": "bf530111e8d7f249112a6b64f468c988919ae9b9",
      "parents": [
        "e1397ed79746b1482a549a3b8499549cff06c5f4"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sat Sep 12 00:25:13 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sat Sep 12 00:25:13 2026 -0500"
      },
      "message": "freebsd_aarch64: Initial support for FreeBSD ARM64\n\nThis is early WIP, based on the macOS Silicon port. It is made available\nonly because it is easier to get working once there is a rough sketch.\n\nProduced by Code Copilot.\n"
    },
    {
      "commit": "e1397ed79746b1482a549a3b8499549cff06c5f4",
      "tree": "309e1a1bdda076e819bddcef488d36d6f3972ce4",
      "parents": [
        "c42fc0a9ce106621d53d9635e05c6ca7fd6a53e1"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sat Sep 12 00:08:00 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Sat Sep 12 00:08:00 2026 -0500"
      },
      "message": "vcl: GTK2 ownership and lifecycle audit.\n\nRe-architected the GTK2 backend event dispatch pipeline in Apache OpenOffice\nby replacing linear frame searches with a centralized, O(1) X11 window-to-frame\nlookup map (m_aWindowFrameMap).\n\nSeparated low-level X11 event routing into GtkSalFrame::dispatchXEvent() with\nexplicit event consumption semantics while enforcing lifecycle invariants and\nregistration safety.\nChanges\n\nImplemented findFrameByXWindow(), registerFrameWindow(), and\nderegisterFrameWindow() using std::map\u003cXLIB_Window, GtkSalFrame*\u003e in\nGtkSalDisplay (gtkdata.hxx, gtkdata.cxx), rejecting duplicate registrations\nwith diagnostic logging.\n\nReplaced linear m_aFrames scans in GtkSalDisplay::filterGdkEvent and\nGtkSalDisplay::Dispatch with direct map lookup.\n\nExtracted GtkSalFrame::dispatchXEvent() in gtkframe.hxx and gtkframe.cxx\nto handle PropertyNotify, foreign-window ConfigureNotify, and _NET_WM_XEMBED\nclient messages with explicit handling indicators, while retaining legacy\nDispatch() as a continuation wrapper.\n\nHardened GtkSalFrame lifecycle state handling (InitCommon, moveToScreen,\ncreateNewWindow, and ~GtkSalFrame) to deregister old X11 window IDs prior to\nwidget realization/recreation and cleanly reset intermediate window state.\n\nVerification\n\nAudited all call sites and lifecycle paths (InitCommon, createNewWindow,\nmoveToScreen, frame destruction, and foreign window resizing) to confirm\nwindow IDs are registered only after realization and deregistered before\nwidget teardown.\n\nVerified that dispatchXEvent() null guards protect against unrealized\nwidget access and that legacy callers of Dispatch() retain identical\ncontinuation semantics.\n\nProduced with JetBrain\u0027s CLion with some help from ChatGPT\n"
    },
    {
      "commit": "c42fc0a9ce106621d53d9635e05c6ca7fd6a53e1",
      "tree": "ad9480f362aba536226b2d37ca47738def0d60fc",
      "parents": [
        "53e1e4439a5cd2473571a7e2d874af1eb23c2e94"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Fri Sep 11 07:48:05 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Fri Sep 11 07:48:05 2026 -0400"
      },
      "message": "macOS: wire notarization into packaging and close release gates\n\nA real Developer ID build - the first this signing work has had - surfaced\ngaps ad-hoc testing couldn\u0027t: notarization was never invoked despite being\nsupported, Gatekeeper was checked before notarizing, and neither the DMG\nnor its enclosed app was independently verified.\n\nAlso fixes a discarded license-resource return value and an EPM configure\nrequirement for package formats that never invoke EPM.\n"
    },
    {
      "commit": "53e1e4439a5cd2473571a7e2d874af1eb23c2e94",
      "tree": "17da51483c266d9de3812503b2f39114d4ce303d",
      "parents": [
        "5b69b91256f59140d943c8d465c9d695d23f560d"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 14:31:01 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 14:31:01 2026 -0400"
      },
      "message": "macOS: add --notarize PROFILE to macosx-codesign.sh\n"
    },
    {
      "commit": "5b69b91256f59140d943c8d465c9d695d23f560d",
      "tree": "8aaff172319b3befb78207b96bc3735cbf819a7d",
      "parents": [
        "e88c27187f2588c2cbaa28304e98e9fcf62910dc"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 13:01:40 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 13:01:40 2026 -0400"
      },
      "message": "macOS: rewrite install names of gbuild executables\n\ngbuild ran macosx-change-install-names.pl only for libraries, so uno.bin and\nregcomp.bin shipped @_______ load paths that resolve only via DYLD_LIBRARY_PATH.\n"
    },
    {
      "commit": "e88c27187f2588c2cbaa28304e98e9fcf62910dc",
      "tree": "d3d8810ce0762b74b648e4d133f0212017b1ac7c",
      "parents": [
        "d884924344e6b15164cf98f20d9dbdded7540356"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 12:38:25 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 12:38:25 2026 -0400"
      },
      "message": "Fix macOS language-pack signing, load-path check and sysconfig data\n\nThe load-path check matched each dylib\u0027s own @_______ ID and so rejected\nevery signed build; it now looks only for the CPython staging prefix.\n"
    },
    {
      "commit": "d884924344e6b15164cf98f20d9dbdded7540356",
      "tree": "bdc9fdba689e7141709c826aef74032e3544094a",
      "parents": [
        "f3385db031069db3e0655c6a4d85518bf39a7b68"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 12:06:16 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 12:06:16 2026 -0400"
      },
      "message": "macOS: harden application and disk image signing\n\nMake strict signature verification fail packaging, honor configured\nkeychains for all artifacts, and limit process entitlements to executable\ncode. Reject unresolved build-time Mach-O load paths before signing.\n\nUse safe argument handling for signing and disk image creation, make\nlanguage-pack wrappers valid application bundles, and prevent them from\ninvalidating signed installations.\n\nRelocate bundled Python\u0027s install names, preserve its Darwin sysconfig\ndata, and update the Spotlight importer for the Contents/program layout.\n"
    },
    {
      "commit": "f3385db031069db3e0655c6a4d85518bf39a7b68",
      "tree": "75dbc3e3a64fe46a9c2683e5de096c873c5878a1",
      "parents": [
        "df8e50b18960fb1a64b172e95b64d545305bb068"
      ],
      "author": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 11:18:37 2026 -0400"
      },
      "committer": {
        "name": "Jim Jagielski",
        "email": "jimjag@gmail.com",
        "time": "Thu Sep 10 11:18:37 2026 -0400"
      },
      "message": "macOS: code-signable bundle layout, opt-in signing of the .app and .dmg\nSelect patches from the mac-vcl-button-contrast branch.\n\ncodesign rejects a bundle with anything but Mach-O binaries in Contents/MacOS,\nwhere scp2 installed everything; the installation now lives in Contents/program.\nSigning only runs with --with-macosx-codesigning-identity (or the env var) set.\n"
    },
    {
      "commit": "df8e50b18960fb1a64b172e95b64d545305bb068",
      "tree": "bd2603d9771b152390ab1d357d1857b4450fd6df",
      "parents": [
        "2b70322d0a1dcef079c5cf96a5496abfc581f5e1",
        "4a318bbe6664954ea697118a822daccf9a07ee09"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "10236985+pgiffuni@users.noreply.github.com",
        "time": "Wed Sep 09 14:47:12 2026 -0500"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Sep 09 14:47:12 2026 -0500"
      },
      "message": "Merge pull request #503 from pgiffuni/trunk\n\nGTK2 code cleanup: mostly mechanical"
    },
    {
      "commit": "4a318bbe6664954ea697118a822daccf9a07ee09",
      "tree": "bd2603d9771b152390ab1d357d1857b4450fd6df",
      "parents": [
        "2b70322d0a1dcef079c5cf96a5496abfc581f5e1"
      ],
      "author": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Wed Sep 09 00:03:05 2026 -0500"
      },
      "committer": {
        "name": "Pedro Giffuni",
        "email": "pfg@apache.org",
        "time": "Wed Sep 09 00:03:05 2026 -0500"
      },
      "message": "Minor GTK2 code cleanup\n\nremove dead GTK2 monitor code\nremove obsolete GTK version compatibility branch\nunused headers\n\nNo functional change intended.\n"
    }
  ],
  "next": "2b70322d0a1dcef079c5cf96a5496abfc581f5e1"
}
