github Euro-Office/DocumentServer v9.3.5

5 hours ago

Bug Fixes

  • ODS currency symbols lost on round trip - Currency formats were bound to reserved XLSX format IDs via substring matching, causing locale-dependent built-in formats to replace the
    explicit ODF symbol and layout. All currency formats now receive custom IDs, and the ODF writer recognises locale-free currency tokens like [$€] alongside the traditional [$€-407]
    form.
  • PDF annotation dates displayed as "1/20/70" after save - Annotation dates were stored via 32-bit WriteLong, silently truncating millisecond-epoch timestamps. Switched to string
    property storage and corrected the UTC timezone marker from the invalid = to Z per PDF spec.
  • Spreadsheet scroll broken on macOS in Chromium browsers - A legacy mousewheel listener conflicted with modern wheel listeners on the same element. Removed the macOS-specific feature detection bypass so all platforms use the standard wheel event.
  • Page counter showed cursor position instead of visible page - The status bar page counter only updated on click or navigation, not on scroll. The visible-page event is now fired unconditionally during scroll, with correct handling for multi-page view layout and HiDPI displays.
  • Chart/diagram insertion failed under subpath deployments - Resolved a path resolution error that prevented inserting charts when the editor was served from a subpath.
  • Toolbar icons invisible in some views - Menu icons were drawn from a dead CSS sprite instead of the symbol sheet; fixed to use the inline SVG symbols.
  • Plugin registration failed for background-only stores - Plugins configured for background-only operation were not registered or autostarted.
  • Save-as-picture used data: URI blocked by CSP - Replaced the data: URI anchor-click download with a blob URL via URL.createObjectURL(), avoiding Content Security Policy restrictions.
  • DOCX list numbering elements in wrong schema order - <w:lvl> elements are now emitted in ECMA-376 schema order.
  • Backported upstream fixes - Embedded font use in pushbuttons, and five XLS/PDF rendering fixes from upstream.

Security

  • TLS certificate verification enabled on Linux - The FileTransporter cURL wrapper on Linux previously disabled peer certificate verification entirely. Verification is now enforced,
    with explicit comments discouraging re-introduction of the bypass.
  • 0-byte ZIP entries no longer dropped - Legitimate empty files (e.g., _xmlsignatures/origin.sigs) were skipped during in-memory ZIP parsing, making them invisible to signature
    verification. Directory entries are still excluded.

New Features

  • Per-editor desktop accent strip - Each editor type gets a themed colour accent in the desktop header bar.
  • PostMessage: add mentions via WOPI - The WOPI integration now supports adding mentions through the PostMessage API.

Infrastructure / Developer Experience

  • APT/DNF repository support - A reusable workflow downloads the current repository, merges new DocumentServer packages, prunes to two versions, re-signs indices, and publishes via rsync.
  • macOS native build - Full build support for macOS (x2t, V8, ICU, OpenSSL, doctrenderer, PdfFile, IWorkFile, CEF, Qt) including notarization fixes and Wayland clipboard bridging.
  • Rocky Linux 9 build - Build toolchain and CI workflow added for Rocky 9, including ARM64.
  • E2E editor smoke tests - Playwright-based smoke tests verify typing, formulas, and slide creation across document, spreadsheet, and presentation editors, including a mobile variant.
  • Error reporting with GlitchTip - Docker Compose profile added for self-hosted Sentry-compatible error reporting.
  • Docker: service UID pinning - Service UIDs are now pinned and volume ownership is repaired on upgrade, preventing permission errors after image updates.
  • Docker: supervisord under tini - Supervisord runs under tini to silently reap orphaned processes, eliminating noisy "reaped unknown pid" log messages.
  • Build version parsing for pre-release tags - The VERSION file is now parsed the same way as git tags, splitting 9.3.5-rc.1 into version and build number.
  • Dependency bumps: webpack-cli 7, copy-webpack-plugin 14, svgo 4, sharp 0.35, terser 5.51, mocha 12, chai 5.3, and others.

Translations

  • Danish (da): comprehensive translation covering all editors (~200 commits), including mobile, keyboard shortcuts, equation gallery, chart types, cell styles, and quality review.
  • Dutch (nl): added all missing translations for all editors.
  • German (de): missing translations added.

Don't miss a new DocumentServer release

NewReleases is sending notifications on new releases.