Portable XFA runtime
The native TXFAWidgetRuntime data, layout and event model executes with Delphi or FPC on Windows and with FPC on Linux x86-64
Linux core execution does not require LCL, a desktop session or a Windows compatibility layer; the Windows FPC build retains its existing Lazarus UTF-8 RTL initialization
Native JavaScript bridge
bash tools/Build-HotPDFQuickJSLinux.sh /var/tmp/hotpdf-native
export HOTPDF_QUICKJS_DLL=/var/tmp/hotpdf-native/libhpdfquickjs.so
export HOTPDF_SUPPRESS_AUTO_LAUNCH=1
The Linux bridge builds from the bundled QuickJS sources with GCC-compatible compilation and uses the same versioned HPDFQJS ABI as the Windows DLL
QuickJSDLLPath and HOTPDF_QUICKJS_DLL accept an explicit shared-library path on Linux; the existing API names are preserved for source compatibility
Default discovery checks libhpdfquickjs.so next to the executable and Lib/thirdparty/QuickJS/bin/Linux64 in executable ancestor directories
Each session owns a reference to its exact loaded module until its native engine, contexts and callbacks have been released; sessions retain independent script state and journals
Native monotonic clocks enforce the existing event, XML and layout budgets; deterministic epoch values, random responses and external transport responses remain recorded and replayed transactionally
Linux locales
The native Linux locale backend reads system ICU calendar names, decimal and grouping symbols, currency symbols and codes, AM/PM markers, and number/date/time patterns
Named locales use fully parsed BCP47 identifiers and known ICU language data; underscore separators are canonicalized, and unsupported languages or malformed identifiers return False
An empty name selects ICU's configured default locale; document localeSet definitions and explicit application locale providers retain their existing priority
Both libicuuc and libicui18n are required; the loader resolves matching ICU export versions, including versioned runtime libraries without development symlinks
ICU and Windows may provide different regional patterns and whitespace based on their installed locale data; explicit document locale definitions can select deterministic application formatting
Persistence and PDF consumers
SaveToBytes persists the native XDP, including Data DOM imports, per-instance values, namespace mappings, comments and processing instructions, with the same rollback behavior on both platforms
A Linux saved-XDP consumer fixture reloads TXFAWidgetRuntime and applies its actual values through THPDFHeadlessDocument field setters and native appearance generation
That fixture uses an independently prepared PDF field template; automatic native XFA PDF creation also creates fresh pages, supported fields and appearances directly from XDP on Windows and Linux through HPDFXFAWriteHeadlessPDF, without prepared field slots
The automatic adapter has a bounded field and draw profile; complete dynamic XFA integration, additional consumers and interactive rendering remain active work